Search

Search HiAPI models, tools, and resources.

Back to blog
List8 min read

Seedance 2.5 Prompt Recipes: Copy-Paste Prompts With Real Outputs

Four image-to-video prompts we wrote and ran ourselves — grouped by camera movement, time-lapse, and looping animation — with the real clips and the API calls to reproduce them.

hiapiSeedancePromptsImage-to-Video

Seedance 2.5's image-to-video model is good at exactly the kind of motion most people fumble on the first try: slow camera drift, believable time-lapses, and clean looping animation. The trick isn't a secret model setting — it's writing the prompt so the only ambiguous thing left is what Seedance fills in.

Below are four prompts we wrote and ran ourselves on hiapi, grouped by the kind of motion they produce. Each one ships with the real generated clip, the exact API call to reproduce it, and the one or two details that make it work.

Quick reference: pick your recipe

RecipeMotion typeFrame modeDurationBest for
1. Coffee cup dolly-inCamera movementFirst-frame only4sProduct shots, food & beverage ads
2. Day-to-night deskLighting time-lapseFirst + last frame4sLifestyle, interior, mood pieces
3. Basil seedling growthOrganic growth time-lapseFirst + last frame4sNature, gardening, educational content
4. Samoyed walk cycleLooping character animationFirst-frame only5sGame sprites, mascots, green-screen compositing

All four ran on seedance-2.5/image-to-video at 720p, which bills at $0.204 per second (1080p is $0.516/sec, flat rate either way — current pricing). None of them use tricks outside the model's public input schema: prompt, first_frame_url, an optional last_frame_url, resolution, and duration are all you need for every recipe below.

Recipe 1: Slow camera dolly-in

Slow, steady dolly-in on the steaming coffee cup, camera glides forward and slightly down, steam swirls and drifts upward in soft morning light, gentle handheld micro-motion, cinematic shallow depth of field, warm natural color grade

Why this works: the prompt separates two motion layers — the camera ("dolly-in", "glides forward and slightly down") and the subject ("steam swirls and drifts upward"). Seedance 2.5 tends to blur the two together if you only describe one. Naming the camera move explicitly, then giving the environment its own independent motion, keeps both readable instead of collapsing into generic drift. "Gentle handheld micro-motion" is doing real work too — it stops the shot from looking like a locked-off render and adds the tiny imperfection that reads as "filmed," not "generated."

Reproduce it:

curl -s -X POST https://api.hiapi.ai/v1/tasks \
  -H "Authorization: Bearer $HIAPI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2.5/image-to-video",
    "input": {
      "prompt": "Slow, steady dolly-in on the steaming coffee cup, camera glides forward and slightly down, steam swirls and drifts upward in soft morning light, gentle handheld micro-motion, cinematic shallow depth of field, warm natural color grade",
      "first_frame_url": "https://your-cdn.example.com/coffee-cup.jpg",
      "resolution": "720p",
      "duration": 4
    }
  }'

That returns a taskId. Poll it until status flips to success, then grab the clip from output[0].url:

curl -s https://api.hiapi.ai/v1/tasks/{taskId} \
  -H "Authorization: Bearer $HIAPI_API_KEY"

Swap in your own product photo as first_frame_url and this same prompt structure works for drinks, skincare, packaging — anything you'd normally shoot on a slider.

Recipe 2: Lighting time-lapse

Time-lapse from bright daytime to night at the same desk: daylight fades to warm lamp glow, laptop screen turns on and begins glowing softly, city lights flicker on outside the window, smooth continuous lighting transition, no camera movement, static locked-off shot

Why this works: this is a first + last frame job, not first-frame-only. You give Seedance a "daytime desk" photo as the start and a "night desk" photo as the end, and the prompt's only job is to describe how it gets from one to the other — not to invent the destination itself. That's why the prompt reads like a sequence of lighting events ("daylight fades... laptop turns on... city lights flicker on") instead of a single scene description. Locking the camera ("no camera movement, static locked-off shot") is deliberate too: with two fixed endpoints, any camera drift makes the interpolation look warped instead of smooth.

Reproduce it: same call shape as Recipe 1, but add last_frame_url alongside first_frame_url:

{
  "model": "seedance-2.5/image-to-video",
  "input": {
    "prompt": "Time-lapse from bright daytime to night at the same desk: daylight fades to warm lamp glow, laptop screen turns on and begins glowing softly, city lights flicker on outside the window, smooth continuous lighting transition, no camera movement, static locked-off shot",
    "first_frame_url": "https://your-cdn.example.com/desk-day.jpg",
    "last_frame_url": "https://your-cdn.example.com/desk-night.jpg",
    "resolution": "720p",
    "duration": 4
  }
}

last_frame_url only works when first_frame_url is also set — Seedance 2.5 won't accept an end frame without a start frame. Use this pattern for before/after shots, seasonal transitions, or any "same place, different time" concept.

Recipe 3: Organic growth time-lapse

Time-lapse growth of a basil seedling sprouting and unfurling leaves inside the terracotta pot, smooth continuous motion, soft morning light staying consistent, camera locked off, no cuts

Why this works: same first+last-frame mechanics as Recipe 2, but notice what's different in the wording — "soft morning light staying consistent" is there specifically to stop Seedance from also time-lapsing the lighting along with the growth. When your prompt only cares about one axis of change (plant growth) but the model has two plausible time-lapse behaviors to draw on (growth and day/night lighting, since that's a common time-lapse pattern), naming what should stay fixed prevents the model from "helpfully" varying it too. "No cuts" also matters: without it, Seedance sometimes interprets "time-lapse" as license to jump-cut between growth stages rather than render continuous motion.

One thing to watch: when the start and end frames differ a lot, a second or two in the middle can look like the two images cross-dissolving rather than the plant actually growing. Keep the framing and props the same in both frames and change only the plant to reduce it.

Reproduce it: identical shape to Recipe 2 — swap in your own first/last frame pair and this prompt template:

{
  "model": "seedance-2.5/image-to-video",
  "input": {
    "prompt": "Time-lapse growth of a basil seedling sprouting and unfurling leaves inside the terracotta pot, smooth continuous motion, soft morning light staying consistent, camera locked off, no cuts",
    "first_frame_url": "https://your-cdn.example.com/seedling-start.jpg",
    "last_frame_url": "https://your-cdn.example.com/seedling-grown.jpg",
    "resolution": "720p",
    "duration": 4
  }
}

This template generalizes to any "before state → after state, one variable changing" shot: a dough proofing, a candle burning down, a bruise fading — anywhere you can photograph the start and end and describe the one thing that should move between them.

Recipe 4: Looping character animation

side view of a cute cartoon Samoyed dog character walking cycle animation, smooth looping walk motion, character walking in place from left to right, seamless loop with first and last frames perfectly matching, bright solid green screen background for chroma key, 2D animation style, clean cel shading, professional game sprite animation, high quality, consistent character design, full body visible

Why this works: this is first-frame-only, but the prompt does the job a last frame would normally do by explicitly asking for "seamless loop with first and last frames perfectly matching." That's the single most important phrase in the prompt — without it, Seedance treats "walking cycle" as a hint but won't necessarily land back on the starting pose, and you get a clip that jumps on loop instead of cycling cleanly. "Bright solid green screen background for chroma key" is the other load-bearing line: naming the technical purpose (chroma key) rather than just "green background" gets a flatter, more uniformly-lit green than a scene that merely happens to contain green.

Also worth noting: Seedance 2.5's output aspect ratio always follows your input frame (aspect_ratio is fixed to "adaptive" — there's no separate ratio parameter to set). Feed it a square first frame, as we did here, and the output stays square. That makes this recipe convenient for sprite sheets and app icons where you already know the target canvas.

Reproduce it:

{
  "model": "seedance-2.5/image-to-video",
  "input": {
    "prompt": "side view of a cute cartoon Samoyed dog character walking cycle animation, smooth looping walk motion, character walking in place from left to right, seamless loop with first and last frames perfectly matching, bright solid green screen background for chroma key, 2D animation style, clean cel shading, professional game sprite animation, high quality, consistent character design, full body visible",
    "first_frame_url": "https://your-cdn.example.com/samoyed-sprite-frame.png",
    "resolution": "720p",
    "duration": 5
  }
}

Swap the character description and keep the "seamless loop... first and last frames perfectly matching" + "chroma key" phrasing, and this same structure works for any 2D sprite loop — running, idle, flying — not just walk cycles.

FAQ

What's the difference between first-frame and first-last-frame mode in Seedance 2.5 image-to-video? first_frame_url alone gives Seedance a starting image and lets it invent the motion and ending from your prompt (Recipes 1 and 4). Adding last_frame_url pins down the ending too, so the model interpolates between two known states instead of improvising one (Recipes 2 and 3). last_frame_url is rejected unless first_frame_url is also set — there's no last-frame-only mode.

How much does Seedance 2.5 image-to-video cost per clip? It's billed per second, not per clip: $0.204/sec at 720p and $0.516/sec at 1080p (flat rate, no separate per-call fee), at current rates. A 4-second 720p clip like the ones above runs about $0.82; check hiapi's pricing page for the live number before you budget a batch.

Can I set a custom aspect ratio for Seedance 2.5 outputs? No — aspect_ratio only accepts "adaptive", meaning the output always inherits your input frame's ratio. If you need a 9:16 result, crop or generate your first frame at 9:16 before you send it in; Seedance won't reframe it for you.

Does Seedance 2.5 add audio to generated clips automatically? There's a generate_audio boolean in the input schema, defaulting to true. Set it to false if you're planning to lay your own voiceover, music, or SFX track on top and don't want the model's ambient audio competing with it.

What's the max duration for Seedance 2.5 image-to-video? duration accepts integers from 4 to 30 seconds (default 5). Longer clips cost proportionally more since billing is per-second — a 30-second 720p render would run roughly $6.12.

Is Seedance 2.5 available without a starting image, or for reference-driven video? Yes — seedance-2.5/text-to-video generates from a prompt alone with no input image, and seedance-2.5/reference-to-video takes one or more reference videos instead of a still frame, useful for matching an existing shot's style or motion.

Takeaways

  • Match the mode to the motion: first-frame-only for camera moves and self-contained loops, first+last-frame when you need a controlled start and end state.
  • Name what should stay fixed, not just what should move — "no camera movement," "soft morning light staying consistent" — or Seedance will vary things you didn't ask it to.
  • Output aspect ratio always inherits your input frame (adaptive is the only option), so decide your target canvas before you shoot or generate the first frame.
  • generate_audio defaults to on; turn it off explicitly if you're adding your own audio track in post.
  • All four recipes above are copy-paste starting points — swap the subject in the prompt and the image in first_frame_url/last_frame_url, and the underlying structure keeps working.

Want to see how these prompt patterns apply to a single continuous shot instead of a loop or time-lapse? Our one-shot POV video prompt breakdown covers the camera-choreography side in more depth. For the full prompt formulas (base formula, realistic characters, timestamp control), see the Seedance 2.5 Official User Guide. Or head straight to the Seedance 2.5 image-to-video model page to run your own first frame through it.

Generate it with HiAPI

Choose a model, enter your prompt, and see the result.

HiAPI Blog

Related articles

HiAPI

Generate it with HiAPI

Start generating