项目详情

stable-diffusion.cpp

llama.cpp 之于 LLM,它之于扩散模型

GitHub 地址 MIT C/C++ggmlCPU 可跑

更新于 2026-09-25

← 返回汇总
项目速览

一句话定位

把整条扩散模型推理管线装进一个 C++ 二进制

纯 C/C++ 实现的扩散模型推理引擎,基于 ggml 张量库,覆盖 SD1.x→FLUX.2→Qwen-Image-2.1 的 30+ 图像模型、6 个编辑模型、5 个视频模型系。单二进制零外部依赖,从 CPU(AVX) 到 CUDA/Vulkan/Metal 六种后端,Android 上也能跑。适合本地出图、省显存部署、边缘设备集成。

项目速览

核心数据

7.3k
GitHub Stars
30+
图像生成模型
6
计算后端
Day-0
新模型支持速度

819 forks · 267 open issues · MIT · 2023-08 创建 · 采集于 2026-09-25(GitHub API)。Day-0 = 新模型发布当天即可推理(Qwen-Image-2.1,2026-09-20)。

为什么存在

Python 出图栈的三个痛点

依赖地狱

PyTorch + CUDA + diffusers + transformers,一条链断一环全瘫。sd.cpp 一个二进制,无外部依赖。

显存门槛

显存不够就被拒之门外。sd.cpp 靠 GGUF 量化 + VAE tiling + Flash Attention,4GB 卡也能跑 SDXL,甚至纯 CPU 出图。

部署太重

服务器/GIMP 插件/Android 想嵌个生图能力,塞不动 Python 栈。C++ 库直接链接,KoboldCpp、LocalAI 都这么干。

解法是把 llama.cpp 的范式原样搬进扩散世界:ggml 张量后端 + 权重量化格式 + 单文件 CLI + 全平台预编译产物。

🔥 核心架构

四层结构:从 CLI 到硬件后端

接入层 sd-cli 内嵌 Web UI RPC 服务 Go / C# / Python / Rust / Dart Bindings 推理核心(stable-diffusion.cpp) 模型实现 · 采样器 · VAE · Tokenizer · LoRA / ControlNet / IP-Adapter 30+ 图像模型 · 6 编辑模型 · 5 视频模型系 · 9 种采样器 · PhotoMaker / ADetailer / TAESD / ESRGAN 张量计算库(支撑) ggml — 内存映射权重 · 图调度 · 量化内核 硬件后端(编译期选择) CPU AVX/AVX2/AVX512 CUDA Vulkan Metal OpenCL SYCL ↓ ↓ ↓
项目主线层 支撑依赖(ggml) 编译期可选后端
🔥 模型矩阵

一个引擎,三类生成任务

文生图 / 图生图 · 30+

SD1.x / SD2.x / SD-Turbo · SDXL(含 Turbo) · SD3 / SD3.5 · FLUX.1 dev/schnell · FLUX.2 dev/klein · Qwen-Image 1.0 / 2.1 · Z-Image · Krea2 · Ideogram4 · PiD · Lens · Chroma · LongCat · MiniT2I · PixArt · ERNIE-Image · SenseNova U1.5 · Ovis / Anima / HiDream / LLaDA / Mage-Flow / SeFi / Boogu…

图像编辑 · 6

FLUX.1-Kontext-dev · Qwen-Image-Edit(含 2509 版)· LongCat Image Edit · Boogu Image Edit · Mage-Flow-Edit · LLaDA-Image Edit

指令式改图:输入原图 + 文字指令,输出编辑结果。

视频生成 · 5 系

Wan2.1 / 2.2(含 VACE)· MiniMax-H3 · LTX-2.3 / 2.5 · HunyuanVideo 1.5 · LingBot-Video

视频是显存大户,量化 + 低精度是本地跑的必要条件。

每个模型有独立文档页(docs/qwen_image_2.1.md 等),写明权重下载与推荐参数。

核心优势

新模型跟进速度:以「天」为单位

时间事件意义
2026-09-20Qwen-Image-2.1 Day-0 支持官方发布当天即可推理,发布即用
2026-08-20LTX-2.5 支持视频模型持续扩充
2026-08-04MiniMax-H3 Day-1 支持次日跟进,视频赛道跟进能力
2026-06Krea2 · Ideogram4 · PiD · Lens 密集落地单月 4+ 新模型
2026-04-11全新内嵌 Web UI不再只是 CLI,零配置浏览器操作
2026-01-18FLUX.2-klein 支持紧跟 Black 开源大模型
2025-11~12FLUX.2-dev · Z-Image 连发当月双杀
2025-10-12Qwen-Image / Qwen-Image-Edit国产头部模型首发窗口期

CI 产物编号已到 master-919(2026-09-25),master 分支几乎每天多次构建。

功能全景

