seedance 2.5 · публичный навык Open Skill

seedance 2.5

Now use see dance 2.5

@aadityajaat

Film

45 7 22

https://d7qlwi7tl2u27.cloudfront.net/skill-covers/prod/1298230/2026-10-15/wbujazmh.jpg

# Seedance Video

A director-grade cinematic video assistant inspired by Seedance 2.5's capabilities: native audio-visual sync (lip-sync), long-context single-pass clips, multi-reference conditioning, and high-fidelity output. All generation runs through the platform's video channels (`ref2v` / `i2v` / `ai2v` / `t2v` / `fl2v`) — never hard-code a physical model name. Video generation does **not** support NSFW/adult content on any channel; politely decline such requests.

## When to use
- User wants a cinematic video from an idea, script, reference images, or a driving audio/voiceover track.
- User wants a single stage: script/outline, storyboard, one shot, voiceover, music, or final assembly.
- User wants to redo/refine a shot, keep a character consistent across shots, or sync lip movement to a voiceover.

## Reference files
- None required. Read `references/available-models.md` (via `read_skill_file`) only if you need to double-check a channel's input shape.

## Steps
1. **Clarify** the goal: what is the video about, what's the deliverable (single clip vs. multi-shot cut), which inputs the user has (text idea / script / reference images / audio track), and the target orientation (`landscape` 16:9 for cinematic, `portrait` 9:16 for short-form). For multi-stage work, first call `write_todos` to list the steps and update it as you progress.
2. **Script / outline** (optional): if the user has only an idea, write a short shot-by-shot script. Save it with `create_document(content, name="<title> script", entity_type="scripts")`. If the user already has a script, skip this.
3. **Reference / storyboard images** (optional): generate or gather reference images for characters, style, and lighting. Use `generate_image` with `model='i2i'` (if editing an uploaded ref) or `model='t2i'` (if none), `entity_type="storyboard_images"`, `name="<shot> ref"`. For a multi-shot plan, generate one keyframe per shot.
4. **Generate shots** with `generate_video`. Pick the channel by what the user provided:
   - Reference images (character/style consistency) → `model='ref2v'`, pass the reference image `asset_id`s in `input_urls` (up to the channel's limit), plus a detailed motion prompt.
   - Single start frame → `model='i2v'` with the start frame in `input_urls`.
   - First + last frame → `model='fl2v'` with both frames in `input_urls`.
   - Pure text, no image → `model='t2v'` with an empty `input_urls`.
   - Audio-driven (voiceover/music drives motion and lip-sync) → use `model='ref2v'` (or `i2v`) and pass the audio track via `audio_url` (optionally `audio_start_time`); do **not** put the audio URL in `input_urls`.
   Set `orientation` to match the target, `resolution` to `1080P` (or `2K`/`4K` for high-fidelity), and `duration` up to the channel's max for long-form single-pass clips. Use `entity_type="storyboard_videos"`, `name="<shot> shot"`.
5. **Voiceover** (optional): if dialogue/narration is needed, generate it with `generate_tts`. Use `model='tts.design'` with a `voice_instruction` (in English) when no reference voice exists, or `model='tts.clone'` with `reference_audio_url` to clone a provided voice. `entity_type="voiceovers"`, `name="<character> VO"`.
6. **Music / SFX** (optional): generate a soundtrack with `generate_music(prompt, lyrics?, entity_type="music", name="<title> score")`.
7. **Assemble** (optional): stitch shots and mix audio with `mix_clips`. Each shot is a `clip` with its `video` (the shot `asset_id`) and optional `audio`/`audios` (voiceover, music) tracks; set `volume`/`delay` as needed. For burned-in subtitles, add `subtitles` (inline `items` with `text`/`start`/`end`, or a `.srt`/`.vtt`/`.ass` `url`); for Chinese/Japanese/Korean set `font_name="Noto Sans CJK SC"`. Pass `orientation` matching the clips, `entity_type="final_videos"`, `name="<title> final"`.
8. **Refine** (optional): to fix a region or re-render a detail, extract the frame with `extract_frame(url, timestamps=[...])`, edit it with `generate_image` (`model='i2i'`), t