💡 ¡Consistencia!
Esta es una de las grandes asignaturas pendientes de la IA Generativa: la capacidad para crear personajes, objetos y estilos consistentes entre diferentes generaciones. Bueno, esto y el generar manos con cinco dedos 😂
Estoy seguro de que en un futuro cercano, las IA Generativas serán capaces de crear una capa de abstracción que nos permita definir/generar nuestros personajes, objetos y estilos y luego referenciarlos para ir componiendo diferentes escenas, fotografías o incluso vídeos.
¿Imaginas las posibilidades que traerá esto cuando funcione realmente bien? Desde tareas “sencillas” como generar de manera consistente a nuestro personaje o un escenario en diferentes vistas y viñetas de un comic, hasta soñar con un futuro cercano en el que podremos generar películas fotorealísticas y videojuegos simplemente mediante lenguaje natural y gestos.
En fin, pongamos los pies en la tierra y veamos qué podemos hacer a día de hoy para intentar forzar generaciones consistentes. ¡Vamos a ello!
1. Consistencia gracias a un prompt muy detallado
Tu principal arma para conseguir la consistencia de personajes entre diferentes generaciones, y la primera que por tanto debes aprender, es bastante obvia: debes describir el prompt con extremo detalle y cuidado. Debes asegurarte que tu prompt contenga como mínimo toda esta información y repetirla según toque en cada nueva imagen que generes:
Estilo general de la imagen: ¿es un comic? ¿es una fotografía realista? Etc.
Descripción del personaje que aparece en la imagen: edad, características físicas, color del pelo, etc.
Vestimenta del personaje.
Acción del personaje: ¿qué está haciendo y cómo está colocado?
Lugar: ¿dónde está el personaje?
Un ejemplo de un prompt, que podría valer perfectamente para un panel de un comic, sería este:
"comic book panel, Daniel, 10 years old blond boy, wearing a brown coat, with his back to the camera, in front on a Manor house, wide angle, Travis Charest, Phil Noto, Gary Millidge, sepia color, high contrast --ar 3:2 --v 5.2"
Incluso me he tomado la molestia de darle un nombre, Daniel. Es curioso, pero este es un truco que parece funcionar al forzar de alguna forma a desplazarse al modelo a un lugar muy concreto del espacio latente: aquel en el que habitan los “Danieles de pelo rubio” 😃
A partir de aquí, será cuestión de mantener aquellas partes del prompt que describen al personaje y el estilo; y cambiar únicamente las que describen la acción y lugar del personaje. Ejemplos
"comic book panel, Daniel, 10 years old blond boy, wearing a brown coat, kneeling before a tombstone, sad, in a cemetery with scary trees, wide angle, Travis Charest, Phil Noto, Gary Millidge, sepia color, high contrast --v 5.2"
“comic book panel, Daniel, 10 years old blond boy, wearing a brown coat, opening a chest in the cellar of a Manor house, wide angle, Travis Charest, Phil Noto, Gary Millidge, sepia color, high contrast --ar 5:4 --v 5.2"
"comic book panel, a magic glowing key in a young hand, close up shot, Travis Charest, Phil Noto, Gary Millidge, sepia color, high contrast --ar 4:5 --v 5.2"
Esta sencilla técnica, si bien está lejos de ser perfecta, consigue dar el pego en la mayoría de situaciones.
Por supuesto, también vale para objetos, aunque mantener la consistencia entre generaciones es igualmente complicado y te obligará a lanzar bastantes pruebas o incluso a tener que hacer retoques de edición en Photoshop.
Por ejemplo, si queremos crear una escena en la que el personaje deja caer una llave podríamos hacerlo con estos prompts, pero conseguir que la llave sea exactamente igual es tarea complicada: tendrás que lanzar muchas generaciones hasta conseguir la que más se parezca.
"comic book panel, a magic key in the wooden floor, close up shot, Travis Charest, Phil Noto, Gary Millidge, sepia color, high contrast --ar 5:4"
"comic book panel, a magic key in a boy hand, close up shot, Travis Charest, Phil Noto, Gary Millidge, sepia color, high contrast --ar 4:5 --v 5.2"
Por cierto, esta técnica funciona igualmente para “envejecer” a un personaje. Basta con cambiar la edad en el prompt:
"comic book panel, Daniel, 10 years old blond boy, wearing a brown coat, opening a chest in the cellar of a Manor house, wide angle, Travis Charest, Phil Noto, Gary Millidge, sepia color, high contrast --ar 5:4 --v 5.2"
"comic book panel, a 40 years old blond man looking to the camera, hard and dark look, black background, wearing glasses, close up shot, Travis Charest, Phil Noto, Gary Millidge, sepia color, high contrast --ar 4:5 --v 5.2"
2. Reforzando la consistencia con imágenes de inicio
Si tenemos suficientes imágenes de un personaje u objeto, podemos utilizarlas como parte del prompt para reforzar la generación (incluyendo las URLs a dichas imágenes como vimos anteriormente).
Y si es un personaje generado, el primer paso por tanto sería crear dichas imágenes (unas 4 o 5 mínimo) de dicho personaje. Para ello podemos utilizar los trucos vistos en los puntos anteriores y comenzar nuestra generación. Vamos a intentarlo como una neoyorquina imaginaria llamada Kate:
"Phography, cinematic, Kate, 22 years old redhead beautiful woman, wearing a red dress, in New York street"
Para conseguir mayor variedad, podemos añadir detalles al prompt como “smiling”, “looking to the sky”, “in profile to the right” (de perfil), etc.
Una vez hayamos generado suficientes imágenes, es cuestión de seleccionar aquellas en que el personaje se parezca más y obtengamos la mayor variedad posible de posiciones. Por ejemplo, podríamos quedarnos con estas cinco imágenes:
Ahora, utilizando estas cinco fotos en Midjourney como imágenes de inicio junto con un prompt, podríamos generar a Kate en otras localizaciones y con diferentes vestidos:
"[url1] [url2] [url3] [url4] [url5] Phography, cinematic, Kate, 22 years old redhead beautiful woman, under the rain, wearing a yellow coat, in Paris"
Pero incluso sin imágenes de inicio, tan solo con la potencia del prompt, ¡podríamos añadir a Kate al mismo comic que a Daniel! Y la verdad es que quedaría bastante bien integrada:
"comic book panel, Kate, 22 years old redhead beautiful woman, wearing a brown coat, kneeling before a tombstone, sad, in a cemetery with scary trees, wide angle, Travis Charest, Phil Noto, Gary Millidge, sepia color, high contrast"
El problema por desgracia, tanto si usamos imagen de inicio como si no, es que tan pronto queramos conseguir una escena algo más compleja (en la que haya varios personajes, por ejemplo), tendremos problemas. Por ejemplo, si queremos una escena con Daniel (un niño de 10 años rubio) y Kate (una pelirroja joven) por mucho que nos esforcemos en el prompt en la mayoría de las generaciones la IA se hará un poco un lío:
"comic book panel, a blond boy wearing a brown coat and a young redhead woman wearing a red dress, exploring an old abandon Manor house, scared, wide angle, Travis Charest, Phil Noto, Gary Millidge, sepia color, high contrast --ar 3:2"
3. Trucos para aumentar la consistencia
Mientras esperamos que las IAs mejoren en cuanto en su coherencia entre generaciones, podemos utilizar algunos ases que guardaba en la manga. Una serie de trucos realmente interesantes.
Por ejemplo, a partir de estas dos imágenes que generamos anteriormente:
Llegamos a esta otra imagen, usándolas como imágenes de inicio y añadiéndole un buen prompt:
"[url 1] [url 2] comic book panel, a blond boy and a young redhead woman, exploring the interior of an old abandon Manor house, scared, wide angle, Travis Charest, Phil Noto, Gary Millidge, sepia color, high contrast --ar 3:2"
Por desgracia, Daniel no ha salido rubio. Y la chica, más que una mujer, parece una niña. Aquí es donde entran una serie de trucos que puedes utilizar para llegar a la imagen que realmente teníamos en mente.
¿Recuerdas el Generative Fill de Photoshop y el resto de programas de inpainting que vimos en newsletters anteriores? Ahora pueden convertirse en nuestros principales aliados.
Seleccionando el área del pelo e indicando en el prompt “blond hair”:
Podemos devolverle a Daniel su pelo rubio:
Ahora, imagina que tienes muy clara cómo debería ser la cara de la mujer pelirroja. De hecho, imaginemos que nos gustaría que fuera parecida a Kate que generamos anteriormente.
El primer paso sería ir a Photoshop (o cualquier otro programa de edición) y recortar y pegar la cara directamente sobre la imagen. (imagen de la izquierda) Super cutre, ¿no? No te preocupes, ¡IA Generativa al rescate!
En realidad, lo que vamos a hacer es usar esta imagen como imagen de inicio junto con el mismo prompt. Y para que tenga un peso especial en la generación, le otorgaremos un gran peso a la imagen utilizando --iw 2 en el prompt (el peso va de 0 a 2). Este sería el resultado (imagen de la derecha):
"[url] comic book panel, a little blond boy of 7 years and a pretty 22 years redhead woman, exploring the interior of an old abandon Manor house, scared, wide angle, Travis Charest, Phil Noto, Gary Millidge, sepia color, high contrast --ar 3:2 --iw 2"
Podría ser que nos gustase más la composición anterior. Siempre podemos hacer algo de edición y recortar aquellos elementos que nos convenzan y mezclarlos con lo que tenemos. Por ejemplo, aquí recorté la cara de Kate para integrarla en esta escena (usando Photoshop).
4. Consistencia gracias a Dreambooth / LoRA entrenando un modelo propio
La tecnología de Dreambooth y LoRA creada en torno a Stable Diffusion permite que reentrenemos a un modelo con una serie de imágenes propias.
Esto puede tener usos realmente útiles:
Por ejemplo, entrenar al modelo con varias fotos nuestra y luego poder crear avatares: disfrazarnos de super héroe, “fotografiarnos” en diferentes sitios, etc.
O algo todavía más útil: un artista, dibujante o fotógrafo podrían entrenar un modelo utilizando sus propias imágenes para apoyarse en la IA Generativa a la hora de ir muchísimo más rápido en sus futuras creaciones.
O para realizar una serie de fotografías de un producto (por ejemplo, un bolso) y luego “fotografiarlo” integrándolo en diferentes escenarios e iluminaciones.
Mis herramientas favoritas para esto, por su facilidad de uso, son Leonardo y Getimg, que facilitan mucho el entrenamiento del modelo simplificando el proceso en un par de clics. Ambas realizan el entrenamiento del modelo en sus servidores en la nube, por lo que no necesitas disponer de una GPU propia.
Por supuesto, si necesitas un mayor control o incluso quieres hacerlo con tu propia GPU, puedes utilizar la herramienta Automatic1111, que es una de las más avanzadas, pero por desgracia a la par, más complicadas de instalar y utilizar: tan solo la recomienzo para usuarios avanzados.
💡 Entrenando tu modelo con Leonardo
1. Ve a la sección Training & Datasets y crea un nuevo Dataset.
2. Para ello, te pedirá que adjuntes una serie de imágenes. Si por ejemplo quieres añadirte a ti mismo al modelo, podrías subir unas 5-10 fotos tuyas. Si consigues un mínimo de 15 imágenes variadas las generaciones serán lógicamente mejores.
3. A continuación, Leonardo te pedirá una serie de detalles que puedes dejar por defecto excepto el Instance Prompt. Este es importante porque es la palabra que deberás usar en el prompt para activar el entrenamiento. Si por ejemplo has usado tus propias fotos, dicha palabra podría ser tu nombre.
4. Tras esto, Leonardo necesitará unos minutos para reentrenar el modelo.
5. Por último, una vez el entrenamiento haya finalizado, desde la sección de Image Generation, podrás seleccionar tu propio modelo (en mi caso lo llamé “Test”) y activar al sujeto en cuestión utilizando su instancia (“Lisa” en mi caso).
💡 Entrenando tu modelo con otras herramientas
Otras herramientas que puedes utilizar, sobre todo si tu objetivo es poder dibujarte a ti mismo con IA Generativa, son:
Getimg
Drawanyone
Profilepicture
Photoai
¡Gracias! Si has llegado hasta aquí, al final del tutorial, ¡tienes todo mi respeto! Espero que lo hayas disfrutado y que te ayude a crear cosas interesantes.
Best AI Prompts para Midjourney
¿Quieres aprender a generar imágenes impresionantes con IA? Generé todas las imágenes base de este tutorial usando Midjourney con los prompts del super bundle:
👉 Best AI Prompts.
Una colección de prompts seleccionados con mucho cariño para que puedas generar con IA cualquier cosa que pase por tu imaginación: desde iconos hasta fotogramas de películas imaginarias.