Como usar a difusão estável para criar GIFs e vídeos AI

Publicados: 2023-02-20
Uma câmera de vídeo, conforme ilustrado por Stable Diffusion.
Difusão estável
Para criar uma animação usando a interface do usuário da Web Stable Diffusion, use o Inpaint para mascarar o que deseja mover e, em seguida, gere variações e importe-as para um GIF ou criador de vídeo. Como alternativa, instale a extensão Deforum para gerar animações do zero.

A difusão estável é capaz de gerar mais do que apenas imagens estáticas. Com algumas ferramentas integradas e uma extensão especial, você pode obter um vídeo AI muito legal sem muito esforço. Veja como gerar quadros para um GIF animado ou um arquivo de vídeo real com Stable Diffusion.

Índice

Difusão estável pode gerar vídeo?
Animar uma imagem usando o Inpaint
Etapa 1: obter uma imagem e seu prompt
Etapa 2: mascarar as peças para animar com InPaint
Etapa 3: Gere seus quadros
Etapa 4: atualize seus quadros em lote (opcional)
Passo 5: Animar os quadros em um GIF ou Video Maker
Gerar um vídeo usando o Deforum
Passo 1: Instale a Extensão Deforum
Etapa 2: Escreva seus prompts
Etapa 3: ajustar as configurações do Deforum
Passo 4: Gere Seu Vídeo

Difusão estável pode gerar vídeo?

Embora o filme gerado por IA ainda seja um campo incipiente, é tecnicamente possível criar algumas animações simples com Stable Diffusion, seja como um GIF ou um arquivo de vídeo real. Existem limitações embora.

Como o img2img facilita a geração de variações de uma imagem específica, o Stable Diffusion se presta bem à criação rápida de vários quadros para animações, especialmente as cíclicas. Pense em chamas saindo de um incêndio, rodas girando em um carro ou água espirrando em uma fonte. Um uso prático pode ser dar um ambiente realista a algumas artes de RPG:


Difusão estável

Você pode até fazer vídeos baseados em imagens reais em vez de sintéticas. Aqui tirei uma foto de uma planta sendo regada e, com alguns cliques, animei o fluxo de água:


Jordan Gloor / Difusão estável

Se você deseja animar um objeto para que ele se mova do ponto A ao ponto B, isso é uma tarefa difícil para a difusão estável (pelo menos por enquanto). Você provavelmente gastaria muito tempo ajustando prompts e configurações e, em seguida, examinando uma tonelada de saída para encontrar os melhores quadros e colocá-los na ordem correta. Nesse ponto, você também pode usar o Adobe Illustrator e começar a animar à mão.

Apesar disso, você pode criar algumas animações simples e legais com uma configuração básica de Stable Diffusion e outra ferramenta de sua escolha para unir os quadros em uma animação. Há também um projeto chamado Deforum que usa Stable Diffusion para criar animações “morphing” que parecem bem interessantes. Ele cuspirá um vídeo MP4, portanto, nenhuma ferramenta externa é necessária e até permite adicionar áudio. Mostraremos o básico de ambos os métodos.

Observação: para o propósito deste artigo, vamos supor que você já tenha instalado uma interface gráfica para Stable Diffusion, especificamente a IU da web Stable Diffusion do AUTOMATIC1111. Comparado com a instalação de linha de comando padrão, torna a geração de imagens muito mais fácil e vem com uma tonelada de ferramentas úteis e extras.

Animar uma imagem usando o Inpaint

Usando a ferramenta img2img Inpaint, você pode destacar a parte de uma imagem que deseja animar e gerar diversas variações dela. Em seguida, você os colocará em um GIF ou criador de vídeo e salvará os quadros como uma animação.

Etapa 1: obter uma imagem e seu prompt

Comece soltando uma imagem que deseja animar na guia Inpaint da ferramenta img2img. Se você ainda não tiver um gerado, dedique algum tempo escrevendo um bom prompt para obter uma boa foto inicial. Você também pode importar uma imagem que você mesmo fotografou ou desenhou.

Se você estiver importando uma imagem que não gerou com Stable Diffusion, ainda precisará de um prompt apropriado para gerar variações, então clique em “Interrogate CLIP” no topo da página Img2Img. Isso gerará um prompt inicial com base no que o Stable Diffusion pensa que sua imagem contém. Conclua o prompt adicionando quaisquer outros detalhes importantes.

