SuperAPI AI Directory

create-bianzu-image

Design & creation

View repository

Updated 10-29 12:29

About this skill

create-bianzu-image

One face photo + a name + what they do → 6 rank portraits + a sliding-ancestor page.

Works in Grok / Claude / Codex / Cursor or any agent that can image-edit a photo. If the host has no image-edit tool, stop and say so.

Collect

Need all four. Missing any? Ask once, then go.

  1. Face photo. User upload. Never text-to-image a named real person.
  2. Display name (they said MakerJackie → write MakerJackie, not a cute rewrite) + a short stem for nicknames (Jackie / Liang / Ma).
  3. What they do + a one-line background (indie developer / designer / …). This is the joke engine.
  4. Current vibe: rank 0–5 they are NOW. Broke / 0 income / delayed release → 0. Debt collection → 1. Ordinary person → 2. Default 0.

Nicknames

i file zh en
0 00-nan.webp Little {stem} Delayed {En}
1 02-lao.webp Inmate {stem} Jailed {En}
2 03-zi.webp {stem} Jr. {En}
3 04-saint.webp {stem} Saint Saint {En}
4 05-god.webp {stem} God God {En}
5 06-ancestor.webp {stem} Ancestor Ancestor {En}

Display name on the roster ≠ stem. Example: roster MakerJackie, ranks 小难Jackie / Jackie圣. Do not invent Jackie if they said MakerJackie.

Face is a remix of the upload, not a new person

This is Fan art:edit the user's photograph. It is not "draw someone who looks like them."

Wrong: invent a handsome stranger, then dress him. Wrong: freeze the upload's expression and head angle on all 6 ranks. Right: square-crop the upload with code (magick), then image_edit that file for every rank. Identity stays. Pose, expression, and head turn must change.

Rules:

  1. Grok: image_edit the upload. Never image_gen. Same for other hosts: image-to-image only.
  2. Square with code, not the model.
  3. Likeness = bone structure, glasses, hairline, nose, mouth. Not the same snapshot.
  4. Each rank gets a new head direction and expression. Chin down, look at camera, look up, 3/4 left, 3/4 right — mix them. Six ranks with the same side-glance = fail.
  5. No "more handsome generic oil portrait." A different person is a fail.
  6. Every rank's source is the cropped user photo, not a previous generated rank (except a one-step retry of that same rank).

Little {stem}/Inmate can be pitiful. What's pitiful is the expression and complexion, not the person.

Visual contract

Shared: square 1:1, chest-up, same identity, no text/logos.

i body head / expression clothes backdrop
0 Skinny, hunched shoulders Head down, eyes cast down, pitiful and exhausted Oversized washed-out hoodie Rainy night wet asphalt, lightbox
1 Skinnier Head slightly raised looking at the light, blank stare, oily sheen Orange-red prison uniform Prison cell iron bars
2 Normal Slightly turned or facing mirror, faint smile, everyday Casual shirt Rented room/café
3 Slightly muscular Front-facing level gaze, calm Black tang suit, red frog buttons, gold halo Dark gold background
4 Noticeably more muscular Chin slightly raised, sharp and confident Black and gold dragon-pattern robe (fitted mandarin collar) Thunderclouds golden lightning
5 Most muscular, emperor's shoulders Front-facing looking down at viewer, cold and imposing Crown with dangling beads + black and gold dragon robe Golden dragon disc

Each prompt: 2–5 sentences. Lead with Same person as this photo — same glasses, bone structure, hair. Then the new head turn, new expression, then clothes and backdrop.

Generate

In one turn, fire 6 parallel image_edit calls, each sourced from the cropped user photo. Do not serialize. Do not chain through a generated lock. Child agents often cannot call image tools — parallel tool calls on the main agent are the speed path.

Verify

Put the original photo next to each rank. If a friend would not say "that's them," the rank failed. Glasses thickness, eye shape, nose, mouth, hairline must match the upload — not a handsome cousin. Retry that rank only, max 2, still from the cropped upload.

Story

Invent a funny dossier: short, mean, specific numbers, comment section.

rank joke
0 Little {stem} 0 income / delayed release / nobody uses it
1 Inmate Negative income, cloud bill overdue, landlord demanding payment
2 Jr. Still in this line of work, not good not bad
3 Saint Product actually launched, people paying
4 God Annual income explodes, breaks out of the circle
5 Ancestor Company sold / this industry is named after them

ranks[].event = one beat. Sliding up is the future they wish were true. timeline = 5–8 dated rows, past + now. Mark the now-row now: true. Do not date future glory unless current is already that high.

Ship

Repo mode if src/subjects.js exports SUBJECTS and public/ranks/ exists (this bianzu site):

public/ranks/{id}/{file}
cwebp -q 86 "$SRC" -o "public/ranks/{id}/{file}"

Append the subject last in SUBJECTS. id = ascii slug. current = the now-rank. Optional voices: public/sfx/{id}/{zh|en}-{0-5}.mp3.

Standalone mode otherwise:

  1. Copy template.html to bianzu-{id}/index.html
  2. Write the 6 webps to bianzu-{id}/ranks/
  3. Replace the SUBJECT object at the top of the HTML
  4. Open the file. One folder = one shareable slide-to-ancestor generator.

Do not deploy unless asked.