10 个版本
0.1.9 | 2024 年 3 月 8 日 |
---|---|
0.1.8 | 2024 年 3 月 8 日 |
0.1.5 | 2024 年 2 月 15 日 |
#122 in 机器学习
在 stable-diffusion-cli 中使用
35KB
574 行
免责声明 Stable Diffusion 是 Stability AI 的商标。原始仓库:Stable Diffusion 1.5、Stable Diffusion 2.1、Stable Diffusion XL 和 XL-Turbo
Stable Diffusion XL LoRA 训练器
欢迎使用 Sensorial System 的 Stable Diffusion 项目的官方代码库。目前,此代码库仅托管我们的 Stable Diffusion XL LoRA 训练器代码,旨在简化对 Stable Diffusion 模型的微调步骤。
要求
- kohya_ss:请按照以下指南进行安装 https://github.com/bmaltais/kohya_ss.
设置
如果您不想每次运行训练器时都设置 KOHYA_SS_PATH
环境变量,您可以运行 CLI
来一次性设置它
stable-diffusion train setup
如果您还没有安装 CLI
,请使用以下命令进行安装:
cargo install stable-diffusion-cli
示例
我们有一个 Bacana 照片的数据集,这是一种 Coton de Tuléar,被概念化为 bacana white dog
,以便与 Stable Diffusion XL
模型中现有的 Coton de Tuléar
概念不混淆。
以下是一些 examples/training/lora/bacana/images 中的训练图像
训练代码示例如下
use stable_diffusion_trainer::*;
fn main() {
let kohya_ss = std::env::var("KOHYA_SS_PATH").expect("KOHYA_SS_PATH not set");
let environment = Environment::new().with_kohya_ss(kohya_ss);
let prompt = Prompt::new("bacana", "white dog");
let image_data_set = ImageDataSet::from_dir("examples/training/lora/bacana/images");
let data_set = TrainingDataSet::new(image_data_set);
let output = Output::new("{prompt.instance}({prompt.class})d{network.dimension}a{network.alpha}", "examples/training/lora/bacana/output");
let parameters = Parameters::new(prompt, data_set, output);
Trainer::new()
.with_environment(environment)
.start(¶meters);
}
请注意,Output::name
是一个格式字符串,用于捕获参数值。这对于实验不同的参数并在模型文件名中跟踪它们非常有用。
使用以下命令训练示例
KOHYA_SS_PATH=<your kohya_ss path here> cargo run --example train-lora
LoRA safetensor 文件将生成为
examples/training/lora/bacana/output/bacana(white dog)d8a1-000001.safetensors
examples/training/lora/bacana/output/bacana(white dog)d8a1.safetensors
在这种情况下,bacana(白色狗)d8a1-000001.safetensors
是第一个时期,而bacana(白色狗)d8a1.safetensors
是最后一个时期。
然后您可以
cd examples/training/lora/bacana/generation
并运行
python generate.py
以测试使用LoRA模型生成图像。生成的图像将保存在examples/training/lora/bacana/generation。
一些生成的图像
依赖关系
~3–15MB
~154K SLoC