Stable Diffusion es una IA generativa de imágenes capaz de crear una imagen a partir de una descripción en texto. Las más importantes son Dall-E, Midjourney, y esta, Stable Diffussion. Las dos primeras tienen varias pegas, siendo la primera que son de pago (aunque te dejan hacer una cierta cantidad de imágenes de prueba), pero la tercera es Open Source y se puede usar libremente sin ningún tipo de limitación, instalarla en local en tu Pc (con lo que no dependes de ningún servicio online) y además tiene muchísima comunidad detrás entrenando modelos específicos para crear imágenes fotorrealistas, crear Anime, imitar estilos de casi cualquier dibujante, etc... Además es muy fácil entrenar un modelo tú mismo para hacer lo mencionado o incluir en las imágenes a personas, personajes, estilos, etc...
Para crear una imagen, una vez en su interfaz, hay un formulario que tiene arriba dos líneas... En la primera es donde escribes la descripción y los términos que quieres que cumplan los componentes de la imagen (tipo de imagen, si es una foto, una ilustración o un render, qué personajes salen, que están haciendo, su descripción detallada, dónde se encuentran, como es el escenario, la iluminación, etc...). Esto es lo que se llama un 'prompt', el término que se usa para las descripciones. La segunda línea es el llamado 'prompt negativo', y es en el que se pone lo que NO queremos que tenga la imagen, los problemas de la imagen que queremos evitar, etc... Y nos sirve para mejorar la calidad de imagen, descartar imágenes borrosas, con personajes deformes, etc...
Luego hay una serie de parámetros que también podemos controlar, como la resolución de la imagen, el número de iteracciones que tendrá que hacer la IA para sacar la imagen final (a más iteraciones más detalle añadido, aunque en ciertos tipos de imágenes conviene que sea bajo), y lo literal que queremos que sea la IA a la hora de interpretar nuestra descripción (a veces es interesante dejar que sea flexible y que no aplique todo lo de la descripción para que sea más creativa).
Me gustaría probarlo, ¿qué tengo que hacer?
Lo primero que hay que tener en cuenta es que necesitas tener una gráfica nVidia (ya que todo se basa en CUDA) más o menos potente (tampoco es necesario que sea lo último de lo último ni mucho menos) que como mínimo tenga 6 GB de VRAM, 8 GB para poder procesar tus propios modelos (aunque si no los tuviera y aún así quisieras entrenar a la IA, también se puede hacer online mediante Google Colab y servicios similares). Hay una guía muy buena que explica paso a paso cómo instalar todo lo necesario, desde Python hasta las dependencias y Stable Diffusion WebUI, así cómo que modelos básicos descargar y dónde conseguir más, todo con sus enlaces correspondientes. Es la del siguiente enlace:
https://rentry.co/UnofficialUnstableGuideLuego, una vez lo tienes todo instalando y funcionando (usa una interfaz gráfica a través del navegador de internet pero de forma local, es decir, que no necesitas internet para usarla), puedes descargar muchos modelos de la comunidad que mejoran muchísimo su potencial, al estar entrenados para mejorar las imágenes de tipos específicos (hay modelos para fotografía ultrarrealista, un montón para Anime y Hentai de todos los estilos que se os ocurran, para paisajes, para fantasía, etc...). Son lo que se conocen como Checkpoint y para usarlos basta con descargarlos y meterlos en la carpeta models/Stable-Diffusion para que ya se puedan seleccionar en la interfaz. Además de estos modelos 'grandes', hay otros más pequeños para cosas mucho más concretas, como incluir personajes o personas en las imágenes o estilos artísticos nuevos, los que se conocen como LoRa y Embbedings, que van en las carpetas del mismo nombre. Tienen la ventaja de que se pueden usar conjuntamente con cualquier modelo 'grande' y puedes incluso usar varios a la vez, ocupando muchísimo menos. Además, estos son fáciles de crear para cualquiera y puedes entrenar los tuyos propios tú mismo con tan sólo tener, por ejemplo, 20 o 30 imágenes del personaje o estilo que quieras incluir (logicamente, a mayor cantidad de imágenes para entrenar, mejores resultados).
De los checkpoints, recomiendo como imprescindibles los siguientes:
- Anything V. 3 para anime
- Realistic Vision V 1.3 para imágenes fotorrealistas y también es muy bueno Art & Eros en el mismo estilo
- Illuminati Diffusion para imágenes de mayor realismo y alto contraste, siendo este un modelo de Stable Diffusion 2.1 (la mayoría de los modelos disponibles y los más populares son de la versión 1.5 de Stable Diffusion)
- DreamShaper para ilustraciones en todo tipo de estilos
- Los modelos de la serie Orangemix (AbyssOrangeMix, EerieOrangeMix y BloodOrangeMix) para anime y hentai (unos están más indicados para lo primero y otros para lo segundo, y también unos van más en un estilo de ilustración y otros más en estilo anime de Tv y cine)
Luego lo demás es opcional, y el tema de los LoRa y los Embeddings no es necesario en absoluto salvo que queras usar el estilo muy concreto de algún dibujante o meter a tu personaje favorito de anime o videojuegos, y hay muchísimos.
Las webs de referencia para descargarlos son dos:
- Civitai, que es la que más uso y mucho más visual con ejemplos de cada modelo (y hasta puedes ver los 'prompts' de las imágenes, es decir, la secuencia y configuración para crearlas e incluso su semilla -por lo que la puedes replicar exactamente-):
https://civitai.com/- Hugginface, que es más 'árida' ya que es del estilo de Github, pero por contra allí también encuentras modelos que no están en Civitai, y cuya dirección es la siguiente:
https://huggingface.co/Y luego, para aprender y resolver cualquier duda, es casi imprescindible visitar el Discord de 'Unstable Diffusion', a mí me ha ayudado muchísimo lo que se habla por allí, y he descubierto cosas como lo de los modelos experimentales ControlNet... Su enlace de invitación es este:
https://discord.com/invite/unstablediffusionTengo una duda desde la ignorancia. Imaginad que quiero hacer un cómic con unos personajes que se repiten en múltiples imágenes (viñetas). ¿Hay alguna forma de generar diferentes ilustraciones de un personaje que hayas definido antes?
Si, se puede entrenar un embedding o un LoRA para que la IA 'aprenda' cómo es el personaje, que ropa lleva, etc... y desde ese momento sea capaz de presentarlo en cualquier pose y respetando la ropa y su aspecto de forma consistente... También tiene lo interesante de poder regular el grado de fidelidad del LoRA, y de esta forma crear nuevos personajes con características del personaje del LoRA o mezclaro con otro (y vale también para introducir persona reales y mezclarlas con otras, por ejemplo Scarlett Johansson al 50% con Winona Ryder). Además también podrás crear el personaje en otros 'estilos', ya sea haciendo un dibujo animado una persona real o al contrario...
Hay en Youtube un tutorial muy bueno para crear tus propios LoRAs, pero recomiendo hacerlo cuando ya se tenga algo de rodaje con Stable Diffusion:
Posteriormente, un compañero del discord de Unstable Diffusion publicó una guía muy interesante sobre la creación de LoRAs que permite hacerlos de forma mucho más optimizada que con el método del vídeo de Aitrepreneur anterior, aunque es algo más avanzado, que podéis encontrar aquí:
https://civitai.com/models/22530Otra cosa interesante sobre el mismo tema, que puede ayudar mucho a conseguir que los personajes de una imagen salgan de la forma que queramos, son los modelos especiales ControlNet, que añaden una capa extra de control a la imagen generada partiendo de una imagen previa, y de lo que hablan en el siguiente vídeo:
Uno de los puntos débiles de las IA de este tipo es a la hora de generar manos o dedos... Ha salido una nueva extensión de Stable Diffusion WebUI para corregir las manos... Esta de la que hablan en el siguiente vídeo:
Además, ha salido otra extensión muy útil que permite al generar una imagen, dividir esta en secciones y poder definir un personaje concreto para cada una, incluso usando LoRAs independientes en cada sección, lo que permite (por fin) controlar por completo la generación de grupos de personajes y lo que hacen. También hay un vídeo sobre esto:
De esta forma, poco a poco van mejorando y limando los problemillas ya conocidos...
En cuanto a las imágenes que se pueden llegar a generar, algunos ejemplos con el modelo Illuminati Diffusion:
Y otros ejemplos de cosas interesantes que se pueden hacer usando los modelos ControlNet (unos modelos especiales que permiten utilizar una imagen de referencia para generar la nueva imagen con características de la mencionada imagen), en este caso convertir un boceto que hice hace algunos años de la valkiria Thyra del arcade clásico 'Gauntlet' en algo mucho más espectacular:
Boceto:
Varias versiones de Thyra a partir del boceto anterior: