Nodes/ComfyUI-Arrssenne/Card overlay (Arrssenne)
ComfyUI Node

Card overlay (Arrssenne)

Stamp a collector-card frame over your characters

By arrssenne·Created 3 months ago·Updated about a month ago· 0
Card overlay (Arrssenne)
  • image
  • IMAGE
  • full_name
  • price_str
  • stars
first_name
surname_wildcard_pathwildcards/card_surname.txt
tag_wildcard_pathwildcards/card_tag.txt
tag_special_wildcard_pathwildcards/card_tag_special.txt
tag_count3
tag_special_count1
price_min1000
price_max10000
price_step100
rare_chance0.030
ultra_rare_chance0.005
star_min1
star_max5
font_pathgeorgia.ttf
seed0

This is the node the rest of the pack is building toward. Feed it a generated character image and it stamps a fake trading-card frame over it: gold stars top-right, tag text bottom-right, a name-and-price banner along the bottom - and every once in a while a holographic sheen, because it's a collector's card and rare cards shine. It's an opinionated, slightly silly, single-purpose node, and it does exactly what it says.

A quick honesty note before the details: the author built this for a personal adult-content character-collection workflow, and the wildcard files the pack ships with are explicit by default (and in French). If you're not doing that, you'll point the tag and surname files at your own lists - which, luckily, is the whole design.

How it works

It's a Pillow composition. The overlay is drawn onto a copy of the image - stars top-right, tags bottom-right, a semi-transparent black banner across the bottom with the name in gold on the left and the price in gold on the right. The "collector" logic is a tiny bit of game design:

  • full_name = your first_name input plus a random surname drawn from surname_wildcard_path (typically you wire first_name from the Load image FACE + path node's name output - that's the intended pairing).
  • tags = tag_count random entries from tag_wildcard_path plus tag_special_count from a separate tag_special_wildcard_path (sampled without repeats within a draw).
  • price = normally a random value in price_minprice_max, rounded to price_step. But with probability rare_chance (default 3%) it's fixed at 100,000, and with probability ultra_rare_chance (default 0.5%) it's fixed at 1,000,000. Both rare tiers add the holographic sheen - a rainbow gradient screen-blended over the card.
  • stars = random integer between star_min and star_max (defaults 1–5).

The whole roll is driven by a seed input through a single RNG, so the same seed on the same wildcard files gives you the same card - seed it if you want to keep a particular price.

The inputs you'll actually touch

Most of the fifteen inputs have sane defaults and you'll leave them alone. The ones worth knowing:

  • image and first_name - the picture and the character's first name.
  • The three wildcard paths - surname, tag, special tag. Relative paths resolve against the pack's own wildcards/ folder (that's what ships); an absolute path overrides it.
  • tag_count / tag_special_count - how many tags get pulled (0–10 and 0–5).
  • rare_chance / ultra_rare_chance - how often the card is worth 100k or a million.
  • font_path - defaults to georgia.ttf. More on that below.

Outputs: IMAGE (the card), full_name, price_str (formatted like $12,400), and stars - handy if you want to echo the card's stats into metadata or a filename.

The traps

Only the first image of a batch gets the overlay. The node reads image[0] - feed it a single image, not a batch, or you'll silently get one card and N plain images.

The font fallback is tiny. If georgia.ttf can't be found, Pillow falls back to its built-in bitmap font and logs a warning - and the result looks comically small. If your text looks like ants, that's why: set font_path to an absolute path to a TTF you actually have.

Wildcard files are just text - one entry per line, blank lines skipped, missing file = no tags (with a console warning, not a crash). Easy to edit, easy to break; keep the encoding UTF-8.

Install

ComfyUI Manager → search "ComfyUI-Arrssenne", or:

cd ComfyUI/custom_nodes
git clone https://github.com/arrssenne/comfyui-arrssenne

Restart, find it under Arrssenne/Image. No models, no keys. The one real dependency is Pillow - in the pack's requirements.txt even though the README claims no dependencies - and ComfyUI ships it as a matter of course.

Is it worth installing the pack for this alone? Only if you're literally building a card-collection output. But if you are, this is the fastest path between a generated character and a presentable "card," and the rest of the pack (the face loader, the loaders, the filename node) is clearly built to feed it. It's a personal-pack quirk - and a charming one.

CategoryArrssenne/Image

Inputs (16)

NameTypeDefaultDescription
imageIMAGE
first_nameSTRING
surname_wildcard_pathSTRINGwildcards/card_surname.txt
tag_wildcard_pathSTRINGwildcards/card_tag.txt
tag_special_wildcard_pathSTRINGwildcards/card_tag_special.txt
tag_countINT30–10
tag_special_countINT10–5
price_minINT10000–10000000
price_maxINT100000–10000000
price_stepINT1001–10000
rare_chanceFLOAT0.0300–1
ultra_rare_chanceFLOAT0.0050–1
star_minINT11–5
star_maxINT51–5
font_pathSTRINGgeorgia.ttf
seedINT00–18446744073709550000

Outputs (4)

NameTypeDescription
IMAGEIMAGE
full_nameSTRING
price_strSTRING
starsINT