Volver al índice
Modo oscuro
Stable Diffusion

Stable Diffusion por Santiago Soñora

Este tutorial está diseñado para guiar a quienes desean aprender más acerca de Stable Diffusion. Es ideal para un nivel medio.

Stable Diffusion es un modelo de generación de imágenes potente y de código abierto desarrollado por Stability AI, basado en la arquitectura de Latent Diffusion Models. Permite a los usuarios crear imágenes realistas y artísticas de alta calidad a partir de descripciones textuales (Text-to-Image), pero también ofrece funcionalidades avanzadas como transformar imágenes existentes (Image-to-Image), editar partes de una imagen (Inpainting) y extender imágenes (Outpainting). Esta guía de nivel intermedio explora las diferentes versiones del modelo (SD 1.x, SD 2.x, SDXL), la influencia de los parámetros clave en la generación (prompt, negative prompt, guidance scale, steps, seed), la utilización de modelos finetuneados y checkpoints (como los creados con Dreambooth o LoRA) para estilos y sujetos específicos, y las consideraciones técnicas para ejecutar Stable Diffusion localmente en tu propio hardware (especialmente los requisitos de VRAM de GPU). Se cubre cómo usar librerías como Hugging Face Diffusers y se mencionan interfaces web populares que simplifican su uso. Stable Diffusion es una herramienta versátil para artistas digitales, diseñadores y desarrolladores que buscan integrar capacidades de generación visual en sus proyectos.

“Hola, mundo” en Stable Diffusion

El 'Hola, mundo' de Stable Diffusion: un script básico en Python que utiliza la librería `diffusers` de Hugging Face para generar una imagen a partir de un prompt de texto, incluyendo un prompt negativo y un seed para controlar la generación.

📋 Copiar
# 1. Asegurate de tener suficiente VRAM de GPU (SD 1.5 ~4-6GB, SDXL ~12-16GB+)
# 2. Instala PyTorch con soporte CUDA si usas GPU Nvidia (ver docs.pytorch.org) o PyTorch con soporte ROCm para AMD
# 3. Instala las librerias: pip install diffusers transformers accelerate safetensors torch
# 4. Ejecuta el siguiente script:

from diffusers import StableDiffusionPipeline
import torch
import random

# ID del modelo en Hugging Face (ajusta segun la version, ej: sdxl-base-1.0)
model_id = "runwayml/stable-diffusion-v1-5"

# Cargar el pipeline. Usar float16 para reducir el uso de VRAM (si tu GPU lo soporta)
pipe = StableDiffusionPipeline.from_pretrained(model_id, torch_dtype=torch.float16, use_safetensors=True)

# Mover el pipeline a la GPU (si esta disponible)
pipe = pipe.to("cuda") # O "cpu" si no tienes GPU o VRAM insuficiente (sera muy lento)

# Prompts: la descripcion de lo que quieres (positivo) y lo que NO quieres (negativo)
prompt = "Un castillo futurista en la cima de una montaña al atardecer, arte digital detallado, iluminación volumetrica, 4k"
negative_prompt = "baja calidad, mal dibujado, borroso, marca de agua, deformado, extra fingers"

# Generador para reproducibilidad: usa el mismo seed para obtener la misma imagen con los mismos parametros
manual_seed = 42
generator = torch.Generator(pipe.device).manual_seed(manual_seed)

# Generar la imagen con parametros clave
image = pipe(
    prompt=prompt,
    negative_prompt=negative_prompt,
    num_inference_steps=30, # Numero de pasos de denoising (ajustar entre 20 y 50 comunmente)
    guidance_scale=7.5,   # Fuerza con la que el modelo sigue el prompt (ajustar entre 7 y 10 comunmente)
    generator=generator
).images[0]

# Guardar la imagen generada
image.save("castillo_futurista.png")
print(f"Imagen generada y guardada como castillo_futurista.png con seed {manual_seed}.")

Resultado:

Output
Una imagen generada por IA guardada como `castillo_futurista.png` representando el prompt ingresado, utilizando un prompt negativo y un seed específico para reproducibilidad en un hardware con GPU.

Comandos básicos

Familiarizarse con estos comandos es esencial para interactuar eficientemente con Stable Diffusion:

Conceptos Clave

Comprender estos conceptos fundamentales te ayudará a dominar Stable Diffusion de forma más organizada y eficiente:

Casos de uso

Algunos ejemplos de aplicaciones prácticas donde se utiliza Stable Diffusion:

Consejos para Principiantes

Aquí tienes algunas recomendaciones para facilitar tus inicios en Stable Diffusion:

Herramientas relacionadas

Si te interesa Stable Diffusion, también podrías explorar estas herramientas:

Recursos útiles

Amplía tus conocimientos con estos enlaces y materiales: