PseudoTerminal X
Update README.md
cfc2f0d verified
---
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
```