Nodes/Inkvec/Inkvec Save SVG
ComfyUI Node

Inkvec Save SVG

The node that only writes a file, and why you need it

By logolabs·Created 27 days ago·Updated 25 days ago· 2
Inkvec Save SVG
      ◄svg—►
      ◄filename_prefixinkvec►

      Inkvec Trace hands you SVG as a string. ComfyUI has nothing in core that takes a string and puts a file on disk - Save Image wants an IMAGE tensor, Preview Image draws to the canvas and saves a PNG, and there's no "Save Text" node waiting for you. So the last step of every trace workflow is this small, unglamorous node. It has no outputs. It is a terminus.

      What it does

      Feed it svg from Inkvec Trace, give it a filename_prefix, run the graph. You get <prefix>_00001_.svg in ComfyUI/output/, numbered the way Save Image numbers files - so the second run gives _00002_, and you can queue a batch without overwriting yesterday's logo.

      filename_prefix defaults to inkvec, and it accepts a subfolder: logos/inkvec writes into ComfyUI/output/logos/. That's the whole node. The saved file is reported back to the frontend in the node's output, and ComfyUI displays it as an image where it can render SVG - so you get a thumbnail in the graph instead of an invisible black box, which is genuinely handy when you're tuning trace settings and re-running twenty times.

      The two inputs

      • svg (STRING) - the SVG source, normally from Inkvec Trace. It's a forced input, so it's a socket, not a text box you can type path data into.
      • filename_prefix (STRING, default inkvec) - file name, optionally with a subfolder.

      There is nothing else. No metadata controls, no compression, no "save as" format choice, because there is only one format here.

      Install

      It comes with the pack, so there's nothing separate to do. ComfyUI Manager: search "Inkvec" and install, then restart. Manually:

      cd ComfyUI/custom_nodes
      git clone https://github.com/logolabs/inkvec-comfyui.git
      pip install -r inkvec-comfyui/requirements.txt
      

      (This particular node needs none of those dependencies - it's pure file I/O - but the pack's Trace node on the other end of your wire does.)

      Things that will bite you

      "the input is not SVG text". That's the node refusing a string that doesn't contain <svg. It's there to stop you wiring an unrelated STRING output into it and getting a junk .svg file that no viewer will open. If you see it, you've plugged in the wrong socket - or, occasionally, something upstream returned an empty or error string instead of a trace.

      It writes only inside the output folder. Paths that climb out of ComfyUI/output/ are refused. If you want the file somewhere else, write it here and move it, or symlink the folder - don't fight the node.

      Nothing saved? The node runs as part of the graph, so check that the execution actually reached it rather than erroring upstream in the Trace node; a terminal node with an error above it never runs at all. And remember the directory is ComfyUI/output, not your ComfyUI root - a fair number of "where did my file go" moments are just looking in the wrong folder.

      One workflow note: because Inkvec Trace's svg output is a list (one string per image in a batch), this node runs once per image. Queue a batch of five logos and you get five numbered SVGs, no extra wiring required.

      CategoryInkvec

      Inputs (2)

      NameTypeDefaultDescription
      svgSTRINGSVG source, e.g. from Inkvec Trace.
      filename_prefixSTRINGinkvecFile name prefix; may include a subfolder, e.g. logos/inkvec.

      Outputs (0)

      No outputs