不止推理:webui 级功能塞进 CLI

  • LoRA:兼容 stable-diffusion-webui 用法,加载方式一致
  • ControlNet:SD 1.5 条件控制构图
  • IP-Adapter:图生参考图(SD1.5/SDXL 含 Plus)
  • PhotoMaker:人脸身份保持生成
  • ADetailer:自动修复手/脸崩坏
  • LCM / LCM-LoRA:少步数快速出图
  • TAESD:轻量 VAE,省显存加速 latent 解码
  • ESRGAN:生成图直接超分
  • 9 种采样器:Euler A / Euler / Heun / DPM2 / DPM++ 2M(v2) / DPM++ 2S a / ER-SDE / LCM
  • Negative prompt + token weighting:webui 风格 tokenizer
  • Flash Attention:注意力显存优化
  • VAE tiling:大图分块解码,显存占用大降
  • PNG 元数据:生成参数内嵌,webui 兼容可回溯
核心机制

权重格式三通道 + GGUF 量化

.ckpt / .pth / .pt → .safetensors → .gguf(量化)

这是它能把「大模型塞进小显存」的根基——和 llama.cpp 共用同一套量化哲学。

部署面

后端 × 平台矩阵

后端适用硬件定位
CPUx86 AVX / AVX2 / AVX512兜底:无显卡也能出图,慢但能跑
CUDANVIDIA 全系性能首选,显存吃紧时配合 GGUF
VulkanN/A/Intel/AMD 皆可跨厂商 GPU 通用方案
MetalApple SiliconMac 统一内存利器
OpenCL老 GPU / 异构设备长尾兼容
SYCLIntel oneAPIIntel 卡原生加速

平台:Linux / macOS / Windows / Android(Termux、Local Diffusion)。后端是编译期开关,官方文档 backend.md 有选型指南。

工程细节

跨平台可复现:RNG 是一等公民

--rng cuda(默认)

与 stable-diffusion-webui 的 GPU RNG 一致。同一 seed + 参数 = 同一张图,跨机器可复现。

--rng cpu

对齐 ComfyUI 的 RNG 行为。老工作流迁移时用。

快速上手

三步出图

# 1. 拿可执行文件:releases 页下载预编译产物,或源码构建
./bin/sd-cli

# 2. 下权重(SD 1.5 为例,safetensors/gguf/ckpt 均可)
curl -L -O https://huggingface.co/stable-diffusion-v1-5/stable-diffusion-v1-5/resolve/main/v1-5-pruned-emaonly.safetensors

# 3. 一行出图
./bin/sd-cli -m v1-5-pruned-emaonly.safetensors -p "a lovely cat"

进阶:examples/cli/README.md 全参数文档 · docs/performance.md 性能与显存调优 · docs/build.md 构建各后端 · 2026-04 起有内嵌 Web UI。

生态

绑定与上层 UI:被集成者

语言绑定 · 7
  • Go:seasonjs/stable-diffusion(无 cgo)、Binozo/GoStableDiffusion、l8bloom/gosd
  • Rust:newfla/diffusion-rs
  • C#:DarthAffe/StableDiffusion.NET
  • Python:stable-diffusion-cpp-python
  • Flutter/Dart:Local-Diffusion(Android 本地生图)
以上游身份接入 · 9+
  • 本地 AI 全家桶:LocalAI、KoboldCpp
  • 桌面 GUI:sd.cpp.gui.wx、CLI-GUI、Neural-Pixel、Jellybox
  • 创意软件:GIMP 插件
  • 移动端:Local Diffusion

定位是「引擎层」——自己不做大 UI,让上层应用长出来。这与 llama.cpp 在 LLM 生态的角色完全同构。

在线体验

亲手感受 GGUF 量化:F16 → Q8 → Q4 掉多少精度

Playground 复刻 ggml 分块量化:生成模拟权重分布 → 按 32 值一块做 Q8_0 / Q5_1 / Q4_0 量化与反量化 → 直方图实时叠加对比,显示压缩比与量化误差。调分布形状(正态/重尾/离群点),看 Q4_0 何时崩、Q8_0 何时几乎无损——这正是 sd.cpp 省显存的代价公式。

打开 Playground

纯前端实现,零网络依赖 · 量化/反量化算法与 ggml 块格式对齐(sandbox 数值验证)

风险提示

需要警惕

潜力评估

未来空间

评分 8.5:diffusion 推理侧事实上的「llama.cpp 同位素」——30+ 模型覆盖、Day-0 跟进速度、六后端全平台,是本地/边缘生图无可替代的选择;内嵌 Web UI 后开始吃桌面用户。生态位清晰:性能卷不过 CUDA 专用栈,但轻量与覆盖无人能敌。看点:Qwen/FLUX/Z-Image 系国产与开源新模型的默认本地引擎化、ggml 量化格式成为 diffusion 权重分发标准、LocalAI/KoboldCpp 集成持续加深。风险在 API 稳定性与维护者集中度。


上一个
oh-my-pi
下一个
NVIDIA Model Optimizer
1 / 16