Person to Robot · Open Skill 公開スキル
Person to Robot
Person to Robot は Digen 上の公開 Open Skill です。開くと、このワークフローが何を作るか分かります。
Trailer
1 0 0
https://d7qlwi7tl2u27.cloudfront.net/skill-covers/prod/3656543/2026-10-14/4kfx6m49.jpg
# Person to Robot
Turn a user-provided photo of a real person into a **robot version** using image-to-image (`generate_image` with a reference photo in `input_urls`).
**Identity rule (non-negotiable):** preserve the person’s **facial identity and expression**—same face shape, eyes, nose, mouth, skin tone, and likeness. On the face, add **light robot accents only** (e.g. thin circuit lines, small panel seams, subtle metallic highlights at temples or cheekbones, optional tiny LED dots). **Do not** replace the face with a helmet, mask, or fully mechanical head unless the user explicitly asks.
**Body rule:** neck, torso, arms, legs, hands, clothing silhouette, and pose should read as **robot / mech / android**—plating, joints, cables, servos, metallic or composite materials—while **keeping the same pose, framing, and background layout** as the source photo unless the user asks to change them.
There is no structured project state; progress lives in the conversation and canvas assets.
## When to use
- User uploads or points to a **person photo** and asks to become a robot, cyborg, mech, android, etc.
- User wants **face kept recognizable** with only decorative robot details on the face.
- User asks to **regenerate**, switch **quality/speed**, or adjust **robot style** (sleek sci-fi, industrial, cute toy robot, etc.).
## Model channels (image-to-image only)
Use **`generate_image`** with **`input_urls=[the user’s photo]`** (asset URL from the chat upload or an existing canvas asset). **Always set `model` to one of these channels—never a physical model name:**
| Channel | When to use |
|---------|-------------|
| `i2i.hd.lite` | Fast preview, simple pose, or user asks for quick/cheap result |
| `i2i.hd` | **Default** for most uploads—balanced quality and identity preservation |
| `i2i.hd.gpt` | Complex pose, busy background, group shot, fine mech detail, or after a failed/`i2i.hd` attempt that lost likeness |
If the user names a tier (“fast”, “best quality”, “GPT”), map to the row above. If unspecified, start with **`i2i.hd`**.
> `.hd*` channels do **not** support NSFW content. Refuse adult/explicit requests politely and do not call generation.
Optional: call `list_models` with `model_type='image'` only when channels fail or the platform rejects a channel—do not use it to guess alternate physical models.
## Workflow
1. **Confirm input**
- Require **one clear reference photo** of the person. If missing, ask the user to upload one; do not invent `input_urls`.
- Note user preferences: robot style, how strong the mech look is, orientation, and whether they want **one** result or a **lite preview then HD**.
2. **Analyze the photo** (recommended)
- Call `recognize_image` with the same photo URL and a short prompt such as: *Describe pose, framing (portrait/half/full body), facing direction, visible body parts, background, and lighting. Note anything that makes i2i hard (motion blur, extreme angle, multiple faces).*
- Use the analysis to pick **`orientation`** (`portrait` / `landscape` / `square`) to match the source when obvious; omit `resolution` unless the user requests higher than default (720P).
3. **Build the English i2i prompt**
- Prompts for **`generate_image` must be in English**.
- Start from the template in `references/prompt-templates.md` via `read_skill_file(person-to-robot, references/prompt-templates.md)` when you need the full skeleton or style variants.
- Core prompt must state explicitly:
- **Keep the same person’s face and expression; preserve facial features and likeness.**
- **Face: only subtle robot decorations** (circuits, seams, small LEDs)—**no full face replacement.**
- **Body and limbs: robotic/mechanical** replacement or overlay while **same pose and composition**.
- Match **lighting and background** from the reference unless the user asked to change them.
4. **Generate**
- `generate_image(
prompt=<English prompt>,
input_urls=[<user photo URL