Multimodal inputs

Send text, images, and video references in your generation prompts.

Pipevideo accepts multimodal input in two OpenAI-compatible formats:

  • Responses APIinput_text, input_image, input_video content parts (see Responses API)
  • Chat Completions APItext, image_url, video_url content parts (see Chat completions API)

Combine text prompts with reference images or video clips to guide generation.

Chat Completions format

When using POST /v1/chat/completions, use OpenAI-style content part types in messages:

{
  "model": "moonshotai/kimi-k2.5",
  "messages": [
    {
      "role": "user",
      "content": [
        { "type": "text", "text": "Animate this logo with a smooth fade-in" },
        {
          "type": "image_url",
          "image_url": {
            "url": "https://example.com/logo.png",
            "detail": "high"
          }
        }
      ]
    }
  ]
}
Part typeFields
text{ "text": "..." }
image_url{ "image_url": { "url": "...", "detail": "auto" | "low" | "high" } }
video_url{ "video_url": { "url": "..." } }

Responses format

Pass input as a string for simple text prompts, or as an array of message items for multimodal content:

{
  "model": "moonshotai/kimi-k2.5",
  "input": [
    {
      "role": "user",
      "content": [
        { "type": "input_text", "text": "Animate this logo with a smooth fade-in" },
        {
          "type": "input_image",
          "image_url": {
            "url": "https://example.com/logo.png",
            "detail": "high"
          }
        }
      ]
    }
  ]
}

Use top-level instructions for system-level guidance instead of a system message:

{
  "model": "moonshotai/kimi-k2.5",
  "instructions": "You are a motion designer.",
  "input": "Animate this logo with a smooth fade-in"
}

Supported roles in input message items: system, user, assistant, developer.

Content part types

Input text

{ "type": "input_text", "text": "Your generation prompt" }

Required for every generation — at least one text part must be present across all input items.

Input image

{
  "type": "input_image",
  "image_url": {
    "url": "https://example.com/reference.png",
    "detail": "auto"
  }
}
FieldValuesDescription
urlHTTPS URL or data:image/... URIReference image
detailauto, low, high, original (optional)Image resolution hint

Input video

{
  "type": "input_video",
  "video_url": {
    "url": "https://example.com/reference.mp4"
  }
}

Accepts HTTPS URLs or data:video/... URIs.

Canvas dimensions

Control output dimensions with optional request fields:

FieldTypeDefaultDescription
widthnumber1080Canvas width in pixels
heightnumber1920Canvas height in pixels
aspect_ratiostringAspect ratio hint (e.g. 16:9)

Example with multiple references

curl -X POST https://api.pipevideo.co/v1/responses \
  -H "Authorization: Bearer pv_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "moonshotai/kimi-k2.5",
    "width": 1920,
    "height": 1080,
    "input": [
      {
        "role": "user",
        "content": [
          { "type": "input_text", "text": "Create a product showcase using these brand assets" },
          { "type": "input_image", "image_url": { "url": "https://example.com/product.png" } },
          { "type": "input_image", "image_url": { "url": "https://example.com/logo.png" } }
        ]
      }
    ]
  }'