Nodes/ComfyUI_RaykoStudio/๐ŸฆŠ RS Text Overlay Pro
ComfyUI Node

๐ŸฆŠ RS Text Overlay Pro

Put text on images with drag handles, not guesswork

By RaykosanยทCreated about a year agoยทUpdated 5 days agoยท 79
๐ŸฆŠ RS Text Overlay Pro
  • image
  • IMAGE

RS Text Overlay Pro is the node you reach for when a render is finished and it needs a caption, a logo, a watermark, or a meme caption slapped on top. Connect an image, hit run, and instead of guessing at x/y/rotation sliders you just grab the text with the mouse and place it. Green bounding box to move it, corner and edge handles to scale it, an orange knob to rotate it, mouse wheel to zoom the canvas. When it looks right, click APPLY and the node hands you the composited image. It's the finishing step in a workflow, the thing between "great image" and "image with words on it" that normally sends you to an external editor.

The name is honest this time: it's the "pro" version of the pack's collage/overlay idea applied to text, with outline, glow, and shadow effects that you toggle on independently instead of praying the text is legible enough.

How it works

This is a hybrid-render node. While you drag things around, a fast client-side preview keeps up in real time - that's what makes the editor feel responsive. When you click APPLY, the backend does the high-quality final render: it builds your text as separate RGBA layers (fill, outline, glow, shadow), each independently enabled, then composites them over your image. That's also why this node is the one place in the pack where dependencies actually matter: it uses Pillow for text shaping, freetype-py for precise glyph metrics, and pycairo for the scale/rotation transforms.

The wire surface is deliberately small. You get one input, image (IMAGE), and one output, IMAGE. The node is flagged as an output node, so the result shows up in the preview grid and you can chain it - feed its output into a Save node, or into another overlay if you want layered text. Everything else you tweak lives in the node's UI as widgets: the multiline text field, font picker, text color and opacity, line spacing (0.5โ€“3.0), letter spacing (โˆ’20 to 100), and left/center/right alignment.

The effect sections are where the polish is. Outline activates as soon as thickness is above 0 (0โ€“50 px, plus color and opacity). Glow is behind an explicit enable toggle (color, size 0โ€“200, spread 0โ€“300, opacity). Shadow too (offset X/Y ยฑ30 px, blur 0โ€“100, opacity). Turning an effect off resets its parameters, which is a small detail that keeps stale values from confusing you on the next project.

Fonts

Drop .ttf, .otf, or .ttc files into ComfyUI/custom_nodes/ComfyUI_RaykoStudio/fonts and restart ComfyUI - fonts are auto-detected when the editor opens. The pack ships with a fat library already, and Arial.ttf is the fallback if a chosen font goes missing. This same fonts folder is shared by the pack's save nodes, so a font you add for the overlay is available to your captions too.

Install

Install the whole pack once - every RS node comes from the same repo. Easiest via ComfyUI Manager: search for ComfyUI_RaykoStudio and install, or clone manually:

cd ComfyUI/custom_nodes
git clone https://github.com/Raykosan/ComfyUI_RaykoStudio.git

Then restart ComfyUI. The pack's README claims "nodes do not require additional Python packages," which is mostly true - except this node. Its requirements.txt pulls in pycairo>=1.29.0 (plus freetype-py, scipy, opencv-python), and Text Overlay Pro genuinely needs pycairo for the transforms. If your environment is missing it, you'll get an import error; install the pack's requirements once and you're done.

Common issues

  • cairo import error / module not found - pycairo isn't installed. pip install pycairo (or install the pack's requirements.txt) and restart.
  • Fonts don't show up - they're in the wrong folder or you didn't restart. They must live inside the pack's fonts/ directory, not ComfyUI's main one.
  • Queue seems stuck - it's not. The node pauses until you click APPLY (accepts) or CANCEL (drops the changes). That's the design; forgetting APPLY is the most common "it's frozen" false alarm with this pack's interactive nodes.
Category๐ŸฆŠ RaykoStudio

Inputs (1)

NameTypeDefaultDescription
imageIMAGEโ€”

Outputs (1)

NameTypeDescription
IMAGEIMAGEโ€”