Cómo usar la difusión estable para hacer GIF y videos de IA
Publicado: 2023-02-20Stable Diffusion es capaz de generar más que solo imágenes fijas. Con algunas herramientas integradas y una extensión especial, puede obtener videos AI muy interesantes sin mucho esfuerzo. Aquí se explica cómo generar marcos para un GIF animado o un archivo de video real con Stable Diffusion.
¿La difusión estable puede generar video?
Animar una imagen usando Inpaint
Paso 1: obtenga una imagen y su aviso
Paso 2: Enmascare las partes para animar con InPaint
Paso 3: Genere sus marcos
Paso 4: Mejore sus marcos por lotes (opcional)
Paso 5: animar los marcos en un GIF o Video Maker
Generar un video usando Deforum
Paso 1: Instale la extensión Deforum
Paso 2: escriba sus indicaciones
Paso 3: Ajuste la configuración de Deforum
Paso 4: genera tu video
¿La difusión estable puede generar video?
Si bien la película generada por IA aún es un campo incipiente, técnicamente es posible crear algunas animaciones simples con Stable Diffusion, ya sea como un GIF o un archivo de video real. Sin embargo, hay limitaciones.
Debido a que img2img facilita la generación de variaciones de una imagen en particular, Stable Diffusion se presta bien para crear rápidamente un montón de cuadros para animaciones, en particular las cíclicas. Piensa en las llamas saliendo de un fuego, las ruedas de un auto girando o el agua salpicando en una fuente. Un uso práctico podría ser dar un ambiente realista a algunas ilustraciones de juegos de rol:
Difusión estable
Incluso puedes hacer videos basados en imágenes reales en lugar de sintéticas. Aquí tomé una foto de una planta que estaba siendo regada y, con unos pocos clics, animé el chorro de agua:
Jordan Gloor / Difusión estable
Si desea animar un objeto para que se mueva del punto A al punto B, es una tarea difícil para Stable Diffusion (al menos por ahora). Es probable que dedique mucho tiempo a ajustar las indicaciones y la configuración, y luego estudie detenidamente una tonelada de resultados para encontrar los mejores marcos y colocarlos en el orden correcto. En ese punto, también podría usar Adobe Illustrator y comenzar a animar a mano.
A pesar de eso, puedes hacer algunas animaciones geniales y simples con una configuración básica de difusión estable y otra herramienta de tu elección para unir los cuadros en una animación. También hay un proyecto llamado Deforum que usa Stable Diffusion para crear animaciones de "transformación" que parecen bastante interesantes. Escupirá un video MP4, por lo que no se requieren herramientas externas e incluso le permite agregar audio. Le mostraremos los conceptos básicos de ambos métodos.
Nota: Para los fines de este artículo, supondremos que ya instaló una interfaz gráfica para Stable Diffusion, específicamente la interfaz de usuario web de Stable Diffusion de AUTOMATIC1111. En comparación con la instalación de línea de comandos estándar, hace que la generación de imágenes sea mucho más fácil y viene con un montón de herramientas útiles y extras.
Animar una imagen usando Inpaint
Usando la herramienta img2img Inpaint, puede resaltar la parte de una imagen que desea animar y generar varias variaciones de la misma. Luego, los colocará en un creador de GIF o video y guardará los cuadros como una animación.
Paso 1: obtenga una imagen y su aviso
Comience colocando una imagen que desee animar en la pestaña Inpaint de la herramienta img2img. Si aún no ha generado uno, tómese un tiempo para escribir un buen aviso para obtener una buena foto de inicio. También puede importar una imagen que haya fotografiado o dibujado usted mismo.
Si está importando una imagen que no generó con Stable Diffusion, aún necesitará un aviso adecuado para generar variaciones, así que haga clic en "Interrogar CLIP" en la parte superior de la página Img2Img. Eso generará un mensaje de inicio basado en lo que Stable Diffusion cree que contiene su imagen. Complete el aviso agregando cualquier otro detalle importante.
Para nuestra guía, hemos generado una imagen de 512×512 de un robot bajo un cielo nocturno al que queremos darle una especie de animación de lapso de tiempo, con estrellas fugaces y galaxias pasando.
Si desea seguir con precisión, puede recrearlo con el mensaje que usamos:
un robot se para en un campo mirando el cielo nocturno durante una lluvia de meteoritos, estrellas fugaces, galaxias, el cosmos, vía láctea, ultra realista, muy detallado, 4k uhd
Y estos son los ajustes que usamos:
Punto de control: Difusión estable 2.0
Método de muestreo: DPM++ SDE
Pasos de muestreo: 20
Escala CFG: 5
Semilla: 4177542269
Paso 2: Enmascare las partes para animar con InPaint
Con su imagen y mensaje en su lugar, en la herramienta Inpaint, use el pincel para enmascarar (cubrir) cada parte de la imagen que desea animar. Deja al descubierto todo lo que quieras estático.
En nuestro ejemplo, estamos cubriendo la mayor parte del cielo. Dejamos un poco de protección alrededor del robot porque en nuestras pruebas, si nos acercábamos demasiado, Stable Diffusion a veces agregaba antenas y otros apéndices al robot.
Sugerencia: puede ajustar el tamaño del pincel de Inpaint con un control deslizante haciendo clic en el botón del pincel en la esquina superior derecha del lienzo.
Paso 3: Genere sus marcos
Ahora que ha enmascarado cada parte de su imagen que desea ver en movimiento, es hora de generar los fotogramas de nuestra animación. Pero primero, querrá asegurarse de que img2img tenga la configuración correcta. Pueden ser confusos, por lo que explicaremos qué significan algunos de ellos y por qué es posible que desee modificarlos o no:
- Modo de máscara: Inpaint Masked : esto asegura que todo lo cubierto se cambie y no al revés. Si, por algún motivo, desea modificar la parte sin máscara, cámbiela a "Inpaint Not Masked".
- Contenido enmascarado: Original : esto garantiza que Stable Diffusion verá y tendrá en cuenta la imagen existente cuando genere variaciones. De lo contrario, considerará el contenido enmascarado como un lienzo en blanco o aleatorio.
- Área de pintura: imagen completa : esto obliga a Stable Diffusion a generar una imagen completamente nueva para cada cuadro antes de integrarla con la imagen original. Cambiar a "Solo enmascarado" puede acelerar la generación, pero también puede darte peores resultados.
- Método de muestreo: DPM++ SDE : este es el mismo método de muestreo que usamos para generar nuestra imagen original, y lo mantendremos para garantizar una apariencia uniforme. Si no sabe qué usar, “Euler a” es una buena elección.
- Recuento de lotes: 60 : esta es la cantidad de imágenes que desea generar. Es posible que necesite más o menos dependiendo de qué tan rápido y cuánto tiempo desee que sea su secuencia de animación.
- Escala CFG: 5 – La escala CFG, en cierto sentido, determina cuánta libertad creativa tiene Stable Diffusion. Cuanto mayor sea el número, más estrictamente Stable Diffusion intentará seguir su indicación. Incrementarlo y obtener buenos resultados requiere tener un muy buen indicador.
- Fuerza de eliminación de ruido: 0.3 : posiblemente la configuración más importante para este proyecto, la escala de eliminación de ruido determina cuánto cambiará la difusión estable la imagen original. Probablemente desee mantenerlo alrededor de 0,2 o 0,3, ya que demasiados cambios de cuadro a cuadro pueden arruinar la animación.
- Semilla: -1 – Esto le dice a Stable Diffusion que comience con una semilla aleatoria. No recomendamos reutilizar la semilla de su imagen original, ya que eso reduce la cantidad de variación que obtendrá (si es que la hay).
Con todas sus configuraciones en su lugar, haga clic en "Generar" y siéntese mientras Stable Diffusion dibuja sus cuadros de animación por usted. Los encontrará en la carpeta /outputs/img2img-images
de su directorio Stable Diffusion. Si no le gustan los resultados, modifique la configuración (probablemente comenzando con la fuerza de eliminación de ruido y los pasos de muestreo) e intente nuevamente.
Paso 4: Mejore sus marcos por lotes (opcional)
Si planea crear un video de alta definición, recuerde mejorar todos los cuadros recién generados a la resolución que desee. Haga clic en "Enviar a extras" para comenzar.
Dentro de Extras, cambie a la pestaña "Proceso por lotes".
Ajuste la escala "Redimensionar" al número de veces que desea cambiar el tamaño (establecer 2 cambiará las imágenes de 512 × 512 a imágenes de 1024 × 1024). Alternativamente, cambie de "Escalar por" a "Escalar a" y establezca una resolución específica. También establezca "Upscaler 1" en el escalador de su elección. Obtuvimos resultados suficientemente buenos con R-ESRGAN 4x+, pero siéntase libre de experimentar para ver cuál maneja mejor sus imágenes.
Luego presione "Generar" y Stable Diffusion le dará una versión de mayor resolución de cada cuadro, guardado en su carpeta /outputs/extras
.
Paso 5: animar los marcos en un GIF o Video Maker
Ahora que tiene sus marcos, es hora de unirlos todos y crear su animación final. Hay muchas herramientas con las que puede hacer esto, incluidos sitios web dedicados gratuitos como Ezgif y flixier que son fáciles de usar y tienen muchos controles de ajuste. Sin embargo, recuerde que esos sitios web pueden ver todo lo que carga, así que no les dé nada que no se sienta cómodo con que el mundo sepa.
Si bien esos sitios web se explican por sí mismos, demostraremos cómo usar una herramienta de edición de fotos sin conexión gratuita, GIMP, para hacer un GIF. Si desea un archivo de video, use Kdenlive o un editor de video similar; solo asegúrese de ajustar la configuración para que todos sus cuadros se importen como clips de un segundo o menos, según la cantidad de cuadros por segundo que desee.
Para comenzar, descargue GIMP e instálelo en su computadora si aún no lo ha hecho. Ábrelo, luego ve a Archivo > Abrir como capas.
Encuentra dónde están los marcos que generaste y selecciónalos todos a la vez antes de hacer clic en "Abrir". (Mantenga presionada la tecla Mayús para seleccionar varios archivos rápidamente). GIMP importará todas sus imágenes como una capa separada en un lienzo. Queremos esto porque la forma en que funciona la generación de GIF de GIMP es recorrer cada capa de abajo hacia arriba, tratando cada capa consecutiva como el siguiente cuadro de la animación.
Ahora viene la parte divertida. Para ver una vista previa de su GIF, vaya a Filtros > Animación > Reproducción.
Presiona la barra espaciadora para reproducir y pausar el GIF. Si los fotogramas pasan demasiado rápido o demasiado lento, ajuste el FPS en la parte inferior del cuadro de diálogo de reproducción y haga clic en el botón Actualizar en la parte superior para volver a cargar la vista previa con la nueva velocidad de fotogramas.
Una vez que la animación se ve bien, es hora de generar el archivo GIF. Cierre la vista previa y haga clic en Archivo > Exportar como. Cuando escriba el nombre de guardado del archivo, agregue la extensión .gif
al final para que GIMP sepa que desea un GIF.
En el cuadro de diálogo de exportación de GIF que aparece, asegúrese de que la casilla "Como animación" esté marcada. Ajuste la cantidad de milisegundos entre fotogramas también si desea una velocidad de fotogramas diferente. Hay 1000 milisegundos en un segundo, por lo que 100 te darán alrededor de 10 FPS. Finalmente, haga clic en "Exportar".
Boom, tienes tu GIF animado completo.
Generar un video usando Deforum
Si desea crear animaciones más interesantes con Stable Diffusion y hacer que genere archivos de video en lugar de solo un montón de cuadros para que trabaje, use Deforum. Es un proyecto de síntesis de imágenes con una extensión disponible para la interfaz de usuario web Stable Diffusion que le permite dirigir y generar archivos de video MP4, incluso con audio. Es una herramienta muy poderosa y compleja con una gran cantidad de configuraciones para experimentar, incluidas las panorámicas y los zooms de la cámara, varias indicaciones e importación de videos.
Para nuestros propósitos, solo le presentaremos los conceptos básicos para generar una animación bastante simple pero interesante.
Paso 1: Instale la extensión Deforum
Para obtener la extensión Deforum, abra un símbolo del sistema y cambie los directorios a su carpeta stable-diffusion-web-ui
. Luego use este comando git clone para instalar Deforum en su carpeta de extensiones.
clon de git https://github.com/deforum-art/deforum-for-automatic1111-webui extensions/deforum
Inicie la interfaz de usuario web de Stable Diffusion como de costumbre y abra la pestaña Deforum que ahora está en su interfaz.
Sugerencia: la extensión Deforum viene lista con los valores predeterminados para que pueda presionar inmediatamente el botón "Generar" para crear un video de un conejo que se transforma en un gato, luego en un coco y luego en un durian. ¡Muy genial!
Paso 2: escriba sus indicaciones
Es posible que esté acostumbrado a escribir avisos individuales con Stable Diffusion, pero Deforum le permite escribir múltiples avisos que están "programados", lo que significa que en cualquier punto de la animación que elija, cambiará a generar cuadros en función del siguiente aviso en el programa.
Haga clic en la pestaña "Avisos" y cambie los avisos existentes a lo que desee, manteniendo la estructura de corchetes y pestañas en su lugar. Para nuestro ejemplo, usaremos este conjunto de indicaciones:
{ "0": "un robot se encuentra bajo el cielo nocturno durante una lluvia de meteoritos, estrellas fugaces, galaxias, el cosmos, la vía láctea, ultrarrealista, muy detallada, 4k uhd", "40": "una estación espacial vuela por el espacio durante una lluvia de meteoritos, ultra realista, muy detallada", "80": "explota una supernova, colores vibrantes, ultra realista, muy detallado" }
Entonces, ¿qué significan esos números? De forma predeterminada, Deforum genera 120 fotogramas para su animación y estamos dividiendo ese conjunto de fotogramas en tres partes. 0
significa el primer cuadro, por lo que este y todos los cuadros posteriores serán variaciones im2img del primer mensaje. Luego, en el cuadro 40, Stable Diffusion comenzará a hacer variaciones según nuestro segundo aviso. A los 80, cambia a la tercera. Puede agregar tantos cambios de solicitud como desee y ajustar el límite máximo de fotogramas en la pestaña Fotogramas clave según sea necesario.
Paso 3: Ajuste la configuración de Deforum
Probablemente ya haya notado que hay un montón de configuraciones involucradas en Deforum, pero revisaremos algunas para que pueda comenzar. Primero, en la pestaña "Ejecutar", encontrará muchas de sus configuraciones típicas de difusión estable. Cambie el nombre del lote, ingrese la semilla con la que desea comenzar (estamos reutilizando la de nuestro robot) y cambie la muestra a la que desea.
En la pestaña Fotogramas clave, puede ajustar el movimiento de la "cámara" para la animación. Está configurado de forma predeterminada para hacer zoom a intervalos, pero queremos agregar un movimiento de "panorámica" vertical, por lo que agregaremos 0:(-2), 100:(4)
al cuadro "Traducción Y". Eso le dice a Deforum que trate el primer cuadro como si estuviera en el píxel -2 en el eje Y, luego, en el cuadro 100, muévase al píxel 4. Eso nos dará una ligera panorámica hacia arriba a medida que avanza la animación.
En la pestaña Salida, marcaremos la casilla "Crear GIF", que nos dará un archivo GIF además del archivo de video MPEG. Aquí también es donde agregaría audio con la configuración "Agregar banda sonora" y "Ruta de la banda sonora", si tiene alguna.
Paso 4: genera tu video
Finalmente, presione ese gran botón "Generar". Dado que Deforum está creando y uniendo muchos marcos, esto llevará tiempo, así que tome un café mientras espera. Cuando esté completo, encontrará el archivo MPEG, la versión GIF, además de cada cuadro individual y una lectura de la configuración que usó bajo el nombre del lote en su directorio /outputs/img2img-images
.
Esto es lo que nuestro aviso nos consiguió:
No es un éxito de taquilla de verano, ¡pero sigue siendo fascinante! Consulte la guía de inicio rápido oficial de Deforum para obtener información sobre todas las demás perillas y diales que puede ajustar.
Si está buscando otros proyectos geniales de IA, aprenda cómo generar paquetes de texturas de Minecraft con Stable Diffusion o comience con ChatGPT, además de las cosas sorprendentes que puede hacer con ChatGPT.