CLIP Text Encode Sequence (v2)
Eased prompt schedules for KSampler Sequence v2
- clip
- conditioning_sequence
- cond_keyframes
- frame_count
This is the sibling of CLIP Text Encode Sequence (Advanced) (CLIPTextEncodeList), rebuilt around a different scheduling model. Instead of writing frameIndex:prompt on every line, you write a plain ordered list of prompts and let the node figure out when to switch between them using an easing curve. It's the more automated of the two, at the cost of less line-by-line control.
How it works
You give it a list of prompts (one per line, no frame numbers) and a frame_count - the total number of frames the schedule should cover. cond_keyframes_type then decides the transition shape between them: linear steps evenly through the list, while sinus, sinus_inverted, half_sinus, and half_sinus_inverted ease the transitions instead of stepping flatly, so prompts can linger near their keyframe and shift faster in between, or the reverse. This node pairs with KSampler Sequence (v2) (KSamplerSeq2) - its outputs are shaped specifically for that sampler's inputs, not for the v1 KSampler Sequence.
The inputs and outputs that matter
clip(CLIP) - your model's CLIP.text(multiline STRING) - a plain list of prompts, one per line, no frame prefixes. Default is the same rosebud → rose progression as the v1 node, just without theN:markers.frame_count(default 100, 1–1024) - total frames the prompt schedule spans.cond_keyframes_type- the easing curve between prompts (linear / sinus / sinus_inverted / half_sinus / half_sinus_inverted).token_normalization/weight_interpretation- same Advanced CLIP Text Encode options as the v1 node; leave on defaults unless you're deliberately writing A1111- or compel-style weighted prompts.
Three outputs, and this is the part to get right when wiring: conditioning_sequence (CONDITIONING, not CONDITIONING_SEQ - note the type difference from v1), cond_keyframes (INT), and frame_count (INT). All three feed KSampler Sequence v2's matching positive_seq/negative_seq, cond_keyframes, and frame_count inputs - you need to wire all three across, not just the conditioning.
How to install it
Via ComfyUI Manager: search "WAS_Extras", install, restart. Manually:
cd ComfyUI/custom_nodes
git clone https://github.com/WASasquatch/WAS_Extras
pip install -r WAS_Extras/requirements.txt
Same as its v1 sibling, this node lives in ksampler_sequence.py, which the README specifically flags as needing its own requirements.txt - don't skip it even if you're only grabbing individual files instead of cloning the whole pack.
Common issues & troubleshooting
You wired this into KSamplerSeq (v1) and it won't connect, or connects but does nothing useful. Use KSamplerSeq2 instead. The two "sequence" pairs in this pack (v1 with CONDITIONING_SEQ + inline frame prefixes, v2 with plain CONDITIONING + separate frame_count/cond_keyframes ints) are not interchangeable - match the version numbers across encode and sampler.
Forgot to wire cond_keyframes or frame_count across. Since v2 splits the schedule into three separate outputs instead of bundling it into one CONDITIONING_SEQ, it's easy to connect just conditioning_sequence and miss the other two. KSampler Sequence v2 needs all three to actually know when to switch prompts.
Transitions feel too abrupt or too mushy. That's cond_keyframes_type. Linear is the predictable, evenly-spaced default; if your generation seems to "snap" between prompts, try one of the sinus variants to ease in and out of each keyframe instead.
Prompt count doesn't match your expectations. frame_count is the total span the whole list is stretched across, not a per-prompt duration - more lines in text means each one gets proportionally less of that span (modified by the easing curve), so adding prompts changes the pacing of the ones you already had.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| clip | CLIP | CLIP model to encode prompts. | |
| token_normalization | COMBO | Normalization strategy for token weights. | |
| weight_interpretation | COMBO | How to interpret weights and syntax in the text. | |
| cond_keyframes_type | COMBO | Schedule describing when to switch to the next prompt. | |
| frame_count | INT | 1001–1024 | Total frames for which to generate conditioning. |
| text | STRING | A portrait of a rosebud A portrait of a blooming rosebud A portrait of a blooming rose A portrait of a rose | List of prompts; keyframe schedule determines when to advance. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| conditioning_sequence | CONDITIONING | — |
| cond_keyframes | INT | — |
| frame_count | INT | — |