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

# Seedance 2.5 First & Last Frame to Video

> For the `dreamina-seedance-2-5-260628` model. After submitting, query status via `GET /v1/videos/{task_id}`.



## OpenAPI

````yaml api-reference/en/zmodelVideo/byteplus/dreamina-seedance-2-5-first-last-frame-to-video.json POST /v1/videos
openapi: 3.0.1
info:
  title: Seedance 2.5 First and Last Frame to Video
  version: 1.0.0
  description: >-
    Dreamina Seedance 2.5 first-last-frame-to-video capability. Generates videos
    by providing start and end frame images. Supports generating videos with or
    without audio, with durations up to 30 seconds.
  license:
    name: Project License
    url: https://github.com/QuantumNous/new-api/blob/main/LICENSE
servers:
  - url: https://api.powertokens.ai
    description: Baze API server endpoint
security: []
tags:
  - name: Seedance Video
    description: Seedance series video generation capability
paths:
  /v1/videos:
    post:
      tags:
        - Seedance Video
      summary: Seedance 2.5 First and Last Frame to Video
      description: >-
        For the `dreamina-seedance-2-5-260628` model. After submitting, query
        status via `GET /v1/videos/{task_id}`.
      operationId: seedance25FirstLastFrameToVideo
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FirstLastFrameToVideoRequest'
            examples:
              first_last_frame:
                summary: Basic first and last frame to video
                value:
                  model: dreamina-seedance-2-5-260628
                  media:
                    - type: text
                      text: Smooth transition between the two states
                    - type: first_frame
                      url: https://example.com/start.jpg
                    - type: last_frame
                      url: https://example.com/end.jpg
                  seconds: '5'
                  size: 720p
                  ratio: adaptive
      responses:
        '200':
          description: Submission successful, returns video task object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VideoTaskResponse'
        '400':
          description: Invalid request parameters.
        '401':
          description: Authentication failed.
        '429':
          description: Request rate limit exceeded.
        '500':
          description: Internal server error.
      security:
        - BearerAuth: []
