🔶 Prompt mixer by Frame
🔶 Prompt mixer by Frame
- activ_frame
- main_prompt
- frame_prompt_1
- frame_prompt_2
- frame_prompt_3
- frame_prompt_4
- frame_prompt_5
- frame_prompt_6
- frame_prompt_7
- frame_prompt_8
- frame_prompt_9
- Info
- FRAME_PROMPT
- LORA
- POSITIV_TXT
- NEGAITV_TXT
This is the node that makes Chaosaiart's frame-by-frame prompt-changing system actually work - everything else in the prompt chain (chaosaiart_Prompt, chaosaiart_Prompt_Frame) just packages data; this one looks at what frame you're currently on and decides which prompt is active. The README's "Prompt Changer" workflow - "Change Prompt, you can specify when. 1x Frame = 1x generated Img/Batch" - is what this node resolves at runtime.
The logic: activ_frame (required, type ACTIV_FRAME) tells it the current frame number, and it has to come from chaosaiart_restarter_advanced's ACTIV_FRAME output - this node is useless without that wire. It then checks the up-to-nine optional frame_prompt_1 through frame_prompt_9 inputs, each of which is a chaosaiart_Prompt_Frame bundle carrying its own trigger frame number, and picks whichever one's start frame has been reached by the current frame count. If none of them have kicked in yet - you're still before the earliest override, or you haven't wired any frame prompts at all - it falls back to the optional main_prompt input, your chaosaiart_Prompt node's baseline text. That fallback behavior is the safety net: you can build an animation with zero frame-specific overrides and this node just passes your main prompt through the whole way.
Once it's resolved which prompt applies, it outputs the pieces in usable form: FRAME_PROMPT (the resolved bundle, in case you want to chain it further), LORA (whichever LoRA chain came attached to the active prompt), and POSITIV_TXT/NEGAITV_TXT (the plain text, ready for a standard CLIPTextEncode or wherever else you need it - note the pack's own typo in that output name, it really is spelled NEGAITV_TXT, not a mistake on this page). Info gives you a text readout of what's currently active, which is genuinely worth wiring to a Show Text node while you're debugging a multi-stage prompt chain, since silently getting the wrong frame prompt is otherwise hard to spot until you're several minutes into a render.
Install: search "Chaosaiart-Nodes" in ComfyUI Manager, or use "Install via Git URL" with https://github.com/chaosaiart/Chaosaiart-Nodes. Manually: cd ComfyUI/custom_nodes && git clone https://github.com/chaosaiart/Chaosaiart-Nodes, then restart. On Linux, also run pip install opencv-python and pip install tqdm inside your venv.
The trap here is ordering, not wiring: if two of your nine frame prompts have overlapping or out-of-order start frames, whichever one the node considers "most recently triggered" wins, so double-check your start_frame values actually increase in the order you intend before you queue a long animation and burn compute finding out the hard way.
It's also worth deciding up front whether you actually need all nine slots. A short animation with one or two prompt changes doesn't need every frame_prompt_1-frame_prompt_9 input filled - leave the ones you're not using disconnected, and this node just skips over them when resolving which prompt is active. There's no penalty for using fewer than nine, and forcing yourself to fill every slot "just because they're there" is a good way to end up with placeholder frame prompts that accidentally interfere with the ones you actually meant to use.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| activ_frame | ACTIV_FRAME | — | |
| main_promptopt | MAIN_PROMPT | — | |
| frame_prompt_1opt | FRAME_PROMPT | — | |
| frame_prompt_2opt | FRAME_PROMPT | — | |
| frame_prompt_3opt | FRAME_PROMPT | — | |
| frame_prompt_4opt | FRAME_PROMPT | — | |
| frame_prompt_5opt | FRAME_PROMPT | — | |
| frame_prompt_6opt | FRAME_PROMPT | — | |
| frame_prompt_7opt | FRAME_PROMPT | — | |
| frame_prompt_8opt | FRAME_PROMPT | — | |
| frame_prompt_9opt | FRAME_PROMPT | — |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| Info | STRING | — |
| FRAME_PROMPT | FRAME_PROMPT | — |
| LORA | LORA | — |
| POSITIV_TXT | STRING | — |
| NEGAITV_TXT | STRING | — |