Skip to content

Seedance 2.5 US Draft Completion

VIDEOseedance-2-5-us-draft-complete

Seedance 2.5 US Draft Completion finishes a Seedance 2.5 US draft at full quality on US infrastructure. A draft is a quick 480p preview; completing it renders the same take again at 1080p, so the clip you approved is the clip you get. Drafts can be completed for 14 days after they are made.

POST
/v2/workspaces/{workspace_id}/base-models/seedance-2-5-us-draft-complete/inferences
curl --request POST \
--url https://api.app.layer.ai/api/v2/workspaces/:workspace_id/base-models/seedance-2-5-us-draft-complete/inferences \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"guidance_file_draft_video": [
{
"url": "<file_url>"
}
]
}'
workspace_id
required
Workspace ID

ID of the workspace that owns the resource.

string format: uuid

ID of the workspace that owns the resource.

session_name
Session Name

Organize this run under a named session. A new session is created if none matches. Ignored when session_id is given.

string
nullable

Organize this run under a named session. A new session is created if none matches. Ignored when session_id is given.

session_id
Session ID

Organize this run under this session, from GET /v2/workspaces/{workspace_id}/sessions. Takes precedence over session_name, and must belong to this workspace.

string format: uuid
nullable

Organize this run under this session, from GET /v2/workspaces/{workspace_id}/sessions. Takes precedence over session_name, and must belong to this workspace.

inference_tool_key
Inference Tool Key

The Layer tool this run is, such as image.upscale, so the asset it makes reopens in that tool in the Layer app. The body is then this model’s form for the tool’s job, and a reframe tool’s run asks for the reframe. The run must be one the tool makes: this model one of the tool’s, with every value the tool fixes left as the tool sets it. A field the body leaves out takes the value the tool’s form sets (a value it fixes, or a field’s default), except the prompt. A run that is not one the tool makes is refused with a 422 naming why (UNKNOWN_INFERENCE_TOOL, INFERENCE_TOOL_MODEL_NOT_IN_POOL, INFERENCE_TOOL_PIN_MISMATCH or INFERENCE_TOOL_UPSCALE_COPIES_SOURCE).

string
nullable

The Layer tool this run is, such as image.upscale, so the asset it makes reopens in that tool in the Layer app. The body is then this model’s form for the tool’s job, and a reframe tool’s run asks for the reframe. The run must be one the tool makes: this model one of the tool’s, with every value the tool fixes left as the tool sets it. A field the body leaves out takes the value the tool’s form sets (a value it fixes, or a field’s default), except the prompt. A run that is not one the tool makes is refused with a 422 naming why (UNKNOWN_INFERENCE_TOOL, INFERENCE_TOOL_MODEL_NOT_IN_POOL, INFERENCE_TOOL_PIN_MISMATCH or INFERENCE_TOOL_UPSCALE_COPIES_SOURCE).

Idempotency-Key
string
<= 255 characters

Opaque key making a retry of this request return the first result. A 2xx response is replayed for 24 hours with Idempotent-Replayed: true. A 4xx releases the key. A 5xx, or a request still running, holds the key for 120 seconds, during which a retry gets 409; after that a retry executes again. The key covers the method, path, query, and byte-identical body it was first used with; reusing it for a different request is rejected with 422. Protection is best effort: if the key store is unavailable, or a record is lost early, a retry can execute again even after an earlier 409. See the Idempotency section of the API description.

Media typeapplication/json
Seedance 2.5 US Draft Completion
object
guidance_file_draft_video
required
Draft

The draft to complete at full quality

Array<object>
>= 1 items
InferenceFormFileRef

A single guidance/reference file supplied to a reference_image_list field.

The slot’s guidance type is fixed by the field it’s attached to; the caller supplies the file (its URL, or the id of a file it can read) and, where the model supports per-file weighting, a weight.

object
url
required
Url

The file’s URL, or the id of a file in this workspace or a public file.

string
weight
Weight
number
nullable
Example
{
"guidance_file_draft_video": [
{
"url": "<file_url>"
}
]
}

Successful Response

Media typeapplication/json
ExecuteForgeOutput
object
inference_id
required
Inference ID

Unique identifier for this forge run.

string format: uuid
status
required
InferenceStatus

Current status: IN_PROGRESS.

