Skip to content

Guides

Generate from an idea

Describe a character in a sentence and get back a rigged, animation-ready vector mascot.

The generator is an agent that draws a mascot as vector parts, renders what it drew, looks at the render, and fixes what it sees, including its own rig: joint gaps and parts that would tear when they move. You get back a character that is ready to animate the moment the job finishes.

Write a good prompt#

Say who the character is, not what the image should look like. The best prompts have four things: what it is (a species or an object), a personality, where it will live, and one or two signature details.

WeakBetter
a cute foxa clever fox who guides new users through a budgeting app, oversized ears, a tiny calculator badge
robot mascota boxy delivery robot for a logistics API, earnest and slightly clumsy, one antenna with a blinking light
clouda calm cloud creature that shows sync status for a storage app, sleepy eyes, soft rounded edges
  • Prompts are 3 to 2,000 characters. The generator names the character when it finishes; rename it any time with PATCH /mascots/{id}.
  • Leave out camera, lighting and background. The mascot is always drawn alone on a transparent canvas.
  • One exaggerated feature beats five small ones. It is what makes a character readable at 32 pixels.

Pick a style#

style is one of these ids, or any description of your own (up to 400 characters), which is passed to the generator as the style brief. The list is also served, without a key, at GET /styles.

styleLook
polishedThe default. No outlines, soft gradients, a core shadow and bounce light on every form, big two-highlight eyes. A modern app-mascot look.
outlinedBold cartoon: one uniform outline weight in a dark tint of the local colour (never black), two-tone fills.
playfulChunky flat: rounded rectangles, circles and rounded triangles only, no outlines or gradients, one shade per colour, thick even capsule limbs, round hands and paws, big pill eyes. Friendly app-mascot look; the shapes animate best.
flatNo outlines, no gradients. Three flat tones per form with crisp shadow crescents; editorial and geometric.
kawaiiVery round, a huge head, tiny body, glossy eyes, blush, pastel palette.
soft3dVinyl-toy volume: strong gradients, bright bounce light, glossy highlights, contact shadows.
retro1930s rubber-hose: noodle limbs, white gloves, pie-cut eyes, thick black outline, cream and one accent.
pixelishChunky low-poly: rectangles and polygons, hard edges, a 5–7 colour ramp palette, faceted shading.
realisticPhoto-real: a real-looking person, animal or product, animated as video instead of rigged (see below).

Realistic: a photo look, animated as video#

A rig is made of vector shapes, so it can't look like a photo. With style: "realistic" we draw photo-real pictures (10 credits each) and animate the one you pick as video, like an uploaded image: it breathes right away for free, and each motion is a 3–5 second clip (60 credits). With pictures, the mascot waits in status: "choosing" until you call POST /mascots/{id}/pictures/{file_id}/animate with optional motions. Without it, one picture is drawn and animated at once; add motions with POST /mascots/{id}/clips.

Create the mascot#

curl -X POST https://lumorig.com/api/v1/mascots -H "Authorization: Bearer $LUMORIG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "a clever fox who guides new users through a budgeting app, oversized ears",
    "style": "outlined"
  }'

Body#

NameTypeDescription
promptrequiredstringWho the mascot is. 3–2,000 characters.
stylestringA style id from the table above, or your own description (max 400). Default polished.
namestringPlaceholder name (max 80) while it draws. The finished mascot takes the name the generator gives it.
detail"standard" | "high"Default standard. See below.
max_creditsnumberThe most credits this job may charge: it stops and is refunded if it would need more. Without it, work past the price is charged once the job delivers.

The response is 202 with { mascot, job }. The mascot exists straight away in status generating; if the job fails, a mascot that never got a drawing moves to failed with the reason in error.

Detail and cost#

detailCreditsTypical timeUse it for
standard100about 2 minutesAlmost everything. Characters that read clearly at app-icon to hero sizes.
high2504–7 minutesHero art where you want more rendering passes and richer shading.

A job that fails or that you cancel (POST /jobs/{id}/cancel) gives its credits back. If you do not have enough, the request returns 402 insufficient_credits and nothing is created.

Follow progress#

The generator narrates as it works, and every complete draft it submits is streamed as a draft event carrying the whole spec, so you can render the character taking shape. This is how the studio shows the drawing arriving.

curl -N "https://lumorig.com/api/v1/jobs/job_…/events" -H "Authorization: Bearer $LUMORIG_API_KEY"
# event: progress
# data: {"seq":3,"at":"…","type":"progress","text":"Blocking in the head and ears."}
# event: draft
# data: {"seq":9,"type":"draft","spec":{…},"rig_ok":false}
# …
# event: finished
# data: {"seq":31,"type":"finished","status":"succeeded","error":null}

What you get back#

When the job succeeds its result is:

job.result
{
  "mascot_id": "msc_…",
  "version_id": "ver_…",
  "rig_ok": true,
  "submissions": 3,
  "summary": "A clever fox with oversized ears …"
}
  • rig_ok is whether the final draft passed the rig check; submissions is how many drafts the agent went through.
  • The mascot is ready with idle and wave saved. All 18 presets work on it straight away (and fly, when the character has wings).
  • Fetch it with GET /mascots/{id}, a PNG with preview_url, or the full drawing with ?include=spec. Then animate, edit, export or embed it.