Product Ad Shorts · सार्वजनिक Open Skill

Product Ad Shorts

Product Ad Shorts Digen पर एक सार्वजनिक Open Skill है। खोलें और जानें कि यह वर्कफ़्लो क्या बनाता है।

@Andex

ShortDrama

0 1 4

https://d7qlwi7tl2u27.cloudfront.net/skill-covers/prod/3766200/2026-10-19/u5h99f42.jpg

---

allowed-tools:
  - generate_image
  - generate_video
  - generate_tts
  - generate_music
  - mix_clips
  - caption_video
  - recognize_image
---

# Product Ad Shorts

Create a short-form vertical product advertisement (YouTube Shorts / TikTok / Reels). The pipeline is: **ad script → product showcase shots → voiceover + music → final cut with captions**.

## When to use
- The user wants a short vertical ad for a product, from a product photo, a product description, or an idea.
- The user wants to redo or refine one stage: a new hook, restyle a shot, re-animate, or change the voiceover/music.

## Steps
1. **Understand the product.** If the user uploaded a product photo, call `recognize_image(image_url=<asset_id>, prompt="Describe this product in detail: what it is, its key features, colors, and how it looks, so it can be showcased in an ad.")`. If they gave a description or idea, use that directly. If unclear, ask one short clarifying question (product, target audience, selling point).
2. **Write the ad script.** Draft a short 15–30s ad structure: a hook (first 2–3s), 2–4 product showcase beats, and a call-to-action. Note the key selling point and the voiceover line for each beat. Keep it concise.
3. **Plan with todos.** Call `write_todos` with the stages (script → shots → audio → final cut) and update it as you go.
4. **Generate product showcase shots.** For each beat, call `generate_image` with `model='i2i'` and `input_urls=[<product photo asset_id>]` (or `model='t2i'` if text-only) and a prompt showing the product in an appealing, well-lit setting (e.g. "the product on a clean studio background with dramatic lighting, close-up"). Use `orientation='portrait'` (9:16) by default. Pass `name="Shot <n>: <beat>"` and `entity_type='storyboard_images'`.
5. **Animate each shot.** For each showcase image, call `generate_video` with `model='i2v'`, `input_urls=[<showcase image asset_id>]`, and a prompt describing natural motion (e.g. "the product slowly rotates on a turntable, camera pushes in"). Use `orientation='portrait'`. Pass `name="Shot <n> animation"` and `entity_type='storyboard_videos'`.
6. **Generate the voiceover.** Call `generate_tts` with `model='tts.design'`, the ad's voiceover lines, and a `voice_instruction` in English describing an energetic ad voice (e.g. "upbeat, energetic, enthusiastic commercial narrator"). Pass `name="Ad voiceover"` and `entity_type='voiceovers'`.
7. **Generate the music.** Call `generate_music` with a prompt describing an upbeat, catchy background track that fits the product (e.g. "upbeat, energetic commercial jingle, modern pop"). Pass `name="Ad music"`, `entity_type='music'`.
8. **Stitch the final cut.** Call `mix_clips` with one clip whose `videos` are the animated shots in order and whose `audios` are the voiceover and music tracks (set `volume` as needed, e.g. music at 0.4 so it sits under the voice). Pass `name="<product> ad"` and `entity_type='final_videos'`.
9. **Add captions (optional).** If the user wants TikTok-style word-by-word highlighted captions, call `caption_video` on the final cut with `template='mega-stroke'` (or `cloud-glow` / `sunset-panel` for a softer look). Pass `name="<product> ad captioned"` and `entity_type='final_videos'`. Note this step can take a while (ASR + burn).
10. **Reply.** Summarize the ad in natural language (don't paste URLs). Offer next refinements via `set_guidance` (e.g. new hook, restyle a shot, change the voiceover/music, add captions).

## Notes
- Default format is **portrait (9:16)** for Shorts/TikTok/Reels; switch to `landscape` only if the user asks for 16:9. Keep the same `orientation` across image and video stages.
- The ad is multi-shot by default; if the user only wants a single clip, generate one shot and skip the stitching.
- Video generation does not support NSFW/adult content on any channel — politely decline such requests.
- Report failures honestly; never fabricate URLs. If a generation fails, retry once with a slightly adjusted promp