string
Allowed values: in_progress complete failed cancelled deleted
estimated_price_creative_units
Estimated Price Creative Units

Estimated price in Creative Units.

number
nullable
poll_interval_seconds
required
Poll Interval Seconds

Suggested polling interval in seconds.

integer
created_at
required
Created At

Timestamp of when the run was created.

string format: date-time
session_id
Session ID

Session ID the run was added to, if a session was specified.

string format: uuid
nullable
normalized_parameters
Any of:
NormalizedInferenceParameters

Inference parameters after model-specific normalization.

These reflect the actual values used for generation, including model defaults applied for any parameters not explicitly set.

object
width
Width

Resolved output width in pixels.

integer
nullable
height
Height

Resolved output height in pixels.

integer
nullable
batch_size
Batch Size

Number of outputs to generate.

integer
nullable
num_inference_steps
Num Inference Steps

Resolved number of diffusion steps.

integer
nullable
guidance_scale
Guidance Scale

Resolved guidance scale.

number
nullable
duration_seconds
Duration Seconds

Resolved output length in seconds — video duration or audio clip length.

number
nullable
fps
FPS

Resolved FPS.

integer
nullable
Example
{
"status": "in_progress"
}

Unauthenticated — missing or invalid Bearer token.

Media typeapplication/problem+json
object
type
required
string
title
required
string
status
required
integer
detail
required
string
error_code
required

Machine-readable error code: the last path segment of type.

string
Example
{
"type": "https://api.layer.ai/errors/ERROR_CODE",
"title": "Error Title",
"status": 400,
"detail": "Human-readable description.",
"error_code": "ERROR_CODE"
}

Forbidden — insufficient permissions, or the access token lacks the scope the operation requires.

Media typeapplication/problem+json
object
type
required
string
title
required
string
status
required
integer
detail
required
string
error_code
required

Machine-readable error code: the last path segment of type.

string
Example
{
"type": "https://api.layer.ai/errors/ERROR_CODE",
"title": "Error Title",
"status": 400,
"detail": "Human-readable description.",
"error_code": "ERROR_CODE"
}

Resource not found.

Media typeapplication/problem+json
object
type
required
string
title
required
string
status
required
integer
detail
required
string
error_code
required

Machine-readable error code: the last path segment of type.

string
Example
{
"type": "https://api.layer.ai/errors/ERROR_CODE",
"title": "Error Title",
"status": 400,
"detail": "Human-readable description.",
"error_code": "ERROR_CODE"
}

The outcome of the request with this Idempotency-Key is not known yet: it is still running, or it failed without a stored response. Retry after the number of seconds in Retry-After.

Media typeapplication/problem+json
object
type
required
string
title
required
string
status
required
integer
detail
required
string
error_code
required

Machine-readable error code: the last path segment of type.

string
Example
{
"type": "https://api.layer.ai/errors/ERROR_CODE",
"title": "Error Title",
"status": 400,
"detail": "Human-readable description.",
"error_code": "ERROR_CODE"
}

Invalid input parameters, or an Idempotency-Key reused for a different request.

Media typeapplication/problem+json
object
type
required
string
title
required
string
status
required
integer
detail
required
string
error_code
required

Machine-readable error code: the last path segment of type.

string
Example
{
"type": "https://api.layer.ai/errors/ERROR_CODE",
"title": "Error Title",
"status": 400,
"detail": "Human-readable description.",
"error_code": "ERROR_CODE"
}

Rate limited — retry after the number of seconds in Retry-After.

Media typeapplication/problem+json
object
type
required
string
title
required
string
status
required
integer
detail
required
string
error_code
required

Machine-readable error code: the last path segment of type.

string
Example
{
"type": "https://api.layer.ai/errors/ERROR_CODE",
"title": "Error Title",
"status": 400,
"detail": "Human-readable description.",
"error_code": "ERROR_CODE"
}

Internal server error.

Media typeapplication/problem+json
object
type
required
string
title
required
string
status
required
integer
detail
required
string
error_code
required

Machine-readable error code: the last path segment of type.

string
Example
{
"type": "https://api.layer.ai/errors/ERROR_CODE",
"title": "Error Title",
"status": 400,
"detail": "Human-readable description.",
"error_code": "ERROR_CODE"
}