SJinn
Veo3 Image-to-Video

Veo3 Image-to-Video

Generate high-quality videos from images and text descriptions using Google's Veo3 model

Tool Overview

The Veo3 Image-to-Video tool uses Google's Veo3 model to generate high-quality video content based on a starting image and text description. It supports setting both start and end frames for more precise video generation control.

Tool Identifier

veo3-image-to-video-fast-api

Parameters

Required Parameters

prompt

  • Type: string (required)
  • Description: Text description of the video content to guide AI video motion and scene generation
  • Validation: Must be a non-empty string
  • Example: "The camera slowly zooms in while the subject turns to face the viewer"

image

  • Type: string (required)
  • Description: Image URL for the video's starting frame
  • Format: Must be a complete HTTP/HTTPS URL (e.g., https://cdn.sjinn.ai/uploads/image.jpg)
  • Validation: Must be a non-empty string

Optional Parameters

aspect_ratio

  • Type: string (optional)
  • Default: "16:9"
  • Supported Values:
    • "16:9" - Landscape format, suitable for YouTube, TV, and other platforms
    • "9:16" - Portrait format, suitable for TikTok, Instagram Story, and other platforms
  • Note: If any other value is provided, it will automatically default to "16:9"

end_image_url

  • Type: string (optional)
  • Default: "" (no end frame)
  • Format: If provided, must be a complete HTTP/HTTPS URL

Pricing

  • Credits Consumed: 420 credits per task
  • Membership Requirement: None

Request Examples

Landscape Video (16:9)

curl -X POST https://sjinn.ai/api/un-api/create_tool_task \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "tool_type": "veo3-image-to-video-fast-api",
    "input": {
      "prompt": "The person smiles and waves at the camera",
      "image": "https://cdn.sjinn.ai/uploads/portrait.jpg",
      "aspect_ratio": "16:9"
    }
  }'

Portrait Video (9:16)

curl -X POST https://sjinn.ai/api/un-api/create_tool_task \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "tool_type": "veo3-image-to-video-fast-api",
    "input": {
      "prompt": "The model strikes a pose and looks at the camera",
      "image": "https://cdn.sjinn.ai/uploads/model-portrait.jpg",
      "aspect_ratio": "9:16"
    }
  }'

Advanced Usage (Start + End Frames)

curl -X POST https://sjinn.ai/api/un-api/create_tool_task \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "tool_type": "veo3-image-to-video-fast-api",
    "input": {
      "prompt": "Smooth transition from day to night",
      "image": "https://cdn.sjinn.ai/uploads/scene-day.jpg",
      "end_image_url": "https://cdn.sjinn.ai/uploads/scene-night.jpg",
      "aspect_ratio": "16:9"
    }
  }'

Using JavaScript

const response = await fetch('https://sjinn.ai/api/un-api/create_tool_task', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    tool_type: 'veo3-image-to-video-fast-api',
    input: {
      prompt: 'The person smiles and waves at the camera',
      image: 'https://cdn.sjinn.ai/uploads/portrait.jpg',
      aspect_ratio: '16:9',
    },
  }),
});

const result = await response.json();
console.log('Task ID:', result.data.task_id);

Using Python

import requests

url = 'https://sjinn.ai/api/un-api/create_tool_task'
headers = {
    'Authorization': 'Bearer YOUR_API_KEY',
    'Content-Type': 'application/json'
}
data = {
    'tool_type': 'veo3-image-to-video-fast-api',
    'input': {
        'prompt': 'The person smiles and waves at the camera',
        'image': 'https://cdn.sjinn.ai/uploads/portrait.jpg',
        'aspect_ratio': '16:9'
    }
}

response = requests.post(url, json=data, headers=headers)
result = response.json()
print('Task ID:', result['data']['task_id'])

Response Examples

Success Response

{
  "success": true,
  "errorMsg": "",
  "error_code": 0,
  "data": {
    "task_id": "550e8400-e29b-41d4-a716-446655440000"
  }
}

Error Response

{
  "success": false,
  "errorMsg": "image is required",
  "error_code": 400
}

Best Practices

  1. Image Quality: Use high-quality, clear starting images for better video results
  2. Prompt Matching: Ensure text description matches image content to avoid unnatural motion
  3. Aspect Ratio Selection:
    • Starting image aspect ratio should match the aspect_ratio parameter
    • Use 16:9 for landscape platforms like YouTube, Bilibili, and TV
    • Use 9:16 for portrait platforms like TikTok, Instagram Story, and Kuaishou
    • Invalid values will automatically default to 16:9
  4. End Frame Usage:
    • End frame allows precise control of the video's final state
    • Start and end frames should have a reasonable transition relationship
    • Without an end frame, AI will freely generate the video ending based on the prompt
  5. Generation Time: Video generation typically takes 2-5 minutes

Related Links