ComfyUI Extension: ComfyUI_DAO_master
ComfyUI_DAO_master is a collection of custom nodes for ComfyUI. These nodes provide additional tools for image creation, manipulation, and visual experimentation, with a focus on vector workflows (DXF & SVG) and production utilities.
Custom Nodes (0)
README
đš ComfyUI_DAO_master
ComfyUI_DAO_master est une collection de custom nodes pour ComfyUI. Ces nodes apportent des outils supplĂ©mentaires pour la crĂ©ation, la manipulation dâimage et lâexpĂ©rimentation visuelle, avec un focus sur les workflows vectoriels (DXF & SVG) et les utilitaires de production.
<p align="center"> <img width="1928" height="1033" alt="image" src="https://github.com/user-attachments/assets/0d425b29-379b-4b0d-b8b6-c168c8d4cee1" /> </p>⚠Aperçu des fonctionnalités
- Création Vectorielle DXF : Générez des formes primitives (cercles, rectangles, polygones...) et assemblez-les.
- Manipulation SVG : Effectuez des opérations booléennes (union, différence...), stylisez vos SVG et convertissez-les.
- Conversion Robuste : Passez facilement d'une image à un SVG (vectorisation) et d'un SVG à une image (rastérisation).
- Utilitaires Puissants : Un sélecteur de fichiers avancé, des sélecteurs de couleurs dynamiques, un générateur de texte complet et des filtres d'image pratiques.
- Interface Améliorée : De nombreux nodes disposent d'une interface utilisateur interactive avec des menus déroulants dynamiques pour une utilisation plus intuitive.
đ Installation
- Naviguez vers le dossier
custom_nodes
de votre installation ComfyUI. - Clonez ce dépÎt :
cd ComfyUI/custom_nodes git clone https://github.com/orion4d/ComfyUI_DAO_master.git
- Installez les dépendances : Certains nodes nécessitent des bibliothÚques supplémentaires. Installez-les via pip :
pip install cairosvg potrace ezdxf svgpathtools lxml pyclipper shapely
- Note : Le node
Convert IMG to SVG
fonctionne mieux si l'exécutablepotrace
est installé et accessible dans le PATH de votre systÚme.
- Note : Le node
đ Documentation des Nodes
<details> <summary><strong>đ DXF : Primitives</strong></summary><details> <summary><code>DXF Add Circle</code></summary>Cette catĂ©gorie regroupe les nodes fondamentaux pour la crĂ©ation de formes gĂ©omĂ©triques simples. Ils constituent la base de tout dessin vectoriel. Principe de fonctionnement commun : Chaque node de cette catĂ©gorie fonctionne de maniĂšre non-destructive. Il prend un objet
DXF
en entrée, crée une copie de son contenu, y ajoute la nouvelle forme, et retourne un nouvel objetDXF
en sortie.
Ajoute un cercle Ă un document DXF.
- Catégorie :
DAO_master/DXF/Primitives
- Entrées :
dxf
(DXF
): Le document de base.cx
,cy
(FLOAT
): Coordonnées du centre.radius
(FLOAT
): Rayon du cercle.
- Sorties :
dxf
(DXF
): Le nouveau document DXF avec le cercle.
Ajoute un rectangle (standard ou aux coins arrondis) Ă un document DXF.
- Catégorie :
DAO_master/DXF/Primitives
- Entrées :
dxf
(DXF
): Le document de base.x
,y
(FLOAT
): Point d'ancrage.width
,height
(FLOAT
): Dimensions.radius
(FLOAT
): Rayon des coins (pour la version arrondie).centered
(BOOLEAN
): SiTrue
,(x, y)
est le centre ; sinon, c'est le coin inférieur gauche.
- Sorties :
dxf
(DXF
): Le nouveau document DXF avec le rectangle.
Ajoute une forme polygonale (polygone régulier, étoile ou triangle) à un document DXF.
- Catégorie :
DAO_master/DXF/Primitives
- EntrĂ©es (Polygone/Ătoile) :
dxf
(DXF
): Le document de base.cx
,cy
(FLOAT
): Centre de la forme.outer_radius
,inner_radius
(FLOAT
): Rayons pour définir les sommets.num_sides
/num_points
(INT
): Nombre de cÎtés ou de pointes.
- Entrées (Triangle) :
x1, y1, x2, y2, x3, y3
(FLOAT
): Coordonnées des trois sommets.
- Sorties :
dxf
(DXF
): Le nouveau document DXF avec la forme.
Ajoute une ligne ou une ellipse Ă un document DXF.
- Catégorie :
DAO_master/DXF/Primitives
- Entrées (Ligne) :
x1, y1, x2, y2
(FLOAT
): Coordonnées des points de départ et d'arrivée.
- Entrées (Ellipse) :
cx, cy
(FLOAT
): Centre de l'ellipse.major_axis_x, major_axis_y
(FLOAT
): Vecteur de l'axe principal (définit la longueur et l'orientation).ratio
(FLOAT
): Rapport entre l'axe mineur et l'axe majeur.
- Sorties :
dxf
(DXF
): Le nouveau document DXF avec la forme.
Crée, charge ou sauvegarde des documents DXF.
- Catégorie :
DAO_master/DXF
,DAO_master/DXF/IO
- Fonctionnalités :
- New : Crée un document DXF vierge en spécifiant les unités.
- Import : Charge un fichier
.dxf
depuis le disque. - Save : Sauvegarde un objet DXF en fichier
.dxf
, avec des options d'horodatage.
Applique des transformations géométriques (translation, rotation, échelle) à l'ensemble du dessin.
- Catégorie :
DAO_master/DXF/Modify
- Entrées :
translate_x
,translate_y
(FLOAT
): Déplacement.scale
(FLOAT
): Facteur d'échelle.rotation_degrees
(FLOAT
): Angle de rotation.rotation_center
(LISTE
): Point pivot (object_center
ouorigin
).
- Sorties :
dxf
(DXF
): Un nouveau document avec la géométrie transformée.
GénÚre un aperçu visuel (une image) du contenu d'un objet DXF.
- Catégorie :
DAO_master/DXF/Utils
- Fonctionnalités : ContrÎle total sur la taille, l'épaisseur des traits, les couleurs de remplissage/contour, le fond et la grille. Peut également générer un masque.
Analyse un document DXF et en extrait des statistiques.
- Catégorie :
DAO_master/DXF/Utils
- Sorties :
bbox
(STRING
): La boĂźte englobante du dessin(min_x, min_y, max_x, max_y)
.count
(INT
): Le nombre total d'entités dans le document.
Effectue des opérations booléennes (Pathfinder) entre deux formes SVG.
- Catégorie :
DAO_master/SVG
- Entrées :
svg_a
,svg_b
- Opérations :
union
: Fusionne les deux formes.difference
: Soustrait la forme B de la forme A.intersection
: Ne conserve que la zone commune.xor
: Ne conserve que les zones non communes.
Applique des styles ou génÚre un aperçu d'un SVG.
- Catégorie :
DAO_master/SVG
- Fonctionnalités :
- Style : Permet de définir la couleur de remplissage, la couleur et l'épaisseur du contour.
- Preview : Utilise
CairoSVG
pour un rendu de haute qualité avec gestion du ratio d'aspect.
Charge, sauvegarde ou convertit le type de données SVG.
- Catégorie :
DAO_master/SVG/IO
,DAO_master/SVG/Utils
- Fonctionnalités :
- Load : Charge un
.svg
et permet de le redimensionner à la volée. - Save : Sauvegarde du texte SVG dans un fichier
.svg
. - Passthrough : Convertit le type
SVG_TEXT
enSTRING
pour la compatibilité.
- Load : Charge un
Convertit un document DXF en code SVG.
- Catégorie :
DAO_master/SVG/Convert
- Description : Transforme la géométrie DXF en un format SVG textuel, en tentant d'assembler intelligemment les segments pour créer des chemins propres. Offre des contrÎles sur la qualité des courbes et la mise en page.
Convertit un SVG en une image rastérisée et extrait les couleurs utilisées.
- Catégorie :
DAO_master/SVG/Convert
- Description : Un node de conversion avancé avec deux moteurs de rendu (
natif
oucairosvg
) pour une compatibilité maximale. - Sorties :
image
,mask
, etcolors_json
(un rapport détaillé des couleurs et formes détectées).
Vectorise une image en un SVG monochrome en utilisant Potrace.
- Catégorie :
DAO_master/SVG/Convert
- Description : Binarise une image (la transforme en noir et blanc pur) puis utilise l'algorithme de Potrace pour tracer les contours des formes, générant ainsi un SVG.
Un sélecteurs de couleurs interactifs pour choisir des couleurs à partir de listes personnalisables.
- Catégorie :
DAO_master/Color
- đĄ Fonctionnement UI : CrĂ©ez vos propres listes de couleurs dans le dossier
RGB_List/
. Le node affichera des menus dĂ©roulants pour choisir le fichier et la couleur. Un boutonâ»
permet de rafraĂźchir les listes. - Modes :
Manual
,Random
,Increment
,Decrement
.
Un explorateur de fichiers avancé pour sélectionner dynamiquement un fichier dans un dossier.
- Catégorie :
DAO_master/IO
- đĄ Fonctionnement UI : Une interface trĂšs rĂ©active oĂč tous les paramĂštres de filtrage (extensions, RegEx) et de tri mettent Ă jour un menu dĂ©roulant listant les fichiers trouvĂ©s en temps rĂ©el.
- Modes de sélection :
manual
(via l'UI),fixed
,increment
,decrement
,randomize
(piloté par laseed
).
Crée une image, un SVG et un masque à partir d'un texte.
- Catégorie :
DAO_master/Text
- đĄ Fonctionnement UI : Le champ
font_file
devient un menu déroulant listant les polices.ttf
/.otf
que vous placez dans le dossierFonts/
. - Fonctionnalités : ContrÎle total sur la police, la taille, l'alignement, les couleurs de remplissage/contour, le fond, et la sortie (SVG textuel ou vectorisé).
Applique des transformations (déplacement, échelle, rotation) et des symétries à une image.
- Catégorie :
DAO_master/Utils
- Description : Permet de manipuler la position, la taille et l'orientation d'une image et de son masque associé, avec un contrÎle précis sur le point de pivot.
Applique un flou gaussien et peut générer une ombre portée.
- Catégorie :
DAO_master/Filter
- Description : Floute une image et/ou un masque, et peut générer une image séparée contenant une ombre portée personnalisable (couleur, opacité, décalage).
Pour utiliser le node
Convert IMG to SVG
de la maniÚre la plus performante, il est fortement recommandé d'installer l'utilitaire Potrace et de l'ajouter au PATH de votre systÚme. Ce guide vous montrera comment faire, étape par étape.
Ătape 1 : TĂ©lĂ©charger Potrace
- Rendez-vous sur la page officielle : http://potrace.sourceforge.net/#downloading
- Cherchez la section "Windows" et téléchargez la derniÚre version 64-bit (ex:
potrace-1.16.win64-x64.zip
).Note : Prenez bien la version 64-bit (win64), adaptée à la majorité des ordinateurs modernes.
Ătape 2 : CrĂ©er un Dossier et Extraire les Fichiers
- Dans l'Explorateur de Fichiers, allez Ă la racine de votre disque
C:
. - Créez un nouveau dossier nommé
Potrace
. - Extrayez tous les fichiers de l'archive
.zip
téléchargée directement dans ce dossierC:\Potrace
.đ Votre dossier
C:\Potrace
doit maintenant contenirpotrace.exe
et d'autres fichiers.
Ătape 3 : Ajouter Potrace au PATH SystĂšme
C'est l'étape la plus importante. Elle permet à Windows de trouver
potrace.exe
depuis n'importe oĂč.
- Dans le menu Démarrer, cherchez et ouvrez "Modifier les variables d'environnement systÚme".
- Cliquez sur le bouton "Variables d'environnement...".
- Dans la section du haut ("Variables utilisateur"), sélectionnez la ligne
Path
et cliquez sur "Modifier...". - Cliquez sur "Nouveau" et collez le chemin de votre dossier :
C:\Potrace
. - Cliquez sur OK sur toutes les fenĂȘtres pour sauvegarder.
Ătape 4 : VĂ©rifier l'Installation
- Ouvrez un NOUVEAU terminal (via
cmd
dans le menu Démarrer). - Tapez
potrace --version
et appuyez sur Entrée. - Si tout est correct, la version de Potrace s'affichera.
â FĂ©licitations ! Potrace est prĂȘt. Si ComfyUI ne le trouve pas, redĂ©marrez-le.
Le node
DAO Text Maker
vous permet d'utiliser n'importe quelle police au format.ttf
ou.otf
. L'installation est trĂšs simple.
Ătape 1 : Trouver et TĂ©lĂ©charger une Police
Choisissez une police sur un des sites recommandés. Cherchez le bouton "Download" pour obtenir un fichier
.zip
.
- Google Fonts (le plus sûr)
- Fontshare
- Velvetyne
- DaFont (Attention : vérifiez la licence de chaque police !)
Ătape 2 : Localiser et Copier la Police
- Naviguez jusqu'au dossier :
ComfyUI/custom_nodes/ComfyUI_DAO_master/Fonts/
. - Ouvrez le
.zip
que vous avez téléchargé. - Copiez le ou les fichiers
.ttf
ou.otf
directement dans ce dossierFonts
.
Ătape 3 : RafraĂźchir dans ComfyUI
- Retournez dans ComfyUI.
- Sur votre node
DAO Text Maker
, cliquez sur le bouton de rafraĂźchissementâ»
. - Votre nouvelle police apparaßtra dans le menu déroulant
font_file
.
â ïž Note sur les Licences
</details> </details>Respectez le travail des créateurs. Les polices de Google Fonts, Fontshare et Velvetyne sont généralement open-source et sûres pour tout usage. Sur DaFont, beaucoup de polices sont "gratuites pour un usage personnel" uniquement. Vérifiez toujours la licence avant utilisation.
<div align="center"> <h3>đ <strong>Show Your Support</strong></h3> <p>If this project helped you, please consider giving it a â on GitHub!</p> <p><strong>Made with â€ïž for the ComfyUI community</strong></p> <p><strong>by Orion4D</strong></p> <a href="https://ko-fi.com/orion4d"> <img src="https://ko-fi.com/img/githubbutton_sm.svg" alt="Buy Me A Coffee" height="41" width="174"> </a> </div>