¿Quién no se ha presentado nunca a un concurso de postales navideñas? A muchos nos quedan lejos aquellos certámenes de arte en los que todos los alumnos de la escuela invertían horas para intentar dibujar la mejor estampa navideña. Sin embargo, actualmente, es posible que incluso un niño dibuje en apenas minutos un christmas como el de la siguiente imagen gracias a la inteligencia artificial, concretamente a un modelo llamado Stable Diffusion.
Stable Diffusion es un modelo de texto a imagen, es decir, un modelo que espera recibir un texto denominado prompt para generar una imagen que represente dicho texto. El funcionamiento de Stable Diffusion y en general de los modelos de difusión para generar imágenes a partir de textos ya fue explicado en este blog. Sin embargo, en este post nos vamos a centrar en algunas cuestiones menos técnicas, pero no por ello menos importantes, como ¿qué tipo de prompts generan las mejores imágenes? ¿Puedo generar la imagen que yo quiera con una IA?
Tips para hacer prompt engineering
Se denomina prompt engineering al trabajo de encontrar un texto que, introducido en un modelo de difusión, genere una imagen lo más cercana posible a la que tenemos en nuestra imaginación. A menudo esto no es fácil, ya que hay que recordar que los modelos de difusión en ningún caso tienen capacidad para razonar o imaginar, sencillamente se limitan a dibujar imágenes similares a las que han visto durante su entrenamiento usando representaciones numéricas del texto y de las imágenes que escapan por completo a nuestra comprensión.
El procedimiento para obtener la imagen que queremos habitualmente es iterativo y consiste en un proceso de prueba y error, pero existen algunos tips que nos pueden ayudar a obtener mejores imágenes:
- Añadir adjetivos
- Tener en cuenta la semilla aleatoria
- Emplear estilos
- Probar, probar y probar
Añadir adjetivos
Recordemos que un modelo de difusión se entrena a partir de pares texto-imagen, por tanto, si incluimos en nuestro prompt un adjetivo como “asombroso”, la imagen que generemos se va a parecer más a las imágenes “asombrosas” que haya visto el modelo durante el entrenamiento. Por este motivo, añadir numerosos adjetivos al final del prompt induce al modelo de difusión a generar mejores imágenes.
Veamos el siguiente ejemplo: si suministramos el prompt “Papá Noel y un reno caminando por un paisaje nevado.” obtenemos la imagen de la izquierda. Sin embargo, si a este prompt le añadimos algunos adjetivos: “Papá Noel y un reno caminando por un precioso paisaje nevado, artstation, asombrosa obra maestra, muy estilizada, de bordes afilados”, obtenemos la imagen de la derecha.
Tener en cuenta la semilla aleatoria
Al igual que sucede con muchos otros algoritmos en machine learning, el proceso de generación de una imagen por un modelo de difusión tiene una componente aleatoria. Esto se traduce en que un mismo prompt puede dar lugar a imágenes distintas si no nos aseguramos de que la semilla aleatoria sea la misma. Un buen truco para dar con una buena imagen es utilizar varias semillas aleatorias para un mismo prompt, de esta manera, es más probable que alguna de las imágenes que generemos se ajuste a lo que estamos buscando.
Por ejemplo, las siguientes cuatro imágenes han sido generadas usando cuatro semillas distintas con el prompt: “Papá Noel entrega un regalo a una niña en una entrañable plaza de pueblo con adornos navideños, el paisaje está nevado, artístico, de bordes afilados, muy estiloso”. En este caso se puede apreciar cómo, entre la primera imagen y la última, hay una diferencia sustancial de calidad, aunque lo único que haya cambiado sea la semilla aleatoria.
Emplear estilos
Uno de los puntos más fuertes de los modelos de difusión es su capacidad para mezclar imágenes con diferentes estilos si se lo indicamos de manera apropiada en el prompt. Las siguientes imágenes han sido generadas usando el prompt “Un árbol de navidad, intrincado, artstation, impresionante obra maestra”, pero señalando en el propio prompt que estuviesen generadas al “estilo cubista de Picasso”, “estilo impresionista de Van Gogh” y “estilo surrealista de Dalí” respectivamente.
Probar, probar y probar
Escribir un buen prompt no nos garantiza que vayamos a obtener una buena imagen, pues existen numerosos conceptos que los modelos de difusión no son capaces de plasmar correctamente. De hecho, hay que tener en cuenta que estos modelos están limitados por las imágenes que han visto durante su entrenamiento y que cuanto más fantasiosa sea la imagen que describamos en el prompt, más probable es que el modelo no sea capaz de generarla adecuadamente.
La conclusión de este viaje navideño a través de los modelos de difusión es que tratar de controlar la imagen que va a generar un modelo de difusión es una tarea difícil. El éxito reside en la persistencia, en escribir un texto descriptivo con más de un adjetivo y en saber distinguir mediante prueba y error el tipo de objetos y conceptos que el modelo es capaz de dibujar y los que no.
Por último, dejamos por aquí otros tres christmas que hemos hecho en el IIC con modelos de difusión, por si queréis compartir las posibilidades de la Inteligencia Artificial. Aprovechamos para desearos una ¡feliz Navidad y próspero año nuevo!
Bibliografía
Imagen 1 – Álvaro Barbero Jiménez. Imágenes 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13 y 14– Sergio Gil Gavela. Imagen 11 – Ana Alastuey
Wow, que emocionante, ya quiero saber qué sigue, qué otros prompts podemos hacer en el futuro.