Makernice
← All posts
A white paper airplane gliding over a row of empty office desks with sunlight streaming through tall windowsGuides

How to Use Seedance 2.0 Fast in Claude Code and Cursor?

Makernice Team · ·

Prices as of November 12, 2026 (price list v15).

Key takeaways

  • Seedance 2.0 Fast has a single output resolution, 720p, so requests from Claude Code or Cursor leave the resolution field out; a 5-second clip is $0.5136 at price list v15 (November 12, 2026).
  • Sending a resolution to Seedance 2.0 Fast is refused as invalid parameters before any job is created, because the model has a fixed resolution.
  • Seedance 2.0 Fast keeps the same four modes as Seedance 2.0, 4 to 15 seconds per clip and up to 9 reference images.
  • Each prompt variation is its own generate call with its own request_id, and each one is priced and capped separately by max_cost_usd.
Ask an AI assistant about this pageAsk ChatGPTAsk ClaudeAsk Perplexity

Yes. Seedance 2.0 Fast works inside Claude Code and Cursor once the Makernice MCP server is connected: the agent gets a price from estimate_cost, you approve it, and generate runs the clip without going past the max_cost_usd you accepted. Fast renders at one resolution, 720p, and a 5-second clip costs $0.5136 (price list v15, November 12, 2026).

Which steps connect Claude Code and Cursor to Makernice?

For Claude Code, copy the claude mcp add --transport http --scope user makernice line together with the server URL from the Claude Code guide, run it in a terminal, then type /mcp inside Claude Code and finish the sign-in in your browser. The --scope user flag makes the server available in every project, which suits people who open many repos.

For Cursor, the Cursor guide has an Add to Cursor link and a JSON snippet for ~/.cursor/mcp.json. After either one, open Cursor's MCP settings and sign in next to makernice. If the tools don't show up in chat, reload the MCP servers and look again.

Seedance 2.0 Fast without an editor: Claude and ChatGPT connectors

If you would rather ask for Seedance 2.0 Fast in a chat window than in an IDE, Claude and ChatGPT can reach the same Makernice tools. Claude takes the server as a custom connector (how to add it). ChatGPT on the web takes it as a custom MCP server with OAuth sign-in, on plans or workspaces that permit those, and points at its own server address (how to add it); that version leaves out get_topup_link. Nothing else changes for Seedance 2.0 Fast: the assistant gets a quote from estimate_cost, which does not reserve the amount, passes the figure you approve to generate as max_cost_usd, and fetches the finished clip with check_job.

How do you write a text-to-video request for Seedance 2.0 Fast?

A Seedance 2.0 Fast text-to-video request needs mode t2v and a prompt of up to 4,000 characters, with an optional duration from 4 to 15 seconds and an optional aspect_ratio; it takes no resolution, because every clip renders at 720p. Describe one shot with one subject, one action and one camera move, as the text-to-video prompt guide shows.

Fast suits the loop where you rewrite a prompt three or four times to get the motion right. Each rewrite is a separate job, so the agent prices it, you confirm, and it runs. Here is the third take of an office shot:

You: Third try at the paper airplane shot: this time it should loop once before landing on the keyboard. What will it cost?

Cursor checks the new prompt with estimate_cost. Notice there is no resolution in the input:

{
  "name": "estimate_cost",
  "arguments": {
    "input": {
      "model": "seedance-2.0-fast",
      "mode": "t2v",
      "prompt": "A paper airplane glides between rows of office desks, sunlight through tall windows, it loops once and lands on a keyboard, tracking shot",
      "duration": 5,
      "aspect_ratio": "16:9"
    }
  }
}

Cursor: That's $0.5136 for 5 seconds of Seedance 2.0 Fast at 720p, price list v15. Go?

You: Go.

Cursor then calls generate with the same input. The request_id names the take, so takes one, two and three never get mixed up:

{
  "name": "generate",
  "arguments": {
    "input": {
      "model": "seedance-2.0-fast",
      "mode": "t2v",
      "prompt": "A paper airplane glides between rows of office desks, sunlight through tall windows, it loops once and lands on a keyboard, tracking shot",
      "duration": 5,
      "aspect_ratio": "16:9"
    },
    "max_cost_usd": "0.5136",
    "request_id": "paper-plane-office-take-3"
  }
}

At that moment Makernice quotes the input once more. A quote at or under max_cost_usd, and inside the connection's per-job limit, creates the job and charges that quote; anything above is refused with no job. Retrying an identical call with the same request_id returns the same job, while the next take needs a new id.

