Title
Animated title cards with typewriter effect, timed and faded
- video
- video
Every video needs a title at some point, and if you're doing the whole thing inside ComfyUI you don't want to round-trip through a video editor just to burn text onto a clip. Title is the ComfyTV stage that does it, and it's a cut above the "stick some text on frame one" nodes: it has timing, fades, and an actual typewriter animation.
It's a ComfyTV Video stage - wire a video in, type your text, hit Run, get a titled clip downstream.
The inputs that matter
- text - the title itself. There's no default and the node errors if it's empty, so type something.
- font (default
Inter-Regular), size (8–400, default 48), color (#FFFFFF), stroke (0–20) and stroke_color (#000000) - the look. A dark stroke on white text is how you keep titles readable over bright footage without a box behind them. - anchor -
bottom,top,center,top-left,top-right,bottom-left,bottom-right. Where the text sits. - t_start (seconds, default 0) and t_end (default −1) - when the title appears and disappears. −1 means "until the end of the clip," which is the common case for a title card.
- fade_s (0–10) - fade the text in and out over this many seconds instead of popping.
- typewriter -
off(default),char,word, orline, and type_step (0.02–2, default 0.1) - how fast the reveal runs per unit. Type on is one of those small touches that makes an intro feel intentional.
The project_id / parent_output_id / force_run_token inputs are internal frontend plumbing - ignore them.
How it works
Title renders the text onto the clip with the pack's text-overlay runner, positioned by anchor and styled by your font/size/stroke settings. The timing controls gate when it's visible (t_start/t_end), ease it in and out (fade_s), or drive the typewriter reveal - in char, word, or line granularity - advancing at type_step.
Install
ComfyTV ships ~190 stages in one pack; this node comes with it.
cd ComfyUI/custom_nodes
git clone https://github.com/jtydhr88/ComfyTV
Restart ComfyUI fully and look under ComfyTV → Video. ComfyUI Manager finds it by searching "ComfyTV". No model downloads, no extra Python dependencies. Fonts come from the pack's resource library (Inter is the default); you can drop your own fonts in there. On ComfyUI Desktop or macOS, clone into the running instance's absolute path from the startup log instead of trusting the relative cd.
Troubleshooting
- "Title: type some text first." - self-explanatory; the text field is required.
- Text unreadable over bright footage. Add a
stroke(2–4) with a darkstroke_color, or pick an anchor position over a darker area. - Title pops in and out harshly. Set
fade_sto 0.5–1.0; a hard cut on a title card reads as an error, not a style. - No output. Wire a video into the
videoinput.
For a bare title card this is the node. When you want it to do something - fade, type on, appear mid-clip - that's where it stops being a label and starts being an edit.
Inputs (16)
| Name | Type | Default | Description |
|---|---|---|---|
| force_run_token | INT | 00–2147483647 | Internal — bumped on Run to invalidate ComfyUI's input cache. |
| project_id | STRING | Internal — populated by the projectStore on the frontend. | |
| parent_output_id | INT | 00–2147483647 | Internal — lineage parent set by spawn handlers on the frontend. |
| text | STRING | — | |
| font | COMBO | Inter-Regular | 2 options: Inter-Regular, NotoSansSC-Regular |
| size | INT | 488–400 | — |
| color | STRING | #FFFFFF | — |
| stroke | INT | 00–20 | — |
| stroke_color | STRING | #000000 | — |
| anchor | COMBO | bottom | 7 options: bottom, top, center, top-left, top-right, bottom-left, +1 |
| t_start | FLOAT | 0.000–3600 | — |
| t_end | FLOAT | -1.00-1–3600 | — |
| fade_s | FLOAT | 0.00–10 | — |
| typewriter | COMBO | off | 4 options: off, char, word, line |
| type_step | FLOAT | 0.100.02–2 | — |
| videoopt | COMFYTV_VIDEO | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| video | COMFYTV_VIDEO | — |