Surrounded by Puppies · skill pública Open Skill

Surrounded by Puppies

Surrounded by Puppies é uma Open Skill pública no Digen. Abra para ver o que este fluxo cria.

@luouaua

Custom

0 0 0

https://d7qlwi7tl2u27.cloudfront.net/skill-covers/prod/4277547/2026-10-14/j5dankd9.jpg

# Surrounded by Puppies

Turn the user's **uploaded photo** (one or more **people**) into **one photoreal result**: the **same people** (faces, bodies, clothing, pose) **unchanged**, with **many independent puppies** added around them — varied breeds, full bodies, happy expressions, **natural foreground/midground placement** and **reasonable occlusion** (puppies in front of legs or beside arms, not merged into skin or fabric).

**Fixed play:** each user request produces **exactly one** shown image. No multi-panel batches, no text-only invent-a-person path.

No project state.

**Language lock:** This file and all of `references/` are **English only** (no Han characters). Reply in the **user's language**. Every `generate_image` `prompt` is **English**.

Do not tell the user tool names, channel names, or the full prompt.

## User-visible speech (hard)

Do not narrate the pipeline. Never mention skill files, `read_skill_file`, silent redo, or channels.

**Allowed lines only:**

- Need input: one short note that a **people photo** works best with **some space around the subject**, then pause **P-empty**.
- Starting generate: at most **one** short line (user language), then tool calls only — **no** `set_guidance` on that turn.
- Success: one or two sentences that the puppy-crowd photo is ready — no URL, no prompt dump. Pause **P-done**.
- Tool failure: brief honest note. Pause **P-fail**.
- Safety block: one polite refusal. Pause **P-refuse**.

## Pause = clickable buttons (hard)

Any turn that **stops without a new shown image**, and **every success turn**, must end with:

1. One or two short sentences (user language).
2. **`set_guidance`** in the **same turn**, with **at least two** clickable options. **No tool calls after `set_guidance`.**

Do **not** call `set_guidance` in the same turn as `generate_image` or `recognize_image`.

Each button is an object with `text` and `action` (not bare strings):

- **`send_message`**: `content` is the full sentence sent when tapped.
- **`fill_input`**: `content` is starter text the user can edit.

Offer **2–4** options. Translate `text` and `content` into the user's language. No channel or tool names on buttons.

Before every pause turn, `read_skill_file` → `references/guidance-buttons.md`.

| Pause | When | Example intents (localize) |
|---|---|---|
| P-empty | No upload and no last successful result from this skill to refine | I'll upload a people photo · Use my last puppy-crowd result |
| P-refuse | NSFW goal, gore, turning people into animals, plush/furry costume ask | Upload a wholesome people photo · Family-safe regenerate |
| P-fail | `generate_image` `success=false` after retry | Regenerate same photo · Upload a different photo |
| P-done | One puppy-crowd result ready | More puppies in the crowd · Regenerate cleaner · Match original background tighter |

## When to use

- User uploads a **portrait, half-body, or full-body photo** with **one or more people** and wants **puppies all around** them.
- User names **puppy crowd**, **surrounded by dogs**, or similar on an uploaded image.
- Follow-up on **last successful output from this skill**: **regenerate**, **denser puppy crowd**, **slightly wider framing**, or **orientation/resolution** change (still **one** image).

**Do not use:** pet cosplay, human-as-puppy, plush or furry body transformation, replacing people with animals, video, or unrelated edits with no puppy crowd.

## Reference files

| File | When |
|---|---|
| `references/puppy-crowd-prompt.md` | Before every `generate_image`; safety and redo rules |
| `references/output-size.md` | Before first `generate_image` in the session; when user names ratio or resolution |
| `references/guidance-buttons.md` | Before every pause turn that calls `set_guidance` |

## Channel

Every `generate_image` passes `model`. Never use physical model names. Never tell the user a channel name. Do not use bare `t2i` or bare `i2i`.

| Mode | When | `input_urls` | Default `model` | Fallback |
|---|---|-