Nodes/Kinburg-Nodes/Card Presets
ComfyUI Node

Card Presets

Your saved characters, one dropdown away

By Kinburg·Created 3 months ago·Updated 6 days ago· 1
Card Presets
    • card
    • voice
    preset🚫 None
    filter🏷 All

    Here's the payoff node of the Kinburg pack's whole card system. Character Card, Entity Card, and Card Save all exist to get a character or entity into a library; Card Presets is how you get it back out. Pick a saved card from a dropdown and its ready Markdown block comes out the card output, ready to feed Context Collector and from there into your LLM's context. Build the character once - by hand or by photo - and stop re-describing the same subject every run.

    It's a thin reader, and that's exactly why it's good. The library is built three ways: Card Save (photo → LLM → JSON → preset), or the save_preset_as field on Character Card / Entity Card (which saves at run time, typed or wired). Presets are rendered back through the card nodes' own logic, so the output format always matches what you'd have hand-typed - no drift between saved and fresh.

    The inputs that matter:

    • preset - the dropdown of saved cards. This alone decides what's emitted.
    • filter - narrows the preset list to one tag. Purely a picker convenience; it doesn't change the output. Tag cards from Card Save or the Manage dialog.

    The outputs:

    • card - the Markdown block for the chosen preset.
    • voice - the same voice hand-off Character Card gives Siren Cast, so a saved band member drives the music too. Empty for an entity preset, or for a character saved before the voice fields existed.

    Managing the library lives on the node, not in config files: a Manage dialog edits tags and deletes entries, and a Refresh re-reads the list (the node's VALIDATE_INPUTS is permissive precisely so presets saved live validate without an object-info reload). Everything is persisted on disk, so the library survives restarts and shows up across every Card Presets node.

    The workflow that makes this click: photo in → grammar-constrained LLM → Card Save → you get the card, it's filed under a name, and the next time you need that character you just pick it from the dropdown instead of feeding a photo through the vision model again. It's the "describe once, use forever" idea made real, and it's the least glamorous node in the pack - which is the best thing you can say about a preset picker.

    Install via ComfyUI Manager (search "Kinburg-Nodes") or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/Kinburg/Kinburg-Nodes
    

    then restart. This node has no dependencies of its own - no model, no download. The library-filling flow it depends on needs the Local LLM nodes working (llama-cpp-python, auto-installed by install.py, plus your own GGUF), but reading a preset is pure string rendering. One-author personal pack, documented to a standard that's frankly better than the norm: per-package docs, 1395 automated checks, and a generated node index that can't drift from what's actually registered.

    CategoryKinburg-Nodes/LLM/presets

    Inputs (2)

    NameTypeDefaultDescription
    presetCOMBO🚫 NoneA saved Character/Entity card. Build the library with Card Save (from a photo) or the Character Card / Entity Card nodes (save_preset_as).
    filteroptCOMBO🏷 AllNarrow the preset list to one tag. Purely a picker convenience — it doesn't change the output. Tag cards from Card Save / the Manage dialog.

    Outputs (2)

    NameTypeDescription
    cardSTRING
    voiceKINBURG_VOICE