Para o nosso guia, geramos uma imagem 512 × 512 de um robô sob um céu noturno que queremos dar uma espécie de animação de lapso de tempo, com estrelas cadentes e galáxias passando.

Um robô parado em um campo sob um céu estrelado.
Difusão estável

Se você deseja acompanhar com precisão, pode recriá-lo com o prompt que usamos:

 um robô fica em um campo olhando para o céu noturno durante uma chuva de meteoros, estrelas cadentes, galáxias, cosmos, via láctea, ultra realista, altamente detalhado, 4k uhd

E estas são as configurações que usamos:

Ponto de verificação: difusão estável 2.0

Método de amostragem: DPM++ SDE

Etapas de amostragem: 20

Escala CFG: 5

Semente: 4177542269

Etapa 2: mascarar as peças para animar com InPaint

Com sua imagem e prompt no lugar, na ferramenta Inpaint, use o pincel para mascarar (cobrir) todas as partes da imagem que deseja animar. Deixe descoberto tudo o que quiser estático.

Em nosso exemplo, estamos cobrindo a maior parte do céu. Deixamos um pouco de almofada ao redor do robô porque em nossos testes, se chegássemos muito perto, a difusão estável às vezes adicionava antenas e outros apêndices ao robô.

Use o pincel Inpaint para cobrir todas as partes da imagem que deseja ver animadas.

Dica: Você pode ajustar o tamanho do pincel Inpaint com um controle deslizante clicando no botão do pincel no canto superior direito da tela.

Etapa 3: Gere seus quadros

Agora que você mascarou todas as partes da imagem que deseja ver em movimento, é hora de gerar os quadros de nossa animação. Mas, primeiro, você deve certificar-se de que o img2img tenha as configurações corretas. Eles podem ser confusos, então explicaremos o que alguns deles significam e por que você pode ou não querer ajustá-los:

  • Modo de máscara: Inpaint Masked – Isso garante que tudo o que está coberto seja alterado e não o contrário. Se, por algum motivo, você quiser modificar a parte não mascarada, altere-a para “Inpaint Not Masked”.
  • Conteúdo Mascarado: Original – Isso garante que o Stable Diffusion veja e leve em consideração a imagem existente ao gerar variações. Caso contrário, considerará o conteúdo mascarado como uma tela em branco ou aleatória.
  • Inpaint Area: Whole Picture – Isso força a Stable Diffusion a gerar uma imagem totalmente nova para cada quadro antes de integrá-la à imagem original. Mudar para “Only Masked” pode acelerar a geração, mas também pode dar resultados piores.
  • Método de amostragem: DPM++ SDE – Este é o mesmo método de amostragem que usamos para gerar nossa imagem original e vamos continuar com ele para garantir uma aparência consistente. Se você não sabe o que usar, “Euler a” é uma boa escolha.
  • Contagem de lote: 60 – Esta é a quantidade de imagens que você deseja gerar. Você pode precisar de mais ou menos, dependendo de quão rápido e longo você deseja que sua sequência de animação seja.
  • Escala CFG: 5 – A escala CFG, em certo sentido, determina quanta liberdade criativa Stable Diffusion tem. Quanto maior o número, mais estritamente Stable Diffusion tentará seguir seu prompt. Aumentá-lo e obter bons resultados requer ter um prompt muito bom.
  • Força de redução de ruído: 0,3 – Possivelmente a configuração mais importante para este projeto, a escala de redução de ruído determina o quanto a difusão estável alterará a imagem original. Você provavelmente deseja mantê-lo baixo em torno de 0,2 ou 0,3, pois muitas alterações quadro a quadro podem arruinar a animação.
  • Semente: -1 – Diz à Difusão Estável para começar com uma semente aleatória. Não recomendamos reutilizar a semente de sua imagem original, pois isso reduz a quantidade de variação que você obterá (se houver).

Com todas as suas configurações definidas, clique em “Gerar” e relaxe enquanto o Stable Diffusion desenha seus quadros de animação para você. Você os encontrará na pasta /outputs/img2img-images do seu diretório Stable Diffusion. Se você não gostar dos resultados, ajuste as configurações (provavelmente começando com intensidade de redução de ruído e etapas de amostragem) e tente novamente.

Etapa 4: atualize seus quadros em lote (opcional)

