Ghost Photobomb · مهارة Open Skill عامة

Ghost Photobomb

Ghost Photobomb

@Promise

TryOn

0 0 0

https://d7qlwi7tl2u27.cloudfront.net/skill-covers/prod/3949831/2026-10-15/ejw8nqj6.jpg

# Ghost Photobomb Short Video

Turn a single image the user uploads into a "ghost photobomb" short video: the subject stays consistent with the original image, while a semi-transparent ghost slowly rises from the bottom of the frame to photobomb and wave; the subject freezes mid-smile, turns their head, and then bursts out laughing. Single-step generation, no structured project state.

## When to use

- The user uploads an image (selfie, portrait, pet photo, group photo — any of these) and asks for a "ghost photobomb / spooky photobomb / ghost prank" short video.
- The user phrases it as "have a ghost show up on camera", "a ghost pops up behind me", "I'm posing and a ghost photobombs me", and so on.
- Also use this skill when the user only wants to change one part (redo with another image, make the ghost more / less visible, longer duration, switch to landscape), instead of re-running some other flow.

## Input

- Reference image: the image the user uploaded, which appears in the conversation as an asset. Pass it to `generate_video`'s `input_urls` as the **first frame**.
- Prefer passing that asset's `asset_id` (real https or `s3://` also work); **never** invent an image URL yourself.
- If the user uploaded several images, default to the one whose subject is clearest and most centered; for `i2v` the first frame is only the **1st** entry of `input_urls`.
- If the user just says "make a ghost photobomb" without an image, ask for a reference image first; don't generate one out of thin air.

## Steps

1. **Confirm the reference image and frame orientation.** If you cannot tell from the conversation what the subject is (person / pet / pose) or whether the image is landscape or portrait, call `recognize_image(image_url=<that image's asset_id>)` and ask for "what the subject is, which way the pose faces, and the frame's aspect ratio", then decide the prompt and `orientation`.
2. **Write an English prompt.** Fill in the template under "Prompt conventions" below, replacing the subject description with what you recognized from the original image (e.g. `a young woman with short hair in a white shirt`), keeping the rest of the structure unchanged.
3. **Call generation**:

   ```text
   generate_video(
     prompt=<the filled-in English prompt>,
     input_urls=[<original image asset_id>],
     model='i2v',                 # image-to-video channel; never write a specific model name
     orientation=<same as the original image, see parameter conventions>,
     duration=5,
     name='Ghost Photobomb',
     entity_type='final_videos'
   )
   ```

4. **Reply to the user**: one or two natural-language sentences (e.g. "The ghost rises from the bottom of the frame to photobomb, and the person freezes and then cracks up — it's on the canvas now."). Don't paste long URLs, don't output JSON.

## Prompt conventions

Always write the prompt in English, in the fixed order of: single shot → subject action → ghost action → subject reaction → camera → consistency / style constraints. Template:

```text
One continuous shot, no cuts, no scene change. {subject} is happily posing for a photo with a peace sign at the camera.
A semi-transparent ghost slowly floats up from the bottom of the frame, photobombing and waving.
The person's smile freezes, they turn their head, then burst out laughing.
The camera follows the subject's motion; the whole action arc from start to finish stays inside the frame.
The subject remains the center of the frame. Keep the original face, hairstyle, clothing, lighting and background of the input image exactly as they are.
Ghost theme with only a few subtle ghost details, ghost stays small and secondary.
Lighthearted and comedic, not scary. Photorealistic, no text, no watermark, no extra characters.
```

Fill-in and adjustment rules:

- `{subject}`: a short English description of the subject recognized from the original image; when unsure use `the person in the image` / `the pet in the image` — don't make up appearance details.
- **S