Nodes/ComfyUI-FrameFX/Prompt Stack Manager
ComfyUI Node

Prompt Stack Manager

A prompt playlist that advances one cue per cycle while you autopilot

By mgfxer·Created 2 years ago·Updated 2 years ago· 25
Prompt Stack Manager
    • current_prompt
    • previous_prompt
    • current_frame
    prompt_stackPrompt 1 Prompt 2 Prompt 3
    frames_per_prompt1
    seed0

    Prompt Stack Manager is the less glamorous half of the Dream Zoom workflow's live-prompting pair. Live Prompt Interpolation handles the smooth morphing; this node handles the playlist. You type a stack of prompts into a multiline box, one per line, and the node cycles through them, always handing you the current prompt and the one before it. That "previous" output is the whole trick - your workflow can always blend from where you were to where you're going.

    The README says it was designed as a sister node to Atomic Perception's "Attack Hold Weighted Prompt" node (which lives in a different repo, ap_Nodes, as part of the same Dream-Zoom collaboration). The author credits that collaboration as the thing that got him into custom node development at all.

    How it works

    The frame-cycling is the clever bit, and it's also the part that'll confuse you for a second. There's no frame input. Instead, the node derives its position from the seed input:

    current_frame = seed % (frames_per_prompt * num_prompts)
    current_index = current_frame // frames_per_prompt
    

    So the seed is doing double duty as a frame counter. In an auto-queue workflow the seed increments with every run, which means the index steps forward one prompt per frames_per_prompt runs, wraps around at the end of the stack, and loops forever. Feed it a static seed and it just sits on one prompt - which is also a valid way to use it, as a glorified picker.

    The node's IS_CHANGED always returns True, which is worth knowing: ComfyUI will re-execute it on every queue run rather than caching results. That's intentional - it's the mechanism that makes the playlist advance. It's also why you'll see it fire in the log even when nothing else changed.

    The inputs

    • prompt_stack - multiline string, one prompt per line. The only thing you'll edit regularly.
    • frames_per_prompt (default 1) - how many queue runs each prompt stays current.
    • seed - the "frame counter." Set ComfyUI's queue to auto-increment this and the stack advances on its own.

    The outputs

    • current_prompt - the prompt currently "on stage."
    • previous_prompt - the one before it, for the blend. On the very first run the previous equals the current, which is a sensible no-op start.
    • current_frame - the computed position in the cycle, handy if another node needs the raw count.

    Installing it

    Standard FrameFX install - ComfyUI Manager, search ComfyUI-FrameFX, install, restart. Or clone:

    cd ComfyUI/custom_nodes
    git clone https://github.com/mgfxer/ComfyUI-FrameFX
    

    No extra dependencies, no model files. It's a few dozen lines of pure Python.

    Where people get burned

    The seed-as-frame-counter design is the main thing that trips people. If the stack isn't advancing, the seed isn't incrementing - check your auto-queue seed widget rather than the node. Also keep frames_per_prompt modest: it multiplies into the cycle length, and with the seed modulo arithmetic, a big number just means long pauses between prompts, not smoother transitions. And remember this node only picks prompts - it doesn't interpolate. If you want the fade between them, wire previous_prompt into the Live Prompt Interpolation node next to it.

    CategoryPrompt Management

    Inputs (3)

    NameTypeDefaultDescription
    prompt_stackSTRINGPrompt 1 Prompt 2 Prompt 3
    frames_per_promptINT11–1000
    seedINT00–1000000

    Outputs (3)

    NameTypeDescription
    current_promptSTRING
    previous_promptSTRING
    current_frameINT