How to use Textures Diffusion - FR
Last updated
Last updated
Textures Diffusion est un plugin pour Blender qui permet de coloriser et texturer un modèle 3D à partir d'images générés par Stable Diffusion.
Versions de Blender supportés :
3.3
⚠️ Stable Diffusion et ControlNet ne sont pas directement intégrés au plugin. Il est conseillé de commencer par l'installer et se familiariser avec avant d’utiliser le plugin.
Pour débuter avec Stable Diffusion vous pouvez consulter cette page :
🗎 Use Stable diffusion and ControlNet ‐ French
Aller à Edit > Preferences > Addons > Install
et sélectionner le fichier .zip.
Pour en savoir plus : Blender manual - Add-ons
Veuillez lire attentivement cette page : Disclaimer
La première étape consiste à créer une scène dans laquelle nous dupliquons un modèle dans plusieurs angles. Cela dans le but de rendre une image pour guider la génération d'images.
👆 Prérequis : Il faut que l’objet soit Unwrappé et dans un seul UDIM.
Sélectionnez l'objet et cliquez sur "Create new projection scene".
Pour guider cette génération d'image, on peut choisir d'utiliser des rendus Depth, Normal ou même Beauty de la scène.
💡 Astuces :
L’objet peut avoir un modifier Subdivisions Surface.
Essayez de placer les copies du modèle de manière à ce qu'on voit le maximum de surface depuis la caméra (face, profil, dos etc.)
Si besoin, vous pouvez créer plus de 3 copies du modèle.
Pour les points de vues des zone les plus importantes, agrandissez le mesh pour obtenir une meilleure résolution.
Les différentes projections seront superposées les unes sur les autres. Le premier mesh de la liste représente la projection qui sera au dessus. Les suivants seront en dessous et donc seront moins visible.
Une option permet de choisir également la taille : Pour Stable Diffusion 1.5 , environ 512 px sont conseillé. Et 1024 px pour la version SDXL.
Une fois la scène prête. Le bouton "Render ref images" permet de rendre les images pour ControlNet.
Toutes les images sont enregistrées dans un dossier créé à côté du fichier .blend.
💡 La map Beauty génère une image de l’objet dans un éclairage neutre. On peut ajouter une "Color Texture" dans le matériaux pour une génération "Img to Img".
Cette étape crée des Mask Textures et des UVs projetés depuis la camera pour chaque meshes afin de permettre l’assemblage des différentes projections.
Le bake des masks produits :
Camera Occlusion mask : C'est la surface du model visible depuis la caméra.
Facing mask : C'est la surface du model qui est perpendiculaire à l’axe de la caméra.
Le bouton Create Projected UVs produit de nouveaux UVs projetés depuis la vue caméra sur chaque mesh.
Si le modèle est symétrique sur l'axe X on peut activer l’option Symmetry X. Ainsi les Masks Textures et les UVs projetés seront générés pour chaque côté.
Pour générer des images avec Stable Diffusion, de nombreuses techniques existent et de nouvelles apparaissent régulièrement. Je vous encourage donc à faire vos propres recherches.
L’idée est de générer une image décrite par un prompt ainsi qu'une (ou plusieurs) images de références lu par ControlNet, puis de réaliser un upscale de l'image.
Pour vous guider vous pouvez vous référer à cette page :
🗎 Use Stable diffusion and ControlNet ‐ French
💎 L’upscale est un outil très intéressant car il peut permettre de produire des textures de très grande résolution.
💡 Il faut garder à l’esprit que plus la silhouette de l'objet est lisible, plus Stable Diffusion pourra générer une image pertinente. L'apparence du model à une incidence directe sur le résultat.
Une fois que l’on a généré une image qui nous plaît, on peut renseigner son chemin dans le champ "SD image gen" puis cliquer sur "Create new shading scene".
Cette nouvelle scène va permettre de régler et d'ajuster finement l’assemblage de la nouvelle texture, puis de "Bake" la texture final.
Cette scène comporte 3 collections :
Dans "Final assembly" se trouve un assemblage de tous les points de vues généré par Stable Diffusion.
Dans "Projection tweaks" on peut replacer la projection avec précision, au cas où la génération n’ait pas respecté exactement la forme du mesh.
Et dans "Breakdown" on va pouvoir régler les différents masques et même créer un masque personnalisé.
Dans cette collection, nous avons une copie de la scène de protection. Cette fois-ci avec la texture projetée à travers la caméra via un modifier UV Project. Elle permet de déformer manuellement la géométrie pour correspondre à la projection. Puis de recréer une projection des UVs et de transférer ces nouveaux UVs dans le mesh principal dans "Final assembly".
En sélectionnant un des mesh, un bouton "Edit tweaks" apparaît. Il permet de basculer en mode Edit Mode et en Texture View. On peut déplacer la géométrie pour l'aligner sur l’image générée.
⚠️ Finalement, l’objet final ne sera pas déformé, mais se sera les UVs de projection qui le seront afin que la texture s’aligne parfaitement sur les formes de l’objet.
Une fois le réglage effectués on peut cliquer sur Transfer tweaks. Cela créé de nouveaux UVs projetés puis les transfèrent sur le mesh final.
Dans celle-ci, se situent tous les points de vues créés dans la scène de projection.
Chacun de ces objets possède un shader avec un node group "proj settings" dans lequel on peut :
Activer/Désactiver la symétrie
Changer le fondu de la symétrie
Ajuster le masque de facing
Lorsque l’on sélectionne un des objets, le bouton "Paint custom mask" apparaît, il permet d'entrer directement en mode Texture paint pour peindre ce que l’on veut effacer ou non de cette projection.
Tout les réglages de la collection Breakdown sont synchronisé avec le mesh final. Dans son shader y est instancié les mêmes groupes de réglage qui contient également le mask custom.
Enfin, on peut boucher les trous restants en peignant les vertex colors qui seront "en dessous" de toutes les projections.
Une fois le réglage finalisé, on peut choisir la taille de l'image puis bake l’ensemble.
En appuyant sur le bouton "Bake final texture" cela créer une nouvelle collection dans laquelle on trouve le modèle et un material qui possède la texture final.
💡 Dans l'alpha de l'image est enregistré un mask des zones couvertes par la projection. Si on répète le processus, il peut être utilisé pour combiner plusieurs bakes. On peut, grâce à cela, texturer un modèle complexe en plusieurs fois.