stable-diffusion.cpp: 用于图像和视频扩散模型的轻量级 C++ 推理引擎
stable-diffusion.cpp: 用于图像和视频扩散模型的轻量级 C++ 推理引擎
它解决了什么问题
stable-diffusion.cpp 提供了一种轻量级、高性能的方式来运行用于图像和视频生成的扩散模型,而无需沉重的外部依赖或复杂的 Python 环境。它允许用户在各种硬件上本地运行这些模型,包括 CPU 和各种 GPU 后端。
工作原理
该项目基于 ggml 库,使用纯 C/C++ 实现扩散模型推理。它支持广泛的模型架构(例如 Stable Diffusion 1.x/2.x/3.x、FLUX 和 Wan)以及包括 GGUF、Safetensors 和 PyTorch checkpoints 在内的权重格式。它利用 CUDA、Metal、Vulkan 和 OpenCL 等各种硬件加速后端,以优化在 Linux、Windows、macOS 和 Android 等不同平台上的性能。
适用人群
希望以最小的开销在本地运行图像和视频生成模型的开发者和用户,以及寻求便携式、基于 C++ 的后端以将扩散模型集成到其他应用程序中的用户。
亮点
- 广泛的模型支持:支持广泛的图像生成、图像编辑和视频生成模型(例如 SDXL、FLUX.2、Wan2.1)。
- 硬件通用性:可在 CPU (AVX/AVX2/AVX512)、CUDA、Vulkan、Metal、OpenCL 和 SYCL 上运行。
- 轻量级实现:纯 C/C++ 实现,无外部依赖,类似于
llama.cpp。 - 高级功能:包括对 LoRA、ControlNet、Latent Consistency Models (LCM) 和通过 ESRGAN 进行图像放大的支持。
- 内存优化:具有 Flash Attention 和 VAE tiling 功能,以减少 VRAM/RAM 使用量。
- 跨平台:兼容 Linux、Windows、macOS 和 Android。
Sources
- undefinedleejet/stable-diffusion.cpp