SD Model Dress Up : Peindre n'importe quoi
Cas similaires : https://cloud.tencent.com/developer/article/2365063
un exemple concret
Une belle femme portant une robe de mariée blanche ornée de dentelle, marchant le long de la plage au coucher du soleil. Ses cheveux sont doucement soulevés par la brise, et elle tient un bouquet de roses blanches. Ses cheveux sont doucement soulevés par la brise et elle tient un bouquet de roses blanches. pose dynamique, photographie, chef-d'œuvre, meilleure qualité, 8K, HDR, haute résolution, absurde : 1.2, Kodak portra portra 400, grain de la pellicule, arrière-plan flou, bokeh : 1.2, grain de la pellicule. arrière-plan flou, bokeh : 1.2, lens flare
Reverse : nsfw, ugly, paintings, sketches, (worst quality:2), (low quality:2), (normal quality:2), lowres
Par exemple, vous avez des photos comme celle-ci d'un mannequin habillé, qui a été prise dans notre propre salle d'exposition.

plan des toits
Si vous pouvez utiliser la diffusion stable, il ne vous faudra pas plus de 10 minutes pour obtenir la première image.

Même si des ajustements sont nécessaires, une heure suffit. Par exemple :

Génération de mannequins Modèle vivant 1

Génération de mannequins Modèle vivant 2

Génération de mannequins Modèle vivant 2
I. Idées pour la génération de diagrammes homme-plateforme en situation réelle
Que faut-il faire pour transformer une table factice en une personne réelle tout en conservant les vêtements ?
A ce stade, les amis familiers de la diffusion stable diront : je sais, il s'agit d'utiliser la fonction Inpaint dans le Tuchengtu, puis de faire un masque à l'extérieur des vêtements, de façon à ce que la diffusion stable repeigne.
Comment faites-vous ce masque ? Si vous devez faire le masque d'un seul coup à la main, c'est trop lent, si c'est le cas, je n'ai pas besoin de sortir avec celui-ci en particulier.
Là encore, quelqu'un dira, je sais, créez d'abord le masque dans Photoshop et utilisez ensuite la fonction de redessin du masque.
C'est une façon de procéder, mais elle pourrait être plus intelligente aujourd'hui.
Aujourd'hui, nous allons utiliser un plugin inpainting anything, pour donner une photo, qui prend la photo et la sépare avec des blocs de couleur pour différentes choses. À la fin de la journée, il nous suffit de choisir les blocs de couleur que nous voulons transformer en masques, et c'est ainsi que les masques sont créés.
La fonction de repeint est ensuite utilisée pour redimensionner le mannequin tout en conservant les vêtements.

L'idée de base est la même, mais si vous l'avez fait vous-même, vous savez qu'il y a encore beaucoup de nids-de-poule sur le chemin.
Dans cet article, je vous montrerai non seulement comment transformer un mannequin en une personne réelle, mais aussi comment je comble ces lacunes.
Je vais vous les expliquer maintenant.
II. outils de préparation de la réalisation du modèle de table factice
Cette démonstration utilise l'interface WebUI d'Automatic 1111 avec le modèle SD 1.5, alors préparons-nous !
Préparation 1 : peindre n'importe quoi
Tout d'abord, vous aurez besoin du plug-in Inpaint Anything, veuillez vérifier votre WebUI d'Automatic 1111 pour voir si le plug-in Inpaint Anything est présent, si ce n'est pas le cas, veuillez l'installer.

Installer un inpaint anything
Cliquez sur Installer à partir d'une URL, entrez
https://github.com/Uminosachi/sd-webui-inpaint-anything.git
Prêt à installer

Une fois l'installation terminée, retournez à l'onglet d'installation et cliquez sur Appliquer et quitter.

Préparation 2 : Modèles pour Inpaint
Cette fois-ci, j'utiliserai epiCPhotoGasm pour démontrer que la qualité du modèle donne l'impression d'avoir été prise par un maître photographe, ce qui le rend particulièrement adapté à une utilisation dans des lieux qui exigent des images réalistes.
Au lieu de son modèle principal, nous allons utiliser aujourd'hui son modèle Inpaint.

