Nodes/ComfyUI-ChuangJie/可视化保存图像
ComfyUI Node

可视化保存图像

Save PNGs into a folder you picked, not the output junk drawer

By lefango·Created a day ago·Updated about 22 hours ago· 0
可视化保存图像
  • images
  • 图像
◄filename_prefixComfyUI►
◄subfolder►

Core SaveImage has exactly one idea about where your files go: ComfyUI/output/, flat, forever. You can fake subfolders by typing portraits/run_a into the prefix and hoping you spelled it right, and that's the state of the art unless you install something. VisualSaveImage from the pack 创界 / ComfyUI-ChuangJie replaces that guesswork with a folder browser - pick a directory under output, or make a new one from the node, and the file lands there with the resolution already in the filename.

It's a small quality-of-life node. If your output folder is currently 6,000 files deep with ComfyUI_00234_.png scattered through it, that's the itch.

How it works

Mechanically it's a thin, careful wrapper around ComfyUI's own SaveImage. That's a good thing - it means the PNGs it writes carry the same embedded workflow and prompt chunks a normal save does, so dragging one back onto the canvas still rebuilds your graph. Nothing about your metadata, your seeds, or your reproducibility story changes. (If you post to CivitAI, note that the A1111-style parameters block still isn't there - same limitation as core SaveImage; for auto model-linking you'd want a dedicated saver.)

What the wrapper adds is path handling. It points the native saver at your chosen subfolder, then constructs the filename as {prefix}_{width}x{height}, which is why saved files come out looking like ComfyUI_1024x1024_00007_.png - resolution baked in, native counter appended. After the write it reads back the actual filenames and hands them to the node's own preview panel, so what you see is what hit the disk rather than a thumbnail of the tensor.

The validation is stricter than you'd expect, and deliberately so. The subfolder must be relative, inside output, with no drive letters, no leading slash, no .., no Windows-reserved names or illegal characters, and a symlink that resolves outside output is refused at save time rather than trusted from whatever the browser sent. Folder names containing % are treated as literal text.

The inputs and outputs

  • images - the IMAGE batch. Empty batches are rejected with an explicit error instead of writing a zero-byte file.
  • filename_prefix - default ComfyUI. Plain text only: the tooltip says "普通文件名前缀;分辨率和编号自动添加". Resolution and numbering are appended for you, so don't add them yourself.
  • subfolder - empty by default (meaning the root of output). You normally set this with the folder picker button on the node rather than typing, and the picker lets you create directories in place.
  • Output: 图像 (IMAGE) - a pass-through of what you just saved. That one is handy: you can keep refining downstream, or feed a second viewer/monitor node, without an extra branch off the sampler.

The node is an output node, so it runs every time the graph executes - no caching weirdness, no "why didn't my image save" when nothing upstream changed.

The one real gotcha: % templating doesn't work here

Core SaveImage's prefix is a small template language - %date:yyyy-MM-dd%, %Empty Latent Image.width%, and friends. This node blocks % outright ("文件名前缀只支持普通文字,不支持 % 占位符"), which is a deliberate anti-footgun: it can't have a folder name sneak a placeholder into the native formatter. The consequence is that a workflow you copied that relied on %date% will error here.

The trade is that you get folders instead. Put the organisation in subfolder - one directory per project, per character, per shoot - which is more legible than encoding it in a filename anyway. If you genuinely need date-stamped auto-incrementing folders per run, no node in this pack does that; people in the community are still asking for exactly it.

Install

Same pack as the LoRA and prompt nodes, one install for all three. In ComfyUI Manager search ComfyUI-ChuangJie, or:

cd ComfyUI/custom_nodes
git clone https://github.com/lefango/ComfyUI-ChuangJie.git

Then restart ComfyUI and hard-refresh the browser - the folder picker is front-end JavaScript, and a cached page is the most common reason the buttons look dead. The node lives under 创界节点 / 图像工具.

No dependencies, no models, no keys: the pack's pyproject.toml lists an empty dependency set. Do move any older standalone ComfyUI-Visual-Save-Image out of custom_nodes first - the pack detects the old routes and refuses to start with a clear error message telling you to do exactly that.

When it errors

The messages are Chinese and specific, which is refreshing:

  • 保存文件夹不存在,请重新选择或新建 - the folder you saved in the workflow was deleted or moved. Re-pick it.
  • 保存失败:没有文件夹写入权限 - permissions on that subfolder; pick another or fix the ACL.
  • 文件名前缀只支持普通文字 - you pasted a % template into the prefix.

One more: the folder is resolved fresh at save time, not trusted from the widget. If you rename a directory in your file manager mid-session, the node will tell you instead of quietly writing to a path that no longer matches what the node shows. Slightly annoying, entirely correct.

Category创界节点/图像工具

Inputs (3)

NameTypeDefaultDescription
imagesIMAGE—
filename_prefixSTRINGComfyUI普通文件名前缀;分辨率和编号自动添加
subfolderSTRING相对于 ComfyUI output 的文件夹,使用选择文件夹按钮设置

Outputs (1)

NameTypeDescription
图像IMAGE—