Nodes/ComfyUI-Subtitle-Effects/Speed Light Stretch (光速拉伸)
ComfyUI Node

Speed Light Stretch (光速拉伸)

The light-speed stretch-in that makes text feel like it just arrived somewhere fast

By liaowu-boos·Created 3 months ago·Updated 3 months ago· 2
Speed Light Stretch (光速拉伸)
  • image
  • subtitle_data
  • IMAGE
textSPEED
font_name
font_size80
line_gap10
fps30.00
position_x0.50
position_y0.50
scale_x_start4.0
scale_y_start0.80
motion_blur50
duration0.25
easing_curveease_out_cubic
glow_radius15
glow_strength0.6
glow_color#FFFFFF
text_color#FFFFFF
shadow_offset_x4
shadow_offset_y4
shadow_color#000000
shadow_blur0
srt_path

You know that energy-text entrance from every action trailer - the word slams in so fast it's smeared across the frame, then snaps into focus with a glow? That's SubtitleSpeedStretch (光速拉伸): a horizontal stretch entrance with simulated motion blur and an optional glow, all composited onto your video frames. It's a one-liner node for a single dramatic word or short phrase - think "SPEED" as a location card, a name, a countdown label - not a tool for long conversational subtitles.

It's also the purest demonstration of the pack's whole pitch: this is post-processing, not AI. The text is rendered and distorted with Pillow on the CPU, zero VRAM, no model involved. It's a compositor trick dressed up to look like VFX.

How it works

The node starts your text horizontally stretched - by default 4× wide and slightly squashed vertically - and animates it down to normal scale over duration seconds using the easing curve you pick. The motion_blur amount fakes the smear by rendering intermediate stretched states and blending them, so the fast part of the motion leaves trails. On top of that sits a soft glow (glow_radius / glow_strength / glow_color), and a drop shadow with its own shadow_blur for separation. The whole thing is then composited with additive-style blending onto your frame at position_x / position_y.

The five easing_curve options change the personality: ease_out_cubic (default) is the classic fast-then-settle, ease_out_quint is even more violent up front, linear feels mechanical, ease_in_out_cubic eases both ends, and spring adds an overshoot bounce on the way in. The scale_x_start / scale_y_start pair controls the starting distortion - bigger scale_x_start, more dramatic smear.

The inputs that matter

  • text - required, defaults to "SPEED". Keep it short; this node's whole effect reads on a few words.
  • motion_blur (0–200, default 50) - the smear. 0 turns it off entirely for a clean stretch; higher gets streakier.
  • duration (default 0.25s) - how long the entrance takes. Snappy by default; stretch it toward a second for a slower, more ominous reveal.
  • glow_strength / glow_color - the bloom. The README's example pairs it with a cyan glow; default is white. glow_strength can go to 2.0, which is a lot - dial from 0.6 and nudge.
  • shadow_offset_x/y and shadow_blur - drop shadow placement and softness.

font_name, font_size, line_gap, fps, and the color fields round out the required list; srt_path and subtitle_data are optional, so you can drive the text from the pack's SUBTITLE_DATA pipeline instead of typing it. Output: one IMAGE - the composited frame sequence.

Install

Standard pack install:

cd ComfyUI/custom_nodes
git clone https://github.com/liaowu-boos/ComfyUI-Subtitle-Effects.git
cd ComfyUI-Subtitle-Effects
pip install "Pillow>=9.0.0" "jieba>=0.42"

Or ComfyUI Manager → search liaowu-boos/ComfyUI-Subtitle-Effects → restart. Nodes show up under Subtitle Effects. Seven fonts ship with the repo; extra .ttf/.otf files in fonts/ appear in the dropdown after a restart. No models, no GPU work.

Common issues

  • The entrance looks like a janky zoom, not a streak. That's motion_blur doing its job - if it reads wrong, raise it. If you want zero smear, 0 is valid.
  • Text smears too far off-frame. scale_x_start of 4× on a wide word can start outside the safe area. Either shrink the starting scale or accept the edge-slice as part of the look.
  • Glow washes the text out. glow_color at white with glow_strength near 1.0+ will bloom the letters into a blob, especially on dark footage. Drop glow_strength or switch to a colored glow before you blame the font.
  • Long clip memory. Same pack-wide rule - CPU frames run ~95MB/sec at 720p/30fps, so render long projects in chunks.

This is the node to reach for when a single word has to announce itself. It won't hold a conversation, but it'll nail the beat where one pops.

CategorySubtitle Effects/Dynamic

Inputs (23)

NameTypeDefaultDescription
imageIMAGE
textSTRINGSPEED
font_nameCOMBO7 options: Inter-Regular.otf, JetBrainsMono-Regular.ttf, LXGWWenKai-Regular.ttf, NotoSerifSC-Regular.otf, SmileySans-Oblique.ttf, SourceHanSansSC-Regular.otf, +1
font_sizeINT8012–300
line_gapINT100–100
fpsFLOAT30.001–120
position_xFLOAT0.500–1
position_yFLOAT0.500–1
scale_x_startFLOAT4.01–10
scale_y_startFLOAT0.800.1–1
motion_blurINT500–200
durationFLOAT0.250.1–2
easing_curveCOMBOease_out_cubic5 options: ease_out_cubic, linear, ease_out_quint, ease_in_out_cubic, spring
glow_radiusINT150–50
glow_strengthFLOAT0.60–2
glow_colorSTRING#FFFFFF
text_colorSTRING#FFFFFF
shadow_offset_xINT4-20–20
shadow_offset_yINT4-20–20
shadow_colorSTRING#000000
shadow_blurINT00–50
srt_pathoptSTRING
subtitle_dataoptSUBTITLE_DATA

Outputs (1)

NameTypeDescription
IMAGEIMAGE