PixVerse
PixVerse V6
pixverse-v6/image-to-video
PixVerse's flagship video generation model, covering both text-to-video and image-to-video in a single model, with support for precise camera control, character performance, and reference image fusion, aimed at production-grade output
Pricing
pixverse-v6/image-to-video per second
Positioning Overview
The PixVerse V6 image-to-video model turns static images into dynamic videos, aimed at developers and creative teams who need to quickly turn product shots, character art, or storyboard frames into commercially usable video assets. The model anchors composition and aspect ratio to the first-frame image, describes motion and atmosphere through prompts, and offers optional style presets, resolution, and duration. The output is a video file, suitable for integration into automated pipelines for ad production, short-drama storyboarding, and batch animation of assets.
Key Highlights
- First-frame image anchors composition and aspect ratio — the output video follows the aspect ratio of the input image, reducing cropping and fitting costs across different assets.
- Optional native synchronized audio generation — when enabled, background music, sound effects, and dialogue are generated along with the video, eliminating the need for separate voiceover and scoring.
- Dual control via style presets and negative prompts — apply preset styles such as anime, clay, and cyberpunk, and use negative prompts to exclude unwanted content.
- Reproducible results with a seed — a fixed seed and prompt stably reproduce the same output, making batch generation and version comparison easy.
Capabilities
Image-to-video synthesis: Use a public image URL as the first frame and generate video with motion and atmosphere prompts, ideal for directly converting existing visual assets into dynamic content.
Flexible duration and resolution: Duration can be set from 1 to 15 seconds, and resolution supports 360p, 540p, 720p, and 1080p, making it easy to match specs to distribution channels and preview needs.
Synchronized audio-video generation: Audio generation can be enabled to produce background music, sound effects, and dialogue along with the video, reducing post-production audio work.
Style presets and negative prompts: Five built-in style presets — anime, 3D animation, clay, comic, and cyberpunk — plus negative prompts to avoid unwanted visual elements.
Reproducible random seed: A fixed seed and prompt reproduce the same result, making it easy to maintain consistency or run controlled experiments in batch tasks.
Use Cases
- Marketing teams turning product images into short videos — generate short clips with motion and atmosphere from product images as the first frame, ready for in-feed ads or animated assets on e-commerce detail pages.
- Short-drama and storyboard teams animating composition drafts — convert storyboard frames into dynamic shots for pre-visualization or direct use as final footage, speeding up validation of narrative pacing.
- Batch animation of character and brand assets — with fixed seeds and style presets, produce consistently styled videos from series character art or brand visuals for social media content scheduling.
- Developers integrating automated video generation pipelines — submit images and prompts as tasks through a unified interface and batch-produce video assets for content platforms or creative tools to consume.
Limitations and Selection Advice
This model only supports image-to-video and requires a first-frame image; it cannot generate directly from text alone. The maximum duration is 15 seconds, so it is not suitable for continuous narratives requiring long shots. Only five style presets are available, and public information lacks independent third-party evaluations of image quality and motion stability, so selection should be based on testing with your own assets. Billing is by output seconds, so cost grows linearly with final video duration; long videos or large batch tasks require budget evaluation in advance. If longer duration or multi-shot narratives are needed, consider pairing it with a text-to-video route from the same family or generating segments and stitching them together.
Frequently asked questions
View all FAQs →-
What is PixVerse V6 Image to Video?
The image-to-video version of PixVerse V6: upload an image as the first frame, describe the motion, camera and atmosphere to add, and get a 1 to 15 second clip at 360p to 1080p with optional synchronized audio and style presets.
-
What determines the output aspect ratio?
The aspect ratio of the image_url first frame, which is why image to video has no aspect_ratio parameter. Upload a vertical image for vertical output and a landscape image for 16:9.
-
How should I write the prompt?
Describe only what should change: subject motion, camera movement, environmental change and sound. There is no need to restate what the image already shows. Say what must stay put, such as “camera stays still” or “background unchanged”.
-
What are the input image requirements?
image_url must be an image address reachable on the public internet, and the Playground also accepts a direct upload. A clear subject, a complete composition and room for the motion make stable movement more likely.
Create a generation task
https://api.hiapi.ai/v1/tasks Headers
AuthorizationstringRequiredAccount API key. Required on every request. Example: Bearer YOUR_HIAPI_API_KEY. Get your API key
Content-TypestringOptionalThe request body is always parsed as JSON; when sent, only application/json (optionally with charset) is accepted — any other value returns 415. Example: application/json.
Idempotency-KeystringOptionalIdempotency key, up to 255 bytes. Retries with the same key from the same account create the task only once; replays return the original taskId.
On network timeouts or client retries, the same key creates the task only once — no double charges (scope: the API key's account). Use a business-unique identifier as the key (e.g. "order-42"); replays return the original taskId, and keys expire 24 hours after the first request. See the Unified Async API overview for the full scenario matrix.
Body
modelstringRequiredCurrent fixed value: pixverse-v6/image-to-video
routestringOptionalCurrent fixed value: default
inputobjectRequired
Business parameters for pixverse-v6/image-to-video and route default — see the parameter table below.
seedintegerOptionalRandom seed used to reproduce generation results; the same seed and prompt yield the same output.
stylestringOptionalOptional visual style preset string; when omitted, the model's natural style is used.
anime3d_animationclaycomiccyberpunkpromptstringRequiredminLength 1maxLength 2048Describes the motion and atmosphere to add to the image, up to 2048 UTF-8 bytes (each Chinese character occupies 3 bytes).
durationintegerOptionalDefault: 5min 1max 15Video duration (in seconds), ranging from 1 to 15, default 5.
image_urlstringRequiredA publicly accessible image URL used as the first frame; the output video will adopt the aspect ratio of this image.
resolutionstringOptionalDefault: "720p"Output video resolution, default 720p.
360p540p720p1080pgenerate_audiobooleanOptionalDefault: falseWhether to generate background music, sound effects, and dialogue along with the video, default false.
negative_promptstringOptionalSpecifies content to avoid in the video, up to 2048 UTF-8 bytes (each Chinese character occupies 3 bytes).
callbackobjectOptional
Terminal-state notification config. When omitted, no callback is delivered — poll the task yourself. See the callback note below.
Provide callback.url when creating a task and HiAPI POSTs to your service once the task reaches a terminal state — no polling needed. The callback payload mirrors the task detail structure; signature verification, delivery retries and idempotency are documented on the Unified Async API overview page.
urlstringRequiredRequired when callback is present. A POST is sent to this URL once the task reaches a terminal state; must be a valid http(s) URL.
whenstringOptionalDefault: "final"Only final is supported today — notified on both success and fail.
finalstoragestringOptionalDefault: "temp"Artifact storage tier: temp (default, retained about 7 days) or persistent (long-term, billed by size). Insufficient balance or exceeding the storage cap silently downgrades to temp; the effective tier is shown in the task detail response.
temppersistentRequest examples
# Submit an async task; returns a taskId immediately (no waiting for generation)
curl -X POST "https://api.hiapi.ai/v1/tasks" \
-H "Authorization: Bearer $HIAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "pixverse-v6/image-to-video",
"input": {
"prompt": "…",
"duration": 5,
"image_url": "…",
"resolution": "720p",
"generate_audio": false
}
}' const res = await fetch("https://api.hiapi.ai/v1/tasks", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.HIAPI_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "pixverse-v6/image-to-video",
input: {
"prompt": "…",
"duration": 5,
"image_url": "…",
"resolution": "720p",
"generate_audio": false
}
}),
});
const task = await res.json();
// { code: 200, message: "success", data: { taskId } } import os, requests
res = requests.post(
"https://api.hiapi.ai/v1/tasks",
headers={"Authorization": f"Bearer {os.environ['HIAPI_API_KEY']}"},
json={
"model": "pixverse-v6/image-to-video",
"input": {
"prompt": "…",
"duration": 5,
"image_url": "…",
"resolution": "720p",
"generate_audio": False
}
},
)
print(res.json()) # { code, message, data: { taskId } } 200 OK
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-01HZTQ8BX2N3GM3YFK4Z9D7VQR"
}
} 400 Bad Request
{
"code": 400,
"message": "invalid request",
"data": null,
"error_code": "INVALID_REQUEST"
} Get task detail
https://api.hiapi.ai/v1/tasks/:id Response fields
taskIdstringRequiredTask ID, always prefixed with tk-hiapi-.
modelstringRequiredResolved full model name. Tasks submitted with the route parameter return base@route (e.g. gpt-image-2/text-to-image@ext); otherwise identical to the name passed at creation.
routestringOptionalPresent only when the task was submitted with an explicit route parameter; echoes the submitted value.
statusstringRequiredTask status.
queued Queued, not started yet.
handling Being processed.
archiving Processing finished, artifacts being prepared.
success Terminal: completed, artifacts available (output returned).
fail Terminal: failed (error returned).
After submission, check status: success and fail are terminal, everything else is non-terminal. Poll every 1–3 seconds until terminal. On success, download artifacts from output[].url and transfer them before expireAt; pass storage: "persistent" at creation time when long-term retention is needed.
creatednumberRequiredTask creation time (Unix seconds).
completednumberRequiredUnix seconds when the task reached a terminal state; fixed to 0 while not terminal.
outputarrayOptional
Present only when status == success. Artifact list — always an array; a single task may return multiple types at once (e.g. video + first_frame).
Array [ object ]
Array items
urlstringRequiredArtifact URL, directly downloadable.
typestringRequiredCurrent possible values: video, image, audio, first_frame, last_frame, thumbnail; more may be added later.
expireAtnumberRequiredUnix seconds until which the artifact remains accessible; download or transfer before it expires.
errorobjectOptional
Present only when status == fail.
codestringRequiredBusiness error code.
messagestringRequiredError description.
Response examples
Success
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-01HZTQ8BX2N3GM3YFK4Z9D7VQR",
"model": "happyhorse-1-0",
"status": "success",
"created": 1777282033,
"completed": 1777282099,
"output": [
{
"url": "https://cdn.hiapi.ai/tasks/.../video.mp4",
"type": "video",
"expireAt": 1777886899
}
]
}
} Processing (non-terminal)
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-...",
"model": "happyhorse-1-0",
"status": "archiving",
"created": 1777282033,
"completed": 0
}
} Failed
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-...",
"model": "happyhorse-1-0",
"status": "fail",
"created": 1777282033,
"completed": 1777282099,
"error": {
"code": "TASK_FAILED",
"message": "task failed"
}
}
} Articles
View all articles →Related Models
View all models →Same Type
-
LTX 2.5 Fast Lightricks $0.086 /second -
Creatify Boreal Creatify $0.015 /second -
FLUX 3 Video Black Forest Labs $0.090 /second -
Gemini Omni 1.1 Flash Google $0.450 /video -
Kling 3.0 Kuaishou $0.100 /second -
Wan 2.7 Video Alibaba $0.100 /second -
Wan 2.6 Flash Alibaba $0.043 /second -
Seedance 2.5 ByteDance $0.121 /second -
HeyGen Avatar IV HeyGen $0.150 /second -
Kling 2.5 Kuaishou $0.060 /second -
Kandinsky 6.0 Pro $1.93 /video -
Hailuo 2.3 MiniMax $0.270 /video