Stable Diffusion (Generador de imágenes de IA)

¿Qué es Stable Diffusion?

Stable Diffusion es un modelo de IA generativa de código abierto que utiliza mensajes de texto para generar nuevas imágenes o modificar las existentes.

Técnicamente, Stable Diffusion es un modelo de difusión latente (LDM) para el machine learning. Este tipo de modelo especializado de deep learning utiliza distribuciones de probabilidad para generar resultados que son estadísticamente similares a los datos con los que se entrenó el modelo.

Además de generar imágenes nuevas, Stable Diffusion también puede utilizarse para pintar o repintar elementos de una imagen existente, así como para la traslación de imagen a imagen.

  • El inpainting es el proceso de rellenar partes de una imagen que faltan o están dañadas. Es una tarea habitual en la restauración y edición de imágenes y puede utilizarse para eliminar objetos de imágenes, reparar fotos dañadas o completar imágenes incompletas.
  • Outpainting es el proceso de extender una imagen más allá de sus bordes originales. Puede utilizarse para crear imágenes más grandes, añadir nuevos elementos a una imagen o cambiar la relación de aspecto de una imagen.
  • La conversión de imagen a imagen es el proceso de convertir una imagen de entrada en una de salida. Puede utilizarse para cambiar el estilo artístico de una imagen, cambiar el aspecto de un objeto en una imagen o mejorar la calidad de una imagen aumentando el contraste o la densidad del color.

¿Cómo funciona Stable Diffusion?

Stable Diffusion se entrenó inicialmente con imágenes etiquetadas por humanos extraídas de Internet. El modelo aprendió a mejorar sus resultados mediante una técnica denominada aprendizaje por refuerzo con retroalimentación o feedback humano (RLHF).

Durante la fase inicial de entrenamiento, se encargó al modelo base que analizara la distribución de probabilidad de las variables latentes en los datos de entrenamiento etiquetados. Las variables latentes captan la estructura subyacente y los detalles de una imagen de entrenamiento y permiten al modelo aprender la probabilidad de que una imagen concreta coincida con la etiqueta de texto creada por un humano.

La difusión estable funciona aplicando un filtro de difusión a una imagen de píxeles aleatorios que promedia los valores de los píxeles vecinos. Durante cada iteración del proceso de aprendizaje profundo, el filtro elimina más ruido de la imagen hasta que los píxeles restantes coinciden estadísticamente con la descripción de texto proporcionada.

La última versión del modelo base, SDXL 1.0, se publicó en agosto de 2023. Se dice que se ha entrenado con 3.500 millones de parámetros y miles de hiperparámetros. Según el sitio web de Stability AI, la razón por la que el modelo funciona tan bien es que se probó a escala antes de su lanzamiento con más de 10.000 probadores beta que crearon una media de 1,7 millones de imágenes al día.

He aquí un ejemplo de una imagen de Stable Diffusion creada con el texto “Ardilla gris olisqueando flor amarilla”.

Stable Diffusion generated image of squirrel sniffing flower.
Fuente: DreamStudio.ai

He aquí un ejemplo de imagen de Difusión Estable creada con el texto “Ardilla gris de origami olfateando una flor amarilla”.

Origami grey squirrel sniffing yellow flower
Fuente: DreamStudio.ai

Stable Diffusion vs. DALL-E, Midjourney

Stable Diffusion se compara a menudo con DALL-E, una aplicación de IA generativa para imágenes desarrollada por Open AI, el creador de ChatGPT.

Aunque ambos modelos de IA se entrenaron con cantidades ingentes de datos de imágenes, y ambos son capaces de generar imágenes útiles, DALL-E es un modelo de difusión condicionada que utiliza información externa para guiar el proceso de generación de imágenes. Las indicaciones del usuario proporcionan al modelo una guía específica sobre a qué debe parecerse o qué debe incorporar la imagen generada.

En cambio, la difusión estable es un modelo de difusión latente de código abierto que utiliza texto o imágenes para codificar una representación latente de la imagen deseada. La representación latente guía el proceso de difusión para garantizar que la imagen generada sea estadísticamente similar a la petición del usuario.

