How to use Texture Diffusion 🖌️

 
 

Présentation 

 Texture Diffusion est un plugin Blender dont le but est de générer une texture de très haute qualité et sur un maximum de surface du mesh grâce à Stable Diffusion.

⚠ Attention Stable Diffusion n'est pas intégré au plugin. Il est conseillé d'installer et de ce familiariser avec Stable Diffusion et ControlNet avant d'utiliser le plugin. Ce sont des logiciels opensource et gratuit !

Pour installer Stable Diffusion et ControlNet vous pouvez lire cet article :

Stable Diffusion + ControlNet = 💙

Workflow Overview

Créer une scène de projection

La première étape consiste à créer une images avec plusieurs vues du mesh pour guider la génération via ControlNet. Le bouton create Create new projection scene. Copie l'objet sélectionné dans une nouvelle scène pour créer cette image.
👆 Prérequis : Il faut que l'objet soit unwrappé dans "UV maps" dans un seul UDIM. L'objet peut avoir un modifier subdivisions surface.
💡 Lorsque l'on cherche à avoir de la consistance entre sur plusieurs génération de texture, on s’aperçoit que c'est beaucoup plus simple en générant plusieurs vues sur une seule image plutôt que sur une série d'image. 

Exporter les maps pour ControlNet

Une fois la scène prête. Le bouton Render ref images permet de rendre des images pour ControlNet. Une option permet de choisir : Normal, Depth, Beauty. 

La map Normal ou depth peuvent suffire, elle sont très efficace pour Stable Diffusion. 
La map Beauty rend une image de l'objet dans un éclairage neutre, si l'objet possède déjà une texture, cela peut permettre d'aiguiller le générateur d'image. Utile si on a des intentions précise.

Baker les masks et les UVs

Cette étape est purement technique et permet l'assemblage des différentes projection sur le mesh final. 

Le bake des masks produits :
- une map noir et blanc de toute la surface visible depuis le point de vue de la caméra (camera occlusion)
- une map noir et blanc décrivant si la surface est perpendiculaire ou non à l'axe de la caméra (facing)

La projection des uvs produits des nouveaux sets d'UV layers avec une projection depuis la caméra (project from camera)

L'option mirror produit les Mask et les projections d'UV pour les deux côtés de l'objet. À utiliser uniquement si l'objet est symétrique. Ainsi la génération d'un côté de l'objet pourra être symmetrisé. Ce qui permet de couvrir plus de surface.

Générer les images sur Stable Diffusion et ControlNet 

Je ne vais pas trop développer cette étape, je suis moi même novice et il y a tant à expérimenter.

Mais simplement, l'idée et de générer une image en mettant une image généré par le plugin. Puis faire un upscale qui peut toujours être guidé par ControlNet.

L'upscale peut permettre de produire des textures aillant des détails et une définition rarement vue dans le domaine du texturing.

Créer une scène de shading et régler la projection

Une fois que l'on a trouvé une image qui nous plaît, on peut renseigner sont chemin dans le champ img gen puis cliquer sur create shading scene.

Cette nouvelle scène va permettre de régler et corriger finement l'assemblage de la nouvelle texture. Puis de baker la texture final.

Pour cela, avec la collection breakdown on va pouvoir régler les différents masks et même créer un mask custom.
Et avec la collection tweak projection on peut replacer la projection précisément au cas où la génération n'ai pas respecté exactement la forme du mesh.

La collection projection tweaks

Dans cette collection on a une copie de la scène de protection. Cette fois ci avec la texture projeté à travers la caméra via un modifier UV project.

Le but est de déformer manuellement la géométrie pour correspondre à la projection. Puis de recréer une projection d'UV et de transférer ces nouveaux set d'UV layer dans le mesh principale.

⚠️ Finalement le but n'est pas de déformer l'objet mais les UVs de projections pour que la texture ce calle parfaitement sur les formes de l'objet.
 
En sélectionnant un des mesh un bouton Tweak projection apparaît.
Il permet de basculer en mode edit mode et en texture view. On peut déplacer la géométrie pour la faire correspondre à l'image généré.

Une fois le réglage effectué on peut cliquer sur transfer tweaked UV. Cela crée un nouveau set d'UV layer avec la projection depuis la caméra et le transfert au mesh principal.

La collection breakdown

Dans celle-ci se situe une copie de l'objet pour chaque point de vue créé dans la scène de protection. 
Chacun de ces objets à un shader avec un node group dans lequel on peut régler les map le camera occlusion, de facing et la custom map.

Lorsque l'on selectione un objet, le bouton custom mask apparaît, il permet de rentrer directement en mode texture paint pour peindre ce que l'on veut effacer ou non de cette projection.

On peut aussi régler si on veut symmetriser la projection et le fondu entre les deux axes.

Tout ces réglages sont synchronisé avec le mesh principal dans la collection assembly.

Baker la texture final

Une fois le réglage finalisé, on peut baker l'ensemble dans une image. 
On peut choisir la taille et faire bake. 

Le plugin genère une image avec de la transparence dans les zones non couverte par cette diffusion de textures. 

Cela peut permettre d'envisager de répéter plusieurs fois le processus et de combiner ces images. Par exemple pour détailler davantage une zone ou bien texturer un object complexe.

💡Il faut garder à l'esprit que plus l'objet à une syhouette lisible plus stable diffusion pourra générer une image intéressante. Bien que le promt aide à cela.
Share:

Stable Diffusion + ControlNet = 💙

Voici quelques étapes pour débuter avec Stable Diffusion et ControlNet :

  1. Installer Automatic 1111 
  2. Trouver des models sur Civitai
  3. Installer l’extension ControlNet 

Plusieurs alternatives existent :

N'hésitez pas à me dire en commentaire quel est vos interface et outils préférés et si vous en connaissez d'autres, je les rajouterai dans cet article.

Plusieurs chaines Youtube propose de nombreux tutoriels :  

 Dites-moi si vous en avez d'autres 😉

 

 

 

 

 


Share: