Nodes/ComfyUI-rogala/AlignedTextOverlayVideo
ComfyUI Node

AlignedTextOverlayVideo

## Aligned Text Overlay Video Renders a **multi-line text block** onto **every frame** of a video tensor. Supports `%NodeTitle.param%` template tags resolved from the active ComfyUI prompt. --- ### Inputs | Pin | Default | Description | |---|---|---| | `images` | — | Video tensor (B, H, W, C) — connect VAE Decode output here. | | `text_template` | see default | Template string with optional `%NodeTitle.param%` tags. | | `vertical` | bottom | Vertical anchor: `top` or `bottom`. | | `horizontal` | right | Horizontal anchor: `left` or `right`. | | `font_size` | 16 | Font size in points (10–50). | | `text_color` | white | Text colour. | | `bg_color` | black | Background colour (`none` = transparent). | | `bg_opacity` | 150 | Background opacity (50–250). | | `first_frame_only` | false | When enabled, overlay is applied only to the first frame (fast preview). | | `external_text` | — | Optional string appended after the resolved template. Connect **SamplerSchedulerIterator** here to embed the current sampler/scheduler pair. | ### Outputs | Pin | Type | Description | |---|---|---| | `images` | IMAGE | Video tensor with text block superimposed on every frame. | ### Example Connect this node between **VAE Decode** and **VHS Video Combine**: ``` VAE Decode -> AlignedTextOverlayVideo -> VHS Video Combine ``` Default template pulls values directly from a sampler node: ``` seed: %KSampler.seed% | steps: %KSampler.steps% cfg: %KSampler.cfg% | %KSampler.sampler_name% | %KSampler.scheduler% ``` If your workflow has two samplers, rename them in the graph (right-click -> Title) to e.g. `Sampler_1` / `Sampler_2` and reference them explicitly: ``` steps: %Sampler_1.steps% ``` NodeTitle must match the title shown on the node in the graph. Sampler and scheduler values are always shown as readable names — the conversion happens automatically.

By Rogala·Created 5 months ago·Updated 4 months ago· 19
AlignedTextOverlayVideo
  • images
  • images
text_templateseed: %KSampler.seed% | steps: %KSampler.steps% cfg: %KSampler.cfg% | %KSampler.sampler_name% | %KSampler.scheduler%
verticalbottom
horizontalright
font_size16
text_colorwhite
bg_colorblack
bg_opacity150
first_frame_onlyfalse
external_text
Categoryrogala/Video

Inputs (10)

NameTypeDefaultDescription
imagesIMAGE
text_templateSTRINGseed: %KSampler.seed% | steps: %KSampler.steps% cfg: %KSampler.cfg% | %KSampler.sampler_name% | %KSampler.scheduler%Template text. Use %NodeTitle.param% to embed node values.
verticalCOMBObottomVertical anchor for the text block.
horizontalCOMBOrightHorizontal anchor for the text block.
font_sizeINT1610–50Font size in points.
text_colorCOMBOwhiteText colour.
bg_colorCOMBOblackBackground rectangle colour. Use 'none' for transparent.
bg_opacityINT15050–255Background rectangle opacity (alpha value, 50–255).
first_frame_onlyBOOLEANfalseWhen enabled, only the first frame gets the overlay. Use for fast preview before processing the full video.
external_textoptSTRINGExtra text appended after the resolved template. Connect SamplerSchedulerIterator here to embed the current sampler/scheduler pair.

Outputs (1)

NameTypeDescription
imagesIMAGE