π CR Encode Scheduled Prompts
Crossfading Two Prompts Into One Conditioning
- clip
- CONDITIONING
- show_help
This node is Comfyroll's answer to "prompt travel" - the technique where an animation's prompt gradually morphs from one description to another instead of jumping between them frame to frame. CR Encode Scheduled Prompts takes two prompts and a blend weight and hands you back one CONDITIONING that's a mix of both, ready to feed straight into your KSampler.
How it works. You give it current_prompt and next_prompt as text, plus the clip from your checkpoint loader, and it CLIP-encodes both internally - you don't need two separate CLIPTextEncode nodes upstream. The weight input then blends the two resulting conditionings: read it as 0 leaning toward current_prompt and 1 leaning toward next_prompt, with values in between giving you the crossfade point. Worth noting the range on weight goes way past 0β1 (from -9999 to 9999), which means you can push past either endpoint for an exaggerated, overshoot-style blend rather than a clean interpolation - that's a real option in the schema, not a typical use, so try it once before building a whole animation around it.
The workflow this is built for. This is an animation-scheduling node, and it's meant to sit inside a per-frame loop: something upstream (Comfyroll's own CR Prompt Scheduler or CR Simple Prompt Scheduler, or a keyframe list) hands you the current and next prompt text for a given frame, and something like CR Gradient Float or a central schedule node computes the crossfade weight for that exact frame based on where you are between two keyframes. This node bakes that instant into a single conditioning, which then drives the sampler for just that frame. It's the same idea behind SparseCtrl-style keyframe interpolation from the AnimateDiff era - give the pipeline a start point and an end point and let it fill the transition - except here the interpolation happens in text-conditioning space rather than in the motion module, so it works with any checkpoint, not just ones with a trained temporal component.
Inputs and output that matter. clip (wire from your checkpoint's CLIP output), current_prompt and next_prompt (multiline text), weight (the blend amount) - output is a single CONDITIONING plus the standard Comfyroll show_help string pointing at the wiki page.
Install. ComfyUI Manager: search "Comfyroll Studio", install, restart. Or manually: cd ComfyUI/custom_nodes && git clone https://github.com/Suzie1/ComfyUI_Comfyroll_CustomNodes.git and restart. No models to download - this node only needs the CLIP you already have loaded for your checkpoint.
Troubleshooting. Forgetting to wire clip is the easy mistake here - it's a required input, and without it the node has nothing to encode with. Beyond that, the pack-wide gotcha applies: Comfyroll registers all its nodes from one shared file, and real install reports on r/comfyui show that if any single node in the pack fails to import, the log throws Failed to load Graphics nodes / Failed to load Utility nodes and the entire node set - including this one - disappears from the menu, not just the broken piece. If you install via a CivitAI zip or an interrupted clone and Comfyroll nodes go missing afterward, redo it with a clean git clone rather than chasing individual pip errors.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| clip | CLIP | β | |
| current_prompt | STRING | β | |
| next_prompt | STRING | β | |
| weight | FLOAT | 0.00-9999β9999 | β |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| CONDITIONING | CONDITIONING | β |
| show_help | STRING | β |