项目简介
stable-diffusion.cpp是一个使用纯C/C++实现的Stable Diffusion和Flux推理引擎。它基于ggml库开发,工作原理类似于llama.cpp。该项目具有以下主要特点:
- 轻量级实现,无外部依赖
- 支持SD1.x、SD2.x、SDXL和SD3
- 支持16位、32位浮点数以及2-8位整数量化
- 加速的内存高效CPU推理
- 支持AVX、AVX2和AVX512指令集
- 支持CUDA、Metal、Vulkan和SYCL后端进行GPU加速
- 支持LoRA、LCM/LCM-LoRA等技术
- 支持Flash Attention优化内存使用
安装使用
- 获取代码:
git clone --recursive https://github.com/leejet/stable-diffusion.cpp
cd stable-diffusion.cpp
- 下载模型权重,例如:
curl -L -O https://huggingface.co/CompVis/stable-diffusion-v-1-4-original/resolve/main/sd-v1-4.ckpt
- 编译项目:
mkdir build && cd build
cmake ..
cmake --build . --config Release
- 运行示例:
./bin/sd -m ../models/sd-v1-4.ckpt -p "a lovely cat"
更多详细使用说明请参考项目README。
相关资源
社区生态
该项目已有多个语言的绑定:
也有一些项目使用stable-diffusion.cpp作为后端,如Jellybox。
stable-diffusion.cpp为AI图像生成领域提供了一个高效、轻量级的开源实现,欢迎感兴趣的开发者参与贡献,共同推动项目的发展。