Midjourney es un modelo propio de difusión latente para generar imágenes. Sólo está disponible a través de una suscripción de pago. No existen versiones gratuitas o freemium para uso personal.

Historia

Stable Diffusion se lanzó por primera vez en 2022 y está financiada por una empresa de investigación y desarrollo (I+D) relativamente nueva llamada Stability AI.

La asociación de la compañía con Amazon Web Services (AWS) dio a los desarrolladores acceso al superordenador Ezra-1 UltraCluster y proporcionó a Stability AI la potencia de procesamiento que la startup necesitaba para desarrollar complejos modelos de inteligencia artificial (IA) para la generación de imágenes, música y código.

La misión declarada de Stability AI es “hacer la IA más accesible e inclusiva”. Sin embargo, en septiembre de 2023, algunos medios de comunicación informaron de que se estaba prohibiendo a los usuarios ejecutar Stable Diffusion en Google Cloud Platform (GCP).

Chris Perry, director de producto de Google, respondió tuiteando que la empresa no había prohibido la aplicación de IA generativa, pero sí había restringido las cuentas gratuitas porque Stable Diffusion se había hecho muy popular. El fundador de Stability AI, Mohammad Emad Mostaque, tuiteó que consideraba justa esta decisión.

Cómo utilizar Stable Diffusion

Puede acceder a Stable Diffusion y probarlo gratuitamente visitando el sitio web de Stability AI o utilizando DreamStudio o Clipdrop. DreamStudio es la aplicación web de Stability AI para generar y editar imágenes, y Clipdrop es su ecosistema de aplicaciones generativas, plugins y recursos.

El modelo también está disponible en versión freemium en un gran número de sitios web de terceros que utilizan la interfaz de programación de aplicaciones (API) de Stable Diffusion.

Para utilizar Stable Diffusion, siga estos pasos:

  1. Abra la interfaz de usuario de Stable Diffusion.
  2. Introduzca un mensaje de texto que describa una imagen – o cargue una imagen e introduzca un mensaje de texto sobre cómo debe alterarse la imagen.
  3. Haga clic en el botón Generar para generar un pequeño número de imágenes basadas en el texto.
  4. Si lo desea, ajuste las instrucciones de texto y las variables latentes del modelo para controlar diversos aspectos del resultado, como el estilo, el contenido o el tema.
  5. Una vez que el modelo genere el resultado deseado, guárdelo localmente para utilizarlo en el futuro.

3 consejos para utilizar la difusión estable

  • Sé específico al crear mensajes de texto. Este es posiblemente el aspecto más difícil de utilizar. Cuanto más específico sea el texto, mejor será el resultado. Si los resultados iniciales del modelo no son óptimos, considere la posibilidad de reiniciar el proceso con instrucciones más específicas.
  • Utiliza indicaciones negativas para excluir elementos específicos de los resultados del modelo. Por ejemplo, para generar una imagen de un vaquero sin sombrero, utilice la instrucción negativa “sin sombrero”.
  • Si el modelo se ejecuta localmente, considere la posibilidad de ajustarlo con un conjunto de datos más pequeño para satisfacer necesidades creativas específicas.

Ejecución local de Stable Diffusion

Para evitar tener que pagar por utilizar Stable Diffusion a gran escala, los usuarios expertos en tecnología que acepten la política de uso aceptable (AUP) de Stability AI pueden instalar el modelo LDM localmente en ordenadores portátiles básicos que tengan una tarjeta gráfica con al menos 7 GB de memoria de acceso aleatorio de vídeo (VRAM).

En un futuro próximo, Stability AI espera lanzar versiones optimizadas de su modelo LDM que mejorarán tanto el rendimiento del modelo como la calidad de los resultados. También tiene previsto lanzar versiones que permitan que Stable Diffusion funcione con chipsets AMD, Macbook M1/M2 y otros. (Actualmente, se recomiendan los chips NVIDIA).

Ejecutar Stable Diffusion localmente es una buena opción para los usuarios que desean generar imágenes gratuitas a escala, generar imágenes sin conexión, mantener imágenes privadas o ajustar los resultados de Stable Diffusion para satisfacer un caso de uso específico.

