seedance

star 0

Run when the user wants to generate a video with ByteDance's Seedance — either text-to-video (prompt only) or image-to-video (animate a still) — or uses the /seedance command. Supports `pro` and `lite` tiers, durations 3–12s, resolutions up to 1080p, and an optional audio track. Output saved under the active brand folder. For Kling-based motion or product-element conditioning, use /add-motion instead.

NovateStudioGit By NovateStudioGit schedule Updated 6/6/2026

name: seedance description: Run when the user wants to generate a video with ByteDance's Seedance — either text-to-video (prompt only) or image-to-video (animate a still) — or uses the /seedance command. Supports pro and lite tiers, durations 3–12s, resolutions up to 1080p, and an optional audio track. Output saved under the active brand folder. For Kling-based motion or product-element conditioning, use /add-motion instead.

Seedance

Generate short videos with ByteDance Seedance via FAL — text-to-video or image-to-video.

This skill covers:

  • Text-to-video (T2V) — generate a clip from prompt alone
  • Image-to-video (I2V) — animate an existing still
  • Pro tier (highest quality) and Lite tier (faster / cheaper)
  • Optional ambient audio (Seedance audio-enabled endpoint)

This skill does not cover:

  • Kling-driven motion with product-element conditioning — use /add-motion
  • Talking-head / voiceover content — use /ugc or /product-ugc
  • Long-form video (clips capped at 12s)

Output saved to ./brands/[brand-name]/seedance/[output-name]/.


Step 1 — Select brand

Scan ./brands/ for subfolders containing brand-identity/visual-guidelines.md.

  • One brand: use it and confirm: "Using brand: [name]"
  • Multiple: list and ask
  • None: tell the user to run /brand first

Step 2 — Pick mode (T2V or I2V)

Ask:

"Text-to-video or image-to-video?

  • Text-to-video — prompt only, Seedance generates the whole clip from scratch
  • Image-to-video — start from one of your existing images and animate it"

If I2V, ask which image. Suggest:

brands/[brand-name]/product-shoot/
brands/[brand-name]/packshots/
brands/[brand-name]/styled/
brands/[brand-name]/clothing-shoot/
brands/[brand-name]/model-product-shoot/
brands/[brand-name]/ugc/

For an external upload:

mkdir -p brands/[brand-name]/seedance/uploads

"Drop your image into brands/[brand-name]/seedance/uploads/ and tell me the filename."

Wait for confirmation.


Step 3 — Prompt

Ask: "Describe the scene and motion you want. Be specific — what's happening, camera movement, mood, pace.

Examples:

  • 'Slow dolly-in on a glass of iced espresso, condensation running down the side, warm afternoon light'
  • 'A weathered hand picks up the jar, rotates it gently to show the label, sets it back down on the wood counter'
  • 'Wide static shot, golden-hour wheat field, slight breeze moving the stalks, distant farmhouse in soft focus'"

If the prompt is bare ("rotate the product", "wind blowing"), suggest a refined version with camera language and atmosphere before firing.


Step 4 — Duration, resolution, aspect, tier, audio

Ask in one message:

  • Duration — "How long? (3–12s, default 5s)"
  • Resolution — "Resolution? 1080p (default), 720p, or 480p for cheaper drafts"
  • Aspect ratio — for I2V, infer from the source image and ask only if ambiguous. For T2V, ask: 16:9 (default), 9:16, 1:1, 4:3, 3:4, 21:9
  • Tier — "pro (default, highest quality) or lite (faster / cheaper)?"
  • Audio — "Generate ambient audio? (off by default — adds cost. This is environmental sound, not voiceover.)"

Step 5 — Name the output

Derive a slug from the source image (if I2V) or the core idea of the prompt (if T2V):

  • T2V: iced-espresso-pour, wheat-field-breeze, colette-kitchen-morning
  • I2V: hey-bud-tint-rotate, jar-handpickup, meg-loaf-steam

Ask the user to confirm or rename.


Step 6 — Write seedance-spec.json

Create the output folder and write the spec:

brands/[brand-name]/seedance/[output-name]/
  seedance-spec.json

Text-to-video example:

{
  "output_name": "wheat-field-breeze",
  "brand": "[brand-name]",
  "mode": "text-to-video",
  "source_image": null,
  "prompt": "Wide static shot, golden-hour wheat field with slight breeze moving the stalks, distant farmhouse in soft focus.",
  "duration": 5,
  "resolution": "1080p",
  "aspect_ratio": "16:9",
  "tier": "pro",
  "generate_audio": false,
  "camera_fixed": true
}

Image-to-video example:

{
  "output_name": "hey-bud-tint-rotate",
  "brand": "[brand-name]",
  "mode": "image-to-video",
  "source_image": "brands/[brand-name]/product-shoot/hey-bud-tint-hand-hold/product-shot_v1.png",
  "prompt": "The product rotates 90 degrees clockwise, slow and smooth, light catching the label.",
  "duration": 5,
  "resolution": "1080p",
  "aspect_ratio": "9:16",
  "tier": "pro",
  "generate_audio": false,
  "camera_fixed": false
}

Step 7 — Generate

Run from the project root:

python3 skills/references/generate-seedance.py brands/[brand-name]/seedance/[output-name]

The script:

  • Loads FAL_KEY from .env
  • Routes to the right Seedance endpoint based on mode + tier + generate_audio
  • Uploads the source image (I2V only)
  • Runs the FAL job
  • Downloads the output to [output-name]_v1.mp4, _v2.mp4, etc.

Step 8 — Present the result

Tell the user the exact path: brands/[brand-name]/seedance/[output-name]/[output-name]_v1.mp4

Ask: "Happy with this? Or regenerate, adjust the prompt, change tier, or extend duration?"

To regenerate (same spec):

python3 skills/references/generate-seedance.py brands/[brand-name]/seedance/[output-name]

To adjust: edit seedance-spec.json and re-run.


Notes

  • Seedance Pro 1.0 supports up to 12s clips at 1080p. Lite tier is faster and cheaper but with a small quality drop.
  • For I2V, Seedance respects the source image's composition closely — useful when you want motion without re-rolling the scene
  • For T2V, Seedance is strong at multi-shot scene continuity and natural camera language
  • camera_fixed: true locks the camera to a static position — useful for product spins, slow drifts, or when you want the subject (not the camera) to drive the motion
  • Audio adds a separate generation pass; expect longer wait and added cost. Off by default.
  • Each brand has its own seedance/ subfolder — multiple brands run side by side
  • For Kling-based motion (with multi-image product element conditioning, start+end frame control), use /add-motion instead. Seedance and Kling are complementary, not redundant.
Install via CLI
npx skills add https://github.com/NovateStudioGit/novate-studio-skills --skill seedance
Repository Details
star Stars 0
call_split Forks 0
navigation Branch main
article Path SKILL.md
More from Creator
NovateStudioGit
NovateStudioGit Explore all skills →