Text → portrait
One prompt describes an original adult character, front-facing, on a flat background. That framing is what makes every later stage possible.
Gemini 3.1 Flash-Lite Image via OpenRouter · ~4 s · ~$0.03
We can't find the internet
Attempting to reconnect
Something went wrong!
Attempting to reconnect
From one line of text to a character who blinks, talks and dances, on a server with no GPU. Every picture below is real output from the first run ("Mara").
One prompt describes an original adult character, front-facing, on a flat background. That framing is what makes every later stage possible.
Gemini 3.1 Flash-Lite Image via OpenRouter · ~4 s · ~$0.03
"Keep everything else pixel-identical; close the eyes / open the mouth (ah) / round the mouth (oh)." Only about 0.1 % of pixels outside the face change, so the edits line up perfectly with the original.
same model, edit mode · 3 × ~$0.03
The eye and mouth patches are simply where the edits changed pixels; the eyes, mouth, chin and neck pivot come from the same change maps. No landmark model and no AI call.
rembg matte + numpy · free, local CPU
A 33×57 grid mesh bends around the neck: the head tilts, turns and nods, the chest breathes, the body sways. Blinks are random, and the mouth patches follow the voice's loudness and "roundness" for the lip-sync.
WebGL mesh warp in your browser · free
The portrait is used as a reference to draw the same person in an A-pose, head to toe, on white.
Gemini image edit · ~$0.03
A textured 3D model from a single image. The body, clothes and hair come out well; the face is soft. This box has no GPU, so this is the only borrowed one, used through its public API.
TRELLIS on a free Hugging Face GPU Space · 27 s · $0
It slices the body's silhouette to find the hands, armpits, crotch, legs and neck, places 22 humanoid bones, and paints skin weights by distance, so the arms never grab the hair. The output is a real skinned glTF that opens in Blender.
our own script · free, ~5 s on CPU
Idle breathing, waving, talking gestures, dancing: bone rotations computed every frame.
three.js, procedural · free
Told it's a voice actor reading a script; otherwise it answers instead of reading! Kokoro-82M also runs locally on the CPU for free, but it's too slow on this shared box for live chat.
gpt-audio-mini via OpenRouter · ~1 s to first sound · ~$0.0004 per line
A persona written by the model from your one-line idea, the chat history, and a rule: when you ask for a photo, she adds [PHOTO: …]. That becomes an image edit of her portrait in the new scene, checked for apparent age before it's shown.
DeepSeek V4.1 Flash · fractions of a cent per message