Nodes/Kumiho/🦊 Kumiho Save Image
ComfyUI Node

🦊 Kumiho Save Image

Core Save Image, plus a versioning backend that never forgets a render

By kumihocloudsΒ·Created 9 months agoΒ·Updated 8 months agoΒ· 0
🦊 Kumiho Save Image
  • images
  • images
  • revision_kref
  • lineage_json
β—„projectβ–Ί
β—„categoryoutputs/imagesβ–Ί
β—„item_nameoutputβ–Ί
β—„item_kindimageβ–Ί
β—„descriptionβ–Ί
β—„tagsβ€”β–Ί
β—„file_pathβ€”β–Ί
β—„auto_register_depstrueβ–Ί
β—„create_lineagetrueβ–Ί
β—„image_formatpngβ–Ί
β—„quality95β–Ί

Kumiho Save Image is what you swap in for ComfyUI's built-in Save Image when "just save it" isn't enough - when every render should become a versioned, searchable, lineage-tracked asset your whole team can see. It does everything the core node does (saves the image, shows a preview), and then it registers the output with Kumiho Cloud, auto-detects what went into the generation, and records the edges between them. Same muscle memory, much better paper trail.

How it works

The flow is: save locally, then register. The image lands in your ComfyUI output folder under output/kumiho/<category>/ with a <item_name>_<timestamp>.<ext> filename. Then, if the SDK is available, the node walks up the Kumiho hierarchy - get or create the project, create the space path, get or create the item, create a revision, attach each saved file as an artifact. Every save is a new revision; nothing is overwritten.

Two behaviors make it genuinely useful rather than a glorified uploader:

  • Workflow-in-the-PNG. In png format it embeds the full extra_pnginfo as PNG text chunks, exactly the metadata-in-the-image convention the ecosystem runs on - drag the file back and the graph rebuilds. jpg/webp skip this and use your quality setting instead, so if "workflow included" matters, stay on PNG.
  • Automatic lineage. A hidden WorkflowParser reads your graph and finds the checkpoints, LoRAs, VAEs, ControlNets and input images. Each gets registered (or matched if already registered) and an edge is drawn from your output revision to the dependency revision - USED_MODEL, USED_LORA, USED_CONTROLNET, USED_INPUT, that family. Your render's dependency tree gets recreated in the cloud without you touching the graph nodes.

Inputs that matter

  • images - the IMAGE tensor to save (also passed through untouched).
  • category - doubles as the Kumiho space path. Default outputs/images; something like outputs/portraits or renders/hero keeps your cloud organized and becomes part of every kref.
  • item_name / item_kind - the item identity. Revisions auto-version under the same item, so a stable item_name means "this slot's latest version" in the browser.
  • tags - comma-separated, applied for real via the SDK's revision.tag(). approved, published, wip are the obvious ones.
  • auto_register_deps and create_lineage - both default on. Flip create_lineage off to skip the edges, or auto_register_deps off to stop it registering your models/inputs as assets. Keep them on unless you have a reason.

project defaults to blank = your configured project, and file_path lets you override the auto-generated save location (batch saves append _0000-style indexes). image_format and quality do what they say for the local file.

Outputs

  • images - the tensor passes through so you can keep chaining.
  • revision_kref - the kref://... of the revision you just created; feed it to a graph node or stash it for later.
  • lineage_json - the full dependency/edge/seed/settings dump. This is the honest record of what that render is made of.

Install & gotchas

It ships in the kumiho-comfyui pack: ComfyUI Manager β†’ search "Kumiho", or git clone https://github.com/kumihoclouds/kumiho-comfyui into custom_nodes plus pip install -r requirements.txt. No models to download. The one mandatory extra is auth - pip install kumiho-cli then kumiho-cli login (browser OAuth, writes ~/.kumiho/kumiho_authentication.json).

Biggest gotcha: if the SDK isn't available, the node still runs and still saves the file locally - it just skips cloud registration and hands you a synthetic ?r=new kref that doesn't exist in the cloud yet. That's a feature when you want local-only runs, and a trap when you think you've been archiving and haven't. The frontend shows a 🦊 sidebar with recent registrations and notifications, so a missing toast is your tell. And since the pack is young, keep an eye on the version - the README and shipped code have drifted before (the video node's frame-rate default, for one), so trust what the node's widget actually shows.

CategoryKumiho/Save

Inputs (12)

NameTypeDefaultDescription
projectSTRINGβ€”
imagesIMAGEβ€”
categorySTRINGoutputs/imagesβ€”
item_nameSTRINGoutputβ€”
item_kindSTRINGimageβ€”
descriptionoptSTRINGβ€”
tagsoptSTRINGβ€”
file_pathoptSTRINGβ€”
auto_register_depsoptBOOLEANtrueβ€”
create_lineageoptBOOLEANtrueβ€”
image_formatoptCOMBOpng3 options: png, jpg, webp
qualityoptINT951–100β€”

Outputs (3)

NameTypeDescription
imagesIMAGEβ€”
revision_krefSTRINGβ€”
lineage_jsonSTRINGβ€”