stable-diffusion.cpp: 纯C/C++实现的Stable Diffusion推理引擎

stable-diffusion.cpp:纯C/C++实现的高性能Stable Diffusion推理引擎

stable-diffusion.cpp logo

stable-diffusion.cpp是一个纯C/C++实现的Stable Diffusion推理引擎,旨在提供一个轻量级、高性能、跨平台的Stable Diffusion部署方案。该项目基于ggml库开发,采用与llama.cpp类似的工作方式,具有以下主要特性:

主要特性

  • 纯C/C++实现,无外部依赖
  • 超轻量级,内存占用低
  • 支持SD1.x、SD2.x、SDXL和SD3等多种Stable Diffusion模型
  • 支持Flux-dev/Flux-schnell模型
  • 支持SD-Turbo和SDXL-Turbo等高速模型
  • 支持PhotoMaker个性化图像生成
  • 支持16位、32位浮点数和2-8位整数量化
  • 加速的内存高效CPU推理
  • 支持x86架构的AVX、AVX2和AVX512指令集
  • 支持CUDA、Metal、Vulkan和SYCL等GPU加速后端
  • 可直接加载ckpt、safetensors和diffusers格式的模型和检查点
  • 支持Flash Attention优化内存使用(目前仅CPU)
  • 支持原始txt2img和img2img模式
  • 支持负面提示词
  • 支持LoRA模型
  • 支持Latent Consistency Models (LCM/LCM-LoRA)
  • 使用TAESD进行快速解码
  • 使用ESRGAN进行图像超分辨率
  • 支持VAE分块处理以减少内存使用
  • 支持ControlNet (SD 1.5)
  • 支持多种采样方法:Euler A、Euler、Heun、DPM2等
  • 跨平台可重现性
  • 将生成参数嵌入PNG输出

支持平台

  • Linux
  • macOS
  • Windows
  • Android (通过Termux)

使用方法

对于大多数用户,可以直接从最新发布下载预编译的可执行程序。如果预编译版本不满足需求,也可以选择手动构建。

获取代码
git clone --recursive https://github.com/leejet/stable-diffusion.cpp
cd stable-diffusion.cpp

如果之前已经克隆了仓库,可以使用以下命令更新到最新代码:

cd stable-diffusion.cpp
git pull origin master
git submodule init
git submodule update
下载权重

下载原始权重文件(.ckpt或.safetensors格式)。例如:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值