Batch String Schedule π π π
Get the interpolated prompt text itself β no CLIP, no conditioning, just strings
- POS
- NEG
Batch String Schedule is the odd one out in the FizzNodes scheduling family: it does all the same keyframe parsing and interpolation as Batch Prompt Schedule, but instead of encoding conditionings it returns the text itself - a full per-frame series of interpolated prompt strings. No clip input, no CLIP encode, no conditioning outputs. What you get out is what the prompts would have been at every frame, ready to be used however you like.
Why would you want that? A few honest reasons. You might be feeding prompts into something that isn't ComfyUI's standard CLIP - another encoder, an LLM-based prompt rewriter, a different model entirely. You might want to inspect exactly what the interpolation produces before committing an expensive encode. Or you might be assembling text for a tool outside the scheduler's assumptions. Whenever the words matter more than the conditioning, this is the node.
The inputs and outputs
The inputs mirror Batch Prompt Schedule minus the clip: text (your keyframe schedule), max_frames, and print_output. Optional pre_text / app_text wrap every prompt, and pw_aβpw_d feed backtick math. The format is unchanged:
"0" :"a cat in a kitchen",
"30" :"a cat in a spaceship, neon lights",
Both outputs are named misleadingly like their conditioning cousins - POS and NEG - but they're STRING batches, not CONDITIONING. Each is a per-frame series of the interpolated positive and negative prompts. The --neg split still works to separate the two, and expressions in backticks get evaluated per frame, so `"30": "a cat at `t/3`"` produces real numbers in the output text.
What to watch for
Because the outputs are full-frame series (one string per frame of max_frames), the usual FizzNodes rule applies: don't expect a single string out. This node is for batch-oriented consumers or for tools that can iterate the series. If you need one interpolated prompt at a given frame, the non-batch String Schedule node in the same pack takes a current_frame input and returns a single string - same parser, point-sample instead of batch. Also note that between keyframes the "interpolated" text is really the current prompt repeated with a shifting weight baked into the conditioning logic; in the string version you see the current keyframe's prompt for those frames, which is expected, not a bug.
Install
cd ComfyUI/custom_nodes && git clone https://github.com/FizzleDorf/ComfyUI_FizzNodes.git
cd ComfyUI_FizzNodes && pip install -r requirements.txt
Or install "FizzNodes" via ComfyUI Manager and restart. Light dependencies (numpy, pandas, numexpr), no model files. If you're already on Batch Prompt Schedule and happy with it, you may never need this - but when a workflow calls for the raw scheduled text, it's the node that exists exactly for that.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| text | STRING | "0" :"", "11" :"", "23" :"", "35" :"", "47" :"", "59" :"", "71" :"", "83" :"", "95" :"", "107" :"", "119" :"" | β |
| max_frames | INT | 1201β999999 | β |
| print_output | BOOLEAN | false | β |
| pre_textopt | STRING | β | |
| app_textopt | STRING | β | |
| pw_aopt | FLOAT | 0.0-9999β9999 | β |
| pw_bopt | FLOAT | 0.0-9999β9999 | β |
| pw_copt | FLOAT | 0.0-9999β9999 | β |
| pw_dopt | FLOAT | 0.0-9999β9999 | β |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| POS | STRING | β |
| NEG | STRING | β |