> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sigrunai.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Create Muse Video

> 统一视频创建入口。当前可用 model：omni-10s、veo3.1-fast、veo3.1-lite、veo3.1-lite-hd、grok-imagine-video-1.5（及 fast/lite）、minimax-h3、minimax-h3-max、kling-4.0（720p/1080p）、sd2.5-480p / sd2.5-720p / sd2.5-1080p（按秒）、seedance2.0-md、sd2-480p-ac、sd2-720p-ac、sd2-720p-dl、sd2-720p-db、sd2.0-mini-720p、seedance2.5-30s、sd2.5-720p-ac、sd2.5-720p-933-ac、wan3-720p / wan3-1080p（按秒）、wan3.0-prime-720p / wan3.0-prime-1080p（按秒）、wan3-480p-20s-ac、muse-video / muse-video-20s / muse-video-30s / muse-video-40s / muse-video-50s / muse-video-60s（1–60 秒，按时长分档，原生 720p，按次）。Veo 也可用专用入口 POST /v1/veo/frames。

Create async **Muse Video** jobs via the shared `POST /v1/videos` endpoint. On success you get a `task_id`; poll with [Query video task](https://docs.sigrunai.com/en/api-reference/common/query.md) and read `result.video_url` when completed.

Output is native **720p**. Billing is `per_task` (flat per job). Duration does not multiply the price, but it selects the billing model. See the [model catalog](https://docs.sigrunai.com/en/api-reference/common/model-catalog.md) and the create response `cost` for live prices.

## Model by duration

Send `duration` or `seconds` from 1 to 60. The second count selects the billing model, which is returned as `model` on the create response. A different model name in the request does not override that.

| Duration | Billing `model` | When duration is omitted |
| - | - | - |
| **1–10** s | `muse-video` | **5** s if the requested model is `muse-video` |
| **11–20** s | `muse-video-20s` | **20** s |
| **21–30** s | `muse-video-30s` | **30** s |
| **31–40** s | `muse-video-40s` | **40** s |
| **41–50** s | `muse-video-50s` | **50** s |
| **51–60** s | `muse-video-60s` | **60** s |

Durations above 60 seconds are rejected. Requesting `muse-video` with `duration` 25 bills `muse-video-30s`. Requesting `muse-video-60s` with `duration` 8 bills `muse-video`.

## Modes

| Mode | How to send |
| - | - |
| Text-to-video | Omit images |
| First / first-last frames | Send `first_image` and optional `last_image`. Or set `first_last_frame: true` and put first/last URLs in `images` |
| Reference images | Send `images` / `reference_images` / `image_urls` / `reference_image_urls` |

Frames and reference images can be used together. A last frame requires a first frame. Combined count: up to **10** when the job bills as `muse-video`, and up to **9** on the 20–60 second tiers. Reference videos and reference audios are not supported.

## Request fields

| Field | Type | Required | Description |
| - | - | - | - |
| `model` | string | yes | Any tier in the table. Underscore forms such as `muse_video_20s` are accepted |
| `prompt` | string | yes | Subject, action, and mood for the whole clip, 1–4000 characters |
| `duration` / `seconds` | int \| string | no | **1–60**. Defaults are in the table. String form is allowed (for example `"25"`) |
| `aspect_ratio` / `ratio` | string | no | `16:9`, `9:16`, `1:1`, `4:3`, `3:4`; default `16:9` |
| `orientation` | string | no | `portrait` / `vertical` → `9:16`; `landscape` / `horizontal` → `16:9` |
| `size` | string | no | A ratio, or `1280x720` / `1920x1080` / `720x1280` / `1080x1920` |
| `resolution` | string | no | `720p` only; omit it to use the default |
| `first_image` / `first_image_url` | string | no | First-frame URL |
| `last_image` / `last_image_url` | string | no | Last-frame URL; requires a first frame |
| `images` / `reference_images` / `image_urls` / `reference_image_urls` | string\[] | no | Reference image URLs. If more than one field is set, the first non-empty list is used, in this order: `reference_images`, `image_urls`, `images`, `reference_image_urls` |
| `camera_movement` | string | no | Free-text camera move, up to 1000 characters. For example `zoom_in`, `pan_left`, `static` |
| `style` | string | no | Free-text style, up to 1000 characters. For example `cinematic`, `anime` |
| `negative_prompt` | string | no | Elements to avoid, separate from `prompt`, up to 1000 characters |
| `first_last_frame` | boolean | no | When `true`, the first two `images` are the first and last frames |
| `smart_queue` | bool | no | Default `false`. When `true`, a very low recent success rate keeps the task `queued` until recovery (up to about 2 hours). See [Smart queue](https://docs.sigrunai.com/en/api-reference/common/smart-queue.md) |

Media URLs must be public `https://` links, or data URLs.

## Examples

### Text-to-video (8 seconds, billed as `muse-video`)

```bash theme={null}
curl -X POST 'https://sigrunai.com/v1/videos' \
  -H 'Authorization: Bearer sk_xxx' \
  -H 'Content-Type: application/json' \
  -d '{
    "model": "muse-video",
    "prompt": "A hot-air balloon rising out of morning fog in a valley",
    "duration": 8,
    "aspect_ratio": "16:9",
    "camera_movement": "zoom_in"
  }'
```

### 25 seconds (billed as `muse-video-30s`)

```bash theme={null}
curl -X POST 'https://sigrunai.com/v1/videos' \
  -H 'Authorization: Bearer sk_xxx' \
  -H 'Content-Type: application/json' \
  -d '{
    "model": "muse-video",
    "prompt": "A person walking the whole coastline at dusk, coat moving in the wind",
    "duration": 25,
    "aspect_ratio": "9:16",
    "style": "cinematic"
  }'
```

### Frames and a reference image

```bash theme={null}
curl -X POST 'https://sigrunai.com/v1/videos' \
  -H 'Authorization: Bearer sk_xxx' \
  -H 'Content-Type: application/json' \
  -d '{
    "model": "muse-video-20s",
    "prompt": "The person in frame turns and smiles",
    "first_image": "https://example.com/first.png",
    "last_image": "https://example.com/last.png",
    "images": ["https://example.com/ref.png"],
    "negative_prompt": "blurry, watermark, text"
  }'
```

Omitting `duration` on `muse-video-20s` bills a 20-second job.

Example success body:

```json theme={null}
{
  "code": 20000,
  "msg": "提交成功",
  "data": {
    "task_id": "vid_xxxxxxxx",
    "status": "queued",
    "progress": 0,
    "model": "muse-video",
    "cost": 0,
    "result": {}
  }
}
```

`data.model` is the billing tier selected from the duration.

## Polling

```bash theme={null}
curl -X GET 'https://sigrunai.com/v1/videos/vid_xxxxxxxx' \
  -H 'Authorization: Bearer sk_xxx'
```

Status values are documented in [Query video task](https://docs.sigrunai.com/en/api-reference/common/query.md). When completed, read `data.result.video_url` and store the file promptly.


## OpenAPI

````yaml POST /v1/videos
openapi: 3.1.0
info:
  title: AI Platform OpenAPI
  description: 异步图片与视频生成。创建后轮询 task_id；结果 URL 约保留 3 天。
  version: 1.0.0
servers:
  - url: https://sigrunai.com
    description: AI Platform 生产环境
security:
  - bearerAuth: []
paths:
  /v1/videos:
    post:
      tags:
        - Videos
      summary: Create video task
      description: >-
        Unified video create entry. Available models: omni-10s, veo3.1-fast,
        veo3.1-lite, veo3.1-lite-hd, grok-imagine-video-1.5 (and fast/lite),
        minimax-h3, minimax-h3-max, kling-4.0 (720p/1080p), sd2.5-480p /
        sd2.5-720p / sd2.5-1080p (per second), seedance2.0-md, sd2-480p-ac,
        sd2-720p-ac, sd2-720p-dl, sd2-720p-db, sd2.0-mini-720p, seedance2.5-30s,
        sd2.5-720p-ac, sd2.5-720p-933-ac, wan3-720p / wan3-1080p (per second),
        wan3.0-prime-720p / wan3.0-prime-1080p (per second), wan3-480p-20s-ac,
        muse-video / muse-video-20s / muse-video-30s / muse-video-40s /
        muse-video-50s / muse-video-60s (1–60s; tier follows duration; native
        720p; per task). Veo also has POST /v1/veo/frames.
      operationId: createVideo
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VideoCreateRequest'
            examples:
              omni10s:
                summary: omni-10s
                value:
                  model: omni-10s
                  prompt: >-
                    A golden retriever running across a sunny meadow, cinematic
                    tracking shot
                  aspect_ratio: '16:9'
              veo31Fast:
                summary: veo3.1-fast
                value:
                  model: veo3.1-fast
                  prompt: >-
                    A golden retriever running across a sunny meadow, cinematic
                    tracking shot
                  resolution: 720p
                  orientation: landscape
              seedanceMd:
                summary: seedance2.0-md
                value:
                  model: seedance2.0-md
                  prompt: 城市夜景延时，车流光轨
                  duration: 10
                  aspect_ratio: '16:9'
              seedance30s:
                summary: seedance2.5-30s
                value:
                  model: seedance2.5-30s
                  prompt: 一只猫在草地上奔跑，跟拍镜头
                  aspect_ratio: '9:16'
              seedance20Ac:
                summary: sd2-720p-ac
                value:
                  model: sd2-720p-ac
                  prompt: A cat running on grass, tracking shot
                  duration: 8
                  aspect_ratio: '9:16'
              seedance20Dl:
                summary: sd2-720p-dl
                value:
                  model: sd2-720p-dl
                  prompt: A cat running on grass, tracking shot
                  duration: 15
                  aspect_ratio: '16:9'
              seedance20Db:
                summary: sd2-720p-db
                value:
                  model: sd2-720p-db
                  prompt: A cat running on grass, tracking shot
                  duration: 10
                  aspect_ratio: '16:9'
              seedance20Mini720p:
                summary: sd2.0-mini-720p
                value:
                  model: sd2.0-mini-720p
                  prompt: A cat running on grass, tracking shot
                  duration: 8
                  aspect_ratio: '16:9'
              sd25:
                summary: sd2.5-720p
                value:
                  model: sd2.5-720p
                  prompt: A cat walking through a garden, cinematic
                  duration: 8
                  aspect_ratio: '16:9'
              seedance720pAc:
                summary: sd2.5-720p-ac
                value:
                  model: sd2.5-720p-ac
                  prompt: A cat running on grass, tracking shot
                  duration: 8
                  aspect_ratio: '9:16'
              seedance720p933Ac:
                summary: sd2.5-720p-933-ac
                value:
                  model: sd2.5-720p-933-ac
                  prompt: The subject turns and smiles, cloth moving in the wind
                  duration: 8
                  aspect_ratio: '9:16'
                  images:
                    - https://example.com/character.png
              kling40:
                summary: kling-4.0
                value:
                  model: kling-4.0
                  prompt: >-
                    A golden retriever running across a sunny meadow, cinematic
                    tracking shot
                  duration: 8
                  aspect_ratio: '16:9'
                  resolution: 720p
              wan3:
                summary: wan3-720p
                value:
                  model: wan3-720p
                  prompt: A rainy neon street, camera pushing slowly forward
                  duration: 10
                  aspect_ratio: '16:9'
              wan31080p:
                summary: wan3-1080p
                value:
                  model: wan3-1080p
                  prompt: The person in the reference image walks down a rainy street
                  duration: 15
                  aspect_ratio: '9:16'
                  images:
                    - https://example.com/person.jpg
              wan3Ac:
                summary: wan3-480p-20s-ac
                value:
                  model: wan3-480p-20s-ac
                  prompt: A cat running on grass, tracking shot
                  duration: 8
                  aspect_ratio: '16:9'
              museVideo:
                summary: muse-video
                value:
                  model: muse-video
                  prompt: A hot-air balloon rising out of morning fog in a valley
                  duration: 8
                  aspect_ratio: '16:9'
                  camera_movement: zoom_in
              museVideo30s:
                summary: muse-video-30s
                value:
                  model: muse-video
                  prompt: >-
                    A person walking the whole coastline at dusk, coat moving in
                    the wind
                  duration: 25
                  aspect_ratio: '9:16'
      responses:
        '200':
          description: Submitted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaskQueryResponse'
components:
  schemas:
    VideoCreateRequest:
      type: object
      required:
        - model
        - prompt
      properties:
        model:
          type: string
          description: >-
            omni-10s, veo3.1-fast, veo3.1-lite, veo3.1-lite-hd,
            grok-imagine-video-1.5 (and fast/lite), minimax-h3, minimax-h3-max,
            kling-4.0 / kling-4.0-720p / kling-4.0-1080p,  sd2.5-480p /
            sd2.5-720p / sd2.5-1080p, seedance2.0-md, sd2-480p-ac, sd2-720p-ac,
            sd2-720p-dl, sd2-720p-db, sd2.0-mini-720p, seedance2.5-30s,
            sd2.5-720p-ac, sd2.5-720p-933-ac, wan3-720p / wan3-1080p,
            wan3.0-prime-720p / wan3.0-prime-1080p, wan3-480p-20s-ac, or
            muse-video / muse-video-20s / muse-video-30s / muse-video-40s /
            muse-video-50s / muse-video-60s
          example: omni-10s
        prompt:
          type: string
        duration:
          oneOf:
            - type: integer
            - type: string
          description: >-
            omni-10s: fixed 10; seedance2.0-md: 5/10/15; sd2-*-ac: 4–15;
            sd2-720p-dl: fixed 15; sd2-720p-db: 5/10/15; sd2.0-mini-720p: 4–15;
            sd2.5-480p / sd2.5-720p / sd2.5-1080p: 5–30; seedance2.5-30s: fixed
            30; sd2.5-720p-ac and sd2.5-720p-933-ac: 4–30; wan3-720p /
            wan3-1080p: 10–30; wan3.0-prime-720p: 10–30; wan3.0-prime-1080p:
            8–30; wan3-480p-20s-ac: 5–20; Muse Video: 1–60, billed as muse-video
            (1–10, default 5s when omitted) or muse-video-20s through
            muse-video-60s
        seconds:
          oneOf:
            - type: integer
            - type: string
          description: Alias of duration
        aspect_ratio:
          type: string
        ratio:
          type: string
          description: Alias of aspect_ratio
        orientation:
          type: string
          description: portrait/landscape may imply aspect ratio
        size:
          type: string
        resolution:
          type: string
          description: omni-10s is fixed at 720p. Muse Video supports 720p only
        first_image:
          type: string
          format: uri
          description: First-frame URL. Used by omni-10s and Muse Video
        last_image:
          type: string
          format: uri
          description: >-
            Last-frame URL; use with first_image. Muse Video also requires a
            first frame
        images:
          type: array
          items:
            type: string
            format: uri
        reference_images:
          type: array
          items:
            type: string
            format: uri
        videos:
          type: array
          items:
            type: string
            format: uri
        reference_videos:
          type: array
          items:
            type: string
            format: uri
        reference_video_durations:
          type: array
          items:
            type: integer
            minimum: 1
            maximum: 30
          description: >-
            Required with reference videos for kling-4.0; same length as videos;
            seconds 1–30. Billable seconds = output duration + sum of these
            values.
        reference_audio_durations:
          type: array
          items:
            type: integer
            minimum: 5
            maximum: 30
          description: >-
            Required with reference audios for kling-4.0; same length as audios;
            seconds 5–30 (validation only, not billed).
        audios:
          type: array
          items:
            type: string
            format: uri
        reference_audios:
          type: array
          items:
            type: string
            format: uri
        first_image_url:
          type: string
          format: uri
          description: Alias of first_image. Accepted by Muse Video
        last_image_url:
          type: string
          format: uri
          description: Alias of last_image. Muse Video requires a first frame as well
        image_urls:
          type: array
          items:
            type: string
            format: uri
          description: >-
            Reference image URLs. Muse Video: frames plus references, up to 10
            on the 10s tier and 9 on the 20–60s tiers
        reference_image_urls:
          type: array
          items:
            type: string
            format: uri
          description: Alias of images
        camera_movement:
          type: string
          description: Muse Video camera move, free text, up to 1000 characters
        style:
          type: string
          description: Muse Video style, free text, up to 1000 characters
        negative_prompt:
          type: string
          description: >-
            Muse Video negative prompt, separate from prompt, up to 1000
            characters
        smart_queue:
          type: boolean
          default: false
          description: >-
            When true, a very low recent success rate keeps the task queued
            until recovery (up to about 2 hours)
    TaskQueryResponse:
      type: object
      properties:
        code:
          type: integer
          example: 20000
        msg:
          type: string
        data:
          $ref: '#/components/schemas/TaskQueryData'
    TaskQueryData:
      type: object
      properties:
        task_id:
          type: string
        status:
          type: string
          description: queued / processing / completed / failed 等
        progress:
          type: integer
        model:
          type: string
        created_at:
          type: integer
        completed_at:
          type: integer
        cost:
          type: number
        error_message:
          type: string
        result:
          $ref: '#/components/schemas/TaskResult'
    TaskResult:
      type: object
      properties:
        image_url:
          type: string
        video_url:
          type: string
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key
      description: 控制台创建的 API Key，格式：Bearer sk_xxx

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.