Nodes/Lazy Pony Prompter/Tag Data Saver
ComfyUI Node

Tag Data Saver

Keep a good booru pull instead of losing it next queue

By Siberpone·Created 3 years ago·Updated about a year ago· 53
Tag Data Saver
  • tag_data
    name
    overwritefalse

    Every time a Lazy Pony Prompter source node fires a fresh query, it gets you a new set of tags from the booru - which is great, until you land on a genuinely good pull and realize you have no way to get back to it. Tag Data Saver is that missing piece: it writes a tag collection to disk under a name you choose, so it survives past this one queue and you can reload it later with the matching Tag Data Loader node instead of gambling on a re-query.

    It sits at the end of a small but important loop in this pack: source node fetches, Saver persists, Loader retrieves, source node reuses. Without it, every LPP source node is stateless - good for quick one-offs, useless if you actually want to build up a library of reliable prompt pools for specific characters or styles.

    What it's for, concretely

    Say you spent a few queue cycles dialing in an E621 query that reliably surfaces exactly the species and character tags you want for a recurring project. Right now that live query result exists only in this run's graph. Save it, and it's a named asset you can pull back with the E621 Loader node any time - no re-querying, no risk that a slightly different set of images matches next time around and shifts your results. It works the same way whether the collection came from Danbooru, E621, or Derpibooru - this node doesn't care which booru a pull came from.

    The inputs and outputs that matter

    • tag_data - the collection to save, typed LPP_TAG_DATA. This is the generic type, and that's a deliberate distinction worth knowing: it's the same type any of the three source nodes (Danbooru, E621, Derpibooru) emit from their LPP Tag Data output. Wire that output straight here. It's not the booru-specific type the Loader nodes output - this node is genuinely booru-agnostic on the input side.
    • name - a plain string for what to call the saved collection. This is exactly what shows up in the matching Loader node's collection_name dropdown afterward, so name it something you'll recognize later, not "test1."
    • overwrite (default false) - a guard rail. Leave it off and saving under a name that already exists should fail rather than silently clobber your earlier collection; you have to explicitly flip it on to replace something.

    There are no outputs - this is a terminal, is_output_node: true action node. It doesn't feed anything downstream; it's the end of the line for whatever data reaches it.

    How to install it

    Comes bundled with the whole Lazy Pony Prompter pack - no separate step for this one node. Via ComfyUI Manager: search "Lazy Pony Prompter," install, restart. Manually:

    cd ComfyUI/custom_nodes
    git clone https://github.com/Siberpone/lazy-pony-prompter
    

    Restart ComfyUI. No model downloads, nothing heavy to install - it's a small file-write utility riding along with the rest of the pack. It lives under the top-level LPP category rather than under sources or loaders, since it's not booru-specific.

    Common issues & troubleshooting

    Save silently does nothing, or an existing collection got overwritten. Check overwrite. If it's off, a name collision should refuse the save rather than replace anything; if you meant to update an existing collection, you need to flip it on deliberately.

    It keeps re-saving every time you queue. Because this is an output node, ComfyUI runs it whenever it's part of the active graph on a queue - including runs where you didn't actually want to save again. If you've got it permanently wired in as part of your main pipeline, either bypass or disconnect it once you've saved what you wanted, rather than leaving it live for every future run.

    Wrong type, won't connect. This node's tag_data input wants the generic LPP_TAG_DATA type - the source nodes' main tag-data output, not the booru-specific type (LPP_TAG_DATA_DANBOORU and so on) that the Loader nodes produce. If a wire won't snap, that's almost certainly why; the Loader output type is meant to go back into a source node's optional tag_data input, not into this one.

    Can't find the saved collection later. Double-check you saved from the booru you think you did, and that you're looking in the matching Loader node - a Derpibooru save only shows up in the Derpibooru Loader's dropdown, not Danbooru's or E621's.

    General rough edges. The README is upfront that the ComfyUI side of this pack is "somewhat experimental and may have some bugs," with UX compromises made to fit ComfyUI's interface limitations. Minor friction is an acknowledged tradeoff here, not a misconfiguration on your part.

    CategoryLPP

    Inputs (3)

    NameTypeDefaultDescription
    tag_dataLPP_TAG_DATA
    nameSTRING
    overwriteBOOLEANfalse

    Outputs (0)

    No outputs