Nodes/koo-nodes-pack/KoO Carousel Prompt Manager
ComfyUI Node

KoO Carousel Prompt Manager

The Carousel Prompt Manager Explained

By kooailab·Created 15 days ago·Updated 4 days ago· 0
KoO Carousel Prompt Manager
    • prompts
    • seeds
    • filenames
    • indices
    • active_count
    • status
    ◄active_prompts6►
    ◄prompt_1►
    ◄prompt_2►
    ◄prompt_3►
    ◄prompt_4►
    ◄prompt_5►
    ◄prompt_6►
    ◄base_seed0►
    ◄seed_modeFixed►
    ◄filename_prefixKoO_Carousel►

    You've got an idea for six shots of the same character. The normal ComfyUI way to get them is: run the graph, edit the prompt, run it again, edit it again, six times, while your GPU sits idle between clicks. The KoO Carousel Prompt Manager is the node that turns that into one queue. Six text slots in, six-item lists out, and ComfyUI's list handling does the looping for you.

    That's the whole trick, and it's worth understanding before you wire anything, because it's the same mechanism that confuses people about the entire category of list nodes.

    How the list thing works

    ComfyUI will happily execute part of a graph once per item when a node hands it a list. A node declares OUTPUT_IS_LIST = True on an output and returns a Python list; any downstream node that consumes that socket then gets run once per element, with the rest of the graph re-evaluated in step. This pack does exactly that. prompts, seeds, filenames and indices all come back as lists; active_count and status are single values.

    The catch is that ComfyUI needs a consumer willing to accept those lists, and a plain CLIP Text Encode won't take a list of strings and fan itself out - that's what the KoO Carousel Executor is for. Manager → Executor → your sampler is the intended chain. Skip the Executor and you'll get type errors or, worse, only the first prompt rendered.

    The inputs you actually set

    • active_prompts (default 6, min 1, max 6) - how many of the slots are live. The rest are ignored, not cleared, so you can leave six prompts parked and dial down to two for a quick test.
    • prompt_1 … prompt_6 - multiline text fields. Empty slots are allowed; the node prints a warning naming the empty slot numbers instead of failing, and the Executor then skips them rather than rendering a blank.
    • base_seed - the integer everything is derived from (default 0).
    • seed_mode - Fixed, Increment, or Random Per Prompt. Fixed gives every prompt the same seed; Increment walks base_seed + n; Random Per Prompt rolls a fresh SystemRandom seed per slot.
    • filename_prefix (default KoO_Carousel) - sanitized for filesystem-illegal characters, then numbered. Six prompts with the default become KoO_Carousel_01 … KoO_Carousel_06.

    Outputs, in order: prompts (STRING list), seeds (INT list), filenames (STRING list), indices (INT list, 1-based), active_count (INT), status (STRING). The status string is also pushed to the node's own text widget, so you can read it without wiring anything: 6 prompts active | seed mode Fixed | prefix KoO_Carousel.

    The seed trap

    Fixed with six prompts means six variations of the same noise. With a good prompt that's exactly what you want - consistency across a set, framing the only variable. With a weak prompt you'll get six near-identical images and conclude the node is broken. It isn't; flip to Increment.

    The other half of the trap is caching. The node overrides IS_CHANGED so that editing any prompt, the seed, the mode or the prefix marks it dirty, and in Random Per Prompt mode it always reports changed. If you're seeing an old result after an edit, check that you're actually queuing the node and not a cached subgraph - the same class of confusion covered in the plumbing notes on caching in ComfyUI.

    Installing it

    cd ComfyUI/custom_nodes
    git clone https://github.com/kevintronchin-blip/koo-nodes-pack
    

    Restart ComfyUI and refresh the browser - this node does ship a small frontend widget for the text display. requirements.txt declares torch, numpy, Pillow, aiohttp, all already supplied by ComfyUI, so nothing to install and no models to fetch. It appears under KoO Tools / Prompt, while its Executor partner lives under KoO/Carousel - mildly annoying, one of those quirks of a pack assembled out of a dozen separate dev repos.

    If Manager can't find the pack, that's expected: Registry listing is pending moderation approval at v1.0.3, and the README's supported route is the source ZIP dropped in as ComfyUI/custom_nodes/koo-nodes-pack.

    Troubleshooting

    Everything renders the same image. seed_mode is on Fixed. Obvious, and it gets everyone once.

    Only one image comes out. No Executor downstream, or the Executor's active_count input isn't wired. The Executor reads all six sockets as lists and needs the count to know how many to walk.

    Missing prompt files. Check filename_prefix - illegal characters are replaced with underscores, and trailing dots/spaces get stripped, so my. set. does not produce the filenames you're picturing.

    CategoryKoO Tools / Prompt

    Inputs (10)

    NameTypeDefaultDescription
    active_promptsINT61–6—
    prompt_1STRING—
    prompt_2STRING—
    prompt_3STRING—
    prompt_4STRING—
    prompt_5STRING—
    prompt_6STRING—
    base_seedINT00–18446744073709550000—
    seed_modeCOMBOFixed3 options: Fixed, Increment, Random Per Prompt
    filename_prefixSTRINGKoO_Carousel—

    Outputs (6)

    NameTypeDescription
    promptsSTRING—
    seedsINT—
    filenamesSTRING—
    indicesINT—
    active_countINT—
    statusSTRING—