Labs · not built yet

Sheet in.
Hero out.

Paste the character sheet you already wrote. Get a portrait that matches it, a token cut for your virtual tabletop, and your character saying their first line — in a voice you pick, not a person we copied.

Save me a seat at the table

Character sheet · what you paste

Ysolde Marrowgate

Level 7 · Ranger · Half-elf

  • STR12
  • DEX18
  • CON14
  • INT11
  • WIS16
  • CHA9

Equipment

Longbow, two shortswords, studded leather, a grey wool cloak patched at the hem.

Backstory

Raised by the river wardens after the flood. Still counts the bridges she could not save.

What it would make

  1. A · kept
  2. B · discarded
  3. C · discarded

Diagram, not model output. You pick one of three; the rest are discarded.

YM

No voice sample is recorded yet, so the line is shown, not played.

01

It reads the sheet, not a prompt

Race, class, level, equipment, the two lines of backstory you were proud of: that is the prompt. Ask for the same character at level 9 with the new armour and it stays the same person. Three portraits per character, pick one, the rest are discarded.

  Ysolde Marrowgate
- Level 7 · Ranger
+ Level 9 · Ranger
- studded leather
+ mithral shirt, the same grey cloak
  same face · same scar · same bow

02

No faces from the real world

There is no photo upload.

We never generate a real person, living or dead, famous or not — and we never generate a character that could read as a child. Voices are synthetic presets with names like “gravel” and “choir”, not clones.

03

Made for the table

Every portrait ships with a 512 px round token with a transparent ring in your party's colour, a 9:16 card for the group chat, and a 10-second voiced intro. Foundry and Roll20 sizes. Generated on GPUs we rent by the hour, and labelled as AI-made in the file.

Portrait3 variants, keep 13:4
Tokenround, ring in your party's colour512 px
Cardfor the group chat9:16
Voicea synthetic preset, never a clone10 s
LabelAI-made, written into the filealways