Aller au contenu

Planification d’un pipeline d’animation EbSynth et Stable Diffusion

Alors, il y a cette méthode vraiment intéressante pour faire des vidéos avec Stable Diffusion et EbSynth. Ça devrait augmenter la persistance et réduire le flickering, si je m’y prends bien.

On dirait que ça marche super bien pour le rendu de vraies personnes. Mais je me dis que si j’ajustais un peu la technique, en ajoutant un environnement de jeu et un avatar qui parle, je pourrais l’utiliser pour pratiquement n’importe quel style d’animation.

L’autre chose dont je pense avoir besoin, c’est plus d’images clés EbSynth. Quatre suffiront pour une dizaine de secondes, mais ça me paraît un peu juste. Surtout pour un test plus long. C’est pas marrant si on ne pousse pas jusqu’à la limite. Alors je me dis... 8-12 images clés, peut-être ? Il faudra que je teste.

Le pipeline de personnage et de capture

Mon plan d’attaque : compiler un talker en créant un nouvel export Tilde Dawn, et la convertir en vrm. Faire le truc avec l’HDRP, espérer que les colliders fonctionnent, mettre un peu de physique sur les tissus pour sa tenue d’enfer, et ensuite rendre une vidéo d’une minute sur le personnage, avec mes capacités minimales en mocap. Donc visage, cou et épaules, et peut-être les mains si je me sens d’humeur vraiment masochiste.

Je vais router tout ça avec vseeface, en injectant des données OSC dans Unity. On sait que je peux tout gérer jusqu’ici, parce que vous m’avez déjà vue faire chaque étape de ce processus.

Alors, qu’est-ce qu’on sait sur le rendu de ce personnage spécifique avec l’IA ? Eh bien, on sait que Tilde rend magnifiquement dans Stable Diffusion avec mon modèle bod_positivity_v3 pour sd 2.x. Elle faisait, après tout, partie des données d’entraînement. Je vais devoir la ressortir du stockage long terme, mais je l’ai toujours.

Le choix des images clés

L’étape suivante, c’est d’extraire 8-12 images de la vidéo. Ça doit inclure le personnage faisant certains blendshapes essentiels comme le pucker et le JawOpen. Le reste est réservé aux changements de contexte, comme le mouvement de la tête ou le personnage qui regarde en haut, en bas ou sur les côtés. Je vais essayer de garder la tête immobile pendant le tournage, mais on verra.

Et ensuite, je sors les images en les exportant depuis Blender ou DaVinci Resolve. Je connais Blender beaucoup trop bien à ce stade, et je ne connais pas assez DaVinci, donc je passerai probablement par là.

La passe de rendu expérimentale

Cette prochaine partie, c’est du territoire inexploré.

Une fois les images choisies, je les balance dans mon éditeur de photos et je fais un sprite sheet avec nos images.

Ensuite, je m’en servirai comme inits, et je passerai le tout dans Stable Diffusion avec une normal map via Controlnet.

Les gars que j’ai vus utiliser cette technique utilisaient Lineart au lieu de la normal map, mais je pense que la normal map donnera des expressions faciales plus fiables, sauf pour les clignements d’yeux qui pourraient devenir bizarres. Je pense qu’on peut régler ça avec un peu de compositing si besoin, à condition d’être très prudents sur la manière de faire.

Comme on passe tout ça à un outil procédural qui travaille sur un cas d’usage très restreint, il faut que ce soit aussi précis que possible.

Bref, après on découpe les images, on nomme ces saloperies, et on fait le truc EbSynth qu’on a fait cent fois, mais avec de nouveaux réglages de flicker, youpi !

Voilà, j’ai terminé la toute première étape du processus. Exporter le fbx depuis cc4, et l’ouvrir dans Blender pour m’assurer qu’on n’exporte pas de shapekeys cassées. Mais je viens de réaliser qu’il est 3h du mat', et que je dois chercher du boulot demain.

Je vais bosser là-dessus cette semaine, c’est sûr.

Bonne nuit mes enfants du chaos, mes explorateurs de l’inconnu.
Je vous aime tous.