Separate Masks(SeparateMasks)
Ce nœud est implémenté à l'aide de bibliothèques de vision par ordinateur (comme OpenCV) et identifie les régions connectées indépendantes en détectant les contours dans le masque d'entrée.
Separate Masks
Le nœud Separate Masks, basé sur des bibliothèques de vision par ordinateur (comme OpenCV), identifie les régions connectées distinctes en détectant les contours dans le masque d'entrée.
Le nœud Separate Masks est un outil de traitement de masques (Mask) dont la fonction principale est de séparer un masque d'entrée contenant plusieurs régions discontinues en plusieurs masques indépendants, selon des conditions définies. En identifiant les régions connectées dans le masque et en les filtrant et segmentant en fonction de leur taille ou de leur forme, il simplifie la gestion et les opérations ultérieures sur des zones de masque complexes.
Fonctionnalités du nœud
Ce nœud, basé sur des bibliothèques de vision par ordinateur (comme OpenCV), identifie les régions connectées indépendantes en détectant les contours dans le masque d'entrée. Il propose trois modes de séparation (convex_polygons, area, box), chacun utilisant un algorithme différent pour traiter et produire les masques. La sortie après traitement par le nœud est un lot contenant plusieurs masques indépendants, facilitant leur utilisation séparée dans le flux de travail.
Description des paramètres du nœud - Separate Masks
Entrées
| Nom du paramètre | Type de données | Requis | Valeur par défaut | Plage/Valeurs possibles | Description |
|---|---|---|---|---|---|
mask | MASK | Oui | - | - | Masque d'entrée à séparer. |
Paramètres
| Nom du paramètre | Type de données | Requis | Valeur par défaut | Plage/Valeurs possibles | Description |
|---|---|---|---|---|---|
mode | COMBO | Oui | convex_polygons | "convex_polygons", "area", "box" | Mode de séparation. Options : convex_polygons (approximation des contours par polygones convexes), area (filtrage basé sur la taille de la zone), box (filtrage basé sur la taille de la boîte englobante). |
size_threshold_width | INT | Oui | 256 | 0.0 - 4096 (pas : 1) | Définit le seuil de largeur pour filtrer les régions. Plage de 0 à 4096, taille de pas 1. |
size_threshold_height | INT | Oui | 256 | 0.0 - 4096 (pas : 1) | Définit le seuil de hauteur pour filtrer les régions. Plage de 0 à 4096, taille de pas 1. |
max_poly_points | INT | Oui | 8 | 3 - 32 (pas : 1) | Contrôle le nombre maximum de sommets de polygone utilisés pour approximer les contours en mode convex_polygons. Plage de 3 à 32, taille de pas 1. |
Sortie
| Nom du paramètre | Type de données | Description |
|---|---|---|
| mask | MASK | Sort les multiples masques indépendants obtenus après séparation. |
Cas d'utilisation
Ce nœud est très utile dans les flux de travail impliquant l'édition d'images ou la génération spécifique à une région. Par exemple, si vous disposez d'un masque de segmentation sémantique contenant plusieurs objets dispersés, vous pouvez utiliser ce nœud pour séparer chaque objet en un masque indépendant. Ensuite, vous pouvez appliquer différents nœuds de traitement d'image (comme la révision, la coloration ou le transfert de style) à chaque objet individuellement, permettant un contrôle précis.
Notes
Veuillez noter que l'efficacité de la séparation du nœud dépend de la qualité et de la connectivité du masque d'entrée. La séparation peut ne pas être précise pour les régions aux bords flous ou fortement adhérentes. De plus, le paramètre max_poly_points affecte la précision du mode d'approximation polygonale et doit être ajusté en fonction du niveau de détail requis.
Lien vers le code source du nœud Separate Masks
Le nœud Separate Masks provient du pack de nœuds ComfyUI-KJNodes.
Commentaires
Connectez-vous avec GitHub pour rejoindre la discussion.