Cliquez sur le lien ci-dessous pour télécharger son modèle Inpaint et l'installer pour une utilisation ultérieure.
https://civitai.com/models/132632?modelVersionId=201346
Préparation 3 : Photo factice
Nous prendrons l'exemple de celui-ci

Cette photo a été prise dans sa propre salle d'exposition. Attention, il s'agit d'un mannequin noir, ce qui causera des problèmes plus tard. Teaser ici d'abord.
Une fois que ces trois éléments sont prêts, nous pouvons commencer.
III. démonstrations opérationnelles
Cet enseignement utilise le modèle SD 1.5 pour démontrer l'ensemble du processus.
Étape 1 : Sélectionner le modèle SAM et télécharger le modèle
Appuyez sur l'onglet Inpaint Anything et vous verrez un écran comme celui-ci

Sélectionnez l'ID du modèle de segmentation sémantique à utiliser. Ici, nous choisissons le modèle sam_vit_l_0b3195.pth. Si vous venez de l'installer, ces modèles ne sont pas encore téléchargés, vous devez cliquer sur le bouton Télécharger le modèle avant qu'il ne soit téléchargé.
Charge.

Étape 2 : Obtenir un exemple de diagramme de segmentation
Téléchargez l'image pour peindre n'importe quoi et appuyez sur Exécuter segmenter n'importe quoi.

Vous verrez l'exemple de diagramme fractionné sur la droite

Étape 3 : Créer un masque préliminaire.
Si nous voulons utiliser la fonction Redraw plus tard, nous devons créer un masque de la zone que nous voulons redessiner. Maintenant que nous disposons de blocs de couleurs sémantiquement séparés, comment créer rapidement un masque ?
C'est facile, il suffit de prendre la souris et de taper sur le bloc de couleur que vous voulez masquer, vous n'avez pas besoin de peindre tout le bloc, il suffit de taper sur ce bloc et d'attendre un peu pour qu'il devienne un masque.
Parce que nous voulons que les arrière-plans, les mannequins, etc. soient repeints, ces endroits doivent être récupérés, mais les arrière-plans sont un peu compliqués à réaliser
Nous pouvons donc cliquer sur le bloc de couleur de la robe et cocher la case Inverser le masque.

Une fois que vous les avez tous sélectionnés, appuyez sur Créer un masque et vous verrez les résultats du masque.

Étape 4 : Afficher les résultats du masque
Vérifier les résultats du masque pour voir s'il y a des oublis, en fait, l'écran est plus complexe, il est donc difficile d'y voir clair, voici une astuce, le côté de l'onglet Masque seul pour s'ouvrir.

Il comporte deux boutons :
Obtenir le masque comme alpha de l'image
Obtenir un masque
Une fois que vous avez appuyé sur ces deux boutons, vous pouvez voir si le masque est terminé.

Notez que le blanc, ici, est le masque, la zone qui sera remplie d'IA à l'avenir, et que le noir est la partie à conserver, ne vous trompez donc pas.
Étape 5 : Affiner le masque
Comme vous pouvez le voir sur cette image masquée, il y a d'autres endroits que les vêtements qui n'ont pas encore été masqués (c'est-à-dire qu'il y a des choses qui ne devraient pas être là).
(lignes noires).

C'est à ce moment-là qu'il est affiné à la main.
Revenez au diagramme qui a généré le masque et peignez les zones où vous souhaitez ajouter le masque. S'il y a des zones à ajouter en noir, peignez-les manuellement et appuyez sur le bouton Découper le masque par skatch, et inversement, pour ajouter du blanc, peignez-les manuellement et appuyez sur le bouton Ajouter le masque par skatch.
Si vous pensez que l'image est trop petite pour être peinte, vous pouvez l'agrandir en appuyant sur S, puis appuyer à nouveau sur S pour la restaurer.

Plus Black : Masque d'habillage par bouton d'écrasement
Ajouter du blanc : ajouter un masque en cliquant sur le bouton "skatch".

Après l'application, appuyez sur la touche Add mask by sketch
.
Passez ensuite à l'onglet Masque uniquement et appuyez sur la touche Get mask
jusqu'à Get mask as alpha of image
Est-ce ce que nous voulons ?
Le masque.

