Nodes/WAS_Extras/CLIP Text Encode Sequence (v2)
ComfyUI Node

CLIP Text Encode Sequence (v2)

Eased prompt schedules for KSampler Sequence v2

By WASasquatch·Created 3 years ago·Updated 11 days ago· 43
CLIP Text Encode Sequence (v2)
  • clip
  • conditioning_sequence
  • cond_keyframes
  • frame_count
token_normalization
weight_interpretation
cond_keyframes_type
frame_count100
textA portrait of a rosebud A portrait of a blooming rosebud A portrait of a blooming rose A portrait of a rose

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 the N: 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.

Categoryconditioning

Inputs (6)

NameTypeDefaultDescription
clipCLIPCLIP model to encode prompts.
token_normalizationCOMBONormalization strategy for token weights.
weight_interpretationCOMBOHow to interpret weights and syntax in the text.
cond_keyframes_typeCOMBOSchedule describing when to switch to the next prompt.
frame_countINT1001–1024Total frames for which to generate conditioning.
textSTRINGA portrait of a rosebud A portrait of a blooming rosebud A portrait of a blooming rose A portrait of a roseList of prompts; keyframe schedule determines when to advance.

Outputs (3)

NameTypeDescription
conditioning_sequenceCONDITIONING
cond_keyframesINT
frame_countINT