Por ejemplo, un desarrollador puede ejecutar Stable Diffusion localmente para generar texturas e imágenes para un juego que está desarrollando.

Cómo instalar Stable Diffusion

Después de que el usuario haya visitado el sitio web de Stability.ai y verificado que su ordenador cumple los últimos requisitos mínimos, tendrá que descargar e instalar Python y Git. También tendrá que crear una cuenta gratuita en Hugging Face para obtener los pesos del modelo y, a continuación, seguir estos pasos:

Paso 1: Para obtener los archivos del proyecto Stable Diffusion, visite la página GitHub de este proyecto. En la esquina superior derecha, busque y haga clic en el botón verde “Código”. En el menú desplegable, seleccione “Descargar ZIP”. Tras la descarga, extrae el contenido del archivo ZIP. Esta acción creará una carpeta llamada “stable-diffusion-webui-master”. Para simplificar la instalación, copie toda la carpeta (junto con todos los archivos extraídos) en el directorio raíz de la unidad C: del ordenador anfitrión.

Paso 2: Visite el sitio web de Hugging Face y busque el enlace de descarga del archivo “768-v-ema.ckpt”. Este archivo es bastante grande, así que espere un buen rato durante la descarga. Una vez finalizada la descarga, vaya a esta ubicación: “C:\stable-diffusion-webui-master\models\Stable-diffusion”. Dentro de esta carpeta, busque un archivo llamado “Put Stable Diffusion checkpoints here.txt” e inserte el archivo “768-v-ema.ckpt”.

Paso 3: Localice el archivo config YAML en el archivo ZIP descargado de GitHub. Vaya a la carpeta “C:\stable-diffusion-webui-master\models\Stable-diffusion” y guarde allí el archivo YAML. Cambie el nombre del archivo a “768-v-ema.yaml” conservando la extensión “.yaml”.

Paso 4: Vaya a la carpeta “stable-diffusion-webui-master” y ejecute el archivo “webui-user.bat”. Espere unos minutos. La ventana de comandos debería mostrar finalmente un mensaje que diga: “Ejecutándose en URL local”, seguido de una URL que contiene la dirección IP de la máquina local y un número de puerto. Copie y pegue la URL completa (incluido el número de puerto) en un navegador web. Esta acción abrirá la aplicación Stable Diffusion.

Paso 5: Introduzca una descripción para la imagen deseada cuando se le solicite. Opcionalmente, especifique cualquier texto que desee excluir en el cuadro de mensaje Negativo. Ajuste los parámetros, modifique el recuento de lotes y el tamaño como desee y haga clic en el botón “Generar”. La aplicación mostrará el número de imágenes solicitado en función de los datos introducidos.

Licencia

Stable Diffusion está autorizado bajo la licencia CreativeML Open RAIL-M, que permite el uso comercial y no comercial del modelo y sus resultados.

Es importante señalar que la licencia no cubre los derechos de autor de cualquier material subyacente que pueda ser utilizado para generar imágenes con Stable Diffusion.

Esto significa que si se altera una fotografía protegida por derechos de autor añadiendo o sustituyendo elementos dentro de la imagen (inpainted), ampliándola para hacerla más grande (outpainted) o haciéndola parecer un cuadro de Van Gogh (image-to-image translation), los derechos de autor de la nueva imagen generada seguirán perteneciendo al titular de los derechos de autor de la fotografía original.

Temas relacionados

Margaret Rouse

Margaret Rouse es una galardonada escritora técnica y profesora conocida por su habilidad para explicar temas técnicos complejos a una audiencia de negocios no técnica. Durante los últimos veinte años, sus explicaciones han aparecido en sitios web de TechTarget y ha sido citada como autoridad en artículos del New York Times, Time Magazine, USA Today, ZDNet, PC Magazine y Discovery Magazine. La idea de diversión de Margaret es ayudar a profesionales de TI y negocios a aprender a hablar los idiomas altamente especializados de cada uno. Si tienes una sugerencia para una nueva definición o cómo mejorar una explicación técnica,…