SeeThrough Parts To SVG Paths
Turn your character's layers into actual SVG paths
- parts
- svg
- svg_text
- svg_path
If you've used the See-through node pack to decompose an anime character into layers, you've got a pile of cutout images - hair, torso, arms, each on its own alpha. GameAssets_SeeThroughPartsToSVGPaths converts those layer silhouettes into real SVG paths. Not a trace tool that rebuilds your character, and deliberately not one that keeps colors or textures: this is vector outlines of layer masks, ready to drop into a vector pipeline.
It's part of comfyui-game-assets-maker, quinteroac's pack shared on r/comfyui as a playground for game-asset pipelines. It's a niche node in a niche pack, but if you've ever wanted to rig from vectors instead of bitmaps, it's the missing bridge.
The prerequisite you need to know
This node consumes SEETHROUGH_PARTS - the output type of SeeThrough_PostProcess from jtydhr88/ComfyUI-See-through, the ComfyUI port of the "see-through" single-image layer decomposition project (the one that made the rounds on r/StableDiffusion with a good bit of excitement). That pack is a separate install and you need it first; without it you literally cannot feed this node. Wire its parts output in, and it'll also give you per-part depth order (depth_median), which this node uses to stack the paths back-to-front.
How it works
For each part, it builds a mask from the alpha channel (pixels above alpha_threshold, default 10), traces contours with OpenCV, and converts them to SVG path data. contour_mode is the one that matters: external traces just the outer silhouette; hierarchy also preserves internal holes (like the gap under an arm). simplify_epsilon reduces the number of points in the path - higher is smoother but less faithful, 1.5 is a good default. min_area drops specks of noise.
Styling is straightforward: stroke_width/stroke_color, and fill_paths + fill_color if you want filled shapes instead of outlines.
Outputs
svg- a ComfyUISVG-compatible object, meaning it plugs directly into the built-in Save SVG node.svg_text- the same SVG as text, if you want to inspect or dump it elsewhere.svg_path- the file path, whensave_svgis on (written to ComfyUI's output directory with a timestamped name).
Each path carries data-tag and data-depth attributes, so the layer info survives into the SVG.
Installing
ComfyUI Manager (search "comfyui-game-assets-maker") or:
cd ComfyUI/custom_nodes
git clone https://github.com/quinteroac/ComfyUI-GameAssetsMaker.git
cd ComfyUI-GameAssetsMaker
pip install -r requirements.txt
Restart after. Only opencv-python to install, no model downloads - plus the separate See-through pack you already need for the input.
Where people get burned
Remember what this node is not: it ignores source colors and textures on purpose, so don't expect a clean vectorized character. You get silhouettes, and messy seams where layers overlap will show as overlapping paths. hierarchy mode helps with holes but costs more path data; if paths come out noisy, raise min_area and simplify_epsilon rather than fighting the geometry by hand.
Inputs (12)
| Name | Type | Default | Description |
|---|---|---|---|
| parts | SEETHROUGH_PARTS | — | |
| contour_mode | COMBO | hierarchy | 2 options: external, hierarchy |
| depth_order | COMBO | back_to_front | 3 options: back_to_front, front_to_back, input_order |
| alpha_threshold | INT | 100–255 | — |
| simplify_epsilon | FLOAT | 1.50–64 | — |
| min_area | INT | 160–1048576 | — |
| stroke_width | FLOAT | 1.00–64 | — |
| stroke_color | STRING | #111111 | — |
| fill_paths | BOOLEAN | false | — |
| fill_color | STRING | none | — |
| save_svg | BOOLEAN | true | — |
| filename_prefix | STRING | seethrough_trace | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| svg | SVG | — |
| svg_text | STRING | — |
| svg_path | STRING | — |