S'il y a d'autres taches, coupez-les de la même manière ; si cela ne pose pas de problème, nous passons à l'étape suivante.
Étape 6 : Commencer à repeindre dans inpaint anything
Une fois nos masques terminés, nous pouvons commencer à demander une diffusion stable pour nous aider à remplir l'arrière-plan.
Allez dans l'onglet inpaint et remplissez la mention et la mention inverse. L'image que je souhaite générer est la suivante : une belle femme portant une robe de mariée et tenant une rose blanche. Entrez donc la mention suivante :
A beautiful woman wearing a white wedding dress while holding a bouquet of white roses.
Dynamic pose, photography, masterpiece, best quality, 8K, HDR, highres, absurdres: 1.2,
Kodak portra 400, film grain, blurry background, bokeh: 1.2, lens flare
Le téléprompteur inversé est le suivant :
Nsfw, ugly, paintings, sketches, (worst quality:2), (low quality:2), (normal quality:2), lowres

Sélectionnez l'un des modèles d'inpaint, il s'agit des préréglages d'inpaint anything he.

Parce que nous voulons faire de vraies photos, nous utilisons l'application Uminosachi/realisticVisionV51_v51VAE-inpainting celui-ci
Modèles.
Appuyez sur Run Inpainting et vous obtiendrez une image du modèle vivant.

Ça a l'air bien, il faut en avoir un peu plus.


Après avoir obtenu le tableau, pensez-vous que cet enseignement est terminé ?
Pas encore ! Parce qu'il y a encore des questions qui se posent si nous voulons vraiment l'utiliser
- Il n'est pas possible de sélectionner un grand nombre d'images à la fois.
- Il n'est pas possible d'utiliser le modèle que nous voulons
Que faire ? Il faut donc passer à l'étape suivante.
Étape 7 : Utiliser la fonction de redécoupage de Tupelo
Revenez à l'onglet Masque uniquement et appuyez sur "Envoyer à img 2 img inpaint".

Lorsque vous envoyez le masque, vous passez à l'onglet Inpaint Upload dans Tupelo. Vous verrez que votre image et votre masque ont été envoyés !

C'est à ce moment-là que les habitués de SD seront heureux de retrouver un endroit familier et de pouvoir enfin choisir leur modèle préféré.
Choisissons donc un modèle ! Ici, je choisis chilloutmix.
Ensuite, il faut ajuster la taille de la photo, après avoir appuyé sur le triangle, le système ajuste automatiquement la largeur et la hauteur à celles de la photo, sans qu'il soit nécessaire d'entrer à nouveau les données.

Pour remplir le téléprompteur, nous voulons maintenant le modifier de manière à ce que la belle femme soit sur la plage dans sa robe de mariée, que ses cheveux flottent doucement dans la brise et qu'elle tienne un bouquet de roses blanches. Modifions donc le téléprompteur comme suit :
A beautiful woman wearing a white wedding dress adorned with lace, walking along the
beach at sunset. Her hair is gently lifted by the breeze, and she is holding a bouquet of white roses. Dynamic pose, photography, masterpiece, best quality, 8K, HDR, highres, absurdres: 1.2,
Kodak portra 400, film grain, blurry background, bokeh: 1.2, lens flare
Le téléprompteur inversé reste inchangé :
Nsfw, ugly, paintings, sketches, (worst quality:2), (low quality:2), (normal quality:2), lowres
L'échantillonneur est DPM++ 2 M Karras avec un pas d'échantillonnage de 40.
Tous les autres paramètres sont utilisés comme préréglages, comme indiqué ci-dessous :

Tout devrait être prêt à être généré maintenant !
Des choses étranges sont apparues !

Pourquoi le modèle généré par l'IA ne change-t-il pas de vêtements ? Les vêtements ont l'air de flotter dans l'air.
Est-ce le contenu masqué qui doit être ajusté ? Le préréglage actuel est l'original.

Remplaçons-le par quelque chose d'autre, en commençant par le remplissage.

Il ne porte toujours pas bien. Il faut alors le transformer en bruit latent et voir ce qu'il en est.

L'image est encore plus bizarre. S'agit-il donc d'un rien latent ?

