Manteniendo la fluidez con EbSynth

En el artículo anterior mostré como estilizar una secuencia de animación usando la pintura “La Noche estrellada” de Vincent Van Gogh.

Los problemas es que entre fotograma a fotograma «parpadea» no mantiene la fluidez, eso es por que cada fotograma se procesa por separado y la computadora usa su «creatividad» para completar los espacio de imágenes que no tiene coincidencia, para solucionar esto uso la red neuronal EbSynth esta puede mantener bastante la fluidez entre cuadros si la ayudamos un poco.

¿Cómo la ayudamos? Dándole una degrade de guía, este es como un mapa de donde poner cada color de modo que no use resultados azarosos al crear el fotograma.

ebsynth -style hand_paint.png -guide frame1.png frame2.png -weight 2 -guide map.png map.png -weight 1 -output result_02.png

Aquí el «map.png» es igual tanto en el primero como el segundo fotograma, esto puede generar alguno problemas de «lavado» el dibujo de referencia, pero se puede arreglar modificando el peso (-weight) de las guías, ajusta los parámetros hasta que el resultado sea el óptimo.

Prueba en una secuencia de animación

Descargamos el Ejemplo

wget -c https://download.tuxfamily.org/4232/wordpress/2017/05/4232.cf-e2.gif

Creamos el Mapa

convert \( xc:#000000 xc:#FF0000 +append \) \( xc:#00FF00 xc:#FFFF00 +append \) -append -size 500x281 xc:white +swap -fx 'v.p{i/(w-1),j/(h-1)}' map.png

Extraemos los fotogramas

ffmpeg -i 4232.cf-e2.gif w.%04d.png

Pintamos el primer fotograma con G’MIC

gmic w.0001.png _fx_stylize starrynight +fx_stylize 1,6,0,0,0.5,2,3,0.5,0.1,3,3,0,0.7,1,0,1,0,5,5,7,1,30,1,2,1.85,0 output[2] result_w.0001.png

Creamos la secuencia con EbSynth


ls w.*png | while read A; do
ebsynth -style result_w.0001.png -guide w.0001.png $A -weight 2 -guide map.png map.png -weight 1 -output eb_$A
done

Armamos el video


ffmpeg -y -i eb_w.%04d.png -r 4 eb_result.mkv

Original

Resultado

Ahora se mantiene la fluidez, los fotogramas son dibujos en png y se pueden modificar a mano, en lugar de la pintura de Van Gogh podemos pintar el primer fotograma como se nos ocurra.

Publicado en Experimento, Tutoriales y etiquetado , , .