ComfyUI Node

Card Titles

The node that keeps your tarot cards legible

By DoctorDiffusion·Created 5 months ago·Updated 5 months ago· 1
Card Titles
  • image
  • IMAGE
texttext
font_name
font_size50
font_color
align
justify
margins0
line_spacing0
position_x0
position_y0
rotation_angle0.0
rotation_options
font_color_hex#000000

The part where the model would have garbled the text

Every diffusion model mangles small in-image text, and Z-Image Turbo - the model this pack is built around - is no exception. Ask it to paint "THE FOOL" across the bottom of a card and you get a confident smear of nonsense letterforms. ProtoTeller doesn't fight that. It generates the card art clean (no text), then burns the title in afterwards with this node, the same way a real deck keeps art and lettering as separate layers.

CardTitles is a drop-in replacement for Comfyroll's CR Overlay Text, with zero Comfyroll dependency. The author re-implemented it in plain PIL so this pack doesn't drag in a whole other pack just to stamp a name on a card.

How it works

Under the hood it renders your text as a grayscale mask, then composites a solid-color text layer onto the card image using that mask. Because the text is drawn to a mask first and only then merged, the glyph edges stay clean instead of smearing into the art. The output is a single IMAGE ready to feed onward - into PreviewTextImage, or any Save Image node.

The inputs that matter

There are a lot of knobs here; most you can safely ignore for a first reading. The ones you'll actually touch:

  • text - the card name (or reading text). Multiline, so you can stack a title and a subtitle.
  • font_size - default 50. Card titles usually want bigger; tune to your card's resolution.
  • font_color - 30 named colors plus "custom". Pick "custom" and set font_color_hex (the one optional input, like #8B0000) when you want a specific color.
  • position_x / position_y - move the text block around the card; both default 0, range ±4096.
  • rotation_angle - for a reversed card, rotate the title 180° so it reads right-side-up while the card is upside-down. You'll reach for this a lot in this pack.
  • align / justify - vertical anchor (top/center/bottom) and horizontal anchor (left/center/right).
  • rotation_options - rotate around the text's own center or the image's center; only matters when the text isn't in the middle of the card.

font_name ships one option: YoungSerif-Regular.ttf, bundled in the pack's fonts/ folder. It's a lovely serif that reads like a proper deck. Drop your own .ttf in there and it appears in the dropdown after a restart.

Install

Same as the rest of the pack: ComfyUI Manager → search "ProtoTeller", or

cd ComfyUI/custom_nodes
git clone https://github.com/DoctorDiffusion/ComfyUI-ProtoTeller

then restart ComfyUI. No extra Python dependencies - it's torch, numpy and PIL, all already present. The multi-gigabyte model downloads in the README are for the full tarot generation workflow; if you only want to stamp text on existing images, you need none of them.

Where people get burned

  • Only one font bundled. Don't go hunting in the dropdown - add files to custom_nodes/ComfyUI-ProtoTeller/fonts/.
  • There's no outline or shadow option, so white text on light card art just vanishes. Position the title on darker art or pick a contrasting color.
  • Sizes are pixels at the card's native resolution. A size that looks right at 1024x1024 looks small if you stamp after upscaling - do your text last, after any resize.
CategoryProtoTeller

Inputs (14)

NameTypeDefaultDescription
imageIMAGE
textSTRINGtext
font_nameCOMBO1 options: YoungSerif-Regular.ttf
font_sizeINT501–1024
font_colorCOMBO30 options: custom, aqua, black, blue, brown, coral, +24
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
font_color_hexoptSTRING#000000

Outputs (1)

NameTypeDescription
IMAGEIMAGE