Comme dans, pas habillé ! Qu'est-ce qui se passe ici ? Pourquoi les vêtements restent-ils toujours en place ?
Nous en arrivons donc à la conclusion qu'il s'agit d'une panne .....
Ne tirez pas de conclusions hâtives, il s'agit en fait d'un choix de modèle erroné.
Étape 8 : Sélectionner epiCPhotoGasm Inpainting Model Repainting
La raison pour laquelle les vêtements ne s'adaptent pas toujours est simple : ce que nous faisons, c'est repeindre, et non pas générer purement et simplement, et nous allons donc utiliser un modèle spécialement conçu pour repeindre.
ChilloutMix n'est pas le modèle à utiliser pour le repainting, nous allons donc utiliser l'epiCPhotoGasm_zinpainting précédemment téléchargé à la place.
Modèles.

Le modèle ayant été modifié, commençons à le générer. Tout devrait bien se passer maintenant !
Voyons les résultats :

Nous avons obtenu un mannequin habillé... magnifique.
Que se passe-t-il ici ? Tout à l'heure, les vêtements n'ont pas été mis, et maintenant la personne est partie, où est la beauté promise ? Serait-ce de la malchance, générez-le à nouveau et vous verrez.

Du coup, la beauté est là, mais qu'est-ce que c'est que ce tissu noir sur sa poitrine ? Nous n'avons pas demandé ce tissu !
La raison en est que le paramètre actuel du contenu du masque est original, ce qui renvoie à la structure et à la couleur de l'image originale lors du redessin, d'où l'apparition des plates-formes et du tissu noir, qui sont présents sur l'image originale. Comment résoudre ce problème ?
C'est simple, il suffit de changer le paramètre en quelque chose d'autre, par exemple, changeons en remplir Vous obtiendrez un diagramme comme celui ci-dessous.




Si l'on utilise un bruit latent, le résultat sera le suivant



Si rien de latent n'est utilisé, alors le



N'est-ce pas une belle image ? Elle n'est même pas encore réglée pour avoir ce type de qualité, elle sera meilleure si elle est à nouveau optimisée, alors quelle est la prochaine étape pour l'optimiser ?
IV. questions fréquemment posées
Une fois que vous aurez opéré de cette manière, il se peut que vous ayez à répondre à certaines questions, une à une, pour que vous puissiez vous expliquer.
Question 1 : Qu'est-ce que le partitionnement d'instances ?
La segmentation des instances consiste à différencier les éléments d'une image en les étiquetant de couleurs différentes, chaque couleur représentant un élément.
Cette fois-ci, il s'agit de diviser avec des exemples pour accélérer le temps nécessaire à la création d'un masque.
Question 2 : Inpaint Anything a différents modèles de segment Anything, quelle est la différence ?
Le modèle Segment Anything, également connu sous le nom de SAM, fournit 9 types de modèles Segment Anything dans Inpaint Anything.

Il peut être divisé en 4 catégories, que nous allons expliquer une à une.
Classe 1 : début de sam_vit - modèle SAM fourni par Meta
Le point de départ de sam_vit est le modèle fourni par meta. Meta ayant nommé son modèle de segmentation sémantique Segment Anything Model, c'est de là que part le SAM dont nous parlons actuellement, et il doit être considéré comme l'initiateur de cette vague de modèles SAM.
Il s'agit d'une série de modèles annoncés par Meta en avril 2023, et les autres modèles SAM seront comparés à cette série. Il y a 3 modèles, en termes de taille, h (énorme), l (grand), b (base), énorme > grand > base, et la précision est théoriquement proportionnelle à la taille, et la vitesse de calcul est également proportionnelle à la taille.
En termes d'effet, il y a peu de différence entre énorme et grand, mais il y a une différence significative entre base et énorme.

Référence Meta SAM :
https://segment-anything.com/
https://github.com/facebookresearch/segment-anything
https://huggingface.co/facebook/sam-vit-base/tree/main
https://huggingface.co/facebook/sam-vit-large
https://huggingface.co/facebook/sam-vit-huge
Classe 2 : début de sam_hq_vit - Segment Anything dans la série High Quality
Le modèle commençant par sam_hq_vit est un modèle de segmentation sémantique de haute qualité fourni par le Visual Intelligence and Systems Group de l'ETH Zürich, et selon les données fournies dans leur article, la précision de leur découpage est meilleure que celle de Meta, il est donc dit de haute qualité. D'après les données fournies dans leur article, la précision de leur segmentation est meilleure que celle de Meta, ce qui en fait un modèle de haute qualité. La région segmentée est certes plus fine que celle de Meta, mais la différence n'est pas significative dans notre cas.

