Skip to content

Video from Image

Generate video clips from a reference image. Provide a starting frame (and optionally an end frame) along with a motion prompt, and the model will animate the scene.

POST /v1/vidsheet/{id}/cells/{cell_id}/generate?agent_id={agent_id}
ParameterTypeDescription
idintegerThe sheet ID.
cell_idintegerThe cell ID.
ParameterTypeDescription
agent_idintegerThe agent ID.

Modelgeneration_typedata.model
Kling 2.1video_from_image"kling_2_1"
Kling 2.6video_from_image"kling_2_6"
Veo 3video_from_image"veo_3"
Veo 3.1video_from_image"veo_3_1"
Sora 2video_from_image"sora_2"
Seedance Litevideo_from_image"seedance_lite"
Seedance Provideo_from_image"seedance_pro"
Seedance Pro 1.5video_from_image"seedance_pro_1_5"
Grokvideo_from_image"grok"

FieldTypeRequiredDescription
generation_typestringYes"video_from_image".
data.image_resource_idstringYesStarting frame image content resource ID.
data.image_tail_resource_idstringNoOptional end frame image content resource ID.
data.promptstringNoText description of the desired motion or scene. Supports {{variable_name}} syntax.
data.negative_promptstringNoWhat to avoid in the generated video.
data.modelstringNoModel variant. See Models table.
data.aspect_ratiostringNo"1:1", "9:16", or "16:9". Grok also supports "4:3", "3:4", "3:2", and "2:3".
data.resolutionstringNoOutput resolution. Use "1080p" or "720p" when supported by the selected model. If omitted, the API uses the cell default or the closest supported model default.
data.durationintegerNoVideo duration in seconds.
data.native_audiobooleanNoRequest native audio when supported by the selected video model. Defaults to false when omitted.
data.image_varstringNoVariable name to map the image value from a column.
data.image_tail_varstringNoVariable name to map the end frame image from a column.
data.prompt_varstringNoVariable name to map the prompt from a column.
data.negative_prompt_varstringNoVariable name to map the negative prompt from a column.

{
"generation_id": 9030,
"status": "pending"
}

Once complete, the generated video is available in output_resources. Poll with GET /v1/generations/{generation_id} to check status.


Terminal window
curl -X POST "https://api.gen.pro/v1/vidsheet/101/cells/3200/generate?agent_id=42" \
-H "X-API-Key: your-api-key" \
-H "Content-Type: application/json" \
-d '{
"generation_type": "video_from_image",
"data": {
"image_resource_id": "image_res_123",
"prompt": "Camera slowly zooms in while the product rotates, soft studio lighting",
"negative_prompt": "blurry, distorted, text overlay",
"model": "kling_2_6",
"aspect_ratio": "9:16",
"resolution": "1080p",
"native_audio": false,
"duration": 5
}
}'
{
"id": 9030,
"status": "completed",
"user_job_type": "video_generation",
"result": null,
"failed_reason": null,
"output_resources": [
{
"id": 1800,
"url": "https://cdn.gen.pro/outputs/vid_img2v_001.mp4",
"thumbnail_url": "https://cdn.gen.pro/thumbnails/vid_img2v_001.jpg",
"object_type": "video",
"type": "output"
}
],
"execution_cost": 4.0
}

FieldTypeDescription
modelstringDefault model: "kling_2_1", "kling_2_6", "veo_3", "veo_3_1", "sora_2", "seedance_lite", "seedance_pro", "grok", etc.
ratiostringDefault aspect ratio: "1:1", "9:16", "16:9". Grok also supports "4:3", "3:4", "3:2", and "2:3".
resolutionstringDefault output resolution for supported video models: "1080p" or "720p".
durationnumberDefault duration in seconds.
autoGeneratebooleanAuto-trigger generation when dependent variables change.