leejet/stable-diffusion.cpp — Diffusion model(SD,Flux,Wan,Qwen Image,Z-Image,...) inference in pure C/C++
leejet/stable-diffusion.cpp — C/C++로 실행하는 이미지·비디오 확산 모델
stable-diffusion.cpp는 ggml 기반 C/C++ 확산 모델 추론 프로젝트입니다. CPU와 CUDA, Vulkan, Metal 등 여러 백엔드에서 이미지·비디오 생성 모델을 실행하며, GGUF를 포함한 다양한 가중치 형식과 LoRA, ControlNet 같은 기능을 지원합니다.
- 주제
AI 요약
stable-diffusion.cpp는 llama.cpp와 비슷한 방식으로 ggml을 활용해 확산 모델 추론을 구현한 C/C++ 프로젝트입니다. 명령줄 도구로 프롬프트를 입력해 이미지를 생성하며, 이미지 편집과 비디오 생성 모델도 지원합니다. 프로젝트는 활발히 개발 중이며 API와 명령줄 옵션이 자주 바뀔 수 있다고 안내합니다.
모델과 기능
Stable Diffusion 계열뿐 아니라 FLUX, Wan, Qwen Image, Z-Image 등 여러 모델을 지원합니다. LoRA, IP-Adapter, ControlNet, PhotoMaker, ADetailer를 사용할 수 있고, LCM과 LCM-LoRA 샘플링도 지원합니다. TAESD로 잠재 표현을 디코딩하고 ESRGAN으로 생성 이미지를 확대하는 기능도 제공합니다.
실행 환경과 형식
CPU에서는 x86용 AVX, AVX2, AVX512를 지원하며 CUDA, Vulkan, Metal, OpenCL, SYCL 백엔드도 제공합니다. Linux, macOS, Windows에서 실행할 수 있고 Android에서는 Termux 등을 이용합니다. 모델 가중치는 PyTorch 체크포인트, Safetensors, GGUF 형식으로 불러오며, 변환 모드로 GGUF나 Safetensors 형식으로 변환할 수도 있습니다.
메모리와 재현성
Flash Attention과 VAE 타일 처리로 메모리 사용량을 줄이는 옵션을 제공합니다. Euler, DPM++ 2M, LCM 등 여러 샘플링 방식을 지원하며, RNG 설정으로 stable-diffusion-webui 또는 ComfyUI와 맞춘 난수 동작을 선택할 수 있습니다. 생성 매개변수는 PNG 파일에 webui 호환 텍스트로 기록합니다.
미리 빌드한 바이너리를 내려받거나 직접 빌드할 수 있습니다. 저장소에는 성능 최적화와 백엔드 선택 안내, 자세한 CLI 문서도 연결되어 있습니다.
원문: GitHub / 번역·요약: Trawling