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 checkpoint 的權重格式。它利用各種硬體加速後端,如 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 進行影像放大 (upscaling) 的支援。
- 記憶體優化:具備 Flash Attention 與 VAE tiling 功能以減少 VRAM/RAM 使用量。
- 跨平台:相容於 Linux、Windows、macOS 和 Android。
Sources
- undefinedleejet/stable-diffusion.cpp