Stable Diffusion recipe merger
Project description
sd-mecha
sd-mecha is a stable diffusion recipe merger:
import sd_mecha
# create a simple weighted sum recipe
recipe = sd_mecha.weighted_sum(
sd_mecha.weighted_sum(
"ghostmix_v20Bakedvae",
"deliberate_v2",
alpha=0.5,
),
"dreamshaper_332BakedVaeClipFix",
alpha=0.33,
)
# merger contains default parameters
merger = sd_mecha.MergeScheduler(
base_dir=r"E:\sd\models\Stable-diffusion",
)
# perform the entire merge plan and save to output path
merger.merge_and_save(recipe, output_path="basic_merge")
See the examples directory for other examples.
Features
- Memory efficient model merging -- merge a very large number of models at the same time
- Mecha recipes as a textual and interpretable format (.mecha)
- Custom merge method programming interface for experiments
Coming soon:
- Recipe variables for general recipe templates
- Compose recipe templates to create mega recipes
Install
pip install sd-mecha torch
sd-mecha depends additionally on:
torch>=2.0.1
The pypi package does not ship with torch
so that you can install the appropriate version for your system.
Usage
Merge recipes with the CLI
python -m sd_mecha merge <path/to/recipe.mecha> -o path/to/output.safetensors [options]
For more information:
python -m sd_mecha merge --help
It is also possible to merge recipes from python code using the library. See the examples.
Motivation
Keeping track of full merge recipes has always been annoying. I needed something that allows to store merge recipes in a readable format while also being executable. I also needed something that allows to fully merge an entire tree of models without having to save intermediate models to disk.
Typically, mergers load all models in memory before initiating the merge process. This can be very inefficient when the merge focuses on each key individually:
sd-mecha doesn't have this problem as it saves keys as soon as it can:
This allows to merge a very large number of models simultaneously on low-end hardware.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.