Batch Prompt Schedule SDXL (Latent Input) π π π
SDXL prompt scheduling that derives its frame count from your latent batch
- clip
- num_latents
- POS
- NEG
- INPUT_LATENTS
This is the SDXL equivalent of Batch Prompt Schedule (Latent Input): all the dual-encoder scheduling of Batch Prompt Schedule SDXL, but with the frame count derived from the size of a latent batch instead of a max_frames number you type by hand. In other words, it's the variant to grab when you're doing SDXL-based animation with AnimateDiff and you want the prompt schedule to stay locked to whatever batch your latent node produces.
The inputs are the full SDXL set - width, height, crop_w, crop_h, target_width, target_height - plus the two independent keyframe schedules text_g and text_l, a clip, and num_latents (a LATENT) in place of max_frames. The optional pre_text_G/app_text_G/pre_text_L/app_text_L wrappers and the pw_aβpw_d math variables carry over unchanged. Outputs are POS and NEG conditioning batches plus an INPUT_LATENTS passthrough, so the node slots into a sampler graph without an extra latent wire.
The keyframe format is the same as the rest of the pack - quote the frame numbers, comma-separate entries, --neg splits positive from negative, backticks hold numexpr math using t, max_f, and pw_aβpw_d:
"0" :"a lighthouse on a cliff, dramatic clouds",
"40" :"a lighthouse on a cliff, aurora borealis, dramatic clouds",
One detail worth knowing: because the frame count comes from the latent, a batch-size change silently changes the whole animation length - your prompt morphs will land on different frames. That's usually exactly what you want (batch and schedule stay in sync), but if a transition suddenly shifts, count the latents before you rewrite the text.
Install is the standard pack route:
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, then restart. Only numpy, pandas, and numexpr - nothing heavy. If you're on SDXL and your animations run on latent batches, this is the scheduler to reach for; if you're not on SDXL, the plain Latent Input version is the one you want.
Inputs (21)
| Name | Type | Default | Description |
|---|---|---|---|
| width | INT | 10240β8192 | β |
| height | INT | 10240β8192 | β |
| crop_w | INT | 00β8192 | β |
| crop_h | INT | 00β8192 | β |
| target_width | INT | 10240β8192 | β |
| target_height | INT | 10240β8192 | β |
| text_g | STRING | β | |
| clip | CLIP | β | |
| text_l | STRING | β | |
| num_latents | LATENT | β | |
| print_output | BOOLEAN | false | β |
| pre_text_Gopt | STRING | β | |
| app_text_Gopt | STRING | β | |
| pre_text_Lopt | STRING | β | |
| app_text_Lopt | 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 | β |
| start_frameopt | INT | 00β9999 | β |
| end_frameopt | INT | 1200β9999 | β |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| POS | CONDITIONING | β |
| NEG | CONDITIONING | β |
| INPUT_LATENTS | LATENT | β |