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 체크포인트를 포함한 가중치 형식을 지원합니다. CUDA, Metal, Vulkan, OpenCL과 같은 다양한 하드웨어 가속 백엔드를 활용하여 Linux, Windows, macOS, Android를 포함한 다양한 플랫폼에서 성능을 최적화합니다.
대상 사용자
최소한의 오버헤드로 이미지 및 비디오 생성 모델을 로컬에서 실행하고자 하는 개발자와 사용자, 그리고 확산 모델을 다른 애플리케이션에 통합하기 위한 휴대 가능한 C++ 기반 백엔드를 찾는 사람들을 대상으로 합니다.
주요 특징
- 광범위한 모델 지원: 다양한 이미지 생성, 이미지 편집 및 비디오 생성 모델(예: SDXL, FLUX.2, Wan2.1)을 지원합니다.
- 하드웨어 범용성: CPU (AVX/AVX2/AVX512), CUDA, Vulkan, Metal, OpenCL, SYCL에서 실행됩니다.
- 경량 구현:
llama.cpp와 유사하게 외부 의존성 없이 순수 C/C++로 구현되었습니다. - 고급 기능: LoRA, ControlNet, Latent Consistency Models (LCM), ESRGAN을 통한 이미지 업스케일링 지원을 포함합니다.
- 메모리 최적화: VRAM/RAM 사용량을 줄이기 위해 Flash Attention 및 VAE tiling 기능을 제공합니다.
- 교차 플랫폼 지원: Linux, Windows, macOS, Android와 호환됩니다.
Sources
- undefinedleejet/stable-diffusion.cpp