Bed Selfie & Casual Snapshot · skill publik Open Skill

Bed Selfie & Casual Snapshot

Bed Selfie & Casual Snapshot

@ExploreFly

Custom

14 2 3

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

# Bed Selfie & Casual Snapshot

Generate **in-bed selfie** or **casual snapshot-style** photographs. Two generation modes:

| Mode | When | Channel |
|------|------|---------|
| **Text-to-image** | No usable person reference in the conversation | `t2i` |
| **Image-to-image** | User uploaded a person photo (face/body reference) and wants **that person** in a bed selfie or casual snapshot | `i2i.hd.lite` / `i2i.hd` / `i2i.hd.gpt` |

All image **prompts are English**. Reply to the user in their language.

## When to use

- Bed selfie, morning-in-bed, pillow selfie, lying on bed, cozy bedroom portrait.
- Casual snapshot / candid phone photo / “随手拍” look (natural, imperfect framing, everyday vibe).
- User uploaded a portrait or full-body photo and asks to put **this person** in bed or in a casual snapshot scene.
- Variants (different lighting, outfit tone, expression) on the same concept or same reference.

**Do not use** for video, NSFW / explicit nudity, minors in suggestive contexts, or identity swap onto a **different** person without a reference. Refuse policy violations without calling tools.

## Scenario catalog (read on demand)

Preset moods, angles, and prompt tokens:

| File | Read when |
|------|-----------|
| `references/scenarios.md` | Picking or explaining a look; user is vague (“cozy bed photo”); need lighting / pose tokens |

Call `read_skill_file(name='bed-selfie-photo', path='references/scenarios.md')` once per task unless the user repeats the same scenario ID.

## Model channels (required)

### Text-to-image (no reference)

- **`model='t2i'`** only. Do **not** use `t2i.hd*` unless the user explicitly asks for a higher-quality text-only tier.
- No `input_urls`.

### Image-to-image (person reference)

Always pass the user's image as **`input_urls=[<reference>]`** (first URL = identity reference). Set **`model`** to exactly one of:

| Channel | When to use |
|---------|-------------|
| `i2i.hd.lite` | Quick draft, simple pose, user asks for fast preview |
| `i2i.hd` | **Default** for most same-person bed / snapshot scenes |
| `i2i.hd.gpt` | Fine facial detail, complex hair, busy bedding texture, or user asks for best quality |

Do **not** pass physical model names. Do **not** use `t2i*` when a person reference is the subject.

If identity drifts, retry once with stricter identity boilerplate (below) and step up channel (`lite` → `hd` → `gpt`).

## Workflow

1. **Classify request** — Bed selfie vs casual snapshot (non-bed). If unclear, default to **bed selfie** when the user mentions bed / 床上 / pillow / bedroom; otherwise **casual snapshot**.

2. **Reference check** — If the user attached or pointed to a person image (upload, canvas asset, `asset_id`), use **I2I**. If text-only, use **T2I** (`t2i`). If they want a specific person but provided no image, ask for one reference photo before I2I.

3. **Optional analysis** — For vague prompts with a reference, call `recognize_image` to note hair, apparent age band (adult only), and clothing—use only to enrich the **English prompt**, not to change who appears in I2I.

4. **Scenario** — Default scenario ID: `bed-selfie-soft-morning`. For casual snapshot mode, default: `casual-indoor-snapshot`. Override from user words or `references/scenarios.md`.

5. **Dimensions** — Selfies and phone snapshots: **`orientation='portrait'`** unless the user asks landscape or square. Non-standard ratios (e.g. 3:4): pass `aspect_ratio='W:H'`. Omit `resolution` unless the user requests higher output (`1080P` / `2K` as asked).

6. **Generate** — One image per request unless the user asks for multiple variants (then sequential calls with `write_todos`):

```text
# Text-only
generate_image(
  model='t2i',
  prompt=<English prompt>,
  orientation='portrait',
  name='<short title>',
  entity_type='skill_generation'
)

# Same person from reference
generate_image(
  model='<i2i.hd.lite | i2i.hd | i2i.hd.gpt>',
  input_urls=[<person_reference>],
  prompt=<English prompt>,
  orientation='portrait',
  na