OmniHuman-1.5 Digital Human Video Generation

  • OmniHuman-1.5 (omnihuman-1.5) model generates digital human videos driven by audio
  • Asynchronous processing mode, use the returned task ID to query
  • Generated video links are valid for 24 hours, please save them promptly

Note: - Audio duration limit: maximum 35 seconds - Supported audio formats: MP3, WAV - Billing is based on audio duration (rounded up to the nearest second)

OpenAPI

````yaml en/api-manual/video-series/omnihuman/omnihuman-1.5-video-generate.json post /v1/videos/generations openapi: 3.1.0 info: title: OmniHuman-1.5 Digital Human Video Generation API description: >- Create audio-driven digital human video generation tasks using OmniHuman-1.5 model license: name: MIT version: 1.0.0 servers: - url: https://ai.odkkk.com/apiv1 description: Production environment security: - bearerAuth: [] tags: - name: Digital Human Video Generation description: OmniHuman-1.5 digital human video generation APIs paths: /v1/videos/generations: post: tags: - Digital Human Video Generation summary: OmniHuman-1.5 Digital Human Video Generation description: >- - OmniHuman-1.5 (omnihuman-1.5) model generates digital human videos driven by audio

    - Asynchronous processing mode, use the returned task ID to
    [query](/en/api-manual/task-management/get-task-detail)

    - Generated video links are valid for 24 hours, please save them
    promptly


    **Note:**

    - Audio duration limit: maximum 35 seconds

    - Supported audio formats: MP3, WAV

    - Billing is based on audio duration (rounded up to the nearest second)
  operationId: createOmniHumanVideoGeneration
  requestBody:
    required: true
    content:
      application/json:
        schema:
          $ref: '#/components/schemas/OmniHumanVideoGenerationRequest'
        examples:
          basic_generation:
            summary: Basic Digital Human Generation
            value:
              model: omnihuman-1.5
              audio_url: https://example.com/audio.mp3
              image_urls:
                - https://example.com/person.jpg
  responses:
    '200':
      description: Digital human video generation task created successfully
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/OmniHumanVideoGenerationResponse'
    '400':
      description: Invalid request parameters
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          examples:
            invalid_audio:
              summary: Invalid audio format
              value:
                error:
                  code: 400
                  message: Invalid audio format or duration exceeds 35 seconds
                  type: invalid_request_error
                  param: audio_url
                  fallback_suggestion: use MP3 or WAV format, max 35 seconds
            no_subject:
              summary: No human subject detected
              value:
                error:
                  code: 400
                  message: No human subject detected in image
                  type: invalid_request_error
                  param: image_urls
                  fallback_suggestion: provide an image with a clear human figure
    '401':
      description: Unauthorized, invalid or expired token
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error:
              code: 401
              message: Invalid or expired token
              type: authentication_error
    '402':
      description: Insufficient quota, recharge required
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error:
              code: 402
              message: Insufficient quota
              type: insufficient_quota_error
              fallback_suggestion: https://ai.odkkk.com/apiv1/dashboard/billing
    '403':
      description: Access denied
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error:
              code: 403
              message: Access denied for this model
              type: permission_error
              param: model
    '404':
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error:
              code: 404
              message: Specified model not found
              type: not_found_error
              param: model
              fallback_suggestion: omnihuman-1.5
    '413':
      description: Request entity too large
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error:
              code: 413
              message: Image or audio file too large
              type: request_too_large_error
              param: image_urls
              fallback_suggestion: compress file to under 10MB
    '429':
      description: Rate limit exceeded
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error:
              code: 429
              message: Rate limit exceeded
              type: rate_limit_error
              fallback_suggestion: retry after 60 seconds
    '500':
      description: Internal server error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error:
              code: 500
              message: Internal server error
              type: internal_server_error
              fallback_suggestion: try again later
    '502':
      description: Upstream service error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error:
              code: 502
              message: Upstream AI service unavailable
              type: upstream_error
              fallback_suggestion: try again later
    '503':
      description: Service temporarily unavailable
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error:
              code: 503
              message: Service temporarily unavailable
              type: service_unavailable_error
              fallback_suggestion: retry after 30 seconds

