Academia SD Multi-Prompt ๐
Drive video prompts per-frame โ one list, one index
- prompt
Video workflows have a trick that image workflows don't: you can change the prompt mid-clip. Some samplers let you inject a different text conditioning per frame or per section, which is how you get a character that starts walking and ends running, or a scene that shifts from day to dusk. The Academia SD Multi-Prompt is the list manager for that - you write one prompt per entry in a small UI, feed it the current loop index, and it hands back the matching prompt string.
How it works
Under the hood it's tiny: prompt_data holds a JSON list of prompts (the node's UI builds and edits it for you), and index picks which one to return. The index is 1-based, matching how loop counters in video workflows typically count, and the prompt output is a plain STRING you feed into a CLIP text encode or a per-frame conditioning node.
What makes it feel built for video is the clamping behavior. If your index runs past the end of the list, it clamps to the last prompt instead of returning empty; if it's below 1, it clamps to the first. That's deliberate - a video run shouldn't die or go black halfway through because your loop count exceeded your prompt list. It's the same philosophy as the Batch Image Loader's circular index: keep the render alive, degrade gracefully.
The inputs that matter
- index - which prompt to return, 1-based, min 1, max 1000.
- prompt_data - the JSON list; you edit it through the node UI, not by hand.
Output is prompt (STRING).
Install
Same pack install: ComfyUI Manager โ "AcademiaSD", or git clone https://github.com/AcademiaSD/comfyui_AcademiaSD into custom_nodes/, restart. No extra dependencies.
Who should reach for it
This is squarely aimed at LTXV-style keyframed video where you pair it with a loop counter to vary the conditioning as frames advance. If you're not doing per-frame prompt injection, it's a more complex way to do what a plain text box already does. And be honest with yourself about how much value per-frame prompt swapping actually adds - for most clips the model barely registers a prompt change between adjacent frames, and the win is usually in the direction of a single strong prompt plus keyframe images. Use this when you have a concrete "first half / second half" prompt structure to drive; skip it for everything else. When you do use it, remember the clamp: your last prompt is the fallback, so make it the safest, most generic description.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| index | INT | 11โ1000 | โ |
| prompt_data | STRING | [] | โ |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| prompt | STRING | โ |