Nodes/FizzNodes/Node Frame πŸ“…πŸ…•πŸ…
ComfyUI Node Runs on cloud

Node Frame πŸ“…πŸ…•πŸ…

One node per keyframe β€” the graph-based way to build a prompt schedule

By FizzleDorfΒ·Created 3 years agoΒ·Updated 2 years agoΒ· 479
Node Frame πŸ“…πŸ…•πŸ…
  • previous_frame
  • FIZZFRAME
  • POS_COND
  • NEG_COND
β—„frame0β–Ί
β—„positive_textβ€”β–Ί
β—„negative_textβ€”β–Ί

Node Frame is the workhorse of FizzNodes' FrameNodes system: the per-keyframe node you chain together to build a prompt schedule without ever typing a keyframe string. One of these per keyframe, wired in sequence through the previous_frame input, and at the end you've got a whole animation's worth of prompts represented as a graph instead of a wall of text.

Each Node Frame does three things for its keyframe: it records the positive_text (and optional negative_text) for that frame number, it encodes that prompt through the CLIP it inherits from the chain, and it passes everything forward. The key insight is inheritance - a Node Frame doesn't need its own CLIP or style text. It pulls them from the previous_frame FIZZFRAME it's wired to, appends the chain's general positive/negative text to its own prompt, and encodes. Start the chain with Init Node Frame (the only place you set the CLIP and general text), then stack as many Node Frames as you have keyframes.

The outputs

Three outputs, every node: FIZZFRAME (the chain object you pass to the next frame's previous_frame), POS_COND and NEG_COND (the encoded conditioning for this keyframe). The FIZZFRAME output is the whole point of the system - it accumulates every frame's data as it flows, so the final node in the chain holds the complete schedule.

When this beats typing a schedule

If your keyframes are fixed and you write them once, honestly, Batch Prompt Schedule's text field is faster. Where Node Frame earns its keep is when keyframes are dynamic: you're driving frame numbers from wave or value nodes, or rebuilding the animation from live inputs. In a text schedule, every edit is a fragile string operation; in the frame system, each keyframe is a discrete node you can rewire. It also gives you live conditioning outputs per keyframe, which can be handy for previewing a single frame.

One practical note: the FIZZFRAME type only travels through other FizzNodes frame nodes, and a Node Frame with no chain behind it (no previous_frame) has nothing to inherit - it'll fail on the missing CLIP. Always start from an Init Node Frame. Install the pack the standard way:

cd ComfyUI/custom_nodes && git clone https://github.com/FizzleDorf/ComfyUI_FizzNodes.git
cd ComfyUI_FizzNodes && pip install -r requirements.txt

Or "FizzNodes" via ComfyUI Manager and restart. No models to download.

CategoryFizzNodes πŸ“…πŸ…•πŸ…/FrameNodes

Inputs (4)

NameTypeDefaultDescription
frameINT0β€”
previous_frameFIZZFRAMEβ€”
positive_textSTRINGβ€”
negative_textoptSTRINGβ€”

Outputs (3)

NameTypeDescription
FIZZFRAMEFIZZFRAMEβ€”
POS_CONDCONDITIONINGβ€”
NEG_CONDCONDITIONINGβ€”