10 个版本

0.1.9 2024 年 3 月 8 日
0.1.8 2024 年 3 月 8 日
0.1.5 2024 年 2 月 15 日

#122 in 机器学习


stable-diffusion-cli 中使用

Apache-2.0

35KB
574

免责声明 Stable Diffusion 是 Stability AI 的商标。原始仓库:Stable Diffusion 1.5Stable Diffusion 2.1Stable Diffusion XL 和 XL-Turbo

Stable Diffusion XL LoRA 训练器

欢迎使用 Sensorial System 的 Stable Diffusion 项目的官方代码库。目前,此代码库仅托管我们的 Stable Diffusion XL LoRA 训练器代码,旨在简化对 Stable Diffusion 模型的微调步骤。

要求

设置

如果您不想每次运行训练器时都设置 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(&parameters);
}

请注意,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