TextMakerPro
Real, Legible Text On Your Images
- image
- rgba
- alpha
When you google "TextMakerPro" you're probably expecting another prompt-helper node - one of those LLM text nodes that turn a sentence into a better prompt. It is not that. TextMakerPro is a graphic-design tool: a full layer-based text/layout editor that runs in a browser popup and rasterizes your design into an actual PNG that ComfyUI can use downstream.
That distinction is the whole point, because diffusion models are famously bad at text. Ask Flux or SDXL to render "GRAND OPENING" and you get something that vaguely gestures at letters. Prompting for legible typography is a losing game, and the usual fallback - WAS Node Suite's text overlay - is fine for a hardcoded string slapped on top of an image, but hopeless for anything with layers, strokes, shadows, or a curve.
TextMakerPro is the "I need a title card / poster / thumbnail / watermark and I don't want to leave ComfyUI for a compositor" node. It's a mini Canva that hands the result back to your graph as an image.
How it works
The ComfyUI node itself is deliberately thin - a bridge. The real editor lives in web/textmakerpro.html and app-editor.js, which is why the node carries an Open TextMakerPro button that pops a browser window over your ComfyUI page. Inside you get text, shape, and image layers, transforms, clipping masks, custom fonts, shadows, blend modes - the works - plus a JavaScript FX system with roughly sixty effects in the box, from glitch to neon to circle text. There's even a manual JS mode for prototyping your own effect without restarting anything.
When you hit apply, the editor posts the design back to the node, the rendered PNG is written to rendered_images/ on disk, and the workflow stores only a file path, not the image bytes. That's a deliberate design choice: earlier versions embedded the render as Base64 in a hidden widget, which made workflows balloon - a 2048×2048 canvas of Base64 is megabytes. Storing a path keeps the JSON small. The tradeoff: the workflow isn't self-contained anymore. The PNG is a file on your machine, so if you share a workflow that uses it, share the file too.
Inputs and outputs that matter
Most of the widget list is hidden plumbing. textmaker_config, textmaker_file, and textmaker_image are managed by the editor - don't hand-edit that JSON. The ones you actually set:
- canvas_width / canvas_height (16–8192, default 1024) - the design canvas size.
- transparent_background - on by default. Turn it off to bake the background in.
- background_hex - the background color, when transparency is off.
The three outputs are where it gets useful:
- image - RGB, flattened against the background if you disabled transparency.
- rgba - the 4-channel version, for compositing with alpha.
- alpha - the alpha channel as a MASK.
That last pair is the killer combo. Render a title card in the editor, feed rgba into a compositing node to lay it over a generated image, or route alpha into a masking or inpainting pass. Saved creations live in text_creations/, so you can rebuild a design later without redoing the layout.
Installing
No model downloads, no API key, no dependency hell - the Python side only uses what ComfyUI already ships (numpy, PIL, aiohttp). Use ComfyUI Manager → search "Orion4D_TextMakerPro" → install, or clone it:
cd ComfyUI/custom_nodes
git clone https://github.com/orion4d/Orion4D_TextMakerPro
Restart ComfyUI and the node appears under Orion4D_TextMakerPro > TextMakerPro. Want something other than the default fonts? Drop .ttf, .otf, .woff, or .woff2 files into the pack's fonts/ folder and reopen the editor.
Where people get burned
- The editor popup never opens. Most browsers block it by default - allow popups for your ComfyUI page. The node even prints a warning about exactly this.
- Nothing changed after I replaced files. The browser caches the editor's JS. Hard-refresh or restart ComfyUI.
- My custom FX doesn't show up. It must be in
web/fx/, and it mustexportanapplyfunction - the backend rejects scripts without it. Duplicate FX ids and syntax errors are the other two classics; check the browser DevTools console. - The workflow is huge. That's an old saved workflow with Base64 embedded. Re-save from the current version to get the lightweight path storage.
One honest caveat: this is a young pack with barely any community footprint - no comfy.icu impressions yet, and its lone Reddit announcement sat at zero upvotes. It's not battle-tested by a thousand workflows. But for the specific job of putting real, styled, legible text on an image without leaving ComfyUI, it's the best option I've seen, and it's a genuinely one-click install.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| canvas_width | INT | 102416–8192 | — |
| canvas_height | INT | 102416–8192 | — |
| transparent_background | BOOLEAN | true | — |
| background_hex | STRING | #FFFFFF | — |
| textmaker_file | STRING | — | |
| textmaker_config | STRING | {} | — |
| textmaker_image | STRING | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| rgba | IMAGE | — |
| alpha | MASK | — |