Un prompt seul donne peu de contrôle sur la pose et la composition. Une scène 3D vous donne tout. Dans ce workflow, je pose un personnage dans Blender, je construis une scène grossière avec des boîtes, et je laisse Flux la rendre dans le style d’un artiste précis, ici les gravures d’Albrecht Dürer, grâce à un LoRA de style.
Le style vient d’un LoRA que j’ai entraîné sur une dizaine de gravures de Dürer. L’entraînement est couvert pas à pas dans comment entraîner un LoRA sur le style de n’importe quel artiste, ce guide commence donc là où celui-ci s’arrête : avec un fichier de LoRA entraîné.
En bref
- Pose : un personnage et une animation gratuits de Mixamo, importés dans Blender.
- Scène : des cubes, des sphères et des cylindres, rendus avec Eevee.
- Structure : une carte de profondeur Depth Anything V2 pilote Flux depth ControlNet v3, à une force d’environ 0,7.
- Style : un LoRA Flux entraîné sur l’œuvre d’un artiste, avec son mot déclencheur au début du prompt.
- Qualité : Flux 1 dev, guidance 3, 25 étapes.
1. Obtenir un personnage posé depuis Mixamo
Mixamo est une bibliothèque gratuite d’Adobe de personnages et d’animations. Choisissez un personnage, puis cherchez dans les animations une pose qui convienne à votre idée. J’ai cherché « sword » et utilisé Great Sword Crouching Block ; n’importe quelle image d’une animation peut servir de pose.
Le personnage n’a pas besoin d’une bonne anatomie. Les ControlNets de profondeur fonctionnent avec des formes très grossières, même des bonshommes en bâtons. Téléchargez l’animation en FBX avec les réglages par défaut (la mienne faisait environ 50 Mo).
Une note de licence : pour les personnages que je vends, j’ai fait et riggé les miens, parce que je ne peux pas utiliser commercialement les personnages de Mixamo dans un pack. Pour poser vos propres rendus, Mixamo est le départ le plus simple.
2. Construire la scène dans Blender
Dans Blender, utilisez File → Import → FBX, masquez l’armature, et parcourez la timeline pour trouver l’image et l’angle voulus.
Construisez ensuite la scène avec des primitives. J’ai ajouté un cylindre en guise de sabre laser (c’est une pose statique, il n’a donc pas besoin d’être parenté) et fait toute une ville avec des boîtes : dupliquées de nombreuses fois, étirées et éparpillées. Placez la caméra, ajoutez une lumière et rendez avec Eevee, lancer de rayons activé.
L’anatomie de ma pose est moche, avec des déformations étranges et les habituelles « mains d’IA ». Peu importe : avec la bonne force de ControlNet, l’IA la reconstruit.
3. Le workflow ComfyUI
Il vous faudra ces custom nodes, tous depuis le ComfyUI Manager : comfyui_controlnet_aux (Depth Anything), x-flux-comfyui (ControlNet et sampler Flux), KJNodes (nodes Set/Get), rgthree (image comparer) et la WAS Node Suite (Image Save). Le workflow terminé, avec mes trois LoRA d’artistes, est sur mon Patreon.
Charger et redimensionner le rendu
Un node Load Image apporte votre rendu Blender. J’utilise des rendus carrés : en 1024 × 1024, Flux donne de façon fiable de très bons résultats. Une note dans le workflow liste d’autres bonnes résolutions pour Flux.
Une astuce rangée : les nodes Set et Get. La résolution est nécessaire à plusieurs endroits. Au lieu de la saisir partout ou de tirer de longs fils à travers le graphe, je place la largeur et la hauteur dans des nodes d’entiers, je les stocke avec des nodes Set (nommés width et height) et je les lis n’importe où avec des nodes Get. Changez la taille une fois, au début, et chaque node qui l’utilise se met à jour.
Carte de profondeur et ControlNet
Le rendu redimensionné passe par Depth Anything V2. J’utilise le plus gros modèle pour la meilleure qualité ; il en existe de plus petits si vous manquez de mémoire, même si Flux en demande déjà pas mal. Sa résolution vient aussi du node Get.
La carte de profondeur va dans Apply Flux ControlNet avec Flux depth ControlNet v3 (depuis le Model Manager). La force est le réglage qui compte :
- Près de 1,0 : le résultat devient très laid.
- Sous 0,5 : trop créatif ; il perd votre pose.
- De 0,6 à 0,9 est la plage utile. J’utilise 0,7, parce qu’elle laisse à Flux assez de liberté pour corriger l’anatomie.
Cette liberté est tout l’intérêt. J’ai posé un personnage Mixamo féminin, et le résultat est une figure masculine en armure complète, avec une anatomie crédible.
Modèle et LoRA
Load Diffusion Model charge Flux 1 dev (environ 12 Go ; le téléchargement par le Model Manager fige ComfyUI jusqu’à sa fin). Il alimente un node Load LoRA avec le LoRA de style, ici mon LoRA Dürer, qui oriente les poids du modèle vers ce rendu. Je laisse la force du LoRA au maximum ; baissez-la si vous ne voulez qu’une touche de style.
L’Empty Latent Image reçoit les mêmes largeur et hauteur depuis les nodes Get.
Prompt
Le DualCLIPLoader charge les deux encodeurs de texte de Flux, CLIP-L et T5 XXL (tous deux dans le Model Manager). Ils transforment chaque morceau de votre prompt en une direction pour l’image.
Commencez le prompt positif par le mot déclencheur de votre LoRA, puis ajoutez du contexte. Flux est conçu pour des prompts en langage naturel et n’utilise pas vraiment de prompts négatifs, décrivez donc ce que vous voulez plutôt que ce que vous ne voulez pas. Flux Guidance à 3 ; beaucoup plus haut et l’image brûle, avec un contraste dur.
Échantillonner, décoder, comparer, enregistrer
Le XLabs Sampler réunit tout : modèle, prompts, latent et ControlNet.
- Seed en increment, pour que les images soient numérotées dans l’ordre et que vous puissiez toujours en reproduire une en réutilisant sa seed et ses réglages.
- Étapes : 25. Certains montent à 50, mais j’obtiens de bons résultats à 25 ; tout ce qui dépasse est excessif.
VAE Decode, avec le VAE de Flux (environ 300 Mo), transforme le résultat en pixels. Un rgthree image comparer montre côte à côte le rendu Blender et le résultat, et un node Image Save de WAS écrit le fichier avec votre dossier et votre préfixe.
Les mains sont sorties correctes. Lancez dix fois et vous en aurez une presque parfaite.
Dépannage
Si une exécution cale (la mienne s’est arrêtée à 81 % pendant le calcul de la carte de profondeur), redémarrez ComfyUI. J’ai 24 Go de VRAM, et même cela ne suffit pas toujours quand d’autres programmes utilisent la carte. Si votre GPU est plus petit, en louer un est la voie la plus simple ; mon introduction à RunPod explique comment.
Si vous essayez RunPod, mon lien de parrainage offre aux nouveaux comptes inscrits avec Google entre 5 et 500 $ de crédit après leurs 10 premiers dollars, et je touche une petite commission.
Voir la version vidéo (21:40)
Tout ce qui précède est aussi dans la vidéo, si vous préférez suivre à l’écran. La vidéo est en anglais.
Questions fréquentes
Ai-je besoin d'un modèle 3D détaillé pour cela ?
Non. Un ControlNet de profondeur fonctionne avec une géométrie très grossière ; même des bonshommes en bâtons peuvent marcher. Ma scène était faite de cubes, de sphères et de cylindres autour d'un personnage Mixamo gratuit.
Quelle force de ControlNet utiliser ?
Entre 0,6 et 0,9. J'utilise généralement 0,7 : elle conserve la pose et la composition, mais laisse à Flux assez de liberté pour corriger une mauvaise anatomie.
L'IA peut-elle changer le corps du personnage ?
Oui, si la force du ControlNet lui en laisse la place. J'ai posé un personnage Mixamo féminin et le résultat est une figure masculine en armure, avec une anatomie corrigée.
