¿Puede DALL-E dibujar un cómic?

Tras un intento fallido de generar sprites de un videojuego (aunque realmente lo interesante era hacer uncrop de la imagen). Vamos a intentar generar un cómic para ver si con DALL-E se puede narrar una historia en varias imágenes de forma secuencial. Me preocupa especialmente la capacidad de DALL-E para mantener la consistencia entre las distintas viñetas. Y ya se que no le puedo pedir que me ponga el texto. Por lo tanto el objetivo se reduce a una historia muda o a una que le añadiremos el texto después.

Primer intento

El más sencillo para mi. Escribo el guión, se lo paso. Me genera el comic y a partir de ahí solo es cuestión de tiempo hacerme una artista famoso y millonario.

El guion es el siguiente:

Una tira cómica de 4 paneles estilo Calvin Y Hobbes. La tira cómica es protagonizada por Kelvin, un niño, y el gato Fred. 
Panel 1: Kelvin baja del autobús escolar y se dirige a la casa de su madre. Es invierno, el suelo está nevado, Kelvin lleva un abrigo y un gorro en la cabeza.
Panel 2: Fred le espera detrás tumbado en la entrada detrás de la puerta de la casa. El suelo es de láminas de madera, las paredes blancas y vemos un marco de fotos en una de las paredes.
Panel 3: Kelvin abre la puerta de la casa.
Panel 4: Fred salta sobre Kelvin y lo tira al suelo.

Ahora solo queda traducirlo, introducir algunos cambios pensando en que DALL-E lo entienda mejor y ver el resultado.

Primer problema, el prompt de DALL-E solo permite 400 caracteres. Así que hay que hacer una «poda» del texto original, al reducir el número de caracteres reducimos la descripción de las viñetas que pasamos a DALL-E. El resultado es el siguiente:

A 4 panels page with a comic strip in the style of Calvin and Hobbes. The characters are Kelvin, a kid, and Fred, a cat.
Panel 1: Kelvin gets off the school bus. It is winter, the ground is snowy, Kelvin is wearing a coat and a wool cap.
Panel 2: Fred is lying in the entrance behind the door of the house.
Panel 3: Kelvin, from outside, opens the door of the house.
Panel 4: Fred jumps on Kelvin.

Tras realizar varios intentos me encuentro con los mismos problemas, vamos a ver unos pocos ejemplos:

El resultado se «parece» a lo que quiero conseguir….pero no es exactamente lo que quiero conseguir. Los problemas:

  • No tiene claro cual es el estilo que quiero.
  • No siempre me genera 4 viñetas y cuando lo hace las dibuja cortadas
  • No hace cuatro viñetas distintas, mas bien mezcla una o dos de las descripciones y las representa en las viñetas.
  • Pone cosas que parecen diálogos, no es un gran problema porque suele ponerlos donde es fácil borrarlos.
  • ¿Donde esta el gato? Apenas aparece.

Explincadole a DALL-E lo que son las viñetas

Primero vamos a por el tema de las viñetas. Vamos a indicarle a DALL-E que no queremos que se salga de una estructura de pagina ¿Cómo? Con una plantilla como esta:

Subiremos esta plantilla, marcaremos como «borrar» las zonas grises y DALL-E solo podrá dibujar dentro de ellas.

Como no reconoce el estilo de dibujo que le pido le pongo uno que si que conoce: render 3D

También le facilito la vida eliminado los nombres de Kelvin y Fred, poniendo directamente niño (kid) y gato (cat)

A comic strip with 4 panels. Render 3D 
Panel 1: A kid wearing a coat and a wool cap gets off the school bus. It is winter, the ground is snowy.
Panel 2: A cat is lying in the entrance behind the door of the house.
Panel 3: kid, from outside, opens the door of the house.
Panel 4: cat jumps on kid

Veamos algunos de los resultados:

Tiene mejor pinta pero las viñetas siguen siendo variaciones de una misma sentencia. Otro problema que se ha resuelto al decirle que trate de hacer algo con estilo render 3D , en lugar de un comic es que no pone «pseudopalabras» sueltas por el texto.

¿Entiende DALL-E que cada sentencia es una viñeta?

Vamos a probar las capacidades de compresión de DALL-E. Para ello le voy a pedir que me ponga una figura geométrica sencilla en cada viñeta. Se lo voy a pedir de dos formas, con números (1,2,3,4) y con ordinales (primero, segundo, tercero, cuatro).

A comic strip with 4 panels. Render 3D. 
Panel 1: a circle.
Panel 2: a triangle.
Panel 3: a square.
Panel 4: a hexagon.
A comic strip with 4 panels. Render 3D. 
First Panel: a circle.
Second Panel: a triangle.
Third Panel: a square.
Fourth Panel: a hexagon.

Selecciono un par de casos como ejemplo:

Esta claro que DALL-E no tiene una idea clara de lo que le pido.

Dibujo viñeta a viñeta

Siguiente prueba, si es incapaz de entender las cuatro viñetas a la vez, que pasa si se la explico de una en una. Empiezo por la plantilla que he creado antes, marco la primera viñeta como «borrar» y le paso la descripción de esa viñeta. Elijo el mejor resultado y lo uso para crear la segunda viñeta, elijo el mejor resultado y paso a la tercera y luego a la cuarta.

Me preocupa si mantendrá la coherencia entre viñetas o cada una será con un estilo.

Resumo el proceso poniendo cada una de las cuatro sentencias usadas:

[1] A kid gets off the school bus. It is winter, the ground is snowy, Kelvin is wearing a coat and a wool cap. 3D render
[2] A cat is lying in the entrance behind the door of the house. 3D render
[3] kid, from outside, opens the door of the house.
[4] when the kid open the door a cat jumps on kid

El resultado de este proceso:

No creo que le den un premio Eisner. Pero funciona y mantiene cierta coherencia entre viñetas.

Hay varias cosas que podría mejorar:

  • Dedicar más tiempo a los prompts que en este ejemplo son muy poco detallados
  • Elegir un estilo mejor que render 3D
  • Se pueden introducir correcciones a mano en cada viñeta antes de generar las siguiente
  • Generar mayor número de pruebas, yo solo he generado 3 casos y elegido el mejor.
  • Marcar mejor los límites de la viñeta para evitar esa niebla gris que rodea cada viñeta (y que viene de los restos de color gris que no he marcado completamente para borrar)

Conclusiones

Por lo tanto ¿Es capaz de dibujar un comic?. Si, es capaz, pero no será un gran comic. Hay que indicarle la estructura de las viñetas a mano y cuidar mucho los prompts. Por otro lado se puede llegar a narrar una historia lo suficientemente bien como para entenderla.

Otro punto son los diálogos, a DALL-E no se le dan bien las palabras y hay que añadirlos a parte.

Puedes ver un vídeo sobre este tema en mi canal de Youtube:

Haz click para ver el vídeo en mi canal de Youtube