SVG Uploader
A real file picker and live preview for vector files
- svg_text
ComfyUI has plenty of ways to load a PNG or JPEG, but an SVG file is a different animal - it's text, not pixels, so the standard Load Image nodes won't touch it. SVG Uploader is the front end for that gap, and the companion piece to this pack's SVG Editor. Click a button, pick an .svg on disk, watch it render in a live preview right on the node, and the raw SVG markup flows out as a string for the rest of the graph.
How it works
Mechanically it's simpler than it looks. On the Python side this node is nearly a pass-through: one hidden svg_string input (a STRING widget the UI keeps invisible) that it returns unchanged as the svg_text output. It's flagged as an output node, so ComfyUI executes it even with nothing wired below it. All the actual work happens in your browser - the pack's js/ folder draws an "Upload SVG" button and a preview box onto the node, reads your file as text, validates that it's genuinely an <svg>, and stuffs the content into that hidden widget.
What you actually touch
There's really one thing that matters here and it's the file you picked - you never set svg_string by hand. The svg_text output is a plain STRING, so it wires straight into SVG Editor's svg_text input or any other node that accepts SVG markup as text.
The preview is the selling point. Instead of blindly feeding a template to the renderer and hoping the ids line up, you see the source SVG rendered on the node itself. That makes iterating on a hand-edited template far less guesswork, and it's the part that makes this worth having over just pasting XML into a string node.
The honest framing
This is a two-nodes-together kind of pack. Uploader by itself is a string loader with extra steps; it earns its place when it's feeding the Editor. Typical flow: add both, upload your template, wire Uploader → Editor, connect images and text on the Editor, run, save. Nothing heavier than that. It's clearly a small pack built to solve one person's workflow - there's essentially no community chatter around it - so set expectations accordingly.
Install
Same as its sibling - ComfyUI Manager, search "ComfyUI-SVGFullfill", or:
cd ComfyUI/custom_nodes
git clone https://github.com/stormcenter/ComfyUI-SVGFullfill
then restart ComfyUI. Dependencies are Pillow, numpy and cairosvg (the last one is what actually rasterizes over in the Editor - on Linux it may need the system libcairo2 package first). No models to download.
One quirk worth knowing: the preview is rendered by your browser, while the Editor rasterizes with cairosvg - two different engines, two different font stacks. A font that looks perfect in the preview can render slightly differently in the final PNG. Keep your text short and your expectations low, and the round-trip is painless.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| svg_string | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| svg_text | STRING | — |