Update README.md
Browse files
README.md
CHANGED
|
@@ -1,3 +1,80 @@
|
|
| 1 |
-
---
|
| 2 |
-
license: apache-2.0
|
| 3 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
license: apache-2.0
|
| 3 |
+
datasets:
|
| 4 |
+
- trollek/ImagePromptHelper-v02
|
| 5 |
+
- Gustavosta/Stable-Diffusion-Prompts
|
| 6 |
+
- k-mktr/improved-flux-prompts
|
| 7 |
+
- Falah/image_generation_prompts_SDXL
|
| 8 |
+
- ChrisGoringe/flux_prompts
|
| 9 |
+
language:
|
| 10 |
+
- en
|
| 11 |
+
base_model:
|
| 12 |
+
- HuggingFaceTB/SmolLM2-135M
|
| 13 |
+
library_name: transformers
|
| 14 |
+
tags:
|
| 15 |
+
- llama-factory
|
| 16 |
+
- full
|
| 17 |
+
---
|
| 18 |
+
|
| 19 |
+
# Smol Image Prompt Helper
|
| 20 |
+
|
| 21 |
+
This is meant to be a drop-in replacement for [my last image prompt helper](https://huggingface.co/trollek/ImagePromptHelper-danube3-500M) but with a new trick and a much smaller size.
|
| 22 |
+
It achieves the following results on the evaluation set:
|
| 23 |
+
- Loss: 1.0077
|
| 24 |
+
|
| 25 |
+
## Model description
|
| 26 |
+
|
| 27 |
+
Lets say you have a node in ComfyUI to parse JSON and send the appropriate prompt to the text encoders. Tadaaa:
|
| 28 |
+
|
| 29 |
+
```
|
| 30 |
+
You are an AI assistant tasked with expanding and formatting image prompts. You are given an input that you will need to write image prompts for different text encoders.
|
| 31 |
+
Always respond with the following format:
|
| 32 |
+
{
|
| 33 |
+
"clip_l": "<keywords from image analysis>",
|
| 34 |
+
"clip_g": "<simple descriptions of the image>",
|
| 35 |
+
"t5xxl": "<complex semanticly rich description of the image>",
|
| 36 |
+
"negative": "<contrasting keywords for what is not in the image>"
|
| 37 |
+
}
|
| 38 |
+
```
|
| 39 |
+
|
| 40 |
+
## Intended uses & limitations
|
| 41 |
+
|
| 42 |
+
Have a look at the dataset that I created \([ImagePromptHelper-v02](https://huggingface.co/datasets/trollek/ImagePromptHelper-v02) \(CC BY 4.0\)\) and you will see whaaaaat I've doooone.
|
| 43 |
+
|
| 44 |
+
## Training procedure
|
| 45 |
+
|
| 46 |
+
I continued the pretraining with SDXL and Flux prompts and then SFT'd it on my own dataset.
|
| 47 |
+
|
| 48 |
+
### Training hyperparameters
|
| 49 |
+
|
| 50 |
+
The following hyperparameters were used during training:
|
| 51 |
+
- learning_rate: 2e-05
|
| 52 |
+
- train_batch_size: 8
|
| 53 |
+
- eval_batch_size: 1
|
| 54 |
+
- seed: 443
|
| 55 |
+
- gradient_accumulation_steps: 8
|
| 56 |
+
- total_train_batch_size: 64
|
| 57 |
+
- optimizer: Use OptimizerNames.ADAMW_TORCH with betas=(0.9,0.999) and epsilon=1e-08 and optimizer_args=No additional optimizer arguments
|
| 58 |
+
- lr_scheduler_type: cosine
|
| 59 |
+
- lr_scheduler_warmup_ratio: 0.05
|
| 60 |
+
- num_epochs: 3
|
| 61 |
+
|
| 62 |
+
### Training results
|
| 63 |
+
|
| 64 |
+
| Training Loss | Epoch | Step | Validation Loss |
|
| 65 |
+
|:-------------:|:------:|:----:|:---------------:|
|
| 66 |
+
| 1.1631 | 0.3966 | 500 | 1.2816 |
|
| 67 |
+
| 1.019 | 0.7932 | 1000 | 1.1431 |
|
| 68 |
+
| 0.9857 | 1.1896 | 1500 | 1.0818 |
|
| 69 |
+
| 1.0436 | 1.5862 | 2000 | 1.0459 |
|
| 70 |
+
| 0.9918 | 1.9827 | 2500 | 1.0235 |
|
| 71 |
+
| 0.9287 | 2.3791 | 3000 | 1.0114 |
|
| 72 |
+
| 0.9205 | 2.7757 | 3500 | 1.0079 |
|
| 73 |
+
|
| 74 |
+
|
| 75 |
+
### Framework versions
|
| 76 |
+
|
| 77 |
+
- Transformers 4.50.0
|
| 78 |
+
- Pytorch 2.6.0+cu126
|
| 79 |
+
- Datasets 3.4.1
|
| 80 |
+
- Tokenizers 0.21.0
|