Photo with Celebrity · Open Skill 公开技能
Photo with Celebrity
Photo with Celebrity
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