Home
Login

Modelo de generación de imágenes de texto a alta resolución basado en modelos de difusión latente

MITPython 41.2kStability-AIstablediffusion Last Updated: 2024-10-10

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

  1. Arquitectura Codificador-Decodificador: Utiliza un autoencoder con un factor de submuestreo de 8.
  2. Red U-Net: U-Net con 865M de parámetros para el proceso de difusión.
  3. Codificador de Texto: OpenCLIP ViT-H/14 procesa la entrada de texto.
  4. 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.

Star History Chart