Nodes/ComfyUI_SVG-Suite/Zenkai SVG V1
ComfyUI Node

Zenkai SVG V1

The node that turns your SVG folder into a workflow input

By MushroomFleet·Created about a year ago·Updated 5 months ago· 9
Zenkai SVG V1
    • STRING
    subfolder
    seed0
    num_svgs1
    mode

    First, the important part: Zenkai SVG V1 does not convert anything. Despite living inside svg-suite - a pack whose whole job is turning images into SVGs - this node is a file loader. It reads SVG files you already have and hands them to the rest of your workflow as plain text. That sounds anticlimactic until you realize what it buys you: instead of hunting through your filesystem for an icon or a pattern and pasting it into a workflow by hand, you can pull it in by seed, batch a whole folder, and run it through the suite's color, compression, and save nodes automatically. If you keep a library of SVG assets (logos, icons, backgrounds, cutout shapes you traced once and reuse), this is the node that makes them workflow inputs instead of loose files.

    It's one of the small, weirdly-named nodes in the pack - the category is "DJZ-Nodes," the pack is MushroomFleet's svg-suite, and yes, the author runs the DJZ-Workflows repository with a thousand-plus shared workflows. Community signal is thin for this specific node, but the author's packs show up in r/comfyui workflow shares, and there was a moment in June 2025 where the DJZ-Nodes GitHub started 404ing and people panicked before it came back. It's a real author, just a small one.

    How it works

    The mechanism is dead simple, and you can read it in the source in about thirty seconds. When you add the node, it walks up the directory tree from custom_nodes/svg-suite/ until it finds the main.py that marks your ComfyUI root, then lists the subdirectories of ComfyUI/svgstore/. Those subdirectories become the subfolder dropdown. When you run it, it reads the contents of each .svg file in that folder as UTF-8 text and returns them.

    The seed does different things depending on your mode, which trips people up:

    • sequential - the seed maps directly to a file index: file (seed + i) % total. Seed 0 is the first file, seed 1 the second. Bump the seed to step through files one by one.
    • random - the seed seeds Python's random, and it samples num_svgs files.

    The inputs that matter

    Four inputs, and only two of them are interesting:

    • subfolder - the dropdown, populated from whatever folders you create inside svgstore/.
    • mode - sequential or random, see above.
    • seed - drives selection in either mode, 0 to 4294967295.
    • num_svgs - how many files to load at once, 1–10.

    The output is a list of SVG strings - the file contents, not file paths. That list plugs straight into svg-suite's own consumers: Save SVG (Advanced), SVG Preview (Advanced), and the color-manipulation nodes all take an svg_string input, so you can load a folder of assets, recolor them, and save them out in one pass. One honest gotcha: the output is a list, and those consumers expect a single string, so keep num_svgs at 1 unless you're deliberately feeding a list-aware node. With 1 it just works.

    Install and setup

    Standard custom node install: ComfyUI Manager, search "SVG Suite," install, restart. Or clone it manually:

    cd ComfyUI/custom_nodes
    git clone https://github.com/MushroomFleet/svg-suite
    pip install -r svg-suite/requirements.txt
    

    Then restart ComfyUI. The suite's requirements.txt pulls in the heavy hitters - vtracer, PyMuPDF, torch - but those belong to the conversion nodes, not this one. ZenkaiSVG_V1 itself is pure Python standard library; you can't strip the install down to just it, but know that it's not the dependency-heavy part.

    Then create your library:

    ComfyUI/
    └── svgstore/
        ├── icons/
        ├── patterns/
        └── backgrounds/
    

    Drop SVG files in, add the node, pick the folder.

    Where people get burned

    The subfolder dropdown is read when the node is created. Add a new folder to svgstore/ and it won't appear until you reload or re-add the node - delete it and drag in a fresh copy rather than hunting for a refresh button.

    If the dropdown shows "No subdirectories found," the folder is missing entirely or has no subfolders (the source returns that literal string). And if a file won't read, the node doesn't crash - it returns an Error loading <file>: ... string in its place, which is friendly but easy to miss if it lands in a save node. Loaded SVGs are expected to be UTF-8, so if your assets come from a weird exporter with a BOM or latin-1 encoding, normalize them first.

    CategoryDJZ-Nodes

    Inputs (4)

    NameTypeDefaultDescription
    subfolderCOMBO1 options: No subdirectories found
    seedINT00–4294967295
    num_svgsINT11–10
    modeCOMBO2 options: sequential, random

    Outputs (1)

    NameTypeDescription
    STRINGSTRING