Cat Street Stall · compétence Open Skill

Cat Street Stall

was: a plain studio beauty shot with nothing around it. now: I step into a cozy night-market corner where cats in tiny aprons run the stall. Photo -> a portrait beauty shot with lantern-lit steam, flipping snacks, and treats passed over the counter. Options: portrait 9:16, with a different snack or vibe on a redo. Tip: use one clear adult photo. A visible face works best.

@JordanReyes

Meme

0 0 0

https://d7qlwi7tl2u27.cloudfront.net/skill-covers/prod/4284951/2026-10-15/nb7cajyg.gif

# Cat Street Stall

A cozy night-market corner where the shopkeepers are cats. Your subject steps up to the counter, cats in tiny aprons flip snacks and hand over treats, and lantern-lit steam drifts through the shot.

## When to use

- The user wants a cute vertical video of the person or pet in their photo running a tiny street food stall staffed by cats (cat vendor, cat market stall clip)
- Another take with a different length or orientation

Not for: Still images only.

## Inputs and gates

| Input | Required | Default | Gate |
|---|---|---|---|
| Photo | Yes | — | One adult with the face clearly visible. Ask for another photo if the face is tiny, blurred, heavily covered or in profile |
| Duration | No | `6` s | 6 or 10 |
| Orientation | No | `9:16` portrait | Other ratios on request |

- If the person may be under 18, stop and decline politely. Real-person photos must be of adults the user has the right to use.
- Video does not allow NSFW content: keep wardrobe fully covering and refuse sexual requests. Suggestive fashion looks stay as still images.

## Steps

1. Read `references/video-motion.md`.
2. **Identity read**: `recognize_image(image_url=<photo>, prompt='Describe this adult for identity preservation: face shape, eye shape and color, brows, nose, lips, skin tone, apparent age range, hair color and length, distinctive marks, glasses. One compact line.')`.
3. **Keyframe**: `generate_image(prompt=<KEYFRAME>, input_urls=[photo], model='i2i.hd', orientation='portrait', aspect_ratio='9:16', name='Cat Street Stall keyframe', entity_type='work_in_progress')`. If the face drifts, regenerate once.
4. **Video**: `generate_video(prompt=<MOTION>, input_urls=[keyframe], model='i2v', orientation='portrait', aspect_ratio='9:16', duration=<d>, name='Cat Street Stall', entity_type='final_videos')`. Pass only the keyframe, never the original upload.
5. Reply in one or two sentences, e.g. "Your cat street stall is ready. Want another take with a 10-second cut?" Results appear on the canvas; never paste URLs.

## Prompt templates

**KEYFRAME**

```text
The same adult from the reference: <identity line>. Same face structure, eyes, skin tone and recognizable likeness; no beautification or face reshaping. Opening frame of this scene: standing at a cozy night-market food stall run by cats in tiny aprons; the cats cook and hand over a steaming snack, the subject laughs and takes it; warm lanterns, steam, gentle handheld camera. Posed for motion, clear subject, cinematic light. Nothing from the original photo's background remains.
```

**MOTION** (motion only; the frame already shows the look)

```text
Starting from this exact frame: <one clear motion arc for this concept: standing at a cozy night-market food stall run by cats in tiny aprons; the cats cook and hand over a steaming snack, the subject laughs and takes it; warm lanterns, steam, gentle handheld camera>, beginning, peak and settle in one continuous shot. Camera: <one move: slow push-in, gentle orbit, or static>. The same face and outfit throughout. Cinematic, no text.
```

## Failure handling

- `success=false`: say what failed in one sentence; retry once only if transient; never invent links.
- Content-policy rejection on video: soften wording and retry once; otherwise offer the keyframe as a still.
- Identity drifts: offer to regenerate.

## Examples

**Default**: the user says "here's my selfie, do it" with a photo. Use the tuned defaults, 9:16. Reply: "Your cat street stall is ready."
**Variation**: "love it, make another". Keep the same inputs and change one option (a 10-second cut).
**Missing input**: no photo was sent. Ask: "Send one clear photo where your face is easy to see, and I'll start."

## References

- `references/video-motion.md`