0c64e931808ec39c9ea35db4d4fd9db03fc133b6
🖋️ ComfyUI Advanced Text Overlay
Repository: scofano/ComfyUI-Advanced-TextOverlay
Forked from: munkyfoot/ComfyUI-TextOverlay
Originally inspired by: mikkel/ComfyUI-text-overlay
This module provides the most feature‑rich and precise text overlay system available for ComfyUI, including:
- Completely re‑engineered layout engine
- Pixel‑perfect multiline stroke alignment
- Opacity‑aware backgrounds and shadows
- Letter/line spacing, padding, and alignment controls
- Full animation engine (fade + directional movement)
- Batch-aware rendering with smart caching
- Full video processing node with audio‑preserving re‑mux
✨ Key Features
✔️ 1. Rebuilt Rendering Engine
- Accurate bounding boxes for multiline text
- Consistent stroke widths (even‑pixel enforcement)
- Crisp, stable text edges with alpha‑aware compositing
✔️ 2. Advanced Layout and Typography
- Letter spacing and line spacing
- Padding around the text block
- Horizontal and vertical alignment:
left/center/right,top/middle/bottom - Per‑axis offset (
x_shift,y_shift) - Automatic multiline wrapping based on image width
✔️ 3. Styling Options
- Fill + alpha
- Stroke + alpha
- Shadow + alpha + offset
- Rounded background box with padding, color, radius, and alpha
✔️ 4. Animation System
Supports:
fade_infade_outmove_from_topmove_from_bottommove_from_leftmove_from_right
With easing:
linearease_inease_outease_in_out
Animation Parameters:
animation_framesanimation_opacity_targetpause_frames_before_start
✔️ 5. Batch-Smart Processing
- Automatically caches layout on first frame
- Maintains perfect consistency across all frames
- For animated batches: animates through first N frames, then holds the final pose
✔️ 6. Full Video Support
The Advanced Text Overlay – Video node:
- Reads a video frame‑by‑frame
- Applies the same overlay logic
- Writes a new MP4
- Automatically re‑injects the original audio track with ffmpeg
- Optional
delete_originalflag
📥 Installation
Clone the repository inside your ComfyUI custom_nodes directory:
git clone https://github.com/scofano/ComfyUI-Advanced-TextOverlay
Restart ComfyUI — the nodes will appear under Advanced Text Overlay.
🚀 Usage
Image Node: Advanced Text Overlay
Connect an image or batch → configure text parameters → render.
Video Node: Advanced Text Overlay – Video
Provide a path to a video → configure overlay → output is written to ComfyUI's output directory.
🔧 Input Parameters
Text & Typography
| Parameter | Description |
|---|---|
text |
Text to draw; supports multiline \n |
all_caps |
Force uppercase |
font |
Font name or file; auto-searches /fonts |
font_size |
Pixel size |
letter_spacing |
Per-character spacing |
line_spacing |
Spacing between lines |
Color & Stroke
| Parameter | Description |
|---|---|
fill_color_hex |
Hex fill color |
fill_alpha |
Opacity 0–1 |
stroke_enable |
Toggle outline |
stroke_color_hex |
Hex outline color |
stroke_alpha |
Outline opacity |
stroke_thickness |
Relative thickness (scaled by font size) |
Layout & Position
| Parameter | Description |
|---|---|
padding |
Padding around text block |
horizontal_alignment |
left / center / right |
vertical_alignment |
top / middle / bottom |
x_shift, y_shift |
Pixel offsets |
Background Box
| Parameter | Description |
|---|---|
bg_enable |
Toggle background box |
bg_padding |
Padding around text block |
bg_radius |
Rounded corner radius |
bg_color_hex |
Hex color |
bg_alpha |
Opacity |
Shadow
| Parameter | Description |
|---|---|
shadow_enable |
Toggle shadow |
shadow_distance |
Pixel offset |
shadow_color_hex |
Shadow color |
shadow_alpha |
Opacity |
Animation
| Parameter | Description |
|---|---|
animate |
Enable animation |
animation_kind |
Fade or movement animation |
animation_frames |
How many frames animation lasts |
animation_opacity_target |
Target alpha |
animation_ease |
Easing curve |
pause_frames_before_start |
Delay before animation begins |
Video-Specific Parameters
| Parameter | Description |
|---|---|
video_path |
Input video |
filename_prefix |
Naming prefix for output |
delete_original |
Remove input after processing |
pause_seconds_before_start |
Pause duration (converted to frames) |
🧪 Output
- Image node → modified image/batch
- Video node → MP4 written to ComfyUI output directory, with audio preserved
🧠 Credits
Languages
Python
100%