Loading...
Loading...
Use when the user asks for voxel it or a task matching the examples below. Voxel-It — turn any photo into a high-quality Minecraft screenshot, keeping the HUMAN subject(s) fully photorealistic while the rest of the frame becomes detailed Minecraft block geometry, then cinematic-color-grade the whole frame to the photo's mood so the real person and the voxel world read as one image. A Step 0 router reads the photo and picks ONE of three input-driven modes: object-only (voxelize just the held/featured object + its tableware, keep the person AND background photoreal, float Minecraft loot-tag labels), background-only (voxelize the background/environment, keep the person and any incidental object photoreal, no tags), or object+background (voxelize everything except the person). Single still-image edit via one generate_image_edit call. This skill absorbs the old minecraft-food and minecraft-world trends. Triggers: "voxel it", "voxelize this", "minecraft world", "minecraft food", "minecraftify this", "minecraftify the background", "voxel food", "minecraft my photo", "put me in minecraft but keep me real", "loot tags on my food", "minecraft everything but the person", "/voxel-it".
npx skill4agent add pika-labs/pika-plugins voxel-itTools below are Pika MCP tools, named bare — call each under whatever prefix your session exposes for the Pika MCP.
Identity note: maskless single full-canvas edit (per the recipe), so the face is regenerated and can drift slightly. Accepted for color cohesion. For a byte-perfect face, see the advanced mask note at the bottom.
MODE: object-onlyMODE: background-onlyMODE: object+backgroundDoes the user EXPLICITLY ask to voxelize everything?
("voxelize everything" / "object and background" / "full voxel world")
→ MODE: object+background
Else, is a human FACE or BODY present?
├─ Person present + a held/featured object (food/product) is the subject?
│ → MODE: object-only (float loot tags on the object)
└─ Person present, NO featured object (people-in-a-place shot)?
→ MODE: background-only (the default for face-in-a-scene shots)
No person present?
├─ Pure object shot (a meal, a product, a flat-lay, a desk of gear)?
│ → MODE: object-only
└─ Landscape / scene with no featured object?
→ MODE: background-only
Genuinely ambiguous (can't tell if the object or the scene is the point)?
→ ask the user ONE line: "voxelize just the object, just the background,
or everything but you?"<source>gpt-image-2gpt-image-2quality="high"output_format="png"quality="high"background:truetask_status(task_id)completed<project>/voxel-it/<run-id>/sips -s format jpeg in.HEIC --out out.jpgsips -r 90sips -r 270cd ~/.claude/projects/<project-slug>/
SRC=$(ls -t *.jsonl | head -1) # newest = current session
python3 - "$SRC" "<run-dir>" <<'PY'
import json, base64, sys, os, hashlib
src, out = sys.argv[1], sys.argv[2]; imgs=[]
for line in open(src):
try: o=json.loads(line)
except: continue
m=o.get("message") if isinstance(o,dict) else None
role=(m or {}).get("role") if isinstance(m,dict) else o.get("role")
if role!="user": continue
c=(m or o).get("content")
if not isinstance(c,list): continue
for p in c:
if isinstance(p,dict) and p.get("type")=="image" and isinstance(p.get("source"),dict):
s=p["source"]
if s.get("data") and s.get("media_type","").startswith("image/"):
imgs.append((s["media_type"], s["data"]))
# save the last N pasted images (newest turn). Adjust [-1:] to [-N:] for batches.
for i,(mt,data) in enumerate(imgs[-1:], 1):
b=base64.b64decode(data); ext={"image/webp":"webp","image/jpeg":"jpg","image/png":"png"}.get(mt,"jpg")
p=os.path.join(out,f"source_{i}.{ext}"); open(p,"wb").write(b)
print(p, len(b), "sha256", hashlib.sha256(b).hexdigest())
PYupload_asset({filename, mime_type, size_bytes, sha256})presigned_urlcontent_typecurl -X PUT -H "content-type: <type>" --upload-file <file> "<presigned_url>"HTTP 200public_urlgenerate_image_editprovider="gpt-image-2"quality="high"output_format="png"background=trueimagesaspect_ratio: "auto"ROLE: You are an expert image-transformation artist specializing in stylized photo-to-game-world conversions and cinematic color grading.TASK: Transform the attached reference photo into a high-quality Minecraft screenshot in which the human subject(s) remain fully photorealistic and untouched, while everything else in the scene is converted into detailed Minecraft block geometry — then apply cinematic color grading derived from the original photo's mood.CORE CONCEPT (the hero idea — do not deviate): A real, photorealistic human standing inside a fully voxel/blocky Minecraft world. The contrast between the realistic person and the blocky environment is the entire point of this image.CONVERSION RULES:
- KEEP PHOTOREALISTIC (do NOT alter): the human subject(s) from the reference photo; their face, skin, hair, clothing, pose, and proportions; render them exactly as they appear — no stylization, no blockifying.
- CONVERT TO MINECRAFT (high-quality block model): all non-human elements — terrain, ground, plants, objects, structures, furniture, vehicles, sky, and background. Use clean cubic/voxel geometry with crisp 16x16-style block textures. Quality reference: a modern Minecraft screenshot rendered with premium shaders (e.g., SEUS / BSL style) — realistic lighting, soft shadows, ambient occlusion, volumetric light, sharp block edges.
- SPATIAL FIDELITY (strict — this is a conversion, not a reimagining): preserve the EXACT camera angle, framing, and composition; keep every element in its ORIGINAL position; keep every element at its ORIGINAL relative size and scale; the human must occupy the same place and proportion as in the source; do NOT add, remove, or rearrange objects.
COLOR GRADING (apply AFTER the Minecraft conversion): Step 1 — ANALYZE the original photo first: identify its time of day, lighting direction, dominant color palette, warmth/coolness, and overall mood ([fill in the mood you read, e.g. "moody night street, cool blue sky with warm street-lamp glow" / "golden-hour warm" / "overcast neutral"]). Step 2 — APPLY cinematic color grading that matches that analyzed mood: filmic contrast curve, balanced highlights and shadows; color tone consistent with the original photo's atmosphere; subtle vignette and depth, cohesive across both the realistic human and the blocky environment so they feel like one unified image.OUTPUT SPECIFICATIONS: single high-resolution image; sharp, detailed, professional Minecraft-screenshot quality; photorealistic human + voxel world, seamlessly color-graded.SELF-CHECK BEFORE FINALIZING: Is the human still 100% photorealistic and unchanged? Is everything else clearly Minecraft block geometry? Are positions, sizes, and composition identical to the source? Does the color grade match the original photo's analyzed mood? Does the realistic human and blocky world feel unified, not pasted?
LOOT TAGS: above or near EACH hero voxelized object, float a Minecraft inventory-style name tag — clean white pixel/bitmap font on a dark semi-transparent rounded rectangle (a Minecraft item-tooltip / named-entity tag) — naming that item: [list each hero object → its short name, e.g. "Mojito", "Sesame Latte", "Apple Cake", "Air Jordan 1", "Leica M6"]. Keep tags tidy, crisp, readable, non-overlapping, floating just above each item, and NEVER covering a person's face. (add to SELF-CHECK: "Does each hero object have a clean, readable Minecraft name tag that doesn't cover a face?")
- KEEP PHOTOREALISTIC (do NOT alter): the human subject(s) — face, skin, hair, clothing, pose, proportions — AND any object the person is holding or that sits in the immediate foreground (a phone, a drink, a bag, a prop). Render all of these exactly as they appear — no stylization, no blockifying.
- CONVERT TO MINECRAFT (high-quality block model): the BACKGROUND and ENVIRONMENT only — terrain, ground, plants, structures, furniture, vehicles, sky, and scenery behind and around the subject. Use clean cubic/voxel geometry with crisp 16x16-style block textures. Quality reference: a modern Minecraft screenshot with premium shaders (SEUS / BSL) — realistic lighting, soft shadows, ambient occlusion, volumetric light, sharp block edges. Do NOT voxelize the person or anything they are holding.
Edit this exact photo. KEEP [the person + their face, hair, hands, clothing, accessories /OR for a flat-lay: the table, containers, plates, cups, tray, utensils] and the background/scene and lighting 100% PHOTOREALISTIC and unchanged — do not stylize [the person] at all.ONLY transform the FOOD, DRINK and the food's TABLEWARE into 3D Minecraft voxel blocks — chunky, low-resolution cube-pixel geometry with flat blocky textures, exactly like Minecraft items, each sitting naturally where the real item was: [per-item mapping — e.g. "the ramen bowl → a blocky voxel bowl of yellow cube-noodles"; "the pepperoni slice → cube crust + voxel cheese + cube pepperoni discs"; "the steamed rice → a mound of white voxel rice cubes"].Above or near EACH transformed item, add a Minecraft inventory-style text label: clean white pixel/bitmap font on a dark semi-transparent rounded rectangle, naming the item (e.g. [item labels]). Keep labels tidy and readable, non-overlapping, and never over [the person's face].Final look: a real photorealistic [person / scene], but every piece of food, drink and tableware is a Minecraft voxel object with floating Minecraft inventory labels.
<run-dir>/voxel-it-<subject>.pngopensips -r 90sips -r 270| Symptom | Fix |
|---|---|
| Output rotated 90° | Rotate back |
| Person got blockified | Re-assert the KEEP clause; for groups name every person. |
| World barely voxelized | You're on nano-banana-pro — switch to gpt-image-2. |
| Person looks pasted | Make sure the COLOR GRADING block + mood line are present — that's the unifier. |
| Wrong things voxelized | Re-check Step 0 — you picked the wrong mode. object-only = just the featured object; background-only = just the scene; object+background = everything but the person. |
| Object voxelized in background-only | Widen the KEEP clause to name the held/foreground object explicitly. |
| Tags missing / wrong items (object-only) | You forgot the label clause, or didn't list the hero items by name. List each one. |
| Tags messy / overlapping / on the face | "keep labels non-overlapping, just above each item, never over a face"; re-roll. |
| Tags appeared but shouldn't have | You're in background-only (no tags) — drop the label clause. |
| Day-for-night flip | Name the night mood explicitly in COLOR GRADING. |
| Cropped vs source | Pass |
| Face drifted | Expected (maskless recipe). Advanced fix below. |
remove_backgroundmode="portrait"mask