h4 - Note Injector
Letterbox titles, right on the image
- image
- image
If you generate comparison grids, style studies, or workflow showcase images, you know the drill: generate twelve images, then open a compositor to slap labels on them so anyone can tell pass A from pass B. The h4 - Note Injector cuts that step out - it takes an image, paints a title bar on the top or bottom with your headline and an optional subtitle, and hands the composited result straight back as an IMAGE. Done inside the graph, re-runnable every loop.
It's a small, single-purpose node in h4_Live's Visuals family, and it's the kind of tool that feels trivial until the first time you need to label a grid and realize it just saved you a round trip to GIMP.
How it works
It takes an image tensor, converts it to a PIL image, and draws a colored bar (default 100px tall, pure black) across the top or bottom. On top of that bar it renders your title_text in the main font size, with subtitle_text underneath in a smaller size, both in the hex color you pick. Then it converts back to a tensor and emits the whole thing. It's pure image compositing - no model involved, runs in milliseconds, deterministic per input.
The node's one design quirk is that the output has the same pixel dimensions as the input, but the bar is painted over the image rather than extending it - so bar_height is real estate taken from the picture itself, not added on. A 100px bar on a 512px image means you lose 100px of visible image to the title.
The inputs that matter
image- anything that's an IMAGE tensor. Wire your final render into it.title_text- the big text, front and center on the bar.position- top for an opening title, bottom for closing-credits vibes.bar_height- 100 is the standard cinematic look; 0 removes the bar entirely.font_size_title/font_size_sub- 60/30 by default, adjustable to poster proportions.text_color/bar_color- hex codes. White on black is classic; the tooltips suggest navy bars for a moodier read.subtitle_text- optional second line. Leave empty to skip.
One output: image, the labelled result - feed it straight to a preview or save node.
Installing it
It ships in h4_Live:
cd ComfyUI/custom_nodes
git clone https://github.com/m3rr/h4_Live
# restart ComfyUI
or ComfyUI Manager → search "h4_Live." No extra dependencies - it uses Pillow, which ComfyUI already ships.
Where it can bite you
Font availability, mostly. The node draws text with whatever fonts Pillow can find on your system, so if you're on a minimal Linux box the title can render with a generic fallback face rather than anything pretty - check one output before you batch out fifty labelled images. And remember the bar covers part of the image, so compose with that in mind: a bar_height of 150 on a portrait will eat a meaningful chunk of the top. None of this is fatal, but both are the kind of thing you notice on image twelve, not image one.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | The image you want to slap a title bar onto. Any image tensor works. | |
| title_text | STRING | My Title | The big text. Your headline, your label, your creative statement. Goes front and center on the bar. |
| bar_height | INT | 1000–1000 | How tall the colored bar is in pixels. 100 is standard cinematic. 0 means no bar (but why are you here then?). Go big for dramatic letterbox vibes. |
| position | COMBO | Where the bar lives. Top = opening title. Bottom = closing credits / subtitle bar. | |
| font_size_title | INT | 6010–500 | Font size for the main title text in pixels. 60 is comfortably readable. Crank it up for poster-style headers. |
| font_size_sub | INT | 3010–500 | Font size for the subtitle text. Smaller than the title so it doesn't steal the spotlight. |
| text_color | STRING | #FFFFFF | Hex color code for your text. #FFFFFF is white (classic on dark bars). #FF0000 for red if you're feeling dramatic. |
| bar_color | STRING | #000000 | Hex color code for the bar background. #000000 is pure black (cinematic). Try #1a1a2e for a dark navy vibe. |
| subtitle_textopt | STRING | Optional second line of text displayed below the title. Great for descriptions, dates, or model names. Leave empty to skip. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |