Skip to main content

Documentation Index

Fetch the complete documentation index at: https://runcrate.ai/docs/llms.txt

Use this file to discover all available pages before exploring further.

Generate videos using ByteDance’s Seedance models through the Runcrate API. Seedance supports text-to-video, image-to-video, and multi-input generation.

Available models

ModelSpeedDurationsFeatures
Seedance 1.0 ProMedium2–12sMulti-input, image-to-video, text-to-video
Seedance 2.0 FastFast2–8sFaster generation, text-to-video

Text-to-video

from runcrate import Runcrate

client = Runcrate(api_key="rc_live_YOUR_API_KEY")

job = client.models.generate_video_and_save(
    "seedance-demo.mp4",
    model="ByteDance-Seed/seedance-1.0-pro",
    prompt="A golden retriever running through a field of sunflowers in slow motion, "
           "warm afternoon light, shallow depth of field, cinematic",
    duration=6,
    on_status=lambda j: print(f"  {j.status}..."),
)

print("Saved seedance-demo.mp4")

Seedance 2.0 Fast — quick iterations

Use the fast model for prototyping before committing to the higher-quality Pro model:
from runcrate import Runcrate

client = Runcrate(api_key="rc_live_YOUR_API_KEY")

job = client.models.generate_video_and_save(
    "quick-test.mp4",
    model="bytedance/seedance-2.0-fast",
    prompt="A cup of coffee with steam rising, top-down view, cozy lighting",
    duration=4,
    on_status=lambda j: print(f"  {j.status}..."),
)

Batch video generation

from runcrate import Runcrate
from concurrent.futures import ThreadPoolExecutor

client = Runcrate(api_key="rc_live_YOUR_API_KEY")

scenes = [
    {"file": "intro.mp4", "prompt": "Close-up of hands unboxing a sleek tech product, white background", "duration": 4},
    {"file": "feature.mp4", "prompt": "Smartphone screen showing an app interface, finger scrolling", "duration": 6},
    {"file": "lifestyle.mp4", "prompt": "Person wearing earbuds jogging through a park at sunrise", "duration": 8},
]

def generate(scene):
    client.models.generate_video_and_save(
        scene["file"], model="ByteDance-Seed/seedance-1.0-pro",
        prompt=scene["prompt"], duration=scene["duration"],
    )
    print(f"Done: {scene['file']}")

with ThreadPoolExecutor(max_workers=3) as pool:
    pool.map(generate, scenes)

Seedance vs. other video models

FeatureSeedance 1.0 ProVeo 3.0Kling v3
Max duration12s8s15s
Multi-inputUp to 9 images + 3 videos + 3 audioText onlyReference video
Best forMulti-asset creative workflowsPhotorealistic 4KHuman motion

Tips

  • Start with 2.0 Fast for prototyping, switch to 1.0 Pro for final renders.
  • Prompt specificity matters — include camera angle, lighting, and motion descriptions.
  • Duration: shorter clips (2–4s) are tighter and more focused. Use 8–12s for establishing shots.

Next steps