Side Profile to Front Face · Open Skill 公开技能

Side Profile to Front Face

Side Profile to Front Face

@ExploreFly

Manhua

1 0 1

https://d7qlwi7tl2u27.cloudfront.net/skill-covers/prod/3656543/2026-10-14/qpaeaahh.jpg

# Side Profile to Front Face

Turn an uploaded **side-profile (90°) face photo** into a **front-facing portrait** via image-to-image (`generate_image` + reference `input_urls`). There is no structured project state—track progress in chat and on the canvas.

## When to use

- User provides a side view of a face and asks for front view, straight-on face, ID-style front portrait, or “turn the head to face the camera.”
- User wants to **refine** a previous front-face result (different quality tier or prompt emphasis).
- User only needs **one person** in frame; multi-person or full-body shots may still work if the side face is clearly visible.

Do **not** use for: swapping identity to another person, deepfakes, minors without clear consent context, or explicit/adult content (`.hd*` channels are non-NSFW).

## Model channels (image-to-image only)

Always pass the user’s side photo in `input_urls` (first URL = primary reference). **Never** use physical model names—only these channels:

| Channel | When to use |
|---------|-------------|
| `i2i.hd.lite` | Fast preview, quick iteration, or user asks for “draft / fast / cheap.” |
| `i2i.hd` | **Default** for final front-face output when user did not specify a tier. |
| `i2i.hd.gpt` | User wants stronger semantic control, complex styling instructions, or prior `i2i.hd` still misses gaze/symmetry—use after reading `references/i2i_prompts.md`. |

If unsure the channel exists, call `list_models` with `model_type='image'` once as a sanity check; still follow the table above for this skill.

## Steps

1. **Confirm input**  
   - Require at least one uploaded side-profile image URL or asset from the conversation.  
   - If the face is barely visible, occluded, or extreme angle (>~100°), ask for a clearer side photo before generating.

2. **Optional analysis (recommended on first run)**  
   - `recognize_image(image_url=<side photo>, prompt="Describe visible identity cues only: apparent age range, gender presentation, skin tone, hair style/color, facial hair, glasses, hat, earrings, makeup, clothing neckline visible near jaw. Do not invent front-view features not visible from the side.")`  
   - Use the description to fill `{identity_notes}` in prompts—do not contradict the reference image.

3. **Plan todos (multi-step or compare tiers)**  
   - For “try all qualities” or lite → hd → gpt, call `write_todos` with one item per variant.  
   - Simple one-shot request: skip todos.

4. **Generate front face (core call)**  
   - Read prompt templates: `read_skill_file(side-profile-to-front-face, references/i2i_prompts.md)`.  
   - Pick channel per table (default `model='i2i.hd'`).  
   - Call:

     `generate_image(prompt=<from templates>, input_urls=[<side photo url or asset_id>], model='<i2i.hd.lite|i2i.hd|i2i.hd.gpt>', name='Front face portrait', entity_type='characters', orientation='square')`

   - Use `orientation='square'` for head-and-shoulders unless the user asked for landscape/portrait framing.  
   - Do not pass invented `resolution` unless the user requested a specific tier (480P–4K); otherwise omit for platform default.

5. **Reply**  
   - Summarize what changed (angle, preserved traits) in natural language. Do not paste long asset URLs.  
   - If result still looks slightly turned, run **one** refinement with the same channel and the “Refinement” prompt block in `i2i_prompts.md`.

6. **Guidance (same turn as final message, no other tools)**  
   - Call `set_guidance` with options such as: “Regenerate with i2i.hd.lite (faster)”, “Upgrade to i2i.hd.gpt”, “Keep identity but softer lighting”, “Try square vs portrait crop”.

## Canvas naming

- `name`: short label like `Front face` or `{subject} front portrait`.  
- `entity_type`: `characters` for person portraits.

## Collaboration rules

- **Default**: one `i2i.hd` generation after optional `recognize_image`; refine only if user asks or obvious angle error.  
- **Compare tiers**: generate lite preview first only when user wants speed/cos