Photo with Celebrity · compétence Open Skill

Photo with Celebrity

Photo with Celebrity

@JackRhino

Auto

3 1 2

https://d7qlwi7tl2u27.cloudfront.net/skill-covers/prod/4284865/2026-10-20/72ph4qd5.jpg

---

allowed-tools:
  - list_models
  - recognize_image
  - generate_image
  - search_web
---

# Photo with Celebrity (photo-with-celebrity)

Compose the user’s portrait with a **chosen companion** into one believable two-person photo: posed shot, tourist check-in, or casual phone snapshot. Progress lives in conversation and canvas assets; there is no structured project state.

## When to use

- The user uploads (or already has) a photo of themselves and wants to stand next to a star, idol, character, or friend.
- They want **casual snapshot / selfie together / check-in photo / red-carpet style**, or only pose, background, lighting, or outfit changes.
- When no companion is specified, use the default character from this skill’s **preset asset** as the fallback partner.
- They only want to **swap the companion** or **regenerate from the same user photo** without restarting intake.

## Model channels (mandatory)

| Scenario | Tool | Default `model` | Alternatives |
|----------|------|-----------------|--------------|
| Text-only companion reference (celebrity, OC, etc.) | `generate_image` T2I | `t2i.hd` | `t2i.hd.lite` (faster), `t2i.hd.gpt` (user asks or HD unsatisfactory) |
| Group photo compose, pose/scene/style edits (with refs) | `generate_image` I2I | `i2i.hd` | `i2i.hd.lite`, `i2i.hd.gpt` |

**Do not** put physical model names in steps; `list_models` is for exceptional fallback only, not instead of this table.

`.hd*` channels **do not support NSFW**; politely refuse sexual/nude group requests and do not call generation tools.

## Preset assets (fallback companion)

`read_skill(photo-with-celebrity)` returns `preset_assets`. After binding online:

| key | Purpose |
|-----|---------|
| `fallback_companion` | Default companion reference when the user **does not** name someone and did not upload a second-person ref |

For generation, `input_urls` may use the preset **`key`**, `asset_id`, or `uri` (s3://). If the list is empty before binding, briefly ask who they want in the photo or ask for a companion reference; **never** invent preset URLs.

## Production stages (references/)

**Do not read everything at once**; `read_skill_file` only the file for the current step.

| Stage | File | Main tools |
|-------|------|------------|
| Intake & inputs | `references/01_intake.md` | `recognize_image` |
| Companion reference | `references/02_companion_reference.md` | `generate_image` (t2i.*), preset `fallback_companion` |
| Final group photo | `references/03_compose_group_photo.md` | `generate_image` (i2i.*) |
| Prompt patterns & styles | `references/04_prompt_templates.md` | — |

## Collaboration rules

- **First turn**: If the user attached a photo and intent is clear (e.g. “put me in my upload next to X”), run 01→02→03 in one flow; if companion is missing and `fallback_companion` exists, use the preset **without** extra confirmation.
- **Only when** the user portrait is missing or companion/style cannot be inferred, ask one or two questions (user photo, companion, posed vs casual snapshot).
- For multi-step work, `write_todos` (recognize → companion ref → final photo); on stage completion or delivery, `set_guidance` with 2–3 relevant next steps (swap companion, casual flash look, landscape, etc.).
- Intermediate companion T2I: `entity_type='work_in_progress'`, `add_to_canvas=false` (hidden via canvas rules); **final photo**: `entity_type='storyboard_images'`, `add_to_canvas=true`, short `name` e.g. “Photo with [Name]”.
- On `success=false`, report honestly; one downgrade retry (e.g. `i2i.hd` → `i2i.hd.lite`) is OK; if still failing, ask for new description or refs.
- Final reply summarizes in natural language; **do not** paste long media URLs.

## Notes

- Group-photo **prompts** are **English**; **conversation** stays in the user’s language.
- A user-uploaded second-person photo is treated as authorized for composition; do not claim identity verification.
- For real public figures, `search_web` only for **public, neutral** appeara