Video Text V2
The title node, now with rotation and vertical text
- images
- IMAGE
Video Text V2 is the "yes, and" upgrade to DJZ-Nodes' Video Text node. It takes the same burn-in-titles pipeline - draw text on every frame of a batch with glow, outline, and chromatic aberration - and adds two things people kept asking for: arbitrary rotation and vertical text. If V1 is your basic title card tool, V2 is the one that handles the title that needs to run up the side of the frame or sit at an angle.
Same pack, same install, same overall job. If you're starting fresh and know you'll want rotated or vertical type, there's little reason to reach for V1 instead of this.
What's new over V1
Everything from V1 is here unchanged - same position dropdown (nine spots), x_offset/y_offset, padding, font_size, text_color, the glow/outline/chromatic-aberration trio, line_spacing/letter_spacing, and text_alignment. Then V2 bolts on:
text_rotation(-180 to 180 degrees, default 0) - rotate the whole text block. Small angles are for jaunty, stylized titles; 90 gives you vertical-ish type without the vertical layout mode; 180 is your "sticker slapped on upside down" move.vertical_text("disabled"/"enabled") - a true vertical layout, one glyph per line, rather than rotated text. That's the difference between a run of rotated horizontal text and actual vertical writing, and for east-Asian-style or poster-like titles it's the mode you want.
Mechanically it's still PIL drawing text onto a transparent layer and compositing over the frame batch. Rotation is applied to the text layer before compositing, so the glow and outline stay glued to the rotated glyphs - no misaligned halos around angled text, which is the kind of detail that would otherwise send you back to a photo editor.
The inputs that matter
For a beginner, the essentials are: images (the batch), text (your string), position + x_offset/y_offset for placement, and font_size relative to your resolution. Then add flavor: glow_radius/glow_intensity for neon, outline_width for readability, chromatic_aberration for retro, and text_rotation/vertical_text for the V2 extras. Output is the composited IMAGE batch, same length as the input.
Installing it
Pack-level install - it's one of the DJZ-Nodes family:
cd ComfyUI/custom_nodes
git clone https://github.com/MushroomFleet/DJZ-Nodes
cd DJZ-Nodes
pip install -r requirements.txt
Restart ComfyUI, or grab it via ComfyUI Manager by searching "DJZ-Nodes".
Troubleshooting
- Rotated text gets cut off at frame edges. Rotation happens around the text's anchor point, so a long title rotated 45° can clip off-canvas. Nudge it back toward center with
positionandx_offset/y_offset. - Vertical text isn't actually vertical. Make sure you're using
vertical_text = enabled, not justtext_rotation = 90. The two render differently - rotated text stays a horizontal glyph run, vertical mode reflows one glyph per line. - Font still only has "default". Same as V1 - the pack ships a TTF directory but only exposes the packaged font in the dropdown. If you need a specific typeface, you're into editing the pack's font loading, not this node.
- Text looks blurry on a 4K frame. Same resolution trap as V1:
font_sizeis in pixels. On big frames you need a much larger size than the 32 default.
The verdict, like the original: simple, effective, no AI required. If rotation and vertical type are on your roadmap at all, this is the one to install - you get V1's entire feature set plus the two extras, in the same pack, for zero extra effort.
Inputs (19)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — | |
| text | STRING | VIDEO TEXT | — |
| font | COMBO | 1 options: default | |
| position | COMBO | bottom-center | 9 options: top-left, top-center, top-right, center-left, center, center-right, +3 |
| x_offset | INT | 0-1000–1000 | — |
| y_offset | INT | 0-1000–1000 | — |
| padding | INT | 200–500 | — |
| font_size | INT | 328–256 | — |
| line_spacing | INT | 0-20–100 | — |
| letter_spacing | INT | 0-10–50 | — |
| text_color | STRING | #00FF00 | — |
| glow_radius | INT | 30–20 | — |
| glow_intensity | FLOAT | 0.50–1 | — |
| outline_width | INT | 00–10 | — |
| outline_color | STRING | #000000 | — |
| chromatic_aberration | INT | 20–10 | — |
| text_alignment | COMBO | center | 3 options: left, center, right |
| text_rotation | INT | 0-180–180 | — |
| vertical_text | COMBO | disabled | 2 options: disabled, enabled |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |