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.
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.
You can find some example images in the following 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
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:
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