Animal Adaptation Shorts · Open Skill 公開技能

Animal Adaptation Shorts

Animal Adaptation Shorts 是 Digen 上的公開 Open Skill。開啟後即可了解此工作流能製作什麼。

@quotationism1501

Anime

3 1 6

https://d7qlwi7tl2u27.cloudfront.net/skill-covers/prod/3761915/2026-10-19/bb35du7s.jpg

# Animal Adaptation Shorts

Produces one finished 9:16 short-form nature documentary (~10 seconds) about a single
remarkable animal adaptation: research → beat sheet → keyframes → animated beats → voiceover →
score → final mix with burned-in text overlays.

## When to use

- The user asks for a "mind-blowing animal adaptation" clip, wildlife / nature reel, or
  short-form documentary about an animal trait (speed, strength, senses, camouflage, mimicry…).
- The user supplies a prompt in the shape of a beat sheet (timings, text overlay lines, mood
  words like "deep narrator", "dramatic low bass") — treat it as the spec and fill the gaps.
- The user asks to continue or redo one of these videos in a follow-up turn.

Do not use for: general talking-head clips, non-animal topics, or requests to edit a video the
user already uploaded (that is a different workflow).

## Reference files

- `references/beat-sheet.md` — the beat/overlay template, a fully worked example (mantis shrimp),
  and the rules for writing overlay + narration lines. **Read this before generating anything.**
- `references/style-library.md` — copy-ready prompt language for keyframes, motion, voice and score,
  plus per-habitat variations (ocean / insect / bird / mammal / deep sea).
- `references/tiktok-captions.md` — the optional word-by-word caption pass (`caption_video`):
  templates, parameters and when to offer it. Read it only when the user asks for TikTok-style
  captions or when you are about to offer that option.

## Steps

Use `write_todos` to list the stages, then update it as you progress.

### 1. Lock the subject and the beats
Extract from the user's request: the animal, the adaptation being shown, the total duration
(default 10s), the beat timings (default 0–3s / 3–7s / 7–10s), the overlay lines, and the mood
words. If the user gave timings or overlay text, keep them **verbatim** — do not rewrite their lines.
If the request is vague (just an animal name), pick the single most astonishing documented
adaptation and design the beats yourself.

### 2. Research the fact (2 quick searches)
Call `search_web` (1–2 queries, e.g. "<animal> adaptation how it works speed strength") to
confirm the claim behind the overlay lines. Only put in the overlay + narration what the search
supports. If a search contradicts the user's line, keep the user's line but pick a supportable
number, and mention the discrepancy in your final message. Never invent precise figures
(velocities, force multiples, wavelengths) that no source supports.

### 3. Build the beat sheet
Read `references/beat-sheet.md` and write the three beats with: purpose, camera framing, motion,
overlay text (or "none"), and the narration line. Keep the total narration to ~2 short sentences
that fit the 10s window.

### 4. Generate one keyframe image per beat
`generate_image` with:
- `model='t2i.hd'`, `orientation='portrait'`, `resolution='1080P'`
- `input_urls=[]` (text-to-image; add a reference image only if the user supplied one)
- `name` = "<animal> — beat <n>: <short label>" e.g. "Mantis Shrimp — beat 1: eye macro"
- `entity_type='storyboard_images'`
- Prompt = the camera/framing line + style line from `references/style-library.md`, plus
  "vertical 9:16, cinematic macro, shallow depth of field, rich <habitat> color grade, no text, no watermark".

### 5. Animate each beat
`generate_video` with:
- `model='i2v'`, `input_urls=[<keyframe asset_id>]` (1st entry is the start frame)
- `orientation='portrait'`, `duration` = that beat's length in seconds (3 / 4 / 3 by default)
- `name` = "<animal> — beat <n> motion", `entity_type='storyboard_videos'`
- Prompt = the motion line for that beat (camera move + subject action), plus the style line.
  Keep it to one continuous action; do not ask the model to re-cut between shots.

### 6. Voiceover
`generate_tts` with:
- `model='tts.design'` (voice design — pass `voice_instruction`, no reference audio, no `mode` param)
- `voice_instruction` = "deep, calm male narrator, slow