Création de PBR texturé avec le modèle CHORD dans ComfyUI
Ce flux de travail transforme une courte invite textuelle en une texture sans couture, puis convertit cette texture en cartes de matériaux PBR complètes en utilisant le modèle CHORD. Conçu pour les artistes de matériaux, les équipes d'environnement et les artistes techniques, il produit une texture carrelable avec couleur de base, normales, rugosité, métal et une carte de hauteur supplémentaire pour des actifs prêts au déplacement.
Le graphe suit l'idée de génération et d'estimation en deux étapes derrière le modèle CHORD : d'abord synthétiser une texture carrelable, puis la décomposer en canaux SVBRDF adaptés aux moteurs en temps réel et aux outils DCC. Vous pouvez également ignorer la génération et alimenter directement une texture de référence à l'étape d'estimation.
Modèles clés dans le flux de travail du modèle CHORD dans ComfyUI
- Ubisoft La Forge CHORD v1. Estimation SVBRDF supervisée qui prédit la couleur de base, les normales, la rugosité et le métal à partir d'une seule image de texture. Checkpoint : Ubisoft/ubisoft-laforge-chord. Nœuds personnalisés ComfyUI : ubisoft/ComfyUI-Chord.
- Comfy-Org z_image_turbo UNet. Épine dorsale de diffusion rapide utilisée pour synthétiser la texture carrelable à partir de votre invite. Checkpoints et pack : Comfy-Org/z_image_turbo.
- Encodeur de texte emballé avec z_image_turbo (Qwen 3 4B). Encode votre invite pour le générateur en tant que conditionnement compatible CLIP. Fourni dans le même pack de modèle que ci-dessus.
- Autoencodeur VAE du pack z_image_turbo. Décode le latent produit par l'échantillonneur en une image de texture RGB. Inclus dans Comfy-Org/z_image_turbo.
Comment utiliser le flux de travail du modèle CHORD dans ComfyUI
Ce graphe est organisé en deux groupes qui peuvent fonctionner de bout en bout ou indépendamment. Le groupe 1 crée une texture carrelable à partir du texte. Le groupe 2 exécute le modèle CHORD pour estimer les cartes PBR à partir de cette texture ou d'une texture que vous fournissez.
1. Générer une image de texture
Ce groupe transforme votre invite en une texture sans couture et éclairée à plat. L'invite est encodée par CLIPTextEncode (#4) et envoyée à KSampler (#7), qui échantillonne le z_image_turbo UNet avec un planificateur AuraFlow défini par ModelSamplingAuraFlow (#2). Un latent vide de EmptySD3LatentImage (#6) définit la résolution de travail et le lot. L'image décodée de VAEDecode (#9) est enregistrée comme texture de référence et également transmise en aval pour l'estimation des matériaux. Rédigez des invites qui mentionnent l'identité du matériau, la microstructure et l'intention de carrelage, par exemple incluez des phrases comme carrelage sans couture et vue orthographique de haut en bas.
2. Générer des cartes de matériaux
Ce groupe charge le modèle CHORD avec ChordLoadModel (#12) et prépare la texture avec ResizeAndPadImage (#11) pour une toile carrée. ChordMaterialEstimation (#20) prédit la couleur de base, les normales, la rugosité et le métal directement à partir de la texture d'entrée. Le graphe produit également une carte de hauteur en convertissant les normales prédites en utilisant ChordNormalToHeight (#18), ce qui est précieux pour les flux de travail de déplacement ou de parallaxe. Si vous avez déjà une texture, contournez le groupe 1 et alimentez-la ici ; gardez-la éclairée à plat et sans ombres cuites pour de meilleurs résultats avec le modèle CHORD.
Nœuds clés dans le flux de travail du modèle CHORD dans ComfyUI
CLIPTextEncode (#4)
Encode votre texte en conditionnement pour le générateur de texture. Soyez explicite sur la classe de matériau, les qualités de surface et l'intention de carrelage. Les termes comme orthographique, sans couture, lignes de joint, pores, fibres ou micro-rayures aident le générateur à produire des structures que le modèle CHORD peut décomposer de manière fiable.
KSampler (#7)
Conduit le processus de diffusion latente qui crée la texture. Utilisez-le pour échanger la vitesse contre la fidélité, changer d'échantillonneurs et explorer des variations via la graine. Une invite négative vide est fournie par ConditioningZeroOut (#5) ; ajoutez des négatifs typiques uniquement si vous voyez des artefacts que vous souhaitez supprimer.
ModelSamplingAuraFlow (#2)
Applique un planificateur de style AuraFlow au UNet pour une synthèse de texture plus nette et cohérente avec z_image_turbo. Changez le planificateur ici lorsque vous expérimentez différents comportements d'échantillonnage emballés avec le modèle.
ChordMaterialEstimation (#20)
Exécute le modèle CHORD pour estimer les cartes SVBRDF à partir de la texture d'entrée. Les résultats sont couleur de base, normales, rugosité et métal prêts pour la production. Utilisez des entrées éclairées de manière uniforme et sans perspective pour maximiser la précision ; les ombres complexes ou les reflets peuvent biaiser la décomposition.
ChordNormalToHeight (#18)
Convertit les normales prédites par CHORD en une carte de hauteur adaptée au déplacement. Traitez la hauteur comme un signal de surface relatif et calibrez l'intensité dans votre moteur pour correspondre à l'échelle prévue.
EmptySD3LatentImage (#6)
Définit la taille de la toile et le lot pour la synthèse de texture. Choisissez une résolution carrée qui correspond à vos cibles de matériau en aval et gardez cela cohérent à travers les générations pour une densité de texel prévisible.
Extras optionnels
- Remplacez la texture générée par la vôtre en connectant une image de référence directement à
ResizeAndPadImage(#11) dans le groupe 2. - Utilisez un langage physiquement significatif dans les invites pour que le générateur produise des structures que le modèle CHORD peut interpréter, par exemple direction du grain, taille des flocons, densité du tissage ou patches oxydés.
- Gardez les textures source neutres et exemptes d'AO, de reflets ou d'ombres pour éviter de cuire l'éclairage dans les sorties du modèle CHORD.
- Validez l'orientation normale dans votre moteur et inversez le canal vert si nécessaire avant de juger de la carte de hauteur dérivée de celle-ci.
- Emballez les sorties pour correspondre aux conventions du moteur, par exemple métal et rugosité dans des canaux combinés, après avoir examiné les cartes individuelles.
Remerciements
Ce flux de travail implémente et s'appuie sur les travaux et ressources suivants. Nous remercions chaleureusement Ubisoft La Forge pour le modèle CHORD (Chain of Rendering Decomposition), pour leurs contributions et leur maintenance. Pour des détails autoritaires, veuillez vous référer à la documentation originale et aux dépôts liés ci-dessous.
Ressources
- Ubisoft La Forge/Modèle CHORD
- GitHub: ubisoft/ubisoft-laforge-chord
- Hugging Face: Ubisoft/ubisoft-laforge-chord
- Docs / Notes de version: Ubisoft Open-Sources the CHORD Model and ComfyUI Nodes
Note : L'utilisation des modèles, ensembles de données et codes référencés est soumise aux licences et conditions respectives fournies par leurs auteurs et mainteneurs.
