Asset Upload and Management
Seedance 2.0 / 2.5 automatically detects and uploads HTTPS assets, with optional manual upload for asset:// reuse.
Seedance 2.0 / 2.5 supports automatic asset uploads: pass publicly accessible https:// URLs directly in the image, video, or audio input fields of your video generation request. ModelSell automatically detects and uploads these assets, so you do not need to call the asset upload endpoint beforehand.
To reuse assets by ID, you can also follow the manual /api/assets/upload workflow below. Once the asset becomes Active, reference it in video generation requests with asset://<asset_id>. Asset APIs use the same user API key authentication as the rest of the API.
The asset upload API supports both domestic and overseas model versions. Domestic models do not need the model query parameter. For the overseas dreamina-seedance-2-0-fast-260128 model, add ?model=dreamina-seedance-2-0-fast-260128 so the request is routed to the matching overseas asset channel.
Endpoints
| Operation | Endpoint |
|---|---|
| Upload asset | POST /api/assets/upload |
| Get asset | GET /api/assets/{id} |
Upload Rules
Asset upload accepts URLs only. Base64 input is not supported for this endpoint.
| Type | Formats | Limits |
|---|---|---|
Image | jpeg, png, webp, bmp, tiff, gif, heic, heif | Aspect ratio 0.4 to 2.5; width or height 300 to 6000 px; under 30MB |
Video | mp4, mov | 480p or 720p; 2 to 15 seconds; aspect ratio 0.4 to 2.5; width or height 300 to 6000 px; up to 50MB; 24 to 60 FPS |
Audio | wav, mp3 | 2 to 15 seconds; up to 15MB |
Upload an Asset
Domestic Model
curl -X POST "$MODELSELL_BASE_URL/api/assets/upload" \
-H "Authorization: Bearer $MODELSELL_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/image.png",
"asset_type": "Image",
"name": "Example image"
}'Overseas Model
curl -X POST "$MODELSELL_BASE_URL/api/assets/upload?model=dreamina-seedance-2-0-fast-260128" \
-H "Authorization: Bearer $MODELSELL_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/image.png",
"asset_type": "Image",
"name": "Example image"
}'Save data.Id from the response:
{
"code": 0,
"message": "ok",
"data": {
"Id": "asset-20260325152211-vcchd"
}
}Get Asset Details
curl "$MODELSELL_BASE_URL/api/assets/asset-20260325152211-vcchd?model=dreamina-seedance-2-0-fast-260128" \
-H "Authorization: Bearer $MODELSELL_API_KEY"Example response:
{
"code": 0,
"message": "ok",
"data": {
"AssetType": "Image",
"CreateTime": "2026-03-25T15:22:11Z",
"GroupId": "group-20260324135506-xxxxx",
"Id": "asset-20260325152211-vcchd",
"Name": "Example image",
"ProjectName": "default",
"Status": "Active",
"URL": "https://example.com/image.png",
"UpdateTime": "2026-03-25T15:22:11Z"
}
}When the detail response has Status: "Active", the asset can be used in generation requests.
Use Assets in Video Generation
Official Seedance 2.0 content[] format:
{
"model": "doubao-seedance-2-0-260128",
"content": [
{
"type": "text",
"text": "Make the character dance"
},
{
"type": "image_url",
"image_url": {
"url": "asset://asset-20260325152211-vcchd"
},
"role": "reference_image"
}
],
"resolution": "480p",
"ratio": "16:9",
"duration": 5,
"watermark": false
}Generic /v1/video/generations format:
{
"model": "doubao-seedance-2-0-260128",
"prompt": "Make the character dance",
"image": "asset://asset-20260325152211-vcchd",
"duration": 5,
"size": "480p",
"metadata": {
"ratio": "16:9",
"watermark": false
}
}Video and audio assets use the same asset://<asset_id> format in metadata.video_url and metadata.audio_url.
Seedance 2.0 / 2.5 Generic Format
Previous Page
Video Generation
创建视频生成任务。该通用接口覆盖 HappyHorse、Seedance、Veo、万相等 `/v1/video/generations` 提供商。 使用 Seedance 2.0 / 2.5 时,通用字段会转换为官方 `content[]` 格式:`prompt` 转为文本内容,`image` 或 `images` 转为参考图片,`metadata.video_url` 转为参考视频,`metadata.audio_url` 转为参考音频,`size` 转为 `resolution`,`metadata.ratio` 转为 `ratio`。创建成功后保存返回的任务 ID,并通过 `GET /v1/video/generations/{task_id}` 轮询结果。 Seedance 2.0 / 2.5 素材支持自动上传:在图片、视频或音频素材字段中直接传入公网可访问的 `https://` 链接,系统会自动识别并上传素材,无需提前调用 `/api/assets/upload`。 使用 Wan 3.0 时,`image` 或 `images[]` 的前两张图片会转换为 `first_frame` 和 `last_frame`,`reference_images[].url` 转换为 `reference_image`,`video.url` 转换为 `reference_video`。需要参考音频、文件、网页或完整控制原生字段时,通过 `metadata.input.media` 和 `metadata.parameters` 传入;非空的 `metadata.input.media` 会替换所有快捷媒体字段。 Seedance 2.5 任务类型放在顶层 `omni_reference_task_type`,兼容 `metadata.omni_reference_task_type`(顶层优先);`metadata.content` 非空时完整替换快捷媒体映射。编辑使用 `duration: -1` 和 `metadata.ratio: adaptive`;延长也要求 `metadata.ratio: adaptive`。`seconds` 与 `duration` 不要传冲突值。Seedance 的 `watermark`、`return_last_frame`、`seed`、`camera_fixed`、`draft`、`service_tier`、`execution_expires_after`、`priority`、`safety_identifier`、`callback_url`、`output_format`、`tools`、`frames` 放在 `metadata` 下;所有内置 Seedance 路径保留显式 false/0,多视频和多音频数组不会截为第一项。