Se você planeja criar um vídeo de alta definição, lembre-se de atualizar todos os quadros recém-gerados para a resolução desejada. Clique em “Enviar para Extras” para começar.

Dentro de Extras, mude para a aba “Batch Process”.

Ajuste a escala "Redimensionar" para o número de vezes que você deseja redimensionar (definir para 2 mudará as imagens de 512 × 512 para imagens de 1024 × 1024). Alternativamente, mude de “Scale by” para “Scale to” e defina uma resolução específica. Defina também “Upscaler 1” para o upscaler de sua escolha. Tivemos bons resultados com R-ESRGAN 4x+, mas sinta-se à vontade para experimentar para ver qual lida melhor com suas imagens.

Em seguida, clique em “Gerar” e o Stable Diffusion fornecerá uma versão de alta resolução de cada quadro, salva em sua pasta /outputs/extras .

Passo 5: Animar os quadros em um GIF ou Video Maker

Agora que você tem seus quadros, é hora de juntá-los e criar sua animação final. Existem muitas ferramentas com as quais você pode fazer isso, incluindo sites dedicados gratuitos, como Ezgif e flixier, que são fáceis de usar e possuem muitos controles de ajuste fino. No entanto, lembre-se de que esses sites podem ver tudo o que você enviar, então não dê a eles nada que você não se sinta confortável com o mundo sabendo.

Embora esses sites sejam bastante autoexplicativos, demonstraremos como você usa uma ferramenta de edição de fotos off-line gratuita, o GIMP, para criar um GIF. Se você quiser um arquivo de vídeo, use o Kdenlive ou um editor de vídeo semelhante - apenas certifique-se de ajustar as configurações para que todos os seus quadros sejam importados como clipes de um segundo ou menos, dependendo de quantos quadros por segundo você deseja.

Para começar, baixe o GIMP e instale-o em seu computador, caso ainda não o tenha feito. Inicie-o e vá para Arquivo > Abrir como Camadas.

Encontre onde estão os quadros que você gerou e selecione todos eles de uma vez antes de clicar em “Abrir”. (Segure a tecla Shift para selecionar vários arquivos rapidamente.) O GIMP importará todas as suas imagens como uma camada separada em uma tela. Queremos isso porque a geração de GIF do GIMP funciona passando por cada camada de baixo para cima, tratando cada camada consecutiva como o próximo quadro na animação.

Agora é a parte divertida. Para assistir a uma prévia do seu GIF, vá para Filtros > Animação > Reprodução.

Pressione a barra de espaço para reproduzir e pausar o GIF. Se os quadros forem muito rápidos ou lentos, ajuste o FPS na parte inferior da caixa de diálogo de reprodução e clique no botão de atualização na parte superior para recarregar a visualização com a nova taxa de quadros.

Assim que a animação parecer boa para você, é hora de gerar o arquivo GIF. Feche a visualização e clique em Arquivo > Exportar como. Ao digitar o nome do salvamento do arquivo, adicione a extensão .gif ao final para que o GIMP saiba que você deseja um GIF.

Adicione ".gif" ao nome do arquivo ao exportar no GIMP.

Na caixa de diálogo de exportação de GIF que aparece, verifique se a caixa “Como animação” está marcada. Ajuste o número de milissegundos entre os quadros também se desejar uma taxa de quadros diferente. Existem 1000 milissegundos em um segundo, então 100 vai te dar cerca de 10 FPS. Por fim, clique em “Exportar”.

Boom, você tem seu GIF animado completo.


Gerar um vídeo usando o Deforum

Se você deseja criar animações mais interessantes com o Stable Diffusion e fazer com que ele produza arquivos de vídeo em vez de apenas um monte de quadros para você trabalhar, use o Deforum. É um projeto de síntese de imagem com uma extensão disponível para a interface do usuário da Web Stable Diffusion que permite direcionar e gerar arquivos de vídeo MP4, mesmo com áudio. É uma ferramenta muito poderosa e complexa com muitas configurações para experimentar, incluindo panorâmicas e zooms da câmera, vários prompts e importação de vídeo.

Para nossos propósitos, apresentaremos apenas os fundamentos da geração de uma animação bastante simples, mas interessante.

Passo 1: Instale a Extensão Deforum

