Nodes/Comfyroll Studio/πŸ”€οΈ CR Composite Text
ComfyUI Node Runs on cloud

πŸ”€οΈ CR Composite Text

Render text over an image with full placement control

By Suzie1Β·Created 3 years agoΒ·Updated 2 years agoΒ· 1,296
πŸ”€οΈ CR Composite Text
  • image_text
  • image_background
  • IMAGE
  • show_help
β—„texttextβ–Ί
β—„font_nameβ–Ύβ–Ί
β—„font_size50β–Ί
β—„alignβ–Ύβ–Ί
β—„justifyβ–Ύβ–Ί
β—„margins0β–Ί
β—„line_spacing0β–Ί
β—„position_x0β–Ί
β—„position_y0β–Ί
β—„rotation_angle0.0β–Ί
β—„rotation_optionsβ–Ύβ–Ί

Getting text onto a generated image usually means exporting to an editor. This node keeps it in the graph. You give it your text, a font, and two image layers, and it renders the text and composites it into the image - with real controls for position, rotation, alignment, and spacing. Out comes a finished IMAGE.

It's from Comfyroll Studio (Suzie1 / RockOfFire), in the Graphics β†’ Text group with Draw Text and Overlay Text. It's a Pillow-based text renderer, so no model or diffusion is involved - it's fast and deterministic, which is exactly what you want for titles and captions.

How it works

The node draws your text in the chosen font and composites it across two image inputs - image_text and image_background. In practice this lets the text sit against a background rather than floating on transparency, so you hand it the layers and it returns the combined result.

The font comes from a bundled dropdown of ten typefaces - Roboto, Quicksand, Oswald, comic.ttf, impact.ttf, a pixel font, a handwriting font (Caveat), an Arabic font, and more. These ship inside the pack, in its fonts folder, which is why they "just work" with no system-font setup.

From there it's a proper little typesetting panel: font_size, align (center/top/bottom) and justify (center/left/right) for placement within the frame, margins and line_spacing for breathing room (both accept negatives to tighten things up), position_x / position_y to nudge the text anywhere on the canvas, and rotation_angle with rotation_options to spin it around either the text's own center or the image center.

The inputs that matter

  • text - the multiline string to render.
  • font_name - one of ten bundled fonts. impact.ttf for memes, comic.ttf for the obvious, Roboto/Oswald for clean titles.
  • font_size (1–1024, default 50) - the size you'll actually tune to fit.
  • position_x / position_y - offset the text across the canvas.
  • rotation_angle (βˆ’360 to 360) + rotation_options (rotate around text center or image center) - angled text.

Output is a single IMAGE (plus the show_help wiki link you don't wire).

Where you'd actually reach for it

Thumbnails, title cards, meme captions, watermarks, quote graphics - anything where generated art needs words on it. Because the fonts ship with the node, results are reproducible across machines, and because it's all wires, you can drive the text from an upstream string (a prompt, a filename, a scheduled value) instead of typing it each time. For memes specifically the pack also has a Simple Meme Template; Composite Text is the flexible, place-it-anywhere option.

How to install it

  • ComfyUI Manager: search Comfyroll Studio, install, restart.
  • Manual: cd ComfyUI/custom_nodes && git clone https://github.com/Suzie1/ComfyUI_Comfyroll_CustomNodes.git, then restart.

The fonts come bundled with the pack - no separate download.

Common issues

The big one is the pack failing to load, not the text rendering. On newer ComfyUI builds Comfyroll's Graphics module can throw at startup - Comfyroll Studio: Failed to load Graphics nodes, then a cascade of NameError: name 'CR_...' is not defined, and none of the CR nodes appear. This is a real, reported failure and the Graphics text nodes are right in the blast radius. Read the first console error (that's the true cause, often an import/dependency hiccup) and update the pack via Manager.

Per-node: if your text runs off the frame, that's font_size too big or position_x/position_y pushing it out - the position values go well past the canvas on purpose, so it's easy to shove text into the void. And multiline text that overlaps itself usually just needs a nudge to line_spacing.

Category🧩 Comfyroll Studio/πŸ‘Ύ Graphics/πŸ”€ Text

Inputs (13)

NameTypeDefaultDescription
image_textIMAGEβ€”
image_backgroundIMAGEβ€”
textSTRINGtextβ€”
font_nameCOMBO10 options: Roboto-Regular.ttf, Quicksand-Bold.ttf, Oswald-Bold.ttf, comic.ttf, AlumniSansCollegiateOne-Regular.ttf, NotoSansArabic-Regular.ttf, +4
font_sizeINT501–1024β€”
alignCOMBO3 options: center, top, bottom
justifyCOMBO3 options: center, left, right
marginsINT0-1024–1024β€”
line_spacingINT0-1024–1024β€”
position_xINT0-4096–4096β€”
position_yINT0-4096–4096β€”
rotation_angleFLOAT0.0-360–360β€”
rotation_optionsCOMBO2 options: text center, image center

Outputs (2)

NameTypeDescription
IMAGEIMAGEβ€”
show_helpSTRINGβ€”