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.