Comment utiliser la diffusion stable pour créer des GIF et des vidéos AI
Publié: 2023-02-20Stable Diffusion est capable de générer plus que de simples images fixes. Avec quelques outils intégrés et une extension spéciale, vous pouvez obtenir une vidéo AI très cool sans trop d'effort. Voici comment générer des images pour un GIF animé ou un fichier vidéo réel avec Stable Diffusion.
Une diffusion stable peut-elle générer de la vidéo ?
Animer une image avec Inpaint
Étape 1 : Obtenir une image et son invite
Étape 2 : Masquer les parties à animer avec InPaint
Étape 3 : Générez vos cadres
Étape 4 : Mise à l'échelle par lots de vos cadres (facultatif)
Étape 5 : animer les cadres dans un GIF ou un créateur de vidéo
Générer une vidéo avec Deforum
Étape 1 : Installer l'extension Deforum
Étape 2 : Rédigez vos invites
Étape 3 : Ajustez les paramètres de Deforum
Étape 4 : Générez votre vidéo
Une diffusion stable peut-elle générer de la vidéo ?
Bien que le film généré par l'IA soit encore un domaine naissant, il est techniquement possible de créer des animations simples avec Stable Diffusion, soit sous forme de GIF, soit sous forme de fichier vidéo réel. Il y a cependant des limites.
Parce que img2img facilite la génération de variations d'une image particulière, Stable Diffusion se prête bien à la création rapide d'un tas d'images pour les animations, cycliques en particulier. Pensez aux flammes qui s'échappent d'un feu, aux roues qui tournent sur une voiture ou à l'eau qui éclabousse dans une fontaine. Une utilisation pratique pourrait être de donner une ambiance réaliste à certaines illustrations RPG :
Diffusion stable
Vous pouvez même créer des vidéos basées sur des images réelles au lieu d'images synthétiques. Ici, j'ai pris une photo d'une plante en train d'être arrosée et, en quelques clics, j'ai animé le jet d'eau :
Jordan Gloor / Diffusion stable
Si vous voulez animer un objet pour qu'il se déplace d'un point A à un point B, c'est un défi de taille pour Stable Diffusion (du moins pour l'instant). Vous passerez probablement beaucoup de temps à peaufiner les invites et les paramètres, puis à vous pencher sur une tonne de résultats pour trouver les meilleures images et les placer dans le bon ordre. À ce stade, autant sortir Adobe Illustrator et commencer à animer à la main.
Malgré cela, vous pouvez créer des animations simples et sympas avec une configuration de base de diffusion stable et un autre outil de votre choix pour assembler les images dans une animation. Il existe également un projet appelé Deforum qui utilise Stable Diffusion pour créer des animations de « morphing » qui semblent assez intéressantes. Il crachera une vidéo MP4, donc aucun outil externe n'est requis, et il vous permet même d'ajouter de l'audio. Nous allons vous montrer les bases des deux méthodes.
Remarque : Pour les besoins de cet article, nous allons supposer que vous avez déjà installé une interface graphique pour Stable Diffusion, en particulier l'interface utilisateur Web Stable Diffusion d'AUTOMATIC1111. Par rapport à l'installation standard en ligne de commande, il facilite la génération d'images et est livré avec une tonne d'outils et d'extras pratiques.
Animer une image avec Inpaint
À l'aide de l'outil img2img Inpaint, vous pouvez mettre en évidence la partie d'une image que vous souhaitez animer et en générer plusieurs variantes. Ensuite, vous les déposerez dans un GIF ou un créateur de vidéos et enregistrerez les images sous forme d'animation.
Étape 1 : Obtenir une image et son invite
Commencez par déposer une image que vous souhaitez animer dans l'onglet Inpaint de l'outil img2img. Si vous n'en avez pas déjà généré, prenez le temps d'écrire une bonne invite afin d'obtenir une bonne photo de départ. Vous pouvez également importer une image que vous avez photographiée ou dessinée vous-même.
Si vous importez une image que vous n'avez pas générée avec Stable Diffusion, vous aurez toujours besoin d'une invite appropriée pour générer des variantes, alors cliquez sur "Interrogate CLIP" en haut de la page Img2Img. Cela générera une invite de démarrage basée sur ce que Stable Diffusion pense que votre image contient. Complétez l'invite en ajoutant tout autre détail important.
Pour notre guide, nous avons généré une image 512×512 d'un robot sous un ciel nocturne que nous voulons donner une sorte d'animation en accéléré, avec des étoiles filantes et des galaxies qui passent.
Si vous souhaitez suivre précisément, vous pouvez le recréer avec l'invite que nous avons utilisée :
un robot se tient dans un champ regardant le ciel nocturne pendant une pluie de météorites, étoiles filantes, galaxies, le cosmos, voie lactée, ultra réaliste, très détaillé, 4k uhd
Et voici les paramètres que nous avons utilisés :
Point de contrôle : Diffusion stable 2.0
Méthode d'échantillonnage : DPM++ SDE
Étapes d'échantillonnage : 20
Échelle CFG : 5
Semence : 4177542269
Étape 2 : Masquer les parties à animer avec InPaint
Avec votre image et votre invite en place, dans l'outil Inpaint, utilisez le pinceau pour masquer (couvrir) chaque partie de l'image que vous souhaitez animer. Laissez à découvert tout ce que vous voulez statique.
Dans notre exemple, nous couvrons la majeure partie du ciel. Nous avons laissé un peu de coussin autour du robot car lors de nos tests, si nous nous rapprochions trop, Stable Diffusion ajoutait parfois des antennes et d'autres appendices au robot.
Conseil : Vous pouvez ajuster la taille du pinceau Inpaint à l'aide d'un curseur en cliquant sur le bouton du pinceau dans le coin supérieur droit du canevas.
Étape 3 : Générez vos cadres
Maintenant que vous avez masqué chaque partie de votre image que vous souhaitez voir bouger, il est temps de générer les images de notre animation. Mais d'abord, vous voudrez vous assurer que img2img a les bons paramètres. Ils peuvent prêter à confusion, nous allons donc expliquer ce que certains d'entre eux signifient et pourquoi vous pouvez ou non vouloir les modifier :
- Mode Masque : Inpaint Masked - Cela garantit que tout ce qui est couvert est modifié et non l'inverse. Si, pour une raison quelconque, vous souhaitez modifier la partie non masquée, remplacez-la par "Inpaint Not Masked".
- Contenu masqué : original - Cela garantit que Stable Diffusion verra et prendra en compte l'image existante lorsqu'elle génère des variations. Sinon, il considérera le contenu masqué comme une toile vierge ou aléatoire.
- Inpaint Area: Whole Picture - Cela force Stable Diffusion à générer une toute nouvelle image pour chaque image avant de l'intégrer à l'image d'origine. Passer à "Masqué uniquement" peut accélérer la génération, mais peut également vous donner de moins bons résultats.
- Méthode d'échantillonnage : DPM++ SDE - Il s'agit de la même méthode d'échantillonnage que celle que nous avons utilisée pour générer notre image d'origine, et nous nous y tenons pour garantir un aspect cohérent. Si vous ne savez pas quoi utiliser, "Euler a" est un bon choix complet.
- Nombre de lots : 60 – C'est le nombre d'images que vous souhaitez générer. Vous aurez peut-être besoin de plus ou moins selon la vitesse et la durée souhaitées pour votre séquence d'animation.
- Échelle CFG : 5 - L'échelle CFG, en un sens, détermine la liberté de création de Stable Diffusion. Plus le nombre est élevé, plus Stable Diffusion tentera de suivre votre invite. L'augmenter et obtenir de bons résultats nécessite d'avoir une très bonne invite.
- Force de débruitage : 0,3 - Probablement le paramètre le plus important pour ce projet, l'échelle de débruitage détermine dans quelle mesure la diffusion stable modifiera l'image d'origine. Vous voudrez probablement le maintenir autour de 0,2 ou 0,3, car trop de changement d'image à image peut ruiner l'animation.
- Graine : -1 – Cela indique à Stable Diffusion de commencer avec une graine aléatoire. Nous ne recommandons pas de réutiliser la graine de votre image d'origine, car cela réduit la quantité de variation que vous obtiendrez (le cas échéant).
Une fois tous vos paramètres en place, cliquez sur "Générer" et asseyez-vous pendant que Stable Diffusion dessine vos images d'animation pour vous. Vous les trouverez dans le dossier /outputs/img2img-images
de votre répertoire Stable Diffusion. Si vous n'aimez pas les résultats, ajustez les paramètres (probablement en commençant par la force de débruitage et les étapes d'échantillonnage) et réessayez.
Étape 4 : Mise à l'échelle par lots de vos cadres (facultatif)
Si vous envisagez de créer une vidéo haute définition, n'oubliez pas de mettre à l'échelle toutes vos images nouvellement générées à la résolution souhaitée. Cliquez sur "Envoyer aux extras" pour commencer.
Dans Extras, passez à l'onglet "Traitement par lots".
Ajustez l'échelle "Redimensionner" au nombre de fois que vous voulez qu'elle soit redimensionnée (le réglage sur 2 changera les images 512×512 en images 1024×1024). Alternativement, passez de "Scale by" à "Scale to" et définissez une résolution spécifique. Réglez également "Upscaler 1" sur l'upscaler de votre choix. Nous avons eu des résultats assez bons avec R-ESRGAN 4x+, mais n'hésitez pas à expérimenter pour voir lequel gère le mieux vos images.
Cliquez ensuite sur "Générer" et Stable Diffusion vous donnera une version à plus haute résolution de chaque image, enregistrée dans votre dossier /outputs/extras
.
Étape 5 : animer les cadres dans un GIF ou un créateur de vidéo
Maintenant que vous avez vos images, il est temps de les assembler et de créer votre animation finale. Il existe de nombreux outils avec lesquels vous pouvez le faire, y compris des sites Web dédiés gratuits comme Ezgif et flixier qui sont faciles à utiliser et qui ont beaucoup de commandes de réglage fin. Cependant, rappelez-vous que ces sites Web peuvent voir tout ce que vous téléchargez, alors ne leur donnez rien que vous ne soyez pas à l'aise avec le monde.
Bien que ces sites Web soient assez explicites, nous allons vous montrer comment utiliser un outil de retouche photo hors ligne gratuit, GIMP, pour créer un GIF. Si vous voulez un fichier vidéo, utilisez plutôt Kdenlive ou un éditeur vidéo similaire. Assurez-vous simplement de modifier les paramètres afin que toutes vos images soient importées sous forme de clips d'une seconde ou moins, en fonction du nombre d'images par seconde que vous souhaitez.
Pour commencer, téléchargez GIMP et installez-le sur votre ordinateur si vous ne l'avez pas déjà fait. Lancez-le, puis allez dans Fichier> Ouvrir en tant que calques.
Trouvez où se trouvent les cadres que vous avez générés et sélectionnez-les tous en même temps avant de cliquer sur "Ouvrir". (Maintenez la touche Maj enfoncée pour sélectionner plusieurs fichiers rapidement.) GIMP importera toutes vos images en tant que calque séparé sur une toile. Nous voulons cela parce que la façon dont la génération GIF de GIMP fonctionne consiste à parcourir chaque couche de bas en haut, en traitant chaque couche consécutive comme la prochaine image de l'animation.
C'est maintenant la partie amusante. Pour voir un aperçu de votre GIF, accédez à Filtres > Animation > Lecture.
Appuyez sur la barre d'espace pour lire et mettre en pause le GIF. Si les images passent trop vite ou trop lentement, ajustez le FPS en bas de la boîte de dialogue de lecture et cliquez sur le bouton d'actualisation en haut pour recharger l'aperçu avec la nouvelle fréquence d'images.
Une fois que l'animation vous convient, il est temps de générer le fichier GIF. Fermez l'aperçu et cliquez sur Fichier > Exporter sous. Lorsque vous tapez le nom de sauvegarde du fichier, ajoutez l'extension .gif
à la fin afin que GIMP sache que vous voulez un GIF.
Dans la boîte de dialogue d'exportation GIF qui apparaît, assurez-vous que la case "Comme animation" est cochée. Ajustez également le nombre de millisecondes entre les images si vous souhaitez une fréquence d'images différente. Il y a 1000 millisecondes dans une seconde, donc 100 vous permettront d'atteindre environ 10 FPS. Enfin, cliquez sur "Exporter".
Boom, vous avez votre GIF animé complet.
Générer une vidéo avec Deforum
Si vous souhaitez créer des animations plus intéressantes avec Stable Diffusion et qu'il produise des fichiers vidéo au lieu de simplement un tas d'images avec lesquelles travailler, utilisez Deforum. Il s'agit d'un projet de synthèse d'images avec une extension disponible pour l'interface utilisateur Web Stable Diffusion qui vous permet de diriger et de générer des fichiers vidéo MP4, même avec de l'audio. C'est un outil très puissant et complexe avec de nombreux paramètres à expérimenter, y compris les panoramiques et les zooms de la caméra, plusieurs invites et l'importation de vidéos.
Pour nos besoins, nous vous présenterons simplement les bases de la génération d'une animation assez simple mais intéressante.
Étape 1 : Installer l'extension Deforum
Pour obtenir l'extension Deforum, ouvrez une invite de commande et modifiez les répertoires dans votre dossier stable-diffusion-web-ui
. Utilisez ensuite cette commande git clone pour installer Deforum dans votre dossier d'extensions.
git clone https://github.com/deforum-art/deforum-for-automatic1111-webui extensions/deforum
Lancez l'interface utilisateur Web de Stable Diffusion comme d'habitude et ouvrez l'onglet Deforum qui se trouve maintenant dans votre interface.
Astuce : L'extension Deforum est livrée avec des valeurs par défaut en place afin que vous puissiez immédiatement appuyer sur le bouton "Générer" pour créer une vidéo d'un lapin se transformant en chat, puis en noix de coco, puis en durian. Plutôt cool!
Étape 2 : Rédigez vos invites
Vous avez peut-être l'habitude d'écrire des invites individuelles avec Stable Diffusion, mais Deforum vous permet d'écrire plusieurs invites "programmées", ce qui signifie qu'à tout moment de l'animation que vous choisissez, il passera à la génération d'images en fonction de l'invite suivante dans le calendrier.
Cliquez sur l'onglet "Invites" et modifiez les invites existantes comme bon vous semble, en gardant la structure des crochets et des onglets en place. Pour notre exemple, nous utiliserons cet ensemble d'invites :
{ "0": "un robot se tient sous le ciel nocturne pendant une pluie de météores, étoiles filantes, galaxies, le cosmos, voie lactée, ultra réaliste, très détaillé, 4k uhd", "40": "une station spatiale vole dans l'espace pendant une pluie de météorites, ultra réaliste, très détaillée", "80": "une supernova explose, couleurs vibrantes, ultra réalistes, très détaillées" }
Alors que signifient ces chiffres ? Par défaut, Deforum génère 120 images pour votre animation, et nous divisons cet ensemble d'images en trois parties. 0
signifie la première image, donc elle et toutes les images après seront des variations im2img de la première invite. Ensuite, à l'image 40, Stable Diffusion commencera à faire des variations en fonction de notre deuxième invite. A 80 ans, il passe au troisième. Vous pouvez ajouter autant de modifications d'invite que vous le souhaitez et ajuster la limite maximale d'images dans l'onglet Images clés selon vos besoins.
Étape 3 : Ajustez les paramètres de Deforum
Vous avez probablement déjà remarqué qu'il y a une tonne de paramètres impliqués dans Deforum, mais nous allons en parcourir quelques-uns pour vous aider à démarrer. Tout d'abord, dans l'onglet "Exécuter", vous trouverez bon nombre de vos paramètres de diffusion stable typiques. Renommez le lot, entrez la graine avec laquelle vous voulez commencer (nous réutilisons celle pour notre robot) et changez l'échantillonneur pour celui que vous voulez.
Dans l'onglet Images clés, vous pouvez ajuster le mouvement de la "caméra" pour l'animation. Il est réglé par défaut pour zoomer à intervalles, mais nous voulons ajouter un mouvement de "panoramique" vertical, nous allons donc ajouter 0:(-2), 100:(4)
au cadre "Translation Y". Cela indique à Deforum de traiter la première image comme étant au pixel -2 sur l'axe Y, puis à l'image 100 de passer au pixel 4. Cela nous donnera un léger panoramique vers le haut au fur et à mesure que l'animation progresse.
Dans l'onglet Sortie, nous allons cocher la case "Make GIF" qui nous donnera un fichier GIF en plus du fichier vidéo MPEG. C'est également là que vous ajouteriez de l'audio avec les paramètres "Ajouter une bande son" et "Chemin de la bande son", si vous en avez.
Étape 4 : Générez votre vidéo
Enfin, appuyez sur ce gros bouton "Générer". Étant donné que Deforum crée et assemble de nombreux cadres, cela prendra du temps, alors prenez un café en attendant. Une fois terminé, vous trouverez le fichier MPEG, la version GIF, ainsi que chaque image individuelle et une lecture des paramètres que vous avez utilisés sous le nom du lot dans votre répertoire /outputs/img2img-images
.
Voici ce que notre invite nous a donné :
Ce n'est pas un blockbuster de l'été, mais c'est quand même assez fascinant ! Consultez le guide de démarrage rapide officiel de Deforum pour en savoir plus sur tous les autres boutons et cadrans que vous pouvez régler.
Si vous recherchez d'autres projets d'IA sympas, apprenez à générer des packs de textures Minecraft avec Stable Diffusion ou lancez-vous avec ChatGPT, ainsi que les choses surprenantes que vous pouvez faire avec ChatGPT.