π± CR Simple Banner
Drop a titled text banner onto any image
- image
- image
- show_help
You want a caption bar across your image - a title strip, a meme-style header, a label for a comparison grid - without dropping the render into Photoshop. That's the whole job here. CR Simple Banner takes an image, renders your text as a clean banner sized to match it, and hands the result back so you can stack it above or below the picture with one of Comfyroll's layout nodes.
It's part of Comfyroll Studio, the big general-purpose pack from Suzie1 and RockOfFire that's been a staple since the SD 1.5 days. The graphics half of that pack is basically a Pillow-powered mini design toolkit bolted onto ComfyUI, and the banner node is one of the friendlier bits of it.
How it works
Under the hood it's text-on-a-canvas: the node measures your string, auto-scales the font down until it fits inside the width it's given (capped by max_font_size), draws it with an optional outline, and pads it out with margin_size. Nothing generative, no model - it runs instantly. The output is a banner image you then composite with your actual picture, so think of it as one layer in a layout, not a finished poster.
The inputs that matter
banner_text- your caption. It's multiline, so line breaks work.font_name- pick from the ten fonts that ship with the pack (Roboto, Oswald, Impact, Comic, a pixel font, etc.). These are bundled, so you don't download anything.max_font_size(default 150) - the ceiling, not a fixed size. The node shrinks text to fit; this just stops a short word from ballooning.font_color- 30 named presets pluscustom. Here's the one thing that trips people up: if you pickcustom, the color comes from thefont_color_hexfield (default#000000). Set the hex or you'll get black text you didn't ask for. Same deal foroutline_colorandoutline_color_hex.
outline_thickness and outline_color give you that meme-caption border - leave thickness at 0 for flat text. margin_size adds breathing room around the words.
Outputs are image (the banner) and show_help, which is just a link to the pack's wiki - leave it unconnected.
How to install it
- ComfyUI Manager: open the Manager, search
Comfyroll Studio, install, restart. - Manual:
cd ComfyUI/custom_nodes && git clone https://github.com/Suzie1/ComfyUI_Comfyroll_CustomNodes.git, then restart ComfyUI.
No models, no weights. The graphics nodes lean on Pillow (PIL), which you almost certainly already have.
Common issues
The classic Comfyroll failure isn't this node specifically - it's the whole graphics category refusing to load. If the banner node is missing from your menu and the console says Comfyroll Studio: Failed to load Graphics nodes with a NameError cascade, that's a broken or mismatched Pillow install (people hit it on fresh Python 3.12 setups). Reinstall Pillow to match your Python, then reinstall the pack cleanly, and the graphics nodes come back.
Beyond that: black text usually means you left a color on custom without filling the hex box. And if your text looks tiny, that's max_font_size doing its job on a long string - the node fits-to-width, so a wordy banner naturally renders smaller. Shorten the text or widen the image it's sizing against.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | β | |
| banner_text | STRING | text | β |
| font_name | COMBO | 10 options: Roboto-Regular.ttf, Quicksand-Bold.ttf, Oswald-Bold.ttf, comic.ttf, AlumniSansCollegiateOne-Regular.ttf, NotoSansArabic-Regular.ttf, +4 | |
| max_font_size | INT | 15020β2048 | β |
| font_color | COMBO | 30 options: custom, white, black, red, green, blue, +24 | |
| outline_thickness | INT | 00β500 | β |
| outline_color | COMBO | 30 options: custom, white, black, red, green, blue, +24 | |
| margin_size | INT | 00β500 | β |
| font_color_hexopt | STRING | #000000 | β |
| outline_color_hexopt | STRING | #000000 | β |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | β |
| show_help | STRING | β |