Studio Ghibli đ„ Wan2.1-T2V-14B - v1.0
Mots-clés et tags associés
Prompts recommandés
Studio Ghibli style. Woman with blonde hair is walking on the beach, camera zoom out.,Studio Ghibli style. Woman dancing in the bar.,Studio Ghibli style. A young girl with short brown hair and curious eyes stands on a sunlit grassy hill, wind gently rustling her simple white dress.
Prompts négatifs recommandés
èČè°èłäžœïŒèżæïŒéæïŒç»èæšĄçłäžæž ïŒććčïŒéŁæ ŒïŒäœćïŒç»äœïŒç»éąïŒéæąïŒæŽäœćç°ïŒæć·źèŽšéïŒäœèŽšéïŒJPEGć猩æźçïŒäžéçïŒæźçŒșçïŒć€äœçææïŒç»ćŸäžć„œçæéšïŒç»ćŸäžć„œçèžéšïŒçžćœąçïŒæŻćźčçïŒćœąæçžćœąçèąäœïŒææèćïŒéæąäžćšçç»éąïŒæäč±çèæŻïŒäžæĄè żïŒèæŻäșșćŸć€ïŒćçè”°, 3D, MMD, MikuMikuDance, SFM, Source Filmmaker, Blender, Unity, Unreal, CGI, bad quality
èČè°èłäžœïŒèżæïŒéæïŒç»èæšĄçłäžæž ïŒććčïŒéŁæ ŒïŒäœćïŒç»äœïŒç»éąïŒéæąïŒæŽäœćç°ïŒæć·źèŽšéïŒäœèŽšéïŒJPEGć猩æźçïŒäžéçïŒæźçŒșçïŒć€äœçææïŒç»ćŸäžć„œçæéšïŒç»ćŸäžć„œçèžéšïŒçžćœąçïŒæŻćźčçïŒćœąæçžćœąçèąäœïŒææèćïŒéæąäžćšçç»éąïŒæäč±çèæŻïŒäžæĄè żïŒèæŻäșșćŸć€ïŒćçè”°, 3D, MMD, MikuMikuDance, SFM, Source Filmmaker, Blender, Unity, Unreal, CGI, bad quality
ParamÚtres recommandés
samplers
steps
cfg
resolution
vae
Conseils
Utilisez le sampler UniPC pour une meilleure animation 2D.
Appliquez le nĆud NAG pour activer les prompts nĂ©gatifs avec un CFG plus faible (ex : CFG=1).
Un mix de dataset de vidéos basse résolution et d'images haute résolution favorise l'apprentissage du mouvement et du détail.
Utilisez des clips vidéo à 16 fps avec un maximum de 81 frames pour éviter les OOM sur RTX 3090.
Réutiliser les légendes sur des fragments de clips sans recaptionner peut économiser du temps de traitement.
L'entraßnement sur un dataset à résolutions mixtes améliore la généralisation sans nécessiter beaucoup de VRAM.
Sponsors du créateur

