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

# Seedance 2.5 Reference-to-Video

> - Ingrese imagenes de referencia (0-30) + videos de referencia (0-10) + audios de referencia (0-10) + indicaciones de texto para generar video; debe proporcionar al menos una imagen, un video o un audio de referencia
- Indicado para generar contenido nuevo: las imagenes, los videos y el audio actuan como referencia de estilo, sujeto, movimiento de camara y musica
- **Para reescribir o continuar un video existente, use [Video Edit](/es/api-manual/video-series/seedance/seedance-2.5/seedance-2.5-video-edit) / [Video Extend](/es/api-manual/video-series/seedance/seedance-2.5/seedance-2.5-video-extend)**: en cuanto el prompt de este modelo expresa una intencion de edicion o extension, la solicitud se valida como tarea de edicion / extension, se acepta sin error y la tarea solo falla mientras se genera
- **Ahora compatible con materiales realistas de personas generados por IA (AIGC)**
- Admite el **modo borrador**: envíe `draft: true` para generar primero un borrador en 480p y, si le convence, use [Draft-to-Video](/es/api-manual/video-series/seedance/seedance-2.5/seedance-2.5-draft-to-video) para obtener un video final en 1080p. Las dos generaciones se facturan por separado
- Modo de procesamiento asincrono, utilice el ID de tarea devuelto [para consultar](/es/api-manual/task-management/get-task-detail)
- El enlace del video generado es valido por 24 horas, guardelo lo antes posible



## OpenAPI

````yaml es/api-manual/video-series/seedance/seedance-2.5/seedance-2.5-reference-to-video.json POST /v1/videos/generations
openapi: 3.1.0
info:
  title: API de Seedance 2.5 Reference-to-Video
  description: >-
    API de Seedance 2.5 referencia multimodal a video, admite generacion mixta
    con materiales de referencia de imagenes, videos y audio
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://api.evolink.ai
    description: Produccion
security:
  - bearerAuth: []
tags:
  - name: Generacion de video
    description: APIs relacionadas con la generacion de video con IA
