This is a wrapper of leejet/stable-diffusion.cpp.
Important
When cloning this repo, don't forget to fetch the submodules.
- Either:
$ git clone https://github.com/alpaca-core/ilib-sd.cpp.git --recurse-submodules
- Or:
$ git clone https://github.com/alpaca-core/ilib-sd.cpp.git
$ cd ilib-sd.cpp
$ git submodule update --init --recursive
Download the original stable-diffusion
models weights. Supported formats are .ckpt
, .safetensors
, .gguf
.
Here are some examples:
ac::sd::ResourceCache resourceCache;
ac::sd::Model model(resourceCache.getOrCreateModel("models/sd-v1-4.ckpt", {}), {});
ac::sd::ResourceCache resourceCache;
ac::sd::Model model(resourceCache.getOrCreateModel("", {}), {
.diffusionModelPath = "models/flux1-dev-Q8_0.gguf",
.clip_l_path = "models/text_encoders/clip_l-Q8_0.gguf",
.t5xxlPath = "models/text_encoders/t5xxl-Q8_0.gguf",
.vaePath = "models/vae/ae.safetensors"
});
ac::sd::ResourceCache resourceCache;
// if text encoders encoders are embedded in the model:
ac::sd::Model model(resourceCache.getOrCreateModel("models/sd3_medium_incl_clips_t5xxlfp16.safetensors", {}), {});
// if text endores are in separate files:
ac::sd::Model model(resourceCache.getOrCreateModel("models/sd3_medium.safetensors", {
.clip_l_path = "models/text_encoders/clip_l.safetensors",
.clip_g_path = "models/text_encoders/clip_g.safetensors",
.t5xxlPath = "models/text_encoders/t5xxl_fp16.safetensors"
}), {});
ac::sd::ResourceCache resourceCache;
std::string modelBinFilePath = "models/sd3.5_large.safetensors";
ac::sd::Model model(resourceCache.getOrCreateModel("models/sd3.5_large.safetensors", {
.clip_l_path = "models/text_encoders/clip_l.safetensors",
.clip_g_path = "models/text_encoders/clip_g.safetensors",
.t5xxlPath = "models/text_encoders/t5xxl_fp16.safetensors"
}), {});