Introducción Detallada al Proyecto Stable Diffusion
Resumen del Proyecto
Stable Diffusion es un modelo de generación de imágenes a partir de texto de código abierto desarrollado por Stability AI, basado en la tecnología de Modelos de Difusión Latente (Latent Diffusion Models). Este proyecto permite la síntesis de imágenes de alta resolución, capaz de generar imágenes de alta calidad a partir de descripciones textuales.
Dirección del Proyecto: https://github.com/Stability-AI/stablediffusion
Características Técnicas Clave
1. Arquitectura de Modelos de Difusión Latente
- Utiliza el espacio latente para el proceso de difusión, siendo más eficiente que operar directamente en el espacio de píxeles.
- Adopta la arquitectura U-Net como red de eliminación de ruido.
- Integra mecanismos de auto-atención y atención cruzada.
2. Codificador de Texto
- Utiliza OpenCLIP ViT-H/14 como codificador de texto.
- Soporta control de condiciones textuales complejas.
- Capaz de comprender descripciones textuales detalladas y convertirlas en contenido visual.
3. Soporte Multiresolución
- Stable Diffusion 2.1-v: Salida de 768x768 píxeles.
- Stable Diffusion 2.1-base: Salida de 512x512 píxeles.
- Soporta entrenamiento e inferencia en diferentes resoluciones.
Historial de Versiones Principales
Versión 2.1 (7 de diciembre de 2022)
- Lanzamiento del modelo v con resolución de 768x768 y el modelo base con resolución de 512x512.
- Basados en el mismo número de parámetros y arquitectura.
- Ajuste fino en un conjunto de datos de filtrado NSFW más permisivo.
Versión 2.0 (24 de noviembre de 2022)
- Nuevo modelo con resolución de 768x768.
- Utiliza OpenCLIP-ViT/H como codificador de texto.
- Entrenado desde cero, adoptando el método de v-prediction.
Stable UnCLIP 2.1 (24 de marzo de 2023)
- Soporta transformaciones de imágenes y operaciones de mezcla.
- Ajuste fino basado en SD2.1-768.
- Ofrece dos variantes: Stable unCLIP-L y Stable unCLIP-H.
Funcionalidades Principales
1. Generación de Texto a Imagen
Funcionalidad básica de generación de imágenes a partir de descripciones textuales:
python scripts/txt2img.py --prompt "a professional photograph of an astronaut riding a horse" --ckpt <path/to/768model.ckpt/> --config configs/stable-diffusion/v2-inference-v.yaml --H 768 --W 768
2. Reparación de Imágenes (Inpainting)
Soporta la reparación y edición local de imágenes:
python scripts/gradio/inpainting.py configs/stable-diffusion/v2-inpainting-inference.yaml <path-to-checkpoint>
3. Generación de Imágenes Condicionada por Profundidad
Generación de imágenes basada en información de profundidad para mantener la estructura:
python scripts/gradio/depth2img.py configs/stable-diffusion/v2-midas-inference.yaml <path-to-ckpt>
4. Superresolución de Imágenes
Funcionalidad de superresolución 4x:
python scripts/gradio/superresolution.py configs/stable-diffusion/x4-upscaling.yaml <path-to-checkpoint>
5. Conversión de Imagen a Imagen
Funcionalidad clásica de img2img:
python scripts/img2img.py --prompt "A fantasy landscape, trending on artstation" --init-img <path-to-img.jpg> --strength 0.8 --ckpt <path/to/model.ckpt>
Instalación y Configuración del Entorno
Entorno Básico
conda install pytorch==1.12.1 torchvision==0.13.1 -c pytorch
pip install transformers==4.19.2 diffusers invisible-watermark
pip install -e .
Optimización del Rendimiento (Recomendado)
Instalar la biblioteca xformers para mejorar el rendimiento de la GPU:
export CUDA_HOME=/usr/local/cuda-11.4
conda install -c nvidia/label/cuda-11.4.0 cuda-nvcc
conda install -c conda-forge gcc
conda install -c conda-forge gxx_linux-64==9.5.0
cd ..
git clone https://github.com/facebookresearch/xformers.git
cd xformers
git submodule update --init --recursive
pip install -r requirements.txt
pip install -e .
cd ../stablediffusion
Optimización para CPU Intel
Configuración de optimización para CPU Intel:
apt-get install numactl libjemalloc-dev
pip install intel-openmp
pip install intel_extension_for_pytorch -f https://software.intel.com/ipex-whl-stable
Detalles de la Arquitectura Técnica
Componentes del Modelo
- Arquitectura Codificador-Decodificador: Utiliza un autoencoder con un factor de submuestreo de 8.
- Red U-Net: U-Net con 865M de parámetros para el proceso de difusión.
- Codificador de Texto: OpenCLIP ViT-H/14 procesa la entrada de texto.
- Muestreadores: Soporta varios métodos de muestreo como DDIM, PLMS, DPMSolver.
Optimización de Memoria
- Habilita automáticamente el mecanismo de atención eficiente en memoria.
- Soporta aceleración xformers.
- Ofrece opciones de precisión FP16 para ahorrar memoria de la GPU.
Escenarios de Aplicación
1. Creación Artística
- Diseño de arte conceptual
- Generación de ilustraciones
- Transferencia de estilo
2. Producción de Contenido
- Creación de material de marketing
- Contenido para redes sociales
- Diseño de prototipos de productos
3. Aplicaciones de Investigación
- Investigación en visión por computadora
- Investigación en modelos generativos
- Aprendizaje multimodal
Consideraciones Éticas y Limitaciones
Sesgos de Datos
- El modelo refleja sesgos e interpretaciones erróneas presentes en los datos de entrenamiento.
- No se recomienda su uso directo para servicios comerciales sin añadir mecanismos de seguridad adicionales.
Seguridad del Contenido
- Sistema de marcas de agua invisibles incorporado para ayudar a identificar contenido generado por IA.
- Esfuerzos para reducir el contenido explícitamente pornográfico, pero aún se requiere un uso cauteloso.
Restricciones de Uso
- Los pesos son solo para uso de investigación.
- Seguir la licencia CreativeML Open RAIL++-M.
