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

# Create a character-swapped starting frame

> Composes a clean starting frame for a clone by applying the prompt to the character image, optionally grounded in the source video's first frame. Supply exactly one of characterImageUrl (a public HTTPS image) or characterId (a previously created character's id, from createCharacter or GET /v1/characters) to identify the character; supplying both or neither is a validation error. The returned image is guaranteed to be a clean cinematic frame with no text overlays, captions, subtitles, watermarks, or platform UI, regardless of what is present in the source video or requested prompt. All other URLs must be public HTTPS. Synchronous; typically completes within a minute. Shares the daily clone admission limit.



## OpenAPI

````yaml /openapi/spec.json post /v1/clones/starting-image
openapi: 3.0.0
info:
  title: VidJutsu API
  version: '2026-07-20'
  description: >-
    VidJutsu is a video API built for agents to operate directly. Your agent can
    clone viral trending skits now: stage a trending clip with
    /v1/videos/download/tiktok or /v1/videos/download/instagram, check it for
    cloneability, generate a character and a clean starting frame, then render
    the clone. The pipeline runs end to end in about 5 minutes, measured. Kling
    motion control is the default video model; Seedance is the alternate. Clone
    video output is 480p 9:16.
servers:
  - url: https://api.vidjutsu.ai
    description: Production
    variables: {}
security:
  - BearerAuth: []
tags:
  - name: Assets
  - name: Editor Projects
  - name: Scrape
  - name: Videos
  - name: Billing
  - name: API Keys
  - name: Usage
  - name: Info
  - name: Pricing
  - name: Subscriptions
  - name: Auth
  - name: Accounts
  - name: Posts
  - name: References
  - name: Upload
  - name: Watch
  - name: Extract
  - name: Transcribe
  - name: Check
  - name: Compliance
  - name: Overlay
  - name: Disclaimer
  - name: Agent
  - name: Characters
  - name: Cloning
    description: >-
      Your agent can Clone Viral Trending Skits Now. These endpoints check
      whether a staged source video is worth cloning, generate the character and
      starting frame, and render and poll the final clone video.
paths:
  /v1/clones/starting-image:
    post:
      tags:
        - Cloning
      summary: Create a character-swapped starting frame
      description: >-
        Composes a clean starting frame for a clone by applying the prompt to
        the character image, optionally grounded in the source video's first
        frame. Supply exactly one of characterImageUrl (a public HTTPS image) or
        characterId (a previously created character's id, from createCharacter
        or GET /v1/characters) to identify the character; supplying both or
        neither is a validation error. The returned image is guaranteed to be a
        clean cinematic frame with no text overlays, captions, subtitles,
        watermarks, or platform UI, regardless of what is present in the source
        video or requested prompt. All other URLs must be public HTTPS.
        Synchronous; typically completes within a minute. Shares the daily clone
        admission limit.
      operationId: cloneStartingImage
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CloneStartingImageRequest'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneratedImageResponse'
        '403':
          description: >-
            HTTP 403 Forbidden — a valid API key with no active subscription
            called a gated endpoint. Body is the standard ApiError with
            error="subscription_required".
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: >-
            HTTP 429 Too Many Requests — a per-endpoint daily rate limit was
            exceeded. The limit window is fixed and resets at 00:00 UTC. Body is
            the standard ApiError; a Retry-After header carries the seconds
            until reset.
          headers:
            Retry-After:
              required: false
              schema:
                type: integer
                format: int32
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
components:
  schemas:
    CloneStartingImageRequest:
      type: object
      required:
        - prompt
      properties:
        characterImageUrl:
          type: string
          format: uri
          description: >-
            Public HTTPS URL of the character identity image. http:// URLs are
            rejected. Exactly one of characterImageUrl or characterId must be
            supplied.
        characterId:
          type: string
          description: >-
            Id of a previously created character (from createCharacter or GET
            /v1/characters) whose stored image should be used. Exactly one of
            characterImageUrl or characterId must be supplied.
        prompt:
          type: string
          minLength: 1
          description: >-
            Instructions for composing the starting frame (pose, framing,
            scene).
        sourceVideoUrl:
          type: string
          format: uri
          description: >-
            Optional public HTTPS URL of the source video whose opening frame
            should ground the composition.
    GeneratedImageResponse:
      type: object
      required:
        - imageUrl
        - model
      properties:
        imageUrl:
          type: string
          format: uri
          description: HTTPS CDN URL of the generated image.
        model:
          type: string
          description: Provider model id that produced the image.
    ApiError:
      type: object
      required:
        - error
        - message
      properties:
        error:
          type: string
        message:
          type: string
        setup:
          type: string
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer

````