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