simpletuner-lora / README.md
codingrobot's picture
Model card auto-generated by SimpleTuner
3e9c37e verified
metadata
license: other
base_model: black-forest-labs/FLUX.1-dev
tags:
  - flux
  - flux-diffusers
  - text-to-image
  - image-to-image
  - diffusers
  - simpletuner
  - not-for-all-audiences
  - lora
  - template:sd-lora
  - standard
pipeline_tag: text-to-image
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 nikolai, capturing his 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 nikolai 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 nikolai, showcasing his unique
      personality and charm
    parameters:
      negative_prompt: blurry, cropped, ugly
    output:
      url: ./assets/image_3_0.png
  - text: >-
      a cinematic, visually stunning photo of nikolai, emphasizing his dramatic
      and captivating presence
    parameters:
      negative_prompt: blurry, cropped, ugly
    output:
      url: ./assets/image_4_0.png
  - text: >-
      an elegant and timeless portrait of nikolai, exuding grace and
      sophistication
    parameters:
      negative_prompt: blurry, cropped, ugly
    output:
      url: ./assets/image_5_0.png
  - text: >-
      a dynamic and adventurous photo of nikolai, 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 nikolai, shrouded in shadows and
      intrigue
    parameters:
      negative_prompt: blurry, cropped, ugly
    output:
      url: ./assets/image_7_0.png
  - text: >-
      a vintage-style portrait of nikolai, 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 nikolai, 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 nikolai, set against a backdrop
      of advanced technology
    parameters:
      negative_prompt: blurry, cropped, ugly
    output:
      url: ./assets/image_10_0.png
  - text: A picture of nikolai
    parameters:
      negative_prompt: blurry, cropped, ugly
    output:
      url: ./assets/image_11_0.png

simpletuner-lora

This is a PEFT LoRA derived from black-forest-labs/FLUX.1-dev.

The main validation prompt used during training was:

A picture of nikolai

Validation settings

  • CFG: 3.0
  • CFG Rescale: 0.0
  • Steps: 20
  • Sampler: FlowMatchEulerDiscreteScheduler
  • Seed: 42
  • Resolution: 1024x1024
  • Skip-layer guidance:

Note: The validation settings are not necessarily the same as the training settings.

You can find some example images in the following gallery:

Prompt
unconditional (blank prompt)
Negative Prompt
blurry, cropped, ugly
Prompt
a breathtaking anime-style portrait of nikolai, capturing his essence with vibrant colors and expressive features
Negative Prompt
blurry, cropped, ugly
Prompt
a high-quality, detailed photograph of nikolai as a sous-chef, immersed in the art of culinary creation
Negative Prompt
blurry, cropped, ugly
Prompt
a lifelike and intimate portrait of nikolai, showcasing his unique personality and charm
Negative Prompt
blurry, cropped, ugly
Prompt
a cinematic, visually stunning photo of nikolai, emphasizing his dramatic and captivating presence
Negative Prompt
blurry, cropped, ugly
Prompt
an elegant and timeless portrait of nikolai, exuding grace and sophistication
Negative Prompt
blurry, cropped, ugly
Prompt
a dynamic and adventurous photo of nikolai, captured in an exciting, action-filled moment
Negative Prompt
blurry, cropped, ugly
Prompt
a mysterious and enigmatic portrait of nikolai, shrouded in shadows and intrigue
Negative Prompt
blurry, cropped, ugly
Prompt
a vintage-style portrait of nikolai, evoking the charm and nostalgia of a bygone era
Negative Prompt
blurry, cropped, ugly
Prompt
an artistic and abstract representation of nikolai, blending creativity with visual storytelling
Negative Prompt
blurry, cropped, ugly
Prompt
a futuristic and cutting-edge portrayal of nikolai, set against a backdrop of advanced technology
Negative Prompt
blurry, cropped, ugly
Prompt
A picture of nikolai
Negative Prompt
blurry, cropped, ugly

The text encoder was not trained. You may reuse the base model text encoder for inference.

Training settings

  • Training epochs: 29

  • Training steps: 500

  • Learning rate: 0.0001

    • Learning rate schedule: polynomial
    • Warmup steps: 100
  • Max grad value: 1.0

  • Effective batch size: 1

    • Micro-batch size: 1
    • Gradient accumulation steps: 1
    • Number of GPUs: 1
  • Gradient checkpointing: True

  • Prediction type: flow_matching (extra parameters=['shift=3', 'flux_guidance_mode=constant', 'flux_guidance_value=1.0', 'flux_lora_target=mmdit'])

  • Optimizer: adamw_bf16

  • Trainable parameter precision: Pure BF16

  • Base model precision: fp8-torchao

  • Caption dropout probability: 0.1%

  • LoRA Rank: 16

  • LoRA Alpha: None

  • LoRA Dropout: 0.1

  • LoRA initialisation style: default

  • LoRA mode: Standard

Datasets

dreambooth-subject

  • Repeats: 0
  • Total number of images: 17
  • Total number of aspect buckets: 1
  • Resolution: 1.048576 megapixels
  • Cropped: False
  • Crop style: None
  • Crop aspect: None
  • Used for regularisation data: No

Inference

import torch
from diffusers import DiffusionPipeline

model_id = 'black-forest-labs/FLUX.1-dev'
adapter_id = 'codingrobot/simpletuner-lora'
pipeline = DiffusionPipeline.from_pretrained(model_id, torch_dtype=torch.bfloat16) # loading directly in bf16
pipeline.load_lora_weights(adapter_id)

prompt = "A picture of nikolai"


## Optional: quantise the model to save on vram.
## Note: The model was quantised during training, and so it is recommended to do the same during inference time.
from optimum.quanto import quantize, freeze, qint8
quantize(pipeline.transformer, weights=qint8)
freeze(pipeline.transformer)
    
pipeline.to('cuda' if torch.cuda.is_available() else 'mps' if torch.backends.mps.is_available() else 'cpu') # the pipeline is already in its target precision level
model_output = pipeline(
    prompt=prompt,
    num_inference_steps=20,
    generator=torch.Generator(device='cuda' if torch.cuda.is_available() else 'mps' if torch.backends.mps.is_available() else 'cpu').manual_seed(42),
    width=1024,
    height=1024,
    guidance_scale=3.0,
).images[0]

model_output.save("output.png", format="PNG")