To collect the clip, the agent calls check_job with the returned job_id, optionally with wait_s (55 at most) so the call waits for the result. The finished MP4 is in outputs[0].url, a signed link valid for 24 hours; call check_job again for a fresh one. A queued take you no longer want can be stopped with cancel_job, which releases the held amount in full, but only before generation starts.

What changes when a model has only one resolution?

Most video models let you pick a resolution. Seedance 2.0 Fast does not: every clip comes out at 720p and is billed at $0.1027 per second (price list v15, November 12, 2026). Leave resolution out of the request entirely. If the agent adds it anyway, Makernice answers with invalid parameters and names the field, and nothing is charged. When you need 1080p, switch to Seedance 2.0, which offers 720p and 1080p; the Seedance 2.0 Fast vs Seedance 2.0 comparison sets the two side by side.

Everything else matches Seedance 2.0: 4 to 15 seconds (5 by default), text-to-video, image-to-video, first and last frame, and reference-to-video with up to 9 images. Audio is always included. Details are on the Seedance 2.0 Fast model page.

Say thisThe agent sets
Same shot, new wordinga new prompt and a new request_id
Fill the motion between two stillsmode flf, image_url and last_image_url
Let the frame follow my imagesaspect_ratio adaptive (first and last frame only)
Make it 10 secondsduration 10, priced per second
Keep my mascot consistentmode r2v with up to 9 reference_images
Higher resolutionno field to change: Fast stays at its single tier

Can Seedance 2.0 Fast animate an image you already have?

Yes. Seedance 2.0 Fast turns a still into a clip in image-to-video mode (mode i2v with the picture in image_url), and it fills the motion between two stills in first and last frame mode (mode flf with image_url and last_image_url). First and last frame accepts these ratios: adaptive, 21:9, 16:9, 4:3, 1:1, 3:4, 9:16; adaptive follows the shape of your images.

The images go in as public https links (JPEG, PNG or WebP, 10 MB at most) with the shorter side at least 300 px and the longer side no more than 6000 px; local paths don't work over MCP, and video input isn't accepted. An example estimate for the frame-to-frame version of the shot:

{
  "name": "estimate_cost",
  "arguments": {
    "input": {
      "model": "seedance-2.0-fast",
      "mode": "flf",
      "prompt": "The paper airplane unfolds itself into a flat sheet that drifts onto the desk",
      "image_url": "https://example.com/frames/plane-flying.png",
      "last_image_url": "https://example.com/frames/sheet-on-desk.png",
      "duration": 6,
      "aspect_ratio": "adaptive"
    }
  }
}

How the first frame and the end frame steer the motion is covered in image-to-video and first and last frame.

Seedance 2.0 Fast errors and how to answer them

When Makernice says no, the agent receives readable text and nothing has been created or billed. Column one is the server's internal name for the refusal; column two is the opening of the returned message.

RefusalWhat the tool returnsWhat to do
invalid_request"Invalid parameters"Usually a resolution sent to a fixed-resolution model or a duration out of range; remove or correct the field the message names
price_exceeds_max_cost"which exceeds max_cost_usd"The take got longer than the one you approved; estimate the new length and confirm
request_id_conflict"This request_id was already used with different parameters."A rewritten prompt is a new request: give it a new request_id
concurrency_limit_reached"Too many jobs are running for this account right now."Several takes are in flight; wait for one to finish
not_cancelable"This job has already started generating and can no longer be canceled."Let the take finish; only queued jobs can be canceled

Frequently asked questions

Can I ask Claude Code for Seedance 2.0 Fast in 1080p?
No. Seedance 2.0 Fast has one resolution, 720p, and a request that includes a resolution is refused before anything is charged. Use Seedance 2.0 for 1080p.
Is every prompt rewrite in Cursor charged as a new Seedance 2.0 Fast clip?
Yes. Each rewrite is a separate generate call with its own price and request_id. Retrying the same call with the same request_id does not charge again.
Can I stop a Seedance 2.0 Fast take after I approve it?
Only while it is still queued: cancel_job releases the held amount in full. Once generation has started the job can't be canceled.
How many reference images can Seedance 2.0 Fast use?
Up to 9 images in reference-to-video mode, sent as public https links with mode r2v. That mode accepts the aspect ratios 16:9, 9:16, 4:3, 3:4, and the clip still renders at 720p.
Can you call the Seedance 2.0 Fast API from Python?
Yes. Python can call Seedance 2.0 Fast through the Makernice REST API with any HTTP client, since there is no official SDK: quote the input, create the generation with an Idempotency-Key, poll its status and download the file. Use the model id seedance-2.0-fast and leave resolution out of the input.
Does Seedance 2.0 Fast take a reference video from my repo?
No. It accepts text and still images only, and images have to be public https links rather than files in your project folder.

Models in this post