7 releases

0.1.9 Mar 8, 2024
0.1.8 Mar 8, 2024
0.1.5 Feb 15, 2024

#162 in Machine learning

Download history 326/week @ 2024-02-14 32/week @ 2024-02-21 35/week @ 2024-02-28 516/week @ 2024-03-06 42/week @ 2024-03-13 2/week @ 2024-03-20 105/week @ 2024-03-27 6/week @ 2024-04-03

113 downloads per month

Apache-2.0

97KB
1.5K SLoC

Stable Diffusion CLI

Install the CLI tool:

cargo install stable-diffusion-cli

Get help to use the cli:

stable-diffusion --help

Training requirements

Setup the training environment:

stable-diffusion train setup

Examples

Generation example

To generate an image, simply run:

stable-diffusion generate --prompt "A green apple"

To check all the generation parameters:

stable-diffusion generate --help

Training example

We have a dataset with photos of Bacana, a Coton de Tuléar, conceptualized as bacana white dog to not mix with the existing Coton de Tuléar concept in the Stable Diffusion XL model.

Some of the training images in examples/training/lora/bacana/images:

The training parameters looks like this:

{
    "prompt": {
        "instance": "bacana",
        "class": "white dog"
    },
    "dataset": {
        "training": "images"
    },
    "network": {
        "dimension": 8,
        "alpha": 1.0
    },
    "output": {
        "name": "{prompt.instance}({prompt.class})d{network.dimension}a{network.alpha}",
        "directory": "./output"
    },
    "training": {
        "optimizer": "Adafactor",
        "learning_rate": {
            "scheduler": "Constant"
        }    
    }
}

Note that the output.name is a format string that captures the parameters values. This is useful for experimenting with different parameters and keeping track of them in the model file name.

Train the example with:

stable-diffusion train --config examples/training/lora/bacana/parameters.json

The LoRA safetensor file will be generated as

examples/training/lora/bacana/output/bacana(white dog)d8a1-000001.safetensors
examples/training/lora/bacana/output/bacana(white dog)d8a1.safetensors

Where, in this case, bacana(white dog)d8a1-000001.safetensors is the first epoch and bacana(white dog)d8a1.safetensors is the final epoch.

You can then

cd examples/training/lora/bacana/generation

and run

python generate.py

to test image generation with the LoRA model. The generated images will be present in examples/training/lora/bacana/generation.

Some of the generated images:

Development tips

Debugging

To check the training folder structure required by kohya_ss set the TRAINING_DIR to, for example, ./training like:

TRAINING_DIR=./training stable-diffusion train ...

Dependencies

~46–63MB
~1M SLoC