components:
  schemas:
    FirstLastFrameToVideoRequest:
      type: object
      required:
        - model
        - media
      properties:
        model:
          type: string
          enum:
            - dreamina-seedance-2-5-260628
          description: The ID of the model you need to call (Model ID)
        media:
          type: array
          minItems: 3
          description: >-
            Multimodal input array. Must include one each of `text`,
            `first_frame`, and `last_frame` types.
          items:
            $ref: '#/components/schemas/VideoMediaInput'
        seconds:
          type: string
          description: >-
            Video duration, integer only, in seconds.


            * Seedance 2.5 series: [4, 30] s, or set to -1


            **Note**


            Seedance 2.5 series supports two configuration methods:

            * Specify exact duration: Any integer within the valid range.

            * Smart mode: Set to -1 to let the model choose the appropriate
            video length (in whole seconds) within the valid range. The actual
            generated video duration can be obtained from the duration field
            returned by the query video generation task API. Note that video
            duration is related to billing, so set it carefully.
          default: '5'
          example: '5'
          enum:
            - '4'
            - '5'
            - '6'
            - '7'
            - '8'
            - '9'
            - '10'
            - '11'
            - '12'
            - '13'
            - '14'
            - '15'
            - '16'
            - '17'
            - '18'
            - '19'
            - '20'
            - '21'
            - '22'
            - '23'
            - '24'
            - '25'
            - '26'
            - '27'
            - '28'
            - '29'
            - '30'
            - '-1'
        size:
          type: string
          enum:
            - 480p
            - 720p
          description: |-
            > Seedance 2.5 series default: `720p`

            Video resolution. Enum values:

            * 480p
            * 720p
          default: 720p
        ratio:
          type: string
          enum:
            - '16:9'
            - '4:3'
            - '1:1'
            - '3:4'
            - '9:16'
            - '21:9'
            - adaptive
          description: >-
            > Seedance 2.5 series default: `adaptive`


            The aspect ratio of the generated video. See the table below for
            pixel dimensions for different aspect ratios.


            * 16:9

            * 4:3

            * 1:1

            * 3:4

            * 9:16

            * 21:9

            * adaptive: Automatically selects the most suitable aspect ratio
            based on input (see details below)


            **adaptive Rules**


            When ratio is set to adaptive, the model automatically adjusts the
            aspect ratio based on the generation scenario. The actual video
            aspect ratio can be obtained from the ratio field returned by the
            query video generation task API.


            **Supported models:**

            * Seedance 2.5 series supported


            **Rules:**

            * First Frame / First & Last Frame: Automatically selects the
            closest aspect ratio based on the uploaded first frame image ratio.


            Pixel dimensions corresponding to different aspect ratios


            Note: For First & Last Frame to Video, if the selected aspect ratio
            does not match the uploaded image ratio, the platform will crop your
            image from the center.


            | Resolution | Aspect Ratio | Pixel Dimensions Seedance 2.5 Series |

            |---|---|---|

            | 480p | 16:9 | 864×496 |

            | | 4:3 | 752×560 |

            | | 1:1 | 640×640 |

            | | 3:4 | 560×752 |

            | | 9:16 | 496×864 |

            | | 21:9 | 992×432 |

            | 720p | 16:9 | 1280×720 |

            | | 4:3 | 1112×834 |

            | | 1:1 | 960×960 |

            | | 3:4 | 834×1112 |

            | | 9:16 | 720×1280 |

            | | 21:9 | 1470×630 |
          default: adaptive
        output_format:
          type: string
          enum:
            - mp4
            - mov
          description: |-
            Output video format.

            * mp4: MP4 format.
            * mov: MOV format.
          default: mp4
        seed:
          type: integer
          description: >-
            > Temporarily not supported by Seedance 2.5 series


            Seed integer for controlling the randomness of generated content.
            Range: integer in [-1, 2^32-1].


            Notes:

            * With the same request, if the model receives different seed values
            (e.g., not specifying a seed, setting seed to -1 which uses a random
            number, or manually changing the seed value), different results will
            be generated.

            * With the same request, if the model receives the same seed value,
            similar results will be generated, but exact consistency is not
            guaranteed.
          default: -1
          minimum: -1
          maximum: 4294967295
        watermark:
          type: boolean
          description: >-
            Whether the generated video contains a watermark.


            * false: The generated video does not contain a watermark.

            * true: The generated video displays an "AI Generated" watermark in
            the bottom-right corner.
          default: false
        generate_audio:
          type: boolean
          description: >-
            > Only supported by Seedance 2.5 series


            Controls whether the generated video contains synchronized audio.


            * true: The model outputs video with synchronized audio. The model
            automatically generates matching voice, sound effects, and
            background music based on the text prompt and visual content. It is
            recommended to place dialogue in double quotes for better audio
            generation. For example: The man stops the woman and says,
            "Remember, never point your finger at the moon."

            * false: The model outputs video without audio.


            Note: Generated audio videos are all mono, regardless of the input
            audio channel count.
          default: true
        return_last_frame:
          type: boolean
          description: >-
            true: Return the last frame image of the generated video. When set
            to true, you can obtain the last frame image through the query video
            generation task API. The last frame image is in PNG format with the
            same pixel dimensions as the generated video, without watermarks.


            Use this parameter to generate multiple consecutive videos: use the
            last frame of one video as the first frame of the next video task to
            quickly generate a sequence of consecutive videos.


            false: Do not return the last frame image of the generated video.
          default: false
        safety_identifier:
          type: string
          description: >-
            Unique identifier of end users, used to help the platform detect
            users in your application who may violate the ModelArk usage policy.
            This identifier is an English string, which must be fixed and unique
            for a single user, and the length cannot exceed 64 characters. It is
            recommended to pass in a string generated by hashing the username,
            user ID or email address to avoid leaking user privacy information.
    VideoTaskResponse:
      type: object
      properties:
        id:
          type: string
          description: >-
            Video generation task ID. Only stored for 7 days (from the
            `created_at` timestamp), then automatically deleted.


            * When draft: true, this is the Draft video task ID.

            * When draft: false, this is the normal video task ID.


            Video generation is asynchronous. After obtaining the ID, use the
            query video generation task API to check the status. When
            successful, the API returns the generated video URL.
    VideoMediaInput:
      type: object
      required:
        - type
      properties:
        type:
          type: string
          enum:
            - text
            - first_frame
            - last_frame
          description: >-
            Media type. `text` requires the `text` field; other types require
            the `url` field.
        url:
          type: string
          description: Media URL. Not required when `type=text`; required for other types.
        text:
          type: string
          description: >-
            Text content. Required when `type=text`; not required for other
            types.
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: 'Pass `Authorization: Bearer <token>` in the request header.'

````