components: schemas: OmniHumanVideoGenerationRequest: type: object required: - model - audio_url - image_urls properties: model: type: string description: Digital human video generation model name default: omnihuman-1.5 example: omnihuman-1.5 audio_url: type: string format: uri description: >- Audio URL for driving lip-sync and body movements

        **Note:**

        - Maximum audio duration: `35` seconds

        - Supported formats: `.mp3`, `.wav`

        - Audio URLs must be directly accessible by the server

        - Billing is based on audio duration (rounded up to the nearest
        second)
      example: https://example.com/audio.mp3
    image_urls:
      type: array
      description: |-
        Reference image URL list containing the person to animate

        **Note:**
        - Number of images per request: `1`
        - Image should contain a clear human figure
        - Image size: no more than `10MB`
        - Supported file formats: `.jpg`, `.jpeg`, `.png`, `.webp`
        - Image URLs must be directly viewable by the server
      items:
        type: string
        format: uri
      maxItems: 1
      example:
        - https://example.com/person.jpg
    prompt:
      type: string
      description: >-
        Optional text prompt to guide the generation style, only supports
        Chinese, English, Japanese, Korean, Mexican Spanish, and Indonesian
      example: A person speaking naturally with subtle expressions
    pe_fast_mode:
      type: boolean
      description: |-
        Enable fast processing mode

        **Note:**
        - `true`: Faster generation with potentially lower quality
        - `false`: Standard quality processing (default)
      default: false
      example: false
    mask_url:
      type: array
      description: |-
        Mask URL array for specifying animation regions

        **Note:**
        - Optional parameter for advanced control
        - Mask images should match the reference image dimensions
      items:
        type: string
        format: uri
      example:
        - https://example.com/mask.png
    seed:
      type: integer
      description: >-
        Random seed as the basis for determining the initial diffusion
        state, default random. If the seed is the same positive integer and
        all other parameters are consistent, the generated content may have
        consistent results
    subject_check:
      type: boolean
      description: >-
        Enable subject detection to verify human presence in the image


        **Note:**

        - `true`: Enable subject detection, request initiation time will
        increase

        - `false`: Skip subject detection (default)
      default: false
      example: false
    auto_mask:
      type: boolean
      description: >-
        Enable automatic mask generation


        **Note:**

        - `true`: Automatically detect and mask the human figure, request
        initiation time will increase. This parameter is ignored when
        `mask_url` has a value

        - `false`: Use provided mask_url or no mask (default)
      default: false
      example: false
    callback_url:
      type: string
      description: >-
        HTTPS callback address after task completion


        **Callback Timing:**

        - Triggered when task is completed, failed, or cancelled

        - Sent after billing confirmation is completed


        **Security Restrictions:**

        - Only HTTPS protocol is supported

        - Callback to internal IP addresses is prohibited (127.0.0.1,
        10.x.x.x, 172.16-31.x.x, 192.168.x.x, etc.)

        - URL length must not exceed `2048` characters


        **Callback Mechanism:**

        - Timeout: `10` seconds

        - Maximum `3` retries on failure (retries after `1` second/`2`
        seconds/`4` seconds)

        - Callback response body format is consistent with the task query
        API response format

        - Callback address returning 2xx status code is considered
        successful, other status codes will trigger retry
      format: uri
      example: https://your-domain.com/webhooks/video-task-completed
OmniHumanVideoGenerationResponse:
  type: object
  properties:
    created:
      type: integer
      description: Task creation timestamp
      example: 1757169743
    id:
      type: string
      description: Task ID
      example: task-unified-1757169743-7cvnl5zw
    model:
      type: string
      description: Actual model name used
      example: omnihuman-1.5
    object:
      type: string
      enum:
        - video.generation.task
      description: Specific task type
    progress:
      type: integer
      description: Task progress percentage (0-100)
      minimum: 0
      maximum: 100
      example: 0
    status:
      type: string
      description: Task status
      enum:
        - pending
        - processing
        - completed
        - failed
      example: pending
    task_info:
      $ref: '#/components/schemas/VideoTaskInfo'
      description: Video task detailed information
    type:
      type: string
      enum:
        - text
        - image
        - audio
        - video
      description: Task output type
      example: video
    usage:
      $ref: '#/components/schemas/VideoUsage'
      description: Usage and billing information
ErrorResponse:
  type: object
  properties:
    error:
      type: object
      properties:
        code:
          type: integer
          description: HTTP status error code
        message:
          type: string
          description: Error description
          example: Invalid request parameters
        type:
          type: string
          description: Error type
          example: invalid_request_error
        param:
          type: string
          description: Related parameter name
          example: model
        fallback_suggestion:
          type: string
          description: Suggestion for error resolution
          example: omnihuman-1.5
VideoTaskInfo:
  type: object
  properties:
    can_cancel:
      type: boolean
      description: Whether the task can be cancelled (always false for OmniHuman)
      example: false
    estimated_time:
      type: integer
      description: Estimated completion time (seconds)
      minimum: 0
      example: 120
    video_duration:
      type: integer
      description: Video duration (seconds), based on audio duration
      example: 10
VideoUsage:
  type: object
  description: Usage and billing information
  properties:
    billing_rule:
      type: string
      description: Billing rule (per_second for OmniHuman)
      enum:
        - per_call
        - per_token
        - per_second
      example: per_second
    credits_reserved:
      type: number
      description: Estimated credits consumed (based on audio duration)
      minimum: 0
      example: 10
    user_group:
      type: string
      description: User group category
      example: default

securitySchemes: bearerAuth: type: http scheme: bearer description: >- ##All APIs require Bearer Token authentication##

    **Get API Key:**


    Visit [API Key Management Page](https://ai.odkkk.com/apiv1/dashboard/keys) to
    get your API Key


    **Add to request header when using:**

    ```

    Authorization: Bearer YOUR_API_KEY

    ```

````


To find navigation and other pages in this documentation, fetch the llms.txt file at: https://ai.odkkk.com/apiv1/docs/llms.txt