SAM HQ Référence :
https://github.com/SysCV/sam-hq
https://huggingface.co/lkeab/hq-sam/tree/main
Classe 3 : Les débuts de FastSAM - Série FastSAM
Pour obtenir de bons résultats et économiser de la mémoire, vous pouvez utiliser la série FastSAM, proposée par CASIA-IVA-Lab (CASIA-IVA-Lab). J'utilise moi-même ce modèle sur des machines à faible VRAM.
Il est disponible en deux modèles, X et S.
Le modèle X a bien fonctionné dans notre exemple de robe de mariée, mais le modèle S n'aurait pas été adapté à notre exemple.

Des informations sur FastSAM sont fournies ci-dessous :
https://github.com/CASIA-IVA-Lab/FastSAM
https://huggingface.co/An-619/FastSAM
Catégorie 4 : SAM mobile
SAM petit et rapide, un SAM qui peut fonctionner rapidement même avec un CPU. Mais l'effet est aussi l'un des pires, et ne convient que pour distinguer de grands blocs de données.

Référence SAM mobile :
https://github.com/ChaoningZhang/MobileSAM
https://huggingface.co/dhkim2810/MobileSAM/tree/main
Question 3 : Que contrôle le paramètre Masked content d'Inpaint ?

Il existe quatre options pour le contenu masqué, décrites ci-dessous :
Option 1 : Remplissage
L'option de remplissage rend l'image de la zone redessinée aussi floue que possible, en ne conservant que la structure générale et les couleurs. Elle est donc utilisée lorsqu'il faut repeindre à grande échelle.
Dans notre paradigme, la position du niveau de la mer, le parcours de la difficulté du sable, sont tous les mêmes, même la couleur du coucher de soleil est similaire.

Option 2 : Original
L'original fait référence à l'image originale, et l'image générée est très similaire à l'image originale en termes de blocs, de couleurs, etc.
Dans notre exemple, cette option laisserait la partie noire du mannequin et la direction de la plage resterait inchangée.

Option 3 : bruit latent
Le bruit latent donne du bruit à la partie à redessiner, ce qui tend à produire un contenu non pertinent, et est utilisé lorsqu'il faut faire preuve de créativité.
Comme vous le verrez dans notre démonstration, l'image générée avec le bruit latent répétera la petite chose mentionnée dans l'invite (par exemple, des roses blanches dans notre cas).

Option 4 : Rien de latent
Latent nothing se réfère aux couleurs proches de la zone à redessiner, trouve la moyenne des couleurs proches et remplit la zone redessinée. Cette méthode est idéale pour supprimer les objets indésirables.
Mais dans notre exemple cette fois, nous n'avons pas l'impression de supprimer des choses parce que nous redessinons à grande échelle. Mais lorsque vous observez les diagrammes générés à l'aide de latent nothing, vous constatez que leurs schémas de couleurs et leurs compositions sont très similaires, par exemple, les couleurs du sable sont toutes très similaires également.

V. Examen de la question de l'extension
Passons en revue ce que nous venons de faire.
Pour faire simple, il y a deux grandes étapes :
- Masquage avec la fonction de segmentation sémantique d'Inpaint Anything.
- Ces données sont ensuite transférées vers l'inpaint upload pour Tupelo et vers l'inpaint pour la peinture de modèles spécialisés.
Cela aurait suffi à le rendre aussi productif qu'il l'est aujourd'hui.




Tout pourrait être mieux, et il y aurait encore plusieurs problèmes avec l'approche actuelle :
- Que se passe-t-il si le modèle que je souhaite n'a pas de modèle inpaint ? Puis-je utiliser un modèle générique ?
- Que devez-vous faire pour modifier l'ombre et la lumière sur vos vêtements ?
- Parfois, on a l'impression que la photo a été retouchée. Que dois-je faire pour la rendre plus naturelle ?
- Comment générer des images plus riches qui ne sont pas celles qui sont faites pour ressembler à celles-ci aujourd'hui.
© déclaration de droits d'auteur
Article copyright Cercle de partage de l'IA Tous, prière de ne pas reproduire sans autorisation.
Articles connexes
Pas de commentaires...