paths:
  /v1/videos/generations:
    post:
      tags:
        - Generacion de video
      summary: Seedance 2.5 Reference-to-Video
      description: >-
        - Ingrese imagenes de referencia (0-30) + videos de referencia (0-10) +
        audios de referencia (0-10) + indicaciones de texto para generar video;
        debe proporcionar al menos una imagen, un video o un audio de referencia

        - Indicado para generar contenido nuevo: las imagenes, los videos y el
        audio actuan como referencia de estilo, sujeto, movimiento de camara y
        musica

        - **Para reescribir o continuar un video existente, use [Video
        Edit](/es/api-manual/video-series/seedance/seedance-2.5/seedance-2.5-video-edit)
        / [Video
        Extend](/es/api-manual/video-series/seedance/seedance-2.5/seedance-2.5-video-extend)**:
        en cuanto el prompt de este modelo expresa una intencion de edicion o
        extension, la solicitud se valida como tarea de edicion / extension, se
        acepta sin error y la tarea solo falla mientras se genera

        - **Ahora compatible con materiales realistas de personas generados por
        IA (AIGC)**

        - Admite el **modo borrador**: envíe `draft: true` para generar primero
        un borrador en 480p y, si le convence, use
        [Draft-to-Video](/es/api-manual/video-series/seedance/seedance-2.5/seedance-2.5-draft-to-video)
        para obtener un video final en 1080p. Las dos generaciones se facturan
        por separado

        - Modo de procesamiento asincrono, utilice el ID de tarea devuelto [para
        consultar](/es/api-manual/task-management/get-task-detail)

        - El enlace del video generado es valido por 24 horas, guardelo lo antes
        posible
      operationId: createSeedance25ReferenceToVideo
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VideoGenerationRequest'
            examples:
              multimodal:
                summary: Referencia multimodal (imagen + video + audio)
                value:
                  model: seedance-2.5-reference-to-video
                  prompt: >-
                    Use the first-person perspective framing of @video1
                    throughout, and use @audio1 as background music throughout.
                    First-person perspective fruit tea promotional video...
                  image_urls:
                    - https://example.com/ref1.jpg
                    - https://example.com/ref2.jpg
                  video_urls:
                    - https://example.com/reference.mp4
                  audio_urls:
                    - https://example.com/bgm.mp3
                  duration: 10
                  quality: 720p
                  aspect_ratio: '16:9'
                  generate_audio: true
                  content_filter: true
              subject_reference:
                summary: Referencia imagen + video (sujeto + movimiento de camara)
                value:
                  model: seedance-2.5-reference-to-video
                  prompt: >-
                    Make the face cream in @image1 the hero product, and follow
                    the camera rhythm and lighting mood of @video1 to generate a
                    clean product commercial
                  image_urls:
                    - https://example.com/cream.jpg
                  video_urls:
                    - https://example.com/reference.mp4
                  duration: 5
                  quality: 720p
                  aspect_ratio: '16:9'
              multi_video:
                summary: Referencia de varios videos (narrativa de varios planos)
                value:
                  model: seedance-2.5-reference-to-video
                  prompt: >-
                    The arched window in @video1 opens into the art gallery
                    interior, continuing with @video2; then the camera enters
                    the painting, continuing with @video3
                  video_urls:
                    - https://example.com/part1.mp4
                    - https://example.com/part2.mp4
                    - https://example.com/part3.mp4
                  duration: 8
                  quality: 720p
                  aspect_ratio: '16:9'
                  generate_audio: true
                  content_filter: true
              draft:
                summary: Modo borrador (480p)
                value:
                  model: seedance-2.5-reference-to-video
                  prompt: >-
                    Use the first-person perspective framing of @video1
                    throughout, and use @audio1 as background music throughout.
                    First-person perspective fruit tea promotional video...
                  image_urls:
                    - https://example.com/ref1.jpg
                    - https://example.com/ref2.jpg
                  video_urls:
                    - https://example.com/reference.mp4
                  audio_urls:
                    - https://example.com/bgm.mp3
                  duration: 10
                  quality: 480p
                  aspect_ratio: '16:9'
                  generate_audio: true
                  content_filter: true
                  draft: true
      responses:
        '200':
          description: Tarea de generacion de video creada exitosamente
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VideoGenerationResponse'
        '400':
          description: Error en los parametros de la solicitud
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: invalid_parameter
                  message: Invalid request parameters
                  type: invalid_request_error
        '401':
          description: No autenticado, Token invalido o expirado
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: unauthorized
                  message: Invalid or expired token
                  type: authentication_error
        '402':
          description: Cuota insuficiente, se requiere recarga
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: insufficient_quota
                  message: Insufficient quota. Please top up your account.
                  type: insufficient_quota
        '403':
          description: Acceso no autorizado
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: model_access_denied
                  message: >-
                    Token does not have access to model:
                    seedance-2.5-reference-to-video
                  type: invalid_request_error
        '429':
          description: Limite de frecuencia de solicitudes excedido
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: rate_limit_exceeded
                  message: Too many requests, please try again later
                  type: rate_limit_error
        '500':
          description: Error interno del servidor
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                error:
                  code: internal_error
                  message: Internal server error
                  type: api_error
        '503':
          description: >-
            Servicio temporalmente no disponible; puede devolver
            draft_unavailable cuando el modo borrador no está disponible
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                draft_unavailable:
                  summary: Modo borrador temporalmente no disponible
                  value:
                    error:
                      code: draft_unavailable
                      message: >-
                        Draft mode is not available on the selected service
                        right now. Retry later or send the request without
                        draft.
                      type: invalid_request_error