Para obter a extensão Deforum, abra um prompt de comando e altere os diretórios para a pasta stable-diffusion-web-ui . Em seguida, use este comando git clone para instalar o Deforum em sua pasta de extensões.

 git clone https://github.com/deforum-art/deforum-for-automatic1111-webui extensions/deforum

Inicie a interface do usuário da Web do Stable Diffusion normalmente e abra a guia Deforum que agora está em sua interface.

Dica: a extensão Deforum vem pronta com padrões para que você possa clicar imediatamente no botão “Gerar” para criar um vídeo de um coelho se transformando em um gato, depois em um coco e depois em um durião. Muito legal!

Etapa 2: Escreva seus prompts

Você pode estar acostumado a escrever prompts individuais com Stable Diffusion, mas o Deforum permite que você escreva vários prompts que são “agendados”, o que significa que, em qualquer ponto da animação que você escolher, ele mudará para gerar quadros com base no próximo prompt da programação.

Clique na guia “Prompts” e altere os prompts existentes para o que você quiser, mantendo o colchete e a estrutura da guia no lugar. Para nosso exemplo, usaremos este conjunto de prompts:

 {
    "0": "um robô fica sob o céu noturno durante uma chuva de meteoros, estrelas cadentes, galáxias, cosmos, via láctea, ultra realista, altamente detalhado, 4k uhd",
    "40": "uma estação espacial voa pelo espaço durante uma chuva de meteoros, ultra realista, altamente detalhada",
    "80": "explode uma supernova, cores vibrantes, ultra realista, altamente detalhado"
}

Então, o que esses números significam? Por padrão, o Deforum gera 120 quadros para sua animação e estamos dividindo esse conjunto de quadros em três partes. 0 significa o primeiro quadro, então ele e todos os quadros depois dele serão variações im2img do primeiro prompt. Em seguida, no quadro 40, Stable Diffusion começará a fazer variações com base em nosso segundo prompt. Aos 80, muda para o terceiro. Você pode adicionar quantas alterações de prompt desejar e ajustar o limite máximo de quadros na guia Quadros-chave conforme necessário.

Etapa 3: ajustar as configurações do Deforum

Você provavelmente já notou que há uma tonelada de configurações envolvidas no Deforum, mas vamos passar por algumas para você começar. Primeiro, na guia “Executar”, você encontrará muitas das configurações típicas de Stable Diffusion. Renomeie o lote, insira a semente com a qual deseja começar (estamos reutilizando a do nosso robô) e altere o amostrador para o que deseja.

Na guia "Executar", altere o nome do amostrador, da semente e do lote para suas configurações preferidas.

Na aba Keyframes você pode ajustar o movimento da “câmera” para a animação. É definido por padrão para ampliar em intervalos, mas queremos adicionar um movimento vertical de “pan”, então adicionaremos 0:(-2), 100:(4) ao quadro “Translation Y”. Isso diz ao Deforum para tratar o primeiro quadro como estando no pixel -2 no eixo Y, então, no quadro 100, mova para o pixel 4. Isso nos dará uma leve panorâmica para cima à medida que a animação avança.

Insira valores no campo "Translation Y" se desejar que a visualização da animação mude verticalmente.

Na guia Saída, marcaremos a caixa “Criar GIF” que nos dará um arquivo GIF além do arquivo de vídeo MPEG. Também é aqui que você adicionaria áudio com as configurações “Adicionar trilha sonora” e “Caminho da trilha sonora”, se tiver alguma.

Na guia Saída, marque a caixa "Criar GIF" se desejar um arquivo GIF.

Passo 4: Gere Seu Vídeo

Finalmente, aperte o grande botão “Gerar”. Como o Deforum está criando e costurando muitos quadros, isso levará tempo, então pegue um café enquanto espera. Quando estiver completo, você encontrará o arquivo MPEG, a versão GIF, além de cada quadro individual e uma leitura das configurações que você usou sob o nome do lote em seu diretório /outputs/img2img-images .

Aqui está o que nosso prompt nos trouxe:

Não é um blockbuster de verão, mas ainda é hipnotizante! Confira o guia de início rápido oficial do Deforum para aprender sobre todos os outros botões e mostradores que você pode ajustar.


Se você está procurando outros projetos legais de IA, aprenda como gerar pacotes de textura do Minecraft com Stable Diffusion ou comece com o ChatGPT, além das coisas surpreendentes que você pode fazer com o ChatGPT.