🚀 auraflow-controlnet-lora-test
This is a ControlNet PEFT LoRA derived from terminusresearch/auraflow-v0.3, which can be used for text - to - image and image - to - image tasks.
Information Table
Property |
Details |
Model Type |
ControlNet PEFT LoRA |
Base Model |
terminusresearch/auraflow-v0.3 |
Pipeline Tag |
text-to-image |
Inference |
true |
🚀 Quick Start
The main validation prompt used during training was:
A photo-realistic image of a cat
✨ Features
Validation settings
- CFG:
4.0
- CFG Rescale:
0.0
- Steps:
16
- Sampler:
FlowMatchEulerDiscreteScheduler
- Seed:
42
- 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: 15
- Training steps: 450
- Learning rate: 0.0001
- Learning rate schedule: constant
- Warmup steps: 500
- Max grad value: 2.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.0', 'controlnet_enabled'])
- Optimizer: adamw_bf16
- Trainable parameter precision: Pure BF16
- Base model precision:
int8 - torchao
- Caption dropout probability: 0.0%
- LoRA Rank: 64
- LoRA Alpha: 64.0
- LoRA Dropout: 0.1
- LoRA initialisation style: default
Datasets
antelope-data-256
- Repeats: 0
- Total number of images: 29
- Total number of aspect buckets: 1
- Resolution: 0.065536 megapixels
- Cropped: True
- Crop style: center
- Crop aspect: square
- Used for regularisation data: No
💻 Usage Examples
Basic Usage
import torch
from diffusers import DiffusionPipeline
model_id = 'terminusresearch/auraflow-v0.3'
adapter_id = 'bghira/auraflow-controlnet-lora-test'
pipeline = DiffusionPipeline.from_pretrained(model_id, torch_dtype=torch.bfloat16)
pipeline.load_lora_weights(adapter_id)
prompt = "A photo-realistic image of a cat"
negative_prompt = 'ugly, cropped, blurry, low-quality, mediocre average'
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')
model_output = pipeline(
prompt=prompt,
negative_prompt=negative_prompt,
num_inference_steps=16,
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=4.0,
).images[0]
model_output.save("output.png", format="PNG")
📄 License
This project is licensed under the Apache-2.0 license.