Nodes/FizzNodes/Batch Prompt Schedule SDXL (Latent Input) πŸ“…πŸ…•πŸ…
ComfyUI Node Runs on cloud

Batch Prompt Schedule SDXL (Latent Input) πŸ“…πŸ…•πŸ…

SDXL prompt scheduling that derives its frame count from your latent batch

By FizzleDorfΒ·Created 3 years agoΒ·Updated 2 years agoΒ· 479
Batch Prompt Schedule SDXL (Latent Input) πŸ“…πŸ…•πŸ…
  • clip
  • num_latents
  • POS
  • NEG
  • INPUT_LATENTS
β—„width1024β–Ί
β—„height1024β–Ί
β—„crop_w0β–Ί
β—„crop_h0β–Ί
β—„target_width1024β–Ί
β—„target_height1024β–Ί
β—„text_gβ€”β–Ί
β—„text_lβ€”β–Ί
β—„print_outputfalseβ–Ί
β—„pre_text_Gβ€”β–Ί
β—„app_text_Gβ€”β–Ί
β—„pre_text_Lβ€”β–Ί
β—„app_text_Lβ€”β–Ί
β—„pw_a0.0β–Ί
β—„pw_b0.0β–Ί
β—„pw_c0.0β–Ί
β—„pw_d0.0β–Ί
β—„start_frame0β–Ί
β—„end_frame120β–Ί

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.

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

Inputs (21)

NameTypeDefaultDescription
widthINT10240–8192β€”
heightINT10240–8192β€”
crop_wINT00–8192β€”
crop_hINT00–8192β€”
target_widthINT10240–8192β€”
target_heightINT10240–8192β€”
text_gSTRINGβ€”
clipCLIPβ€”
text_lSTRINGβ€”
num_latentsLATENTβ€”
print_outputBOOLEANfalseβ€”
pre_text_GoptSTRINGβ€”
app_text_GoptSTRINGβ€”
pre_text_LoptSTRINGβ€”
app_text_LoptSTRINGβ€”
pw_aoptFLOAT0.0-9999–9999β€”
pw_boptFLOAT0.0-9999–9999β€”
pw_coptFLOAT0.0-9999–9999β€”
pw_doptFLOAT0.0-9999–9999β€”
start_frameoptINT00–9999β€”
end_frameoptINT1200–9999β€”

Outputs (3)

NameTypeDescription
POSCONDITIONINGβ€”
NEGCONDITIONINGβ€”
INPUT_LATENTSLATENTβ€”