Ce LoRA est prĂ©sentĂ© sur OpenMuse, une initiative sĂ©lectionnĂ©e dĂ©diĂ©e aux LoRAs vidĂ©o open-source et aux Ćuvres crĂ©atives qu'ils permettent. AxĂ© sur des modĂšles comme Wan2.1, LTX-Video et HunyuanVideo, OpenMuse met en avant des outils et Ćuvres de haute qualitĂ©. AncrĂ© dans la communautĂ© Banodoco, câest un foyer grandissant pour lâart IA ouvert et collaboratif, conçu pour inspirer les crĂ©ateurs et offrir une Ćuvre Ă partager fiĂšrement, mĂȘme avec les sceptiques de lâart gĂ©nĂ©rĂ© par IA.
Ce LoRA est prĂ©sentĂ© sur OpenMuse, une initiative sĂ©lectionnĂ©e dĂ©diĂ©e aux LoRA vidĂ©o open-source et aux Ćuvres crĂ©atives qu'ils permettent. AxĂ© sur des modĂšles comme Wan2.1, LTX-Video et HunyuanVideo, OpenMuse met en avant des outils et Ćuvres de haute qualitĂ© de l'Ă©cosystĂšme. AncrĂ© dans la communautĂ© Banodoco, OpenMuse est un foyer croissant pour l'art IA ouvert et collaboratif, conçu pour inspirer les crĂ©ateurs, susciter la curiositĂ©, et offrir quelque chose dont on serait fier de partager, mĂȘme avec quelqu'un sceptique Ă l'Ă©gard de l'art gĂ©nĂ©rĂ© par IA.
Description
Je suis trÚs heureux de partager mon LoRA magnum opus, sur lequel je travaille depuis un mois depuis la sortie de Wan. C'est en effet le meilleur LoRA sur Civitai que j'ai jamais entraßné, et je dois dire (une fois de plus) - WanVideo est un modÚle incroyable.
Le LoRA a Ă©tĂ© entraĂźnĂ© environ 90 heures sur un RTX 3090 avec musubi-tuner utilisant un ensemble mixte de 240 clips et 120 images. Cela aurait pu ĂȘtre plus rapide, mais j'Ă©tais obsĂ©dĂ© par le fait de repousser les limites pour crĂ©er un modĂšle de style Ă la pointe. Ă vous de juger si j'ai rĂ©ussi.
Usage
La phrase déclencheuse est style Studio Ghibli - toutes les légendes des données d'entraßnement étaient préfixées par ces mots.
Tous les clips que je publie en galerie sont des sorties brutes utilisant un LoRA avec un modÚle de base Wan-T2V-14B (bien que les derniÚres vidéos peuvent inclure un LoRA d'auto-poussée pour accélération d'inférence, lire ci-dessous), sans post-traitement, suréchantillonnage ou interpolation supplémentaire.
La compatibilité avec d'autres LoRAs et avec les modÚles Wan-I2V n'a pas été testée.
Les workflows sont intégrés à chaque vidéo (vous pouvez donc simplement télécharger et glisser la vidéo dans ComfyUI pour l'ouvrir). Par exemple, voici un JSON pour le workflow (basé sur le wrapper de Kijai), qui utilise le LoRA d'auto-poussée (créé par blyss), extrait du modÚle Wan2.1-T2V-14B-StepDistill-CfgDistill de lightx2v. J'ai choisi la version faite par blyss (et non le LoRA original de Kijai), car d'aprÚs mes tests, elle offre une compatibilité maximale et accélÚre uniquement l'inférence, sans ajout de détails ou biais stylistiques. (C'est aussi la raison pour laquelle je reste sur le modÚle Wan de base et ne utilise pas de merges comme AniWan ou FusionX.)
J'utilise le LoRA d'accĂ©lĂ©ration avec le sampler UniPC (et parfois DPM++). D'aprĂšs mon expĂ©rience, UniPC performe mieux pour l'animation 2D que LCM, qui tend vers un rĂ©alisme plus prononcĂ©, ce que je souhaite Ă©viter. J'applique aussi gĂ©nĂ©ralement le nĆud NAG, ce qui me permet d'utiliser des prompts nĂ©gatifs avec CFG=1. Lors des premiers tests, par rapport Ă l'ancien workflow avec TeaCache, en plus du gain de vitesse Ă©norme (un clip 640Ă480Ă81 en 6 Ă©tapes s'encode en ~1 minute au lieu de 6 sur RTX 3090), cela amĂ©liore aussi lĂ©gĂšrement la fluiditĂ© du mouvement et le rendu du texte.
Les LoRA lightx2v mis à jour sont également impressionnants en termes de vitesse et de conservation de la qualité. J'utilise un LoRA rang 128, mais les versions 32 et 64 produisent aussi d'excellents résultats. Voici un exemple de workflow au format JSON. J'ai constaté qu'en réduisant la force du LoRA lightx2v à 0.9, en augmentant le nombre d'étapes à 8 et en utilisant UniPC ou un scheduler DPMPP, on obtient d'excellents résultats.
Et ici se trouve le workflow "hĂ©ritĂ©" au format JSON. Il a Ă©tĂ© utilisĂ© pour gĂ©nĂ©rer 90 % des vidĂ©os en galerie pour ce LoRA. Il Ă©tait aussi construit avec des nĆuds wrapper et inclut de nombreuses optimisations (plus d'informations ici), notamment checkpoints fp8_e5m2 + torch.compile, SageAttention 2, TeaCache, Enhance-A-Video, Fp16_fast, SLG, et (parfois) Zero-Star (certains ont migrĂ© vers le nouveau workflow Ă©galement), mais le rendu d'un clip 640x480x81 prenait encore environ 5 minutes (RTX 3090) dans l'ancien workflow. Bien que ce workflow hĂ©ritĂ© dĂ©montre une qualitĂ© lĂ©gĂšrement supĂ©rieure dans quelques domaines spĂ©cifiques (palette, fluiditĂ©), le ralentissement par 5 est un inconvĂ©nient majeur qui m'a poussĂ© Ă migrer vers la version propulsĂ©e par lightx2v.
Prompting
Pour générer la plupart des prompts, j'applique généralement la méta-prompt suivante dans ChatGPT (ou Claude, ou tout autre LLM capable), qui aide à enrichir les descriptions "brutes". Cette prompt est basée sur le code officiel d'extension de prompt par les développeurs Wan et ressemble à ceci :
Vous ĂȘtes un ingĂ©nieur de prompt, spĂ©cialisĂ© dans la refinement des entrĂ©es utilisateurs en prompts de haute qualitĂ© pour la gĂ©nĂ©ration vidĂ©o dans le style distinct de Studio Ghibli. Vous assurez que la sortie correspond Ă l'intention originale tout en enrichissant les dĂ©tails pour la clartĂ© visuelle et du mouvement.
Exigences de la tĂąche:
- Si l'entrée utilisateur est trop brÚve, l'élargir avec des détails raisonnables pour créer une scÚne plus vive et complÚte sans altérer le sens central.
- Mettre en avant des caractĂ©ristiques clĂ©s telles que l'apparence, les expressions, les vĂȘtements, les postures et les relations spatiales des personnages.
- Maintenir toujours l'esthétique visuelle Studio Ghibli - fonds doux semblables à l'aquarelle, designs de personnages expressifs mais simples, et une atmosphÚre chaleureuse et nostalgique.
- Améliorer les descriptions du mouvement et des mouvements de caméra pour un flux naturel de l'animation. Inclure des mouvements doux et organiques qui correspondent au style narratif de Ghibli.
- Préserver le texte original entre guillemets ou titres tout en assurant que le prompt soit clair, immersif et contienne entre 80 et 100 mots.
- Tous les prompts doivent commencer par "Studio Ghibli style." Aucun autre style artistique ne doit ĂȘtre utilisĂ©.
Exemples de prompts révisés:
"Studio Ghibli style. Une jeune fille aux cheveux bruns courts et aux yeux curieux se tient sur une colline herbeuse baignée de soleil, le vent agitant doucement sa robe blanche simple. Elle regarde un groupe d'oiseaux traverser le ciel doré, ses pieds nus s'enfonçant légÚrement dans la terre douce. La scÚne est baignée d'une lumiÚre chaude et nostalgique, avec des arbres luxuriants qui bougent au loin. Une brise légÚre transporte les sons de la nature. Plan moyen, angle légÚrement bas, avec un panoramique cinématographique lent capturant le mouvement serein."
"Studio Ghibli style. Un petit village au coucher du soleil, des lanternes brillent doucement sous les avant-toits des maisons en bois. Un jeune garçon en yukata bleu court sur un chemin étroit en pierre, ses sandales tapant le sol tandis qu'il poursuit une luciole. Son expression excitée se reflÚte dans la riviÚre scintillante à cÎté de lui. L'atmosphÚre est riche en oranges chauds et bleus frais, évoquant une soirée d'été paisible. Plan moyen avec un mouvement de suivi fluide suivant les pas énergiques du garçon."
"Studio Ghibli style. Une forĂȘt mystique baignĂ©es de brume matinale, oĂč d'imposants arbres s'arquent au-dessus d'un sentier couvert de mousse. Une fille en cape verte simple pose doucement sa main sur le dos d'une crĂ©ature massive aux yeux doux ressemblant Ă un ancien cerf. Son pelage scintille faiblement tandis que la lumiĂšre du soleil traverse la dense canopĂ©e, illuminant le pollen flottant. La camĂ©ra zoome lentement, soulignant leur connexion silencieuse. Une douce brise agite les feuilles, et de petites esprits lumineux se cachent derriĂšre les racines."
Instructions:
Je vais maintenant fournir un prompt Ă réécrire. Veuillez l'Ă©largir et le raffiner en anglais tout en respectant l'esthĂ©tique Studio Ghibli. MĂȘme si l'entrĂ©e est une instruction plutĂŽt qu'une description, réécrivez-la en un prompt complet et visuellement riche sans rĂ©ponses supplĂ©mentaires ni guillemets.
Le prompt est : "VOTRE PROMPT ICI".Remplacez VOTRE PROMPT ICI par quelque chose comme Jeune fille blonde debout sur la montagne prĂšs d'une plage marine sous la pluie ou autre.
Le prompt nĂ©gatif inclut toujours le mĂȘme texte de base (mais peut comporter des mots supplĂ©mentaires selon le prompt spĂ©cifique) :
èČè°èłäžœïŒèżæïŒéæïŒç»èæšĄçłäžæž
ïŒććčïŒéŁæ ŒïŒäœćïŒç»äœïŒç»éąïŒéæąïŒæŽäœćç°ïŒæć·źèŽšéïŒäœèŽšéïŒJPEGć猩æźçïŒäžéçïŒæźçŒșçïŒć€äœçææïŒç»ćŸäžć„œçæéšïŒç»ćŸäžć„œçèžéšïŒçžćœąçïŒæŻćźčçïŒćœąæçžćœąçèąäœïŒææèćïŒéæąäžćšçç»éąïŒæäč±çèæŻïŒäžæĄè
żïŒèæŻäșșćŸć€ïŒćçè”°, 3D, MMD, MikuMikuDance, SFM, Source Filmmaker, Blender, Unity, Unreal, CGI, bad qualityJeu de donnĂ©es
Dans cette section et les suivantes, je vais un peu bavarder :) N'hĂ©sitez pas Ă passer directement Ă la Conclusion, mais peut-ĂȘtre que certains trouveront des informations utiles dans ce pavĂ© de texte. Alors...
La sĂ©lection du jeu de donnĂ©es a Ă©tĂ© la partie la plus "facile", je dispose dĂ©jĂ de tous les films Ghibli en qualitĂ© maximale dĂ©coupĂ©s en scĂšnes - plus de 30 000 clips en 1920x1040 et bitrate Ă©levĂ©. Ils attendent patiemment le jour oĂč je pourrai enfin effectuer un fine-tuning complet d'un modĂšle vidĂ©o avec eux.
J'avais dĂ©jĂ prĂ©parĂ© environ 300 clips pour l'entraĂźnement de la v0.7 de HV LoRA (en fait, j'Ă©tais juste sur le point de commencer l'entraĂźnement lorsque Wan est sorti). Ces clips comportaient entre 65 et 129 frames, que je considĂšre comme optimal pour entraĂźner HV sur des vidĂ©os, et ils Ă©taient tous Ă 24 fps. Pour Wan, cependant, je voulais qu'ils soient dans une plage diffĂ©rente (n'excĂ©dant pas 81 frames, plus d'explications dans la section « EntraĂźnement »). Ils devaient aussi ĂȘtre Ă 16 fps. Je ne suis pas encore certain qu'un strict 16 fps soit nĂ©cessaire, mais j'ai eu des problĂšmes avec HV lorsque les clips Ă©taient Ă 30 fps au lieu de 24 fps natifs de HV, donc j'ai dĂ©cidĂ© de rester Ă 16 fps.
Je devrais mentionner que pour traiter les datasets, je rĂ©alise gĂ©nĂ©ralement beaucoup de petits scripts "one-time" (avec l'aide de Claude, ChatGPT et DeepSeek) - cela inclut des mini-interfaces pour sĂ©lection manuelle de vidĂ©os, des one-liners pour dĂ©couper les frames, des scripts pour produire diverses statistiques d'aide, dissĂ©quer les clips par plages, crĂ©er des buckets en avance, etc. Je ne publie pas ces scripts car ils sont dĂ©sordonnĂ©s, pleins de valeurs codĂ©es en dur, et conçus pour un usage unique. Et de nos jours, n'importe qui peut facilement crĂ©er des scripts similaires en faisant des requĂȘtes aux LLM mentionnĂ©s.
Convertir tous les clips à 16 fps a réduit la plage des frames dans chaque vidéo de 65-129 à environ 45-88 frames, ce qui a perturbé mes plages méticuleusement planifiées, parfaites pour les buckets de frames que j'avais définis pour l'entraßnement. Heureusement, ce n'était pas grave car j'avais mis en place des rÚgles pour choisir les vidéos, notamment pour gérer ce genre de situations.
PremiĂšrement, la scĂšne ne doit pas avoir de transitions rapides pendant sa durĂ©e. Cela car je ne pouvais pas prĂ©dire la durĂ©e exacte (en frames) des buckets de frames cibles que le formateur Ă©tablirait - la taille du modĂšle, la VRAM et d'autres facteurs influent. Par exemple : je pourrais vouloir utiliser un clip unique de 81 frames pour l'entraĂźnement, mais ce n'est pas possible, car j'aurai un OOM sur RTX 3090. Il faudra donc choisir une stratĂ©gie d'extraction des frames, selon laquelle un clip sera dĂ©coupĂ© en plusieurs parties plus courtes (ici un excellent aperçu des diverses stratĂ©gies). Et la cohĂ©rence sĂ©mantique pourrait ĂȘtre rompue (exemple, dans le premier fragment du clip la fille pourrait ouvrir la bouche, mais dĂ©coupĂ© tel quel, il devient ambigu si elle va pleurer ou rire), ce genre d'incohĂ©rence contextuelle peut rendre triste l'encodeur UMT5 de Wan.
Autre point, je voulais rĂ©utiliser les lĂ©gendes pour n'importe quel fragment du clip original sans devoir refaire les captions et cacher Ă nouveau les embeddings via l'encodeur texte. Captionner des vidĂ©os prend du temps, mais si une scĂšne change radicalement dans sa plage, la lĂ©gende originale pourrait ne pas correspondre Ă tous les fragments, rĂ©duisant la qualitĂ© d'entraĂźnement. En suivant les rĂšgles "le clip ne doit pas contenir de transitions rapides de contexte" et "le clip doit ĂȘtre autonome, câest-Ă -dire ne pas contenir dâĂ©vĂ©nements incompris depuis le clip lui-mĂȘme", mĂȘme si une scĂšne est divisĂ©e en sous-fragments, les lĂ©gendes sâappliqueraient (avec une marge d'erreur acceptable) Ă chaque fragment.
AprÚs conversion, j'ai parcouru tous les clips et réduit leur nombre total à 240 (en retirant certains clips avec trop de transitions ou, au contraire, trop statiques), formant ainsi la premiÚre partie du dataset.
J'ai décidé d'utiliser un dataset mixte de vidéos et images. La deuxiÚme partie du dataset était donc formée de 120 images (en résolution 768x768), extraites de captures d'écran de divers films Ghibli.
Il existe une approche alternative oĂč on entraĂźne d'abord sur images puis on affine sur vidĂ©os (appliquĂ©e avec succĂšs par le crĂ©ateur de ce LoRA), mais je pense personnellement que ce n'est pas aussi efficace que le mĂ©lange en un seul lot (mĂȘme si je n'ai pas de chiffres prĂ©cis pour appuyer). Pour Ă©tayer mes hypothĂšses, voici un trĂšs bon LoRA qui utilise la mĂȘme approche mixte pour l'entraĂźnement (et d'ailleurs, c'Ă©tait Ă©galement fait sur un GPU 24 Go, si je ne m'abuse).
Pour permettre un entraßnement vidéo efficace sur dataset mixte avec des GPUs grand public, j'ai dû trouver le juste équilibre entre résolution, durée et temps d'entraßnement, et j'ai décidé de le faire en mélangeant des vidéos basse résolution à longue durée et des images haute résolution - je donnerai plus de détails à ce sujet dans la section Entraßnement.
Concernant les captions : les images du dataset ont en fait Ă©tĂ© rĂ©utilisĂ©es de certains de mes datasets HV, et elles avaient Ă©tĂ© captionnĂ©es plus tĂŽt avec mon "couteau suisse" VLM pour captionnage de dataset (SFW uniquement), aussi appelĂ© Qwen2-VL-7B-Instruct. Jâai utilisĂ© la prompt de captionnage suivante :
CrĂ©ez une description trĂšs dĂ©taillĂ©e de cette scĂšne. Nâutilisez pas de listes numĂ©rotĂ©es ni de sauts de ligne. IMPORTANT : la description gĂ©nĂ©rĂ©e DOIT TOUJOURS commencer par la phrase non modifiĂ©e 'Studio Ghibli style. ', suivie de votre description dĂ©taillĂ©e. La description doit 1) dĂ©crire le contenu principal de la scĂšne, 2) dĂ©crire les dĂ©tails de lâenvironnement et de lâĂ©clairage, 3) identifier le type de plan (ex : plan aĂ©rien, gros plan, plan moyen, plan large), et 4) inclure lâatmosphĂšre de la scĂšne (ex : cosy, tendue, mystĂ©rieuse). Voici un modĂšle OBLIGATOIRE : 'Studio Ghibli style. {Action/Description sujet principal}. {DĂ©tails environnement et Ă©clairage}. {Style et spĂ©cifications techniques}'.J'avais des doutes sur le fait de recaptionner car la structure cible de la caption Ă©tait conçue spĂ©cifiquement pour HunyuanVideo, et je craignais que Wan ait besoin d'une approche complĂštement diffĂ©rente. Je les ai laissĂ©es telles quelles, et je n'ai aucune idĂ©e si c'Ă©tait la bonne dĂ©cision, mais globalement, les encodeurs texte modernes sont assez puissants pour ignorer ces limitations. Comme nous le savons, certains modĂšles comme Flux peuvent mĂȘme ĂȘtre entraĂźnĂ©s sans captions (bien que je pense que l'entraĂźnement avec captions est toujours prĂ©fĂ©rable, mais seulement si elles sont pertinentes).
Pour captionner les vidĂ©os, jâai testĂ© plusieurs modĂšles locaux capables de captionner nativement du contenu vidĂ©o :
CogVLM2-Video-Llama3-Chat (généralement mon option préférée pour captionner les clips)
Ovis2-16B (celui-ci semble vraiment bon ! Mais j'avais déjà captionné le dataset quand je l'ai trouvé, donc je l'utiliserai dans de futurs LoRA)
Il y a plus de modĂšles, mais ce sont ceux que j'ai testĂ©s. Pour ce LoRA, jâai finalement utilisĂ© Apollo-7B. Jâai utilisĂ© cette simple prompt VLM :
CrĂ©ez une description trĂšs dĂ©taillĂ©e de cette vidĂ©o. IMPORTANT : La description gĂ©nĂ©rĂ©e DOIT TOUJOURS commencer par la phrase non modifiĂ©e 'Studio Ghibli style. ', suivie de votre description dĂ©taillĂ©e.Je joins le dataset complet utilisĂ© en annexe du modĂšle. Bien qu'il contienne du contenu protĂ©gĂ© par droit d'auteur, je pense que cela relĂšve de l'usage Ă©quitable. Ce dataset est fourni uniquement Ă des fins de recherche et d'Ă©valuation Ă©ducative des capacitĂ©s du modĂšle et pour offrir une transparence quant au processus d'entraĂźnement. Il ne doit pas ĂȘtre utilisĂ© pour une redistribution ou exploitation commerciale.
EntraĂźnement
Pour ceux qui sont intĂ©ressĂ©s, voici la liste des formateurs que jâai considĂ©rĂ©s pour entraĂźner WanVideo :
diffusion-pipe - lâOG de lâentraĂźnement HV, permet aussi un entraĂźnement mĂ©moire-efficace de Wan ; pilotĂ© par config, dispose dâune interface tierce et de templates runpod (lire plus ici et lĂ ). Je lâai utilisĂ© exclusivement pour HV. NĂ©cessite WSL sur Windows.
Musubi Tuner - Maintenu par un dĂ©veloppeur responsable et sympathique. PilotĂ© par config, communautĂ© chaleureuse, Ă©normĂ©ment dâoptions. Actuellement mon choix pour lâentraĂźnement Wan.
AI Toolkit - Mon formateur prĂ©fĂ©rĂ© pour Flux a rĂ©cemment ajoutĂ© le support de Wan. Rapide, facile Ă utiliser, pilotĂ© par config, dispose aussi dâune UI officielle (que je nâutilise pas đ€·), mais supporte pour lâinstant uniquement lâentraĂźnement 14B sans captions, ce qui est la raison principale de mon non-usage.
DiffSynth Studio - Je nâai pas eu le temps de le tester et ne suis pas sĂ»r quâil puisse entraĂźner des modĂšles Wan avec 24 Go VRAM. Cependant, maintenu par ModelScope, il mĂ©rite dâĂȘtre examinĂ© de prĂšs. Je prĂ©vois de le tester bientĂŽt.
finetrainers - Supporte lâentraĂźnement Wan, mais ne semble pas fonctionner avec GPUs 24 Go (pour lâinstant)
SimpleTuner - A obtenu le support de Wan la semaine derniĂšre, donc je nâai pas encore eu lâoccasion de lâessayer. Il mĂ©rite certainement lâattention car le dĂ©veloppeur principal est passionnĂ© et compĂ©tent.
Zero-to-Wan - Supporte lâentraĂźnement uniquement pour des modĂšles 1.3B.
WanTraining - Je dois mentionner ce projet, soutenu par un développeur qui a fait un travail impressionnant, y compris LoRA distillé par guidage et LoRA contrÎle.
Jâai donc utilisĂ© Musubi Tuner. Pour rĂ©fĂ©rence, voici mes paramĂštres matĂ©riels : i5-12600KF, RTX 3090, Windows 11, 64 Go RAM. Les commandes et fichiers de config que jâai utilisĂ©s sont les suivants.
Pour mettre en cache les latents VAE (rien de spécifique ici, juste la commande par défaut)
python wan_cache_latents.py --dataset_config G:/samples/musubi-tuner/_studio_ghibli_wan14b_v01_dataset.toml --vae G:/samples/musubi-tuner/wan14b/vae/wan_2.1_vae.safetensorsPour mettre en cache les embeddings de l'encodeur texte (par défaut) :
python wan_cache_text_encoder_outputs.py --dataset_config G:/samples/musubi-tuner/_studio_ghibli_wan14b_v01_dataset.toml --t5 G:/samples/musubi-tuner/wan14b/tenc/models_t5_umt5-xxl-enc-bf16.pth --batch_size 16 Pour lancer lâentraĂźnement :
accelerate launch --num_cpu_threads_per_process 1 --mixed_precision bf16 wan_train_network.py ^
--task t2v-14B ^
--dit G:/samples/musubi-tuner/wan14b/dit/wan2.1_t2v_14B_bf16.safetensors ^
--vae G:/samples/musubi-tuner/wan14b/vae/wan_2.1_vae.safetensors ^
--t5 G:/samples/musubi-tuner/wan14b/tenc/models_t5_umt5-xxl-enc-bf16.pth ^
--sdpa ^
--blocks_to_swap 10 ^
--mixed_precision bf16 ^
--fp8_base ^
--fp8_scaled ^
--fp8_t5 ^
--dataset_config G:/samples/musubi-tuner/_studio_ghibli_wan14b_v01_dataset.toml ^
--optimizer_type adamw8bit ^
--learning_rate 5e-5 ^
--gradient_checkpointing ^
--max_data_loader_n_workers 2 ^
--persistent_data_loader_workers ^
--network_module networks.lora_wan ^
--network_dim 32 ^
--network_alpha 32 ^
--timestep_sampling shift ^
--discrete_flow_shift 3.0 ^
--save_every_n_epochs 1 ^
--seed 2025 ^
--output_dir G:/samples/musubi-tuner/output ^
--output_name studio_ghibli_wan14b_v01 ^
--log_config ^
--log_with tensorboard ^
--logging_dir G:/samples/musubi-tuner/logs ^
--sample_prompts G:/samples/musubi-tuner/_studio_ghibli_wan14b_v01_sampling.txt ^
--save_state ^
--max_train_epochs 50 ^
--sample_every_n_epochs 1Encore une fois, rien dâexceptionnel ici. Jâai dĂ» utiliser le paramĂštre blocks_to_swap car sinon, avec ma config de dataset (voir ci-dessous), je faisais face Ă des contraintes de VRAM 24 Go. Les hyperparamĂštres sont restĂ©s majoritairement par dĂ©faut. Je ne voulais pas prendre de risques aprĂšs une mauvaise expĂ©rience - 60 heures dâentraĂźnement HV perdues Ă cause de valeurs trop ambitieuses pour flow shift et optimisateurs adaptatifs au lieu du bon vieux adamw.
Fichier de prompts pour lâĂ©chantillonnage durant lâentraĂźnement :
# prompt 1
Studio Ghibli style. Femme aux cheveux blonds marche sur la plage, zoom arriÚre de la caméra. --w 384 --h 384 --f 45 --d 7 --s 20
# prompt 2
Studio Ghibli style. Femme dansant au bar. --w 384 --h 384 --f 45 --d 7 --s 20Configuration du dataset (partie la plus importante ; je vais expliquer la réflexion derriÚre aprÚs) :
[general]
caption_extension = ".txt"
enable_bucket = true
bucket_no_upscale = true
[[datasets]]
image_directory = "H:/datasets/studio_ghibli_wan_video_v01/images/768x768"
cache_directory = "H:/datasets/studio_ghibli_wan_video_v01/images/768x768/cache"
resolution = [768, 768]
batch_size = 1
num_repeats = 1
[[datasets]]
video_directory = "H:/datasets/studio_ghibli_wan_video_v01/videos/1920x1040"
cache_directory = "H:/datasets/studio_ghibli_wan_video_v01/videos/1920x1040/cache_1"
resolution = [768, 416]
batch_size = 1
num_repeats = 1
frame_extraction = "head"
target_frames = [1, 21]
[[datasets]]
video_directory = "H:/datasets/studio_ghibli_wan_video_v01/videos/1920x1040"
cache_directory = "H:/datasets/studio_ghibli_wan_video_v01/videos/1920x1040/cache_2"
resolution = [384, 208]
batch_size = 1
num_repeats = 1
frame_extraction = "uniform"
target_frames = [45]
frame_sample = 2Ma configuration de dataset se compose de trois parties.
Je commence par la derniÚre, qui contient le tableau principal de données - 240 clips en résolution 1920x1040 et durée variant de 45 à 88 frames.
Ăvidemment, entraĂźner sur des clips pleine rĂ©solution 1920x1040 et pleine durĂ©e sur un RTX 3090 Ă©tait exclu. Je devais trouver la rĂ©solution et la durĂ©e minimales pour Ă©viter les erreurs OOM tout en gardant les fragments de buckets aussi longs que possible. Des fragments longs aident le modĂšle Ă apprendre le mouvement, le timing et les motifs spatiaux (comme les tremblements de cheveux, le balancement des tissus, les dynamiques des liquides, etc.) du style Ghibli - ce que lâon ne peut pas obtenir avec des images fixes.
En formant HV, je me souvenais quâun bon point de dĂ©part pour estimer la rĂ©solution disponible sur GPU 24 Go est 512x512x33. Jâai choisi le pattern dâextraction « uniforme » des frames, assurant que tous les fragments extraits font au moins 45 frames. Puisque, comme Ă©crit plus haut, on plafonne Ă 88 frames aprĂšs conversion Ă 16 fps, cela empĂȘche que les clips soient divisĂ©s en plus de deux morceaux, ce qui rallongerait trop les Ă©poques. En mĂȘme temps, une plage de 45 frames (~3s) devrait suffire pour que le modĂšle apprenne le flux spatial du style.
Avec une cible fixĂ©e Ă 45 frames, jâai testĂ© plusieurs rĂ©solutions. Jâai utilisĂ© un script pour analyser tous les clips dans un dossier et suggĂ©rer des combinaisons largeur-hauteur valides respectant le ratio original (1920/1040 â 1,85) et divisibles par 16 (exigence modĂšle).
Finalement, jâai trouvĂ© quâutiliser [384, 208] pour la taille du bucket et configurer --blocks_to_swap 10 empĂȘchait les erreurs OOM et le passage en mĂ©moire partagĂ©e (qui menait Ă 160 s/it). Le revers Ă©tait que la vitesse dâentraĂźnement tombait Ă environ 11-12 s/it. RĂ©trospectivement, baisser la rĂ©solution Ă [368, 192] aurait pu monter la vitesse Ă ~8 s/it, ce qui aurait Ă©tĂ© parfait (proche de ce que jâobtiens en entraĂźnant Flux en 1024p dans AI Toolkit). Cela mâaurait permis dâĂ©conomiser environ 20 heures dâentraĂźnement sur les 90 heures (~28000 steps), mĂȘme si Ă lâĂ©poque je ne pensais pas dĂ©passer 20k steps.
Ă noter que jâai entraĂźnĂ© sous Windows avec mon Ă©cran connectĂ© au GPU (et utilisĂ© mon PC pour coder en mĂȘme temps đŒ). Sur Linux (par exemple avec diffusion-pipe) et en utilisant le GPU interne pour lâaffichage, il serait peut-ĂȘtre possible dâaugmenter un peu la rĂ©solution spatiotemporelle sans rencontrer dâErreur OOM ou limites de mĂ©moire partagĂ©e (ce qui semble spĂ©cifique Ă Windows).
Passons Ă la premiĂšre partie (120 images en rĂ©solution 768x768). Initialement, je voulais entraĂźner sur des images 1024p, mais câeĂ»t Ă©tĂ© trop lourd et lent. Mon plan Ă©tait dâentraĂźner sur images HD et vidĂ©os basse rĂ©solution simultanĂ©ment pour assurer une meilleure gĂ©nĂ©ralisation. LâidĂ©e Ă©tait que les images haute rĂ©solution compenseraient la rĂ©solution plus basse des clips. De plus, un prĂ©-entraĂźnement mixte vidĂ©o + image est dâailleurs la mĂ©thode utilisĂ©e pour entraĂźner WAN, donc je pensais que cela favoriserait aussi lâapprentissage du style « en amont ».
Enfin, la deuxiĂšme partie, aussi importante pour la gĂ©nĂ©ralisation (ceci nâest pas une supposition « scientifique » mais cela semble raisonnable). LâidĂ©e Ă©tait de rĂ©utiliser les mĂȘmes clips de la troisiĂšme section mais en entraĂźnant seulement sur la premiĂšre frame et les 21 premiĂšres frames. Cette approche, je lâespĂ©rais, faciliterait lâapprentissage des caractĂ©ristiques de mouvement temporel du style. En mĂȘme temps, cela me permettait dâaugmenter la rĂ©solution de la deuxiĂšme section Ă [768, 416].
Au final, je cherchais à obtenir une "généralisation croisée" entre :
Section 1 : images haute résolution (768x768)
Section 2 : frames uniques moyenne résolution et clips de 21 frames (768x416)
Section 3 : clips basse résolution de 45 frames (384x208)
De plus, la deuxiĂšme et la grande partie de la troisiĂšme section partageaient la mĂȘme frame de dĂ©part, ce qui, je pensais, serait bĂ©nĂ©fique pour lâusage du LoRA en mode I2V. Tout cela semblait la meilleure maniĂšre dâexploiter pleinement mon dataset sans dĂ©passer les limites matĂ©rielles.
Bien sĂ»r, je ne suis pas le premier Ă proposer cette approche, mais elle paraĂźt logique et raisonnable, et jâespĂšre que plus de crĂ©ateurs comprendront que vous nâavez pas besoin dâune A100 pour entraĂźner un LoRA vidĂ©o pour Wan.
Fait amusant : je pensais quâune Ă©poque comporterait 1080 Ă©chantillons : 120 images (section 1) + 240 frames uniques (section 2, bucket "head"=1) + 240 clips de 21 frames (section 2, bucket "head"=21) + 480 clips de 45 frames (section 2, bucket "uniform"=45, Ă©chantillonnĂ©s 2 fois). Mais, aprĂšs le dĂ©but, jâai dĂ©couvert quâil y en avait en fait 1078. En creusant, jâai vu que deux clips comptĂ©s par mes scripts (qui utilisent ffprobe de ffmpeg) Ă©taient en fait plus courts que 45 frames, causant un arrondi. Ce nâĂ©tait pas grave, jâai juste continuĂ© sans ces deux clips, mais câest pourquoi le nombre de steps du LoRA final semblait dĂ©calĂ© :)
LâentraĂźnement sâest bien passĂ©. Je ne montrerai pas les graphiques de perte car je suis trop timide ne pense pas quâils soient trĂšs parlants. Je mâen sers surtout pour vĂ©rifier si la distribution des pertes devient trop similaire entre les Ă©poques - ce qui est un signal possible de sur-apprentissage.
Jâai entraĂźnĂ© jusquâĂ 28000 steps, puis passĂ© plusieurs jours Ă choisir le meilleur checkpoint. Une autre chose que jâaurais pu faire mieux est de prendre des checkpoints non seulement Ă la fin de chaque Ă©poque, mais aussi en cours dâĂ©poque. Ătant donnĂ© quâune Ă©poque fait 1078 steps, il se peut quâun checkpoint avec de meilleurs rĂ©sultats que celui final se soit perdu entre temps.
Je considĂšre intĂ©grer une estimation de la perte de validation dans mon pipeline dâentraĂźnement (plus de dĂ©tails ici), mais ce nâest pas encore fait.
Peut-on simplifier ? Probablement, oui. Dans mon prochain LoRA, je testerai si les images en section 1 Ă©taient redondantes. Jâaurais pu simplement configurer une autre section et rĂ©utiliser la premiĂšre frame des clips, mais en haute rĂ©solution. Dâun autre cĂŽtĂ©, je voulais que le dataset soit variĂ©, donc jâai pris des captures dâautres scĂšnes que celles des clips, donc pas redondant selon moi.
Je ne suis mĂȘme pas sĂ»r que la section 2 soit nĂ©cessaire. WAN lui-mĂȘme (dâaprĂšs son rapport technique) a Ă©tĂ© prĂ©entraĂźnĂ© sur clips 192px, donc entraĂźner autour de 352x192x45 devrait ĂȘtre efficace et optimiser mon matĂ©riel. IdĂ©alement, jâutiliserais des clips de 5 secondes (16 fps * 5s + 1 = 81 frames), mais ce nâest pas faisable sur un RTX 3090 sans Ă©changer agressivement des blocs.
Conclusion
Au-delĂ du plaisir et des centaines de milliers de clips incroyables, voici quelques leçons tirĂ©es de lâentraĂźnement de ce LoRA. Je prĂ©cise que ces pratiques sont basĂ©es sur mon expĂ©rience personnelle et observations, sans preuves analytiques strictes, et je nâai testĂ© pour lâinstant que lâentraĂźnement de style. Je prĂ©vois dâexplorer bientĂŽt lâentraĂźnement conceptuel pour tester dâautres hypothĂšses et voir si elles sâappliquent Ă©galement.
Vous pouvez entraßner Wan-14B sur des GPUs grand public avec des vidéos. 368x192x45 semble un bon point de départ.
Compensez lâapprentissage ciblĂ© du style sur vidĂ©os basse rĂ©solution par des images haute rĂ©solution pour une meilleure gĂ©nĂ©ralisation.
Combinez diverses mĂ©thodes dâextraction de frames sur les mĂȘmes datasets pour maximiser lâefficacitĂ© et lâutilisation matĂ©rielle.
Beaucoup, sinon tout, ce que jâai appris pour crĂ©er ce LoRA vient de la lecture sans fin de posts sur r/StableDiffusion, de ma veille 24/7 sur lâincroyable Discord Banodoco, de la lecture des commentaires et de lâouverture de chaque clip NSFW sur chaque modĂšle WanVideo ici sur Civitai, et dâexploration de chaque issue trouvĂ©e sur les dĂ©pĂŽts musubi-tuner, diffusion-pipe, Wan2.1 et autres. đœ
P.S.
Ce modĂšle est une vitrine technologique des capacitĂ©s des systĂšmes modernes de gĂ©nĂ©ration vidĂ©o. Il nâest pas destinĂ© Ă nuire ni Ă violer les droits des crĂ©ateurs originaux. Il sert plutĂŽt dâhommage au travail remarquable des artistes dont les crĂ©ations ont inspirĂ© ce modĂšle.
Détails du modÚle
Type de modĂšle
ModĂšle de base
Version du modĂšle
Hash du modĂšle
Mots entraßnés
Créateur
Discussion
Veuillez vous log in pour laisser un commentaire.















