File size: 8,449 Bytes
110f78a 60f1b93 110f78a cfc2f0d 110f78a cfc2f0d 110f78a 2209f51 110f78a 1f5773f 110f78a 60f1b93 110f78a 0b82d72 4932e5d 2209f51 110f78a 2209f51 110f78a 4bbe2aa 110f78a 2209f51 110f78a 1f5773f 110f78a 2209f51 110f78a 2209f51 110f78a 7708578 110f78a cfc2f0d 110f78a 4bbe2aa 110f78a cfc2f0d |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 |
---
license: creativeml-openrail-m
base_model: "black-forest-labs/FLUX.1-dev"
tags:
- stable-diffusion
- stable-diffusion-diffusers
- text-to-image
- diffusers
- simpletuner
- lora
- template:sd-lora
inference: true
widget:
- text: 'unconditional (blank prompt)'
parameters:
negative_prompt: 'blurry, cropped, ugly'
output:
url: ./assets/image_0_0.png
- text: 'a breathtaking anime-style portrait of Julia, capturing her essence with vibrant colors and expressive features'
parameters:
negative_prompt: 'blurry, cropped, ugly'
output:
url: ./assets/image_1_0.png
- text: 'a high-quality, detailed photograph of Julia as a sous-chef, immersed in the art of culinary creation'
parameters:
negative_prompt: 'blurry, cropped, ugly'
output:
url: ./assets/image_2_0.png
- text: 'a lifelike and intimate portrait of Julia, showcasing her unique personality and charm'
parameters:
negative_prompt: 'blurry, cropped, ugly'
output:
url: ./assets/image_3_0.png
- text: 'a cinematic, visually stunning photo of Julia, emphasizing her dramatic and captivating presence'
parameters:
negative_prompt: 'blurry, cropped, ugly'
output:
url: ./assets/image_4_0.png
- text: 'an elegant and timeless portrait of Julia, exuding grace and sophistication'
parameters:
negative_prompt: 'blurry, cropped, ugly'
output:
url: ./assets/image_5_0.png
- text: 'a dynamic and adventurous photo of Julia, captured in an exciting, action-filled moment'
parameters:
negative_prompt: 'blurry, cropped, ugly'
output:
url: ./assets/image_6_0.png
- text: 'a mysterious and enigmatic portrait of Julia, shrouded in shadows and intrigue'
parameters:
negative_prompt: 'blurry, cropped, ugly'
output:
url: ./assets/image_7_0.png
- text: 'a vintage-style portrait of Julia, evoking the charm and nostalgia of a bygone era'
parameters:
negative_prompt: 'blurry, cropped, ugly'
output:
url: ./assets/image_8_0.png
- text: 'an artistic and abstract representation of Julia, blending creativity with visual storytelling'
parameters:
negative_prompt: 'blurry, cropped, ugly'
output:
url: ./assets/image_9_0.png
- text: 'a futuristic and cutting-edge portrayal of Julia, set against a backdrop of advanced technology'
parameters:
negative_prompt: 'blurry, cropped, ugly'
output:
url: ./assets/image_10_0.png
- text: 'a beautifully crafted portrait of a woman, highlighting her natural beauty and unique features'
parameters:
negative_prompt: 'blurry, cropped, ugly'
output:
url: ./assets/image_11_0.png
- text: 'a powerful and striking portrait of a man, capturing his strength and character'
parameters:
negative_prompt: 'blurry, cropped, ugly'
output:
url: ./assets/image_12_0.png
- text: 'a playful and spirited portrait of a boy, capturing youthful energy and innocence'
parameters:
negative_prompt: 'blurry, cropped, ugly'
output:
url: ./assets/image_13_0.png
- text: 'a charming and vibrant portrait of a girl, emphasizing her bright personality and joy'
parameters:
negative_prompt: 'blurry, cropped, ugly'
output:
url: ./assets/image_14_0.png
- text: 'a heartwarming and cohesive family portrait, showcasing the bonds and connections between loved ones'
parameters:
negative_prompt: 'blurry, cropped, ugly'
output:
url: ./assets/image_15_0.png
- text: 'a charming and warm photograph of river phoenix at the beach on a sunny day'
parameters:
negative_prompt: 'blurry, cropped, ugly'
output:
url: ./assets/image_16_0.png
- text: 'river phoenix sitting in a roller coaster car, looking like he is enjoying the day at the theme park'
parameters:
negative_prompt: 'blurry, cropped, ugly'
output:
url: ./assets/image_17_0.png
- text: 'a photograph of a juggalo that is river phoenix'
parameters:
negative_prompt: 'blurry, cropped, ugly'
output:
url: ./assets/image_18_0.png
- text: 'julie, in photograph style'
parameters:
negative_prompt: 'blurry, cropped, ugly'
output:
url: ./assets/image_19_0.png
---
# flux-dreambooth-lora
This is a LoRA derived from [black-forest-labs/FLUX.1-dev](https://huggingface.co/black-forest-labs/FLUX.1-dev).
Two subjects were trained in, a character named Julia (AI) and a real person named River Phoenix.
Empirically, training two subjects in simultaneously kept the model from collapsing, though they don't train evenly - River Phoenix took longer than "Julia", possibly due to the synthetic nature of the data.
The photos of "Julia" came from Flux Pro. River Phoenix images were pulled from Google Image Search, with a focus on high resolution, high quality samples.
No captions were used during training, only instance prompts `julia` and `river phoenix`.
The main validation prompt used during training was:
```
julie, in photograph style
```
## Validation settings
- CFG: `3.0`
- CFG Rescale: `0.0`
- Steps: `28`
- Sampler: `None`
- Seed: `420420420`
- Resolution: `1024x1024`
Note: The validation settings are not necessarily the same as the [training settings](#training-settings).
You can find some example images in the following gallery:
<Gallery />
The text encoder **was not** trained.
You may reuse the base model text encoder for inference.
## Training settings
- Training epochs: 108
- Training steps: 2500
- Learning rate: 0.0001
- Effective batch size: 2
- Micro-batch size: 1
- Gradient accumulation steps: 2
- Number of GPUs: 1
- Prediction type: flow-matching
- Rescaled betas zero SNR: False
- Optimizer: AdamW, stochastic bf16
- Precision: Pure BF16
- Xformers: Not used
- LoRA Rank: 16
- LoRA Alpha: 16.0
- LoRA Dropout: 0.1
- LoRA initialisation style: default
## Datasets
### julia
- Repeats: 0
- Total number of images: 34
- Total number of aspect buckets: 1
- Resolution: 512 px
- Cropped: True
- Crop style: random
- Crop aspect: square
### riverphoenix
- Repeats: 0
- Total number of images: 12
- Total number of aspect buckets: 1
- Resolution: 512 px
- Cropped: True
- Crop style: random
- Crop aspect: square
## Inference
```python
import torch
from diffusers import DiffusionPipeline
model_id = 'black-forest-labs/FLUX.1-dev'
adapter_id = 'ptx0/flux-dreambooth-lora-r16-dev'
pipeline = DiffusionPipeline.from_pretrained(model_id)
pipeline.load_lora_weights(adapter_id)
prompt = "julie, in photograph style"
pipeline.to('cuda' if torch.cuda.is_available() else 'mps' if torch.backends.mps.is_available() else 'cpu')
image = pipeline(
prompt=prompt,
num_inference_steps=28,
generator=torch.Generator(device='cuda' if torch.cuda.is_available() else 'mps' if torch.backends.mps.is_available() else 'cpu').manual_seed(1641421826),
width=1024,
height=1024,
guidance_scale=3.0,
).images[0]
image.save("output.png", format="PNG")
```
## SimpleTuner Config
The configuration used to train this model:
```bash
export MODEL_TYPE='lora'
export TRAINING_SEED=420420420
export CHECKPOINTING_STEPS=500
export CHECKPOINTING_LIMIT=10
export LEARNING_RATE=1e-4
export FLUX=true
export MODEL_NAME="black-forest-labs/FLUX.1-dev"
export VALIDATION_SEED=420420420
export VALIDATION_PROMPT="julie, in photograph style"
export VALIDATION_NEGATIVE_PROMPT="blurry, cropped, ugly"
# How frequently we will save and run a pipeline for validations.
export VALIDATION_STEPS=500
# Validation image settings.
export VALIDATION_GUIDANCE=3.0
export VALIDATION_GUIDANCE_REAL=3.0
export VALIDATION_NUM_INFERENCE_STEPS=28
export VALIDATION_GUIDANCE_RESCALE=0
export VALIDATION_RESOLUTION=1024x1024
export ALLOW_TF32=true
export PURE_BF16=true
export CAPTION_DROPOUT_PROBABILITY=0
export MAX_NUM_STEPS=0
export NUM_EPOCHS=1000
export OPTIMIZER="adamw_bf16"
export LR_SCHEDULE="constant"
export LR_WARMUP_STEPS=500
export TRAIN_BATCH_SIZE=1
export RESOLUTION=512
export RESOLUTION_TYPE=pixel
export GRADIENT_ACCUMULATION_STEPS=2
export MIXED_PRECISION="bf16"
export TRAINING_DYNAMO_BACKEND='inductor'
export USE_XFORMERS=false
export USE_GRADIENT_CHECKPOINTING=true
export VAE_BATCH_SIZE=8
export TRAINER_EXTRA_ARGS="--aspect_bucket_worker_count=48 --lora_rank=16 --lora_alpha=16 --max_grad_norm=1.0 --gradient_precision=fp32 --base_model_default_dtype=bf16 --lora_init_type=default --flux_lora_target=all+ffs --user_prompt_library=user_prompt_library.json --webhook_config=webhooks.json --compress_disk_cache"
export USE_EMA=false
```
|