# Stable Diffusion 3.5

Stable Diffusion 3.5 de Stability AI es un Transformador de Difusión Multimodal (MMDiT) que establece un nuevo estándar para la generación de imágenes con pesos abiertos. Está disponible en tres variantes: **Grande** (8B parámetros), **Medio** (2.5B parámetros), y **Grande Turbo** (8B, destilado para inferencia de 4 pasos). La característica destacada es su renderizado de texto preciso: SD 3.5 puede colocar de forma fiable texto legible dentro de las imágenes generadas, una capacidad con la que la mayoría de modelos anteriores tienen dificultades.

En [Clore.ai](https://clore.ai/) puedes alquilar la potencia GPU que SD 3.5 necesita por tan solo $0.30/día y generar cientos de imágenes por hora.

## Características clave

* **Tres variantes** — Grande (8B, máxima calidad), Medio (2.5B, rápido y ligero), Grande Turbo (8B, destilado a 4 pasos).
* **Renderizado de texto preciso** — genera texto legible, letreros, etiquetas y tipografía dentro de las imágenes.
* **Arquitectura MMDiT** — atención conjunta imagen-texto para una superior adherencia al prompt.
* **Resolución nativa 1024×1024** — salida limpia sin trucos de escalado.
* **Relaciones de aspecto flexibles** — maneja salidas no cuadradas (768×1344, 1344×768, etc.) sin pérdida de calidad.
* **Soporte nativo de diffusers** — `StableDiffusion3Pipeline` en `diffusers >= 0.30`.
* **Pesos abiertos** — Licencia de la Comunidad de Stability AI; gratuita para la mayoría de usos comerciales.

## Requisitos

| Componente      | Mínimo        | Recomendado            |
| --------------- | ------------- | ---------------------- |
| VRAM de GPU     | 12 GB (Medio) | 24 GB (Grande / Turbo) |
| RAM del sistema | 16 GB         | 32 GB                  |
| Disco           | 20 GB         | 40 GB                  |
| Python          | 3.10+         | 3.11                   |
| CUDA            | 12.1+         | 12.4                   |
| diffusers       | 0.30+         | última                 |

**Recomendación de GPU de Clore.ai:** Un **RTX 4090** (24 GB, \~$0.5–2/día) ejecuta las tres variantes a plena velocidad. Para el modelo Medium, una **RTX 3090** (24 GB, \~$0.3–1/día) o incluso una tarjeta de 16 GB es suficiente y más barata.

## Inicio rápido

```bash
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu124
pip install diffusers transformers accelerate sentencepiece protobuf

python -c "import torch; print(torch.cuda.get_device_name(0))"
```

## Ejemplos de uso

### SD 3.5 Large — Calidad máxima

```python
import torch
from diffusers import StableDiffusion3Pipeline

pipe = StableDiffusion3Pipeline.from_pretrained(
    "stabilityai/stable-diffusion-3.5-large",
    torch_dtype=torch.bfloat16,
)
pipe.to("cuda")

image = pipe(
    prompt=(
        "Un cartel de madera envejecida que dice 'OPEN 24 HOURS' colgando de "
        "una cadena oxidada fuera de un diner iluminado por neón, noche lluviosa, reflejos "
        "en asfalto mojado, fotografía cinematográfica"
    ),
    negative_prompt="texto borroso, texto deformado, baja calidad",
    guidance_scale=3.5,
    num_inference_steps=28,
    width=1024,
    height=1024,
    generator=torch.Generator("cuda").manual_seed(42),
).images[0]

image.save("diner_sign.png")
print("Guardado diner_sign.png")
```

### SD 3.5 Large Turbo — Generación rápida en 4 pasos

```python
import torch
from diffusers import StableDiffusion3Pipeline

pipe = StableDiffusion3Pipeline.from_pretrained(
    "stabilityai/stable-diffusion-3.5-large-turbo",
    torch_dtype=torch.bfloat16,
).to("cuda")

# Variante Turbo: sólo se necesitan 4 pasos, guidance_scale=0 (destilado)
image = pipe(
    prompt="Foto macro de un movimiento de reloj mecánico, engranajes intrincados, luz dorada",
    guidance_scale=0.0,
    num_inference_steps=4,
    width=1024,
    height=1024,
).images[0]

image.save("watch_turbo.png")
```

### SD 3.5 Medium — Opción ligera

```python
import torch
from diffusers import StableDiffusion3Pipeline

pipe = StableDiffusion3Pipeline.from_pretrained(
    "stabilityai/stable-diffusion-3.5-medium",
    torch_dtype=torch.float16,
).to("cuda")

image = pipe(
    prompt="Vista isométrica del interior de una acogedora cafetería, estilo pixel art, iluminación cálida",
    guidance_scale=4.0,
    num_inference_steps=28,
    width=1024,
    height=1024,
).images[0]

image.save("coffee_shop_medium.png")
```

### Generación por lotes con diferentes relaciones de aspecto

```python
import torch
from diffusers import StableDiffusion3Pipeline

pipe = StableDiffusion3Pipeline.from_pretrained(
    "stabilityai/stable-diffusion-3.5-large",
    torch_dtype=torch.bfloat16,
).to("cuda")

jobs = [
    {"prompt": "Retrato de un astronauta en un campo de girasoles", "w": 768, "h": 1344},
    {"prompt": "Paisaje panorámico de las tierras altas islandesas, cielos dramáticos", "w": 1344, "h": 768},
    {"prompt": "Foto de producto de un frasco de perfume sobre una superficie de mármol", "w": 1024, "h": 1024},
]

for i, job in enumerate(jobs):
    img = pipe(
        prompt=job["prompt"],
        guidance_scale=3.5,
        num_inference_steps=28,
        width=job["w"],
        height=job["h"],
    ).images[0]
    img.save(f"batch_{i:03d}.png")
    print(f"[{i+1}/{len(jobs)}] {job['w']}x{job['h']} completado")
```

## Consejos para usuarios de Clore.ai

1. **Turbo para iteración, Grande para finales** — usa la variante Turbo de 4 pasos para explorar ideas de prompt rápidamente, luego cambia a Grande (28 pasos) para el render final.
2. **guidance\_scale=3.5** — SD 3.5 Large funciona mejor con un CFG más bajo que los modelos antiguos de Stable Diffusion. Subir por encima de 5.0 a menudo causa sobresaturación.
3. **Turbo necesita guidance\_scale=0** — el modelo destilado ya tiene la guía incorporada; añadir más degrada la salida.
4. **Texto en imágenes** — el renderizado de texto de SD 3.5 es fuerte pero no perfecto. Usa comillas alrededor del texto exacto que quieres: `'OPEN 24 HOURS'`. Mantenlo corto (máx. 3–5 palabras).
5. **Caché de pesos** — establece `HF_HOME=/workspace/hf_cache` en almacenamiento persistente. Large ocupa \~16 GB en disco.
6. **bf16 para Large, fp16 para Medium** — los modelos de 8B se entrenaron en bf16; el Medium de 2.5B funciona bien en fp16.
7. **Hacer lotes de forma eficiente** — SD 3.5 Large genera una imagen 1024×1024 en \~3 segundos en una RTX 4090. Ejecuta lotes durante la noche para generación masiva.
8. **Aceptar la licencia de HF** — debes aceptar la licencia del modelo en la página del modelo en HuggingFace antes de descargar. Inicia sesión con `huggingface-cli login`.

## Solución de problemas

| Problema                         | Solucionar                                                                                                              |
| -------------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
| `OutOfMemoryError` con Large     | Usa `pipe.enable_model_cpu_offload()`; o cambia a la variante Medium                                                    |
| Texto garabateado en la imagen   | Mantén el texto corto (3–5 palabras); ponlo entre comillas en el prompt; aumenta `num_inference_steps` a 35             |
| Colores sobresaturados           | Reduce `guidance_scale` — prueba 2.5–3.5 para Large; usa 0.0 para Turbo                                                 |
| error 403 al descargar el modelo | Acepta la licencia en `https://huggingface.co/stabilityai/stable-diffusion-3.5-large` y ejecuta `huggingface-cli login` |
| Primera ejecución lenta          | La descarga inicial es \~16 GB para Large; las ejecuciones posteriores usan la caché                                    |
| `KeyError: 'text_encoder_3'`     | Actualiza diffusers: `pip install -U diffusers transformers`                                                            |
| Salida de imagen en negro        | Asegúrate de `torch_dtype=torch.bfloat16` para Large/Turbo; fp32 puede causar fallos silenciosos en algunas tarjetas    |