components:
  schemas:
    VideoGenerationRequest:
      type: object
      required:
        - model
        - prompt
      properties:
        model:
          type: string
          description: Nombre del modelo de generacion de video
          enum:
            - seedance-2.5-reference-to-video
          default: seedance-2.5-reference-to-video
          example: seedance-2.5-reference-to-video
        prompt:
          type: string
          description: >-
            Indicacion de texto que describe el video deseado. Admite chino e
            ingles, se recomienda no exceder 500 caracteres en chino. Longitud
            maxima del prompt: 10000 tokens


            **Descripcion:**

            - Al hacer referencia a materiales de entrada en el prompt, use
            preferentemente etiquetas explicitas como `@image1`, `@video1` y
            `@audio1`, en lugar de depender solo de expresiones en lenguaje
            natural como "imagen 1", "video 1" o "audio 1"

            - La numeracion de las etiquetas sigue el orden del array de URL
            correspondiente y empieza en 1: el primer elemento de `image_urls`
            es `@image1`, el primero de `video_urls` es `@video1` y el primero
            de `audio_urls` es `@audio1`

            - La numeracion en lenguaje natural puede seguir siendo reconocida,
            pero las etiquetas explicitas establecen una correspondencia mas
            clara entre cada material y su uso


            **Evite que la tarea se clasifique como edicion / extension:**

            - El tipo de tarea se deduce de la intencion del prompt: expresiones
            como "editar el video", "anadir", "eliminar / quitar", "cambiar /
            reemplazar" se interpretan como edicion de video; expresiones como
            "extender hacia adelante / hacia atras" o "continuar" se interpretan
            como extension de video

            - Una vez clasificada asi, `aspect_ratio` debe ser `adaptive` y, en
            la edicion de video, `duration` debe ser `-1`; de lo contrario la
            solicitud se acepta sin error y la tarea termina despues en `failed`
            (codigo de error `InvalidParameter.TaskTypeConstraint`). La cuota
            retenida se devuelve, pero el tiempo de espera se pierde

            - Si realmente necesita editar o extender, use directamente
            `seedance-2.5-video-edit` o `seedance-2.5-video-extend`: los
            parametros se validan al enviar la solicitud, por lo que un valor
            invalido devuelve un error sincrono inmediato

            - Para una generacion por referencia pura, reformule palabras como
            "reemplazar" o "quitar" de forma descriptiva, por ejemplo "en la
            escena aparece ..." o "presentado con el estilo de @image1"
          example: >-
            Use the first-person perspective framing of @video1 throughout, and
            use @audio1 as background music throughout. First-person perspective
            fruit tea promotional video...
        image_urls:
          type: array
          description: >-
            Array de URLs de imagenes de referencia, **opcional; si se
            proporciona, debe contener de 1 a 30 imagenes**


            **Relacion obligatoria:** Debe proporcionar al menos uno de
            `image_urls`, `video_urls` o `audio_urls`.


            **Descripcion del rol:**


            | Tipo de medio | Rol | Uso tipico |

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

            | Imagen | `reference_image` | Referencia de estilo, imagen de
            producto, primer/ultimo fotograma (especificado mediante prompt) |


            **Requisitos de imagen:**

            - Formatos admitidos: `.jpeg`, `.png`, `.webp`

            - Relacion de aspecto (ancho/alto): `0.4` ~ `2.5`

            - Pixeles de ancho/alto: `300` ~ `6000` px

            - Tamano por imagen: no mas de `30MB`

            - El tamano total del cuerpo de la solicitud no debe exceder `64MB`,
            no use codificacion Base64

            - Las URLs de imagenes deben ser accesibles directamente por el
            servidor
          items:
            type: string
            format: uri
          minItems: 1
          maxItems: 30
          example:
            - https://example.com/ref1.jpg
            - https://example.com/ref2.jpg
        video_urls:
          type: array
          description: >-
            Array de URLs de videos de referencia, **opcional; si se
            proporciona, debe contener de 1 a 10 videos**


            **Relacion obligatoria:** Debe proporcionar al menos uno de
            `image_urls`, `video_urls` o `audio_urls`.


            **Descripcion del rol:**


            | Tipo de medio | Rol | Uso tipico |

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

            | Video | `reference_video` | Referencia de movimiento de camara,
            referencia de accion, video original para editar/extender |


            **Requisitos de video:**

            - Formatos admitidos: `.mp4`, `.mov`

            - Resolucion: 480p, 720p, 1080p, 4K

            - Duracion por video: `2` ~ `30` segundos, maximo 10, duracion total
            de todos los videos <= `30` segundos

            - Relacion de aspecto (ancho/alto): `0.4` ~ `2.5`

            - Pixeles de ancho/alto: `300` ~ `6000` px

            - Pixeles de imagen (ancho x alto): `409,600` ~ `8,295,044` (ej.
            640x640 ~ 3326x2494)

            - Tamano por archivo: no mas de `200MB`

            - Velocidad de fotogramas: `24` ~ `60` FPS

            - El tamano total del cuerpo de la solicitud no debe exceder `64MB`,
            no use codificacion Base64

            - La validez del codec, la resolucion y otros detalles del material
            se comprueba adicionalmente por el modelo

            - El uso de referencia de video aumentara los costos (la duracion
            del video de entrada se incluye en la facturacion)

            - Las URLs de video deben ser accesibles directamente por el
            servidor
          items:
            type: string
            format: uri
          minItems: 1
          maxItems: 10
          example:
            - https://example.com/reference.mp4
        audio_urls:
          type: array
          description: >-
            Array de URLs de audio de referencia, **opcional; si se proporciona,
            debe contener de 1 a 10 segmentos**


            **Relacion obligatoria:** Debe proporcionar al menos uno de
            `image_urls`, `video_urls` o `audio_urls`.


            **Descripcion del rol:**


            | Tipo de medio | Rol | Uso tipico |

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

            | Audio | `reference_audio` | Musica de fondo, efectos de sonido,
            referencia de voz/dialogos |


            **Requisitos de audio:**

            - Formatos admitidos: `.wav`, `.mp3`

            - Duracion por segmento de audio: `2` ~ `30` segundos, maximo 10
            segmentos, duracion total de todo el audio <= `30` segundos

            - Tamano por archivo: no mas de `15MB`

            - El tamano total del cuerpo de la solicitud no debe exceder `64MB`,
            no use codificacion Base64

            - Las URLs de audio deben ser accesibles directamente por el
            servidor
          items:
            type: string
            format: uri
          minItems: 1
          maxItems: 10
          example:
            - https://example.com/bgm.mp3
        duration:
          type: integer
          description: >-
            Duracion del video de salida (segundos), valor predeterminado `5`
            segundos


            **Descripcion:**

            - Admite cualquier valor entero entre `4` y `30` segundos

            - `-1`: duracion automatica, el modelo elige una duracion entre `4`
            y `30` segundos y la facturacion sigue la duracion real de salida

            - La duracion esta directamente relacionada con la facturacion


            Si el prompt se clasifica como tarea de edicion de video, solo `-1`
            es valido; indicar segundos concretos hace que la tarea falle mas
            tarde, sin error al enviarla
          default: 5
          example: 10
        quality:
          type: string
          description: >-
            Resolucion del video, valor predeterminado `720p`


            **Valores opcionales:**

            - `480p`: menor claridad, precio mas bajo

            - `720p`: claridad estandar, este es el valor predeterminado

            - `1080p`: claridad Ultra HD


            **Modo borrador:** cuando `draft` es `true`, solo se permite `480p`.
            Si se omite `quality`, se utiliza `480p` automáticamente
          enum:
            - 480p
            - 720p
            - 1080p
          default: 720p
          example: 720p
        draft:
          type: boolean
          default: false
          description: >-
            Activa el modo borrador; el valor predeterminado es `false`


            **Detalles:**

            - `true`: genera primero un borrador en 480p, más rápidamente, con
            la tarifa normal de 480p

            - Cuando está activado, `quality` debe ser `480p` o debe omitirse.
            Cualquier otra resolución devuelve un error de parámetro 400

            - Solo se admite en el nivel superior del cuerpo de la solicitud.
            Incluirlo en `model_params` devuelve un error de parámetro 400


            **Conversión en video final:**

            - Una vez completado el borrador, la [consulta de la
            tarea](/es/api-manual/task-management/get-task-detail) devuelve
            `draft_expires_at`

            - Antes de esa fecha, envíe el ID de tarea del borrador a [Seedance
            2.5
            Draft-to-Video](/es/api-manual/video-series/seedance/seedance-2.5/seedance-2.5-draft-to-video)
            para generar un video final en 1080p con el mismo contenido

            - El video final y el borrador se facturan por separado. Si el
            borrador no le convence, puede omitir la conversión y pagar solo el
            borrador

            - El período de validez predeterminado es de 24 horas desde que se
            completa el borrador; `draft_expires_at` indica la fecha límite
            real. Envíe la solicitud de conversión con antelación: si el
            borrador caduca mientras la tarea espera en la cola, la conversión
            también fallará


            **Indisponibilidad temporal:** el servicio puede devolver 503 cuando
            no está disponible temporalmente. Si el código de error es
            `draft_unavailable`, reintente más tarde o retire `draft` para
            generar en el modo normal
          example: false
        aspect_ratio:
          type: string
          description: >-
            Relacion de aspecto del video, valor predeterminado `adaptive`


            **Valores opcionales:**

            - `16:9` (horizontal), `9:16` (vertical), `1:1` (cuadrado), `4:3`,
            `3:4`, `21:9` (ultra ancho)

            - `adaptive`: determina segun la intencion de la indicacion,
            prioridad: video > imagen > indicacion


            **Valores de pixeles por resolucion:**


            | Relacion de aspecto | 480p | 720p | 1080p |

            |:------:|:----:|:----:|:----:|

            | 16:9 | 854×480 | 1280×720 | 1920×1080 |

            | 4:3 | 752×560 | 1112×834 | 1664×1248 |

            | 1:1 | 640×640 | 960×960 | 1440×1440 |

            | 3:4 | 560×752 | 834×1112 | 1248×1664 |

            | 9:16 | 480×854 | 720×1280 | 1080×1920 |

            | 21:9 | 992×432 | 1470×630 | 2206×946 |


            Si el prompt se clasifica como tarea de edicion / extension de
            video, solo `adaptive` es valido; una relacion fija hace que la
            tarea falle mas tarde, sin error al enviarla
          enum:
            - '16:9'
            - '9:16'
            - '1:1'
            - '4:3'
            - '3:4'
            - '21:9'
            - adaptive
          default: adaptive
          example: '16:9'
        generate_audio:
          type: boolean
          description: |-
            Si se genera audio sincronizado, valor predeterminado `true`

            **Valores opcionales:**
            - `true`: el video incluye audio sincronizado, sin cargo adicional
            - `false`: salida de video sin audio
          default: true
          example: true
        content_filter:
          type: boolean
          description: >-
            Filtro de contenido, valor predeterminado `true`


            **Valores opcionales:**

            - `true`: verificacion estandar de seguridad de contenido, este es
            el valor predeterminado

            - `false`: relaja las restricciones de contenido, facturado con +10%
            (`1.1x`). El contenido ilegal y prohibido siempre se aplica
            independientemente de esta configuracion


            **Incompatible con la busqueda web:**

            - `content_filter: false` y `model_params.web_search: true` no se
            pueden usar juntos; enviarlos a la vez devuelve un error de
            parametro 400

            - Mantenga `content_filter: true` (valor predeterminado) cuando
            necesite la busqueda web
          default: true
          example: true
        output_format:
          type: string
          description: >-
            Formato de contenedor de salida, valor predeterminado `mp4`


            **Valores opcionales:**

            - `mp4`: codificacion H.264, la mejor compatibilidad y precision de
            color estandar; es el valor predeterminado

            - `mov`: H.264 + submuestreo de croma yuv444p + audio PCM, con mayor
            fidelidad de color, recomendado para etalonaje, recorte de croma y
            composicion. Es posible que el navegador no lo reproduzca en linea;
            descarguelo y reproduzcalo con VLC / mpv / ffplay. Sin cargo
            adicional
          enum:
            - mp4
            - mov
          default: mp4
          example: mp4
        callback_url:
          type: string
          description: >-
            Direccion de callback HTTPS despues de completar la tarea


            **Momento del callback:**

            - Se activa cuando la tarea se completa (completed) o falla (failed)

            - Se envia despues de confirmar la facturacion


            **Restricciones de seguridad:**

            - Solo admite protocolo HTTPS

            - Prohibido el callback a direcciones IP de red interna (127.0.0.1,
            10.x.x.x, 172.16-31.x.x, 192.168.x.x, etc.)

            - La longitud de la URL no debe exceder `2048` caracteres


            **Mecanismo de callback:**

            - Tiempo de espera: `10` segundos

            - Maximo `3` reintentos despues del fallo (reintentos a los
            `1`/`2`/`4` segundos despues del fallo)

            - El formato del cuerpo de respuesta del callback es consistente con
            el formato de retorno de la interfaz de consulta de tareas

            - Un codigo de estado 2xx se considera exitoso, otros codigos de
            estado activan reintentos
          format: uri
          example: https://your-domain.com/webhooks/video-task-completed
    VideoGenerationResponse:
      type: object
      properties:
        created:
          type: integer
          description: Marca de tiempo de creacion de la tarea
          example: 1761313744
        id:
          type: string
          description: ID de la tarea
          example: task-unified-1774857405-abc123
        model:
          type: string
          description: Nombre del modelo utilizado
          example: seedance-2.5-reference-to-video
        object:
          type: string
          enum:
            - video.generation.task
          description: Tipo especifico de la tarea
        progress:
          type: integer
          description: Porcentaje de progreso de la tarea (0-100)
          minimum: 0
          maximum: 100
          example: 0
        status:
          type: string
          description: Estado de la tarea
          enum:
            - pending
            - processing
            - completed
            - failed
          example: pending
        task_info:
          $ref: '#/components/schemas/VideoTaskInfo'
          description: Informacion detallada de la tarea de video
        type:
          type: string
          enum:
            - text
            - image
            - audio
            - video
          description: Tipo de salida de la tarea
          example: video
        usage:
          $ref: '#/components/schemas/VideoUsage'
          description: Informacion de uso y facturacion
    ErrorResponse:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              description: Identificador del codigo de error
            message:
              type: string
              description: Mensaje de descripcion del error
            type:
              type: string
              description: Tipo de error
    VideoTaskInfo:
      type: object
      properties:
        can_cancel:
          type: boolean
          description: >-
            Indica si se puede cancelar la tarea. Seedance 2.5 no permite que el
            usuario cancele tareas; este campo siempre devuelve `false`.
          example: false
        estimated_time:
          type: integer
          description: Tiempo estimado de finalizacion (segundos)
          minimum: 0
          example: 165
        video_duration:
          type: integer
          description: Duracion del video (segundos)
          example: 8
    VideoUsage:
      type: object
      description: Informacion de uso y facturacion
      properties:
        billing_rule:
          type: string
          description: Regla de facturacion
          enum:
            - per_call
            - per_token
            - per_second
          example: per_second
        credits_reserved:
          type: number
          description: Creditos estimados a consumir
          minimum: 0
          example: 50
        user_group:
          type: string
          description: Categoria del grupo de usuarios
          example: default
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        ##Todas las interfaces requieren autenticacion mediante Bearer Token##


        **Obtener API Key:**


        Visite la [Pagina de gestion de API
        Key](https://evolink.ai/dashboard/keys) para obtener su API Key


        **Agregue en el encabezado de la solicitud al usar:**

        ```

        Authorization: Bearer YOUR_API_KEY

        ```

````

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