🚀 flux-controlnet-lora-test
這是一個基於 black-forest-labs/flux.1-dev 的 ControlNet PEFT LoRA。
本項目可實現文本到圖像的轉換,通過特定的訓練和設置,能生成高質量的圖像。
🚀 快速開始
你可以參考以下代碼示例進行推理:
import torch
from diffusers import DiffusionPipeline
model_id = 'black-forest-labs/flux.1-dev'
adapter_id = 'bghira/flux-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"
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,
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=256,
height=256,
guidance_scale=4.0,
).images[0]
model_output.save("output.png", format="PNG")
✨ 主要特性
- 基於
black-forest-labs/flux.1-dev
模型衍生,可實現文本到圖像、圖像到圖像的轉換。
- 訓練過程中使用特定的驗證提示和設置,以保證模型效果。
- 文本編碼器未進行訓練,可複用基礎模型的文本編碼器進行推理。
📚 詳細文檔
驗證設置
- CFG:
4.0
- CFG 重縮放:
0.0
- 步數:
16
- 採樣器:
FlowMatchEulerDiscreteScheduler
- 種子:
42
- 分辨率:
256x256
- 跳過層引導:
注意:驗證設置不一定與訓練設置相同。
你可以在以下圖庫中找到一些示例圖像:
訓練設置
屬性 |
詳情 |
訓練輪數 |
8 |
訓練步數 |
250 |
學習率 |
0.0001 |
學習率調度 |
恆定 |
熱身步數 |
500 |
最大梯度值 |
2.0 |
有效批次大小 |
1 |
微批次大小 |
1 |
梯度累積步數 |
1 |
GPU 數量 |
1 |
梯度檢查點 |
啟用 |
預測類型 |
flow_matching (額外參數=['shift=3.0', 'flux_guidance_mode=constant', 'flux_guidance_value=1.0', 'flux_lora_target=controlnet']) |
優化器 |
adamw_bf16 |
可訓練參數精度 |
Pure BF16 |
基礎模型精度 |
int8 - quanto |
標題丟棄概率 |
0.0% |
LoRA 秩 |
64 |
LoRA 阿爾法 |
64.0 |
LoRA 丟棄率 |
0.1 |
LoRA 初始化風格 |
默認 |
數據集
antelope-data-256
屬性 |
詳情 |
重複次數 |
0 |
圖像總數 |
29 |
縱橫比桶總數 |
1 |
分辨率 |
0.065536 兆像素 |
裁剪 |
是 |
裁剪風格 |
居中 |
裁剪縱橫比 |
正方形 |
是否用於正則化數據 |
否 |
🔧 技術細節
- 本項目是基於 ControlNet PEFT LoRA 技術,從
black-forest-labs/flux.1-dev
模型派生而來。
- 在訓練過程中,使用了特定的預測類型
flow_matching
以及相關的額外參數,並且採用了 adamw_bf16
優化器和 Pure BF16
的可訓練參數精度,以提高訓練效率和模型性能。
- 文本編碼器在訓練中未進行訓練,可直接複用基礎模型的文本編碼器進行推理,減少了訓練成本和計算資源的消耗。
📄 許可證
本項目使用其他許可證。