TL;DR

leejet/stable-diffusion.cpp 是一个基于 ggml 库的纯 C/C++ Diffusion 模型推理引擎,以极低的依赖实现了从 SD1.5/SDXL 到 FLUX、Wan Video 等最新架构的本地推理。它通过 GGUF 量化格式和跨平台后端(CPU/GPU)支持,为资源受限环境或追求极致部署效率的开发者提供了 llama.cpp 级别的开箱即用体验。

它解决什么问题

在 Diffusion 模型领域,Python 生态(如 diffusers)虽然功能丰富但依赖沉重、启动慢且内存占用高。对于边缘设备部署(如 Android)、嵌入式系统或希望将图像生成无缝集成到 C++ 游戏引擎/桌面应用中的场景,缺乏一个轻量级、无外部依赖的推理后端。该项目填补了这一空白:它剥离了 Python 运行时,利用 ggml 的底层算子优化和量化能力,实现了在消费级硬件甚至 CPU 上高效运行大型图像/视频生成模型。

核心做法

项目架构深度复用 llama.cpp 的设计哲学,以 ggml 张量库为核心。 1. GGUF 权重格式:支持将 PyTorch/Safetensors 模型转换为 GGUF,利用量化(如 Q4_0, INT8)大幅降低显存/内存占用。 2. 多后端支持:原生集成 CPU (AVX512/NEON)、CUDA、Vulkan、Metal 和 OpenCL,允许用户根据硬件灵活选择推理后端。 3. 模型架构适配:除了传统的 U-Net 结构(SD1/2/XL),还实现了 Transformer-based 架构(FLUX, Qwen-Image)以及视频生成模型(Wan2.1, LTX-V)。通过统一的 C++ 接口抽象不同模型的推理流程。 4. 功能扩展:内置 ControlNet、IP-Adapter、LoRA 支持,以及 TAESD(快速潜在解码)和 ESRGAN(超分),无需额外加载外部 Python 库。

作者

项目由 leejet(GitHub ID)维护。README 中未提供作者的详细背景信息或所属机构,但从其高频更新(2026年仍在持续发布)和对最新模型(如 Qwen-Image, FLUX.2)的 Day-0/Day-1 支持来看,团队具备极强的模型架构逆向与工程落地能力。由于缺乏公开的个人履历线索,无法确认其是否来自特定 AI 实验室或公司。

社区反应

截至数据记录时,项目拥有 7,262 Stars 和 812 Forks,在 C++ AI 推理领域属于头部项目。然而,Open Issues 高达 270 个,这反映了两个事实:一是项目处于极高频的迭代开发中(API 变动频繁),二是随着支持模型从 SD 扩展到 FLUX、Wan Video,复杂度和用户基数激增导致的问题反馈量也随之上升。语言生态上,C++ 原生实现吸引了大量对性能敏感的用户,且衍生出了 Golang、Rust、Python (CTypes)、C# 等多种语言的 Bindings,社区活跃度较高。

怎么上手

  1. 获取二进制:从 Releases 页面下载预编译版本,或使用 CMake/Makefile 源码构建(需支持 C++17)。
  2. 准备模型:下载 .safetensors 或 .gguf 格式的权重(如 SD1.5, FLUX-dev)。若为 PyTorch 格式,可使用内置工具转换。
  3. 运行推理: bash ./bin/sd-cli -m path/to/model.gguf -p "a lovely cat"
  4. 硬件加速:若需使用 GPU,添加 --backend cuda 或对应后端标志。详细参数见 CLI Doc。
  5. 依赖:无外部 Python 依赖,仅需标准 C++ 库及对应 GPU 驱动(如 CUDA Toolkit)。支持 Docker 部署。

争议与局限

  • API 稳定性:README 明确警告 API 和 CLI 选项可能频繁变更,不适合直接用于对稳定性要求极高的生产环境核心链路(推断)。注:此为基于 README 声明的合理推断。
  • 模型覆盖深度:虽然支持大量新模型,但相比 diffusers 官方实现,可能在某些边缘配置、自定义 LoRA 融合或最新实验性架构的支持上存在滞后。注:基于开源项目普遍规律的推断,非官方确认。
  • 调试难度:纯 C++ 实现意味着用户遇到数值精度问题或后端 Bug 时,难以像 Python 那样通过断点调试库内部逻辑,主要依赖日志和 Issue 搜索。
  • 视频生成限制:虽然支持 Wan2.1/LTX,但视频生成的显存需求极高,CPU 推理速度极慢,实际可用场景主要局限于高端 GPU。

相关项目

  • llama.cpp — stable-diffusion.cpp 的架构灵感来源,专注于 LLM;本项目将其范式成功迁移至 Diffusion/Video 领域。
  • diffusers (HuggingFace) — Python 生态的标准库,功能最全但依赖重;本项目是其轻量级、高性能的 C++ 替代方案。
  • comfyui — Python-based 节点式 UI,支持复杂工作流;本项目提供底层 C++ 引擎,可被 ComfyUI-CPP-Backend 等插件调用以提升性能。
  • koboldcpp — 同样基于 llama.cpp,专注于 LLM WebUI;本项目专注图像/视频生成,两者在各自领域互为参照。
  • gpt4all — 专注于 LLM 本地部署的 C++ 框架;本项目在图像生成领域扮演类似角色,但模型架构差异巨大。
  • onnxruntime — 通用推理引擎;本项目针对 Diffusion/Transformer 架构做了更底层的算子优化和量化支持,通常比通用 ONNX 转换更高效。