stable-diffusion.cpp: 纯C/C++实现的Stable Diffusion推理库
stable-diffusion.cpp是一个纯C/C++实现的Stable Diffusion推理库,为开发者提供了高效、轻量级的AI图像生成解决方案。该项目基于ggml库开发,采用与llama.cpp相同的工作方式,具有超轻量级、无外部依赖等特点,支持多种Stable Diffusion模型版本和加速方案,可在CPU和GPU上进行高效推理。
主要特性
- 纯C/C++实现,基于ggml库开发
- 超轻量级,无外部依赖
- 支持SD1.x、SD2.x、SDXL和SD3等多个版本
- 支持16位、32位浮点数和2-8位整数量化
- 加速的内存高效CPU推理
- 支持AVX、AVX2和AVX512指令集
- 支持CUDA、Metal、Vulkan和SYCL等GPU加速后端
- 可加载ckpt、safetensors和diffusers格式的模型/检查点
- 支持Flash Attention优化内存使用
- 支持txt2img和img2img模式
- 支持负面提示词
- 支持LoRA微调
- 支持潜在一致性模型(LCM/LCM-LoRA)
- 支持TAESD快速解码
- 支持ESRGAN图像放大
- 支持VAE分块处理以减少内存使用
- 支持ControlNet
- 支持多种采样方法
内存效率
stable-diffusion.cpp在内存使用方面表现出色。使用fp16精度进行txt2img生成512x512图像时,仅需约2.3GB内存。启用Flash Attention后,内存占用可进一步降低至约1.8GB。这使得该库能够在资源受限的设备上运行大型AI模型,为开发者提供了更多可能性。
多平台支持
stable-diffusion.cpp支持多种主流操作系统平台,包括:
- Linux
- macOS
- Windows
- Android (通过Termux)
这种广泛的平台支持使得开发者可以在各种环境中使用该库,提高了项目的可移植性和适用性。
使用方法
对于大多数用户来说,可以直接从最新的