kostakoff/stable-diffusion-2-GGUF
kostakoff
Texto a imagen
Versión cuantizada de Stable Diffusion 2 en formato GGUF, preparada para ejecutarse con stable-diffusion.cpp/sd.cpp. Está orientada a generación de imágenes texto-a-imagen en local, con pesos convertidos desde 768-v-ema.safetensors y cuantizaciones Q8_0, Q4_K y Q4_0 para equilibrar calidad, tamaño y velocidad.
Como usar
Instalación y uso con Diffusers:
pip install -U diffusers transformers accelerate
import torch
from diffusers import DiffusionPipeline
# switch to "mps" for apple devices
pipe = DiffusionPipeline.from_pretrained("kostakoff/stable-diffusion-2-GGUF", dtype=torch.bfloat16, device_map="cuda")
prompt = "Astronaut in a jungle, cold color palette, muted colors, detailed, 8k"
image = pipe(prompt).images[0]
Descarga de pesos GGUF:
wget https://huggingface.co/kostakoff/stable-diffusion-2-GGUF/resolve/main/768-v-ema-Q8_0.gguf
# Other quantizations:
# wget https://huggingface.co/kostakoff/stable-diffusion-2-GGUF/resolve/main/768-v-ema-Q4_K.gguf
# wget https://huggingface.co/kostakoff/stable-diffusion-2-GGUF/resolve/main/768-v-ema-Q4_0.gguf
Compilación de stable-diffusion.cpp con CUDA:
git clone https://github.com/leejet/stable-diffusion.cpp
cd stable-diffusion.cpp
git submodule init
git submodule update
mkdir build && cd build
cmake .. -DSD_CUDA=ON
cmake --build . --config Release
Inicio del servidor local:
export CUDA_VISIBLE_DEVICES=0
./stable-diffusion.cpp/build/bin/sd-server \
-m ./768-v-ema-Q8_0.gguf \
--listen-ip 0.0.0.0 \
--listen-port 8081 \
--seed -1
Generación de imagen mediante endpoint compatible con OpenAI:
curl -s http://127.0.0.1:8081/v1/images/generations \
-H "Content-Type: application/json" \
-d '{ "model": "sd2.0", "prompt": "A lovely cat", "n": 1, "size": "768x768", "response_format": "b64_json" }' | jq -r '.data[0].b64_json' | base64 --decode > output.png
Conversión de pesos desde safetensors:
# Q4_0
./stable-diffusion.cpp/build/bin/sd-cli -M convert \
-m ~/llm/models/sd2.0/768-v-ema.safetensors \
-o 768-v-ema-Q4_0.gguf -v --type q4_0
# Q4_K
./stable-diffusion.cpp/build/bin/sd-cli -M convert \
-m ~/llm/models/sd2.0/768-v-ema.safetensors \
-o ./768-v-ema-Q4_K.gguf -v --type q4_K
# Q8_0
./stable-diffusion.cpp/build/bin/sd-cli -M convert \
-m ~/llm/models/sd2.0/768-v-ema.safetensors \
-o ./768-v-ema-Q8_0.gguf -v --type q8_0
Funcionalidades
- Generación texto-a-imagen basada en Stable Diffusion v2.
- Pesos en formato GGUF compatibles con stable-diffusion.cpp.
- Cuantización Q8_0 para alta calidad con menor tamaño que bf16.
- Cuantización Q4_K como opción equilibrada entre calidad y tamaño.
- Cuantización Q4_0 como opción más pequeña y rápida, con ligera pérdida de calidad.
- Servidor local con endpoint compatible con OpenAI `/v1/images/generations`.
- Modelo base: `sd2-community/stable-diffusion-2`.
- Licencia heredada: CreativeML Open RAIL++-M / openrail++.
Casos de uso
- Generar imágenes 768x768 a partir de prompts de texto en un entorno local.
- Ejecutar Stable Diffusion 2 con stable-diffusion.cpp sin depender de proveedores externos de inferencia.
- Servir generación de imágenes mediante una API local compatible con OpenAI.
- Probar distintas cuantizaciones GGUF para ajustar consumo de memoria, tamaño de archivo, velocidad y calidad.
- Integrar generación texto-a-imagen en aplicaciones locales usando herramientas como Diffusers, Draw Things, DiffusionBee o sd.cpp.