metadata
license: other
base_model: black-forest-labs/FLUX.1-dev
tags:
- flux
- flux-diffusers
- text-to-image
- diffusers
- simpletuner
- not-for-all-audiences
- lora
- template:sd-lora
- lycoris
inference: true
widget:
- text: unconditional (blank prompt)
parameters:
negative_prompt: blurry, cropped, ugly
output:
url: ./assets/image_0_0.png
- text: >-
a close-up of a young woman in the foreground with windswept red hair,
green eyes full of determination, while a soft light highlights her
parameters:
negative_prompt: blurry, cropped, ugly
output:
url: ./assets/image_1_0.png
- text: >-
a beautiful woman with flowing hair adorned with flowers and intricate
patterns, her expression is confident and mysterious as she holds her hand
near her face, she wears an ornate outfit with floral designs, her skin
and features are bathed in soft pink tones, the background is filled with
decorative swirls and patterns that enhance the elegant and sensual
atmosphere, the overall composition is delicate and detailed with a
romantic and alluring vibe
parameters:
negative_prompt: blurry, cropped, ugly
output:
url: ./assets/image_2_0.png
- text: >-
a woman with long red hair, her face tilted toward her knees, gazing
intensely at the camera with a look that combines vulnerability and
curiosity, her lips are slightly parted, adding a sense of intrigue, while
her green eyes, half-shaded by her bangs, convey a mixture of
thoughtfulness and quiet intensity, she wears a bright orange headband
that contrasts vividly with the green of her outfit and the background,
the outfit is made of olive-green lace, with intricate embroidery that
stands out against her fair skin, her left arm is adorned with an ornate
gold bracelet featuring white and black details, the background is a
monochromatic gigantic-dots halftones pattern, which enhances the bold
colors of the image, creating an elegant contrast between warm and cool
tones, the overall atmosphere is sophisticated, with a mix of sensuality,
mystery, and strength conveyed through her expressive gaze
parameters:
negative_prompt: blurry, cropped, ugly
output:
url: ./assets/image_3_0.png
- text: >-
a mesmerizing woman with flowing orange-blonde hair cascading down her
back her piercing green eyes framed by vibrant blue eyelashes gaze
directly at the viewer contrasting beautifully with her bold orange
eyebrows her pink lips add a soft yet striking touch she wears a flowing
pink cape that glimmers with delicate sparkles catching the light her pose
is elegant with her back turned to the camera yet her expression exudes
confidence and mystery as she looks over her shoulder
parameters:
negative_prompt: blurry, cropped, ugly
output:
url: ./assets/image_4_0.png
- text: >-
a seductive vampire, her pale porcelain skin gleams with ethereal light
while shadows dance across her skin her deep black hair flows dramatically
with hints of blue and purple highlights her crimson lips part in a serene
expression, her minimal dark outfit enhance her elegance surrounded by
swirling pink and teal clouds in a moody nocturnal sky
parameters:
negative_prompt: blurry, cropped, ugly
output:
url: ./assets/image_5_0.png
- text: >-
a jungle queen with piercing green eyes her long blonde hair is adorned
with flowers and feathers partially catching the light her face is
dramatically lit with sharp contrasts one side glowing warmly while the
other is cast in soft shadow creating depth and mystery the light
highlights her vibrant green eyes and glossed lips while the shadow
accentuates her cheekbones and jawline the jungle backdrop intensifies the
luminous and moody atmosphere surrounding her
parameters:
negative_prompt: blurry, cropped, ugly
output:
url: ./assets/image_6_0.png
- text: >-
a dramatic scene featuring a fierce woman, standing, she has long flowing
black hair with neon pink and blue highlights, billowing wildly as she
gazes intensely into the distance, she wears a tight, sleek outfit that
reflects the glow of the moon and surrounding light, vibrant clouds of
pink and blue swirl and mix, adding an ethereal and otherworldly
atmosphere, the lighting casts soft neon glows on both characters,
enhancing the sense of power and tension in the scene, the composition is
dynamic and full of energy, blending gothic, fantasy, and cyberpunk
elements
parameters:
negative_prompt: blurry, cropped, ugly
output:
url: ./assets/image_7_0.png
- text: >-
a striking and stunningly beautiful young woman radiates confidence and
allure under the summer sun she exudes an air of rebellion, her attitude
bold and unapologetic as she is caught mid-swear, adding a fiery edge to
her magnetic presence she wears a minuscule and daring gown crafted with
intricate detail, resembling flowing tentacles that wrap elegantly around
her figure the elaborate design of her outfit enhances her striking
appearance, blending sensuality with an otherworldly and bold aesthetic
that captivates all who see her
parameters:
negative_prompt: blurry, cropped, ugly
output:
url: ./assets/image_8_0.png
- text: >-
a haunting figure with green eyes framed by soft orange-blonde hair,
gently caresses her lips, neon palette of pinks purples and blues creates
an eerie glow around her the background dissolves into surreal drips
parameters:
negative_prompt: blurry, cropped, ugly
output:
url: ./assets/image_9_0.png
- text: >-
striking beautiful summer young woman, she dress a minuscule, elaborated
and intricate sundress
parameters:
negative_prompt: blurry, cropped, ugly
output:
url: ./assets/image_10_0.png
- text: >-
a chibi seductive vampire, her pale porcelain skin gleams with ethereal
light while shadows dance across her skin her orange hair flows
dramatically with hints of blue and purple highlights and green eyes, her
crimson lips part in a serene expression, her minimal dark outfit enhance
her elegance in a moody nocturnal sky
parameters:
negative_prompt: blurry, cropped, ugly
output:
url: ./assets/image_11_0.png
besch-flux-lokr-lion-1.5e-5-bs6-v05
This is a LyCORIS adapter derived from black-forest-labs/FLUX.1-dev.
No validation prompt was used during training.
None
Validation settings
- CFG:
3.0
- CFG Rescale:
0.0
- Steps:
20
- Sampler:
FlowMatchEulerDiscreteScheduler
- Seed:
1121925699670477
- 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:
The text encoder was not trained. You may reuse the base model text encoder for inference.
Training settings
- Training epochs: 8
- Training steps: 6140
- Learning rate: 1.5e-05
- Learning rate schedule: polynomial
- Warmup steps: 600
- Max grad norm: 0.01
- Effective batch size: 6
- Micro-batch size: 3
- Gradient accumulation steps: 1
- Number of GPUs: 2
- Gradient checkpointing: True
- Prediction type: flow-matching (extra parameters=['flux_schedule_auto_shift', 'shift=0.0', 'flux_guidance_mode=constant', 'flux_guidance_value=1.0', 'flow_matching_loss=compatible'])
- Optimizer: optimi-lionweight_decay=1e-3
- Trainable parameter precision: Pure BF16
- Caption dropout probability: 25.0%
LyCORIS Config:
{
"bypass_mode": true,
"algo": "lokr",
"multiplier": 1.0,
"full_matrix": true,
"linear_dim": 10000,
"linear_alpha": 1,
"factor": 4,
"apply_preset": {
"target_module": [
"Attention",
"FeedForward"
],
"module_algo_map": {
"FeedForward": {
"factor": 4
},
"Attention": {
"factor": 2
}
}
}
}
Datasets
BESCH-CROP-FLUX-V05-512
- Repeats: 2
- Total number of images: ~86
- Total number of aspect buckets: 3
- Resolution: 0.262144 megapixels
- Cropped: True
- Crop style: random
- Crop aspect: closest
- Used for regularisation data: No
BESCH-CROP-FLUX-V05-768
- Repeats: 2
- Total number of images: ~86
- Total number of aspect buckets: 3
- Resolution: 0.589824 megapixels
- Cropped: True
- Crop style: random
- Crop aspect: closest
- Used for regularisation data: No
BESCH-MIX-FLUX-V05-512
- Repeats: 2
- Total number of images: ~106
- Total number of aspect buckets: 3
- Resolution: 0.262144 megapixels
- Cropped: True
- Crop style: random
- Crop aspect: closest
- Used for regularisation data: No
BESCH-MIX-FLUX-V05-768
- Repeats: 2
- Total number of images: ~110
- Total number of aspect buckets: 1
- Resolution: 0.589824 megapixels
- Cropped: True
- Crop style: random
- Crop aspect: closest
- Used for regularisation data: No
BESCH-NEW_ORIGINAL-FLUX-V05-512
- Repeats: 5
- Total number of images: ~140
- Total number of aspect buckets: 6
- Resolution: 0.262144 megapixels
- Cropped: True
- Crop style: random
- Crop aspect: closest
- Used for regularisation data: No
BESCH-NEW_ORIGINAL-FLUX-V05-768
- Repeats: 5
- Total number of images: ~140
- Total number of aspect buckets: 1
- Resolution: 0.589824 megapixels
- Cropped: True
- Crop style: random
- Crop aspect: closest
- Used for regularisation data: No
BESCH-NEW_ORIGINAL-FLUX-V05-1024
- Repeats: 5
- Total number of images: ~140
- Total number of aspect buckets: 4
- Resolution: 1.048576 megapixels
- Cropped: True
- Crop style: random
- Crop aspect: closest
- Used for regularisation data: No
Inference
import torch
from diffusers import DiffusionPipeline
from lycoris import create_lycoris_from_weights
def download_adapter(repo_id: str):
import os
from huggingface_hub import hf_hub_download
adapter_filename = "pytorch_lora_weights.safetensors"
cache_dir = os.environ.get('HF_PATH', os.path.expanduser('~/.cache/huggingface/hub/models'))
cleaned_adapter_path = repo_id.replace("/", "_").replace("\\", "_").replace(":", "_")
path_to_adapter = os.path.join(cache_dir, cleaned_adapter_path)
path_to_adapter_file = os.path.join(path_to_adapter, adapter_filename)
os.makedirs(path_to_adapter, exist_ok=True)
hf_hub_download(
repo_id=repo_id, filename=adapter_filename, local_dir=path_to_adapter
)
return path_to_adapter_file
model_id = 'black-forest-labs/FLUX.1-dev'
adapter_repo_id = 'gattaplayer/besch-flux-lokr-lion-1.5e-5-bs6-v05'
adapter_filename = 'pytorch_lora_weights.safetensors'
adapter_file_path = download_adapter(repo_id=adapter_repo_id)
pipeline = DiffusionPipeline.from_pretrained(model_id, torch_dtype=torch.bfloat16) # loading directly in bf16
lora_scale = 1.0
wrapper, _ = create_lycoris_from_weights(lora_scale, adapter_file_path, pipeline.transformer)
wrapper.merge_to()
prompt = "An astronaut is riding a horse through the jungles of Thailand."
## 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
image = 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(1121925699670477),
width=1024,
height=1024,
guidance_scale=3.0,
).images[0]
image.save("output.png", format="PNG")