Nodes/ComfyUI-Ichis-Pack/ICHIS Save Tags
ComfyUI Node

ICHIS Save Tags

The node that finally gets your good rolls onto disk

By ichabodcole·Created about a year ago·Updated 12 months ago· 2
ICHIS Save Tags
  • tags_list
  • saved
  • path
file_path
tags
formatjsonl
delimiter,
appendtrue
ensure_dirtrue
save_nowfalse
debugfalse

The pain this node solves is real: you hit a killer combination of sampled tags, stare at it for ten seconds, and then it's gone because nothing wrote it down. ICHIS Save Tags persists whatever tag string or tag list is sitting in your graph to a file on disk, in either plain text or JSON-lines. It's the logging end of the Ichis tag pipeline - the piece that turns a lucky random roll into a reusable library.

How it works

You point it at a file_path, hand it the tags, and it writes. Two output formats:

  • txt - one line of the joined tag string (using delimiter, default ", "), plus a newline. Great for eyeballing.
  • jsonl - one JSON object per line: {"tags": [...], "tags_str": "...", "timestamp": ...}. This is the one you want if you plan to parse the results later, because it keeps the list intact instead of flattened into a string.

The node takes both a tags STRING and a tags_list LIST - feed either, or both; txt mode uses the string, jsonl mode records the list and the string. append (default on) adds to the file instead of overwriting, and ensure_dir creates missing parent directories so you don't get a confusing failure when the folder doesn't exist yet.

The gotcha that will trip you up once

Nothing gets written unless save_now is True. This is a trigger toggle, not a status. The node sits in your graph with save_now off, does nothing, and returns saved = False - then you flip the toggle to True, queue, and it writes. The reason it's built this way is caching: with a plain boolean, ComfyUI would see "nothing changed" and skip the node, so the pack forces a re-run whenever save_now flips on. If you've queued runs and nothing landed in your file, check that toggle before you check your path.

Outputs are saved (a BOOLEAN confirmation) and path (the resolved file path). They're diagnostics, not files - the writing happens on the node's own input.

The inputs at a glance

  • file_path - where to save (.txt or .jsonl).
  • tags / tags_list - what to save.
  • format - txt or jsonl.
  • delimiter, append, ensure_dir, save_now, debug - the behavior switches; debug prints what it's about to write to the console.

Installing it

It ships in the Ichis pack alongside the rest:

cd ComfyUI/custom_nodes
git clone https://github.com/ichabodcole/ComfyUI-Ichis-Pack

Restart ComfyUI, or install ComfyUI-Ichis-Pack from ComfyUI Manager. Nothing to download, no models - it's stdlib file I/O plus torch being already present.

Where it fits

Wire tags_list straight out of ICHIS Tag Sampler into this node, flip save_now when a roll is worth keeping, and you're building a personal tag bank you can reuse in later workflows or open in any other tool that reads text/jsonl. Pair it with a Show Text node while you tune your pipeline, and you'll stop losing the good ones.

CategoryICHIS

Inputs (9)

NameTypeDefaultDescription
file_pathSTRING
tagsSTRING
tags_listLIST
formatCOMBOjsonl2 options: txt, jsonl
delimiteroptSTRING,
appendoptBOOLEANtrue
ensure_diroptBOOLEANtrue
save_nowoptBOOLEANfalse
debugoptBOOLEANfalse

Outputs (2)

NameTypeDescription
savedBOOLEAN
pathSTRING