PixVerse
PixVerse V6 Max
pixverse-v6-max/image-to-video
PixVerse's flagship video model, supporting text-to-video and image-to-video, up to 15 seconds per generation and up to 1080p, with optional generated background music, sound effects, and dialogue, ideal for short commercials and concept film creation
Try pixverse-v6-max/image-to-video
Input
Showcases
View all showcasesOutput
videoPricing
pixverse-v6-max/image-to-video per second
Positioning Overview
This is an image-to-video model that takes a public image as the first frame and generates a dynamic video based on the motion and atmosphere described in the prompt. The aspect ratio of the output video follows the first-frame image, the resolution can be selected between 360p and 1080p, and the duration can be set from 1 to 15 seconds. Developers can control the final result through camera movement, subject action, and atmosphere descriptions, making it suitable for turning static visual assets into short video clips, dynamic posters, or narrative shots for marketing displays, content creation, and concept previews.
Core Highlights
- First-frame driven, aspect ratio follows automatically — Just provide a public image as the first frame, and the aspect ratio of the output video will stay consistent with that image.
- Duration and resolution selectable as needed — Video duration can be set between 1 and 15 seconds, and the resolution can be 360p, 540p, 720p, or 1080p.
- Prompts control motion and atmosphere — Use prompts to describe the direction of movement in the frame and the overall atmosphere, guiding the static first frame into a dynamic clip.
- Random seed reproduces similar results — You can set a random seed from 0 to 2147483647 and combine it with the same prompt and first frame to reproduce a similar effect.
Capability Description
Image first frame to video: Input a public link to a JPEG, PNG, or WebP image as the first frame, and generate a dynamic video together with a text prompt; the output aspect ratio follows the first-frame image.
Duration and resolution settings: A single generation can be set from 1 to 15 seconds, and the resolution can be chosen from 360p, 540p, 720p, or 1080p, with 720p and 5 seconds as defaults.
Prompt-guided dynamic effects: Prompts can be up to 2048 characters and are used to describe the motion style and atmosphere on top of the first frame, helping control the dynamic presentation.
Seed-controlled reproduction: Setting the same random seed and prompt can reproduce similar generation results, making it easy to compare different parameters during iteration.
Applicable Scenarios
- Static ad images to dynamic clips — Marketing teams use a product hero image as the first frame and add motion prompts to generate a dynamic display clip within 15 seconds for feed ads or social media publishing.
- Dynamic posters and display assets — Designers use a poster or visual draft as the first frame to generate a short dynamic version for web banners, splash screens, or electronic display screens.
- Concept shot previews — Film or animation creators use a concept image as the first frame and describe camera movement to quickly generate motion preview clips for internal communication and direction confirmation.
- Social media short video asset production — Content creators use photographic images as the first frame to generate short videos matching the original image ratio for publishing as short-form content on social platforms.
Limitations and Selection Advice
Only one first-frame image is supported, and it must be a publicly accessible JPEG, PNG, or WebP link no larger than 20 MB; providing multiple reference images or specifying an end frame separately is not supported. Prompts can be up to 2048 characters, and any excess cannot be submitted. A single generation has a maximum duration of 15 seconds and a maximum resolution of 1080p. Generated audio is an optional switch and is off by default; when enabled, it may include background music, sound effects, or dialogue, and when disabled, the output video has no audio track. The same seed and prompt can only reproduce similar results, and frame-by-frame consistency of the image or complete consistency of characters is not guaranteed.
What's new
View changelog →- New model New model: PixVerse V6 Max Image-to-Video
- New model New model: PixVerse V6 Max Text-to-Video
Frequently asked questions
View all FAQs →-
What is the maximum length in seconds for a single generation?
The maximum is 15 seconds. The duration parameter can be set in whole seconds from 1 to 15, with a default of 5 seconds. Billing is per second, so when choosing a plan, you can map clip length directly to invocation cost.
-
Can I upload multiple reference images at once for image-to-video?
Multiple image inputs are not currently supported. image_urls accepts only 1 public image URL, which serves as the first frame of the video. JPEG, PNG, and WebP are supported, with a maximum of 20 MB per image; the output aspect ratio follows this image, so to change the aspect ratio you need to process the first-frame image itself.
-
What is the maximum output resolution?
Up to 1080p; resolution options are 360p, 540p, 720p, and 1080p, with 720p as the default. Set it to 1080p when you need a polished, finished look; for previews or low-cost trial drafts, use a lower setting to verify motion and composition.
-
How do I enable native audio, and how should dialogue be written?
Set generate_audio to true, and the model will also generate background music, sound effects, and dialogue; it is off by default. Dialogue must be written in the prompt and enclosed in quotation marks; otherwise, it is easily treated as a visual description rather than content to be spoken aloud.
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-max/image-to-video
routestringOptionalCurrent fixed value: default
inputobjectRequired
Business parameters for pixverse-v6-max/image-to-video and route default — see the parameter table below.
seedintegerOptionalmin 0max 2147483647Random seed, values from 0 to 2147483647; the same seed and prompt can reproduce similar generation results.
promptstringRequiredminLength 1maxLength 2048Describe the motion and atmosphere to be added to the image, up to 2048 characters.
durationintegerOptionalDefault: 5min 1max 15Video duration (seconds), values from 1 to 15, billed per second; default is 5 seconds.
image_urlsarrayRequiredminItems 1maxItems 1Array of first-frame image URLs, containing a single publicly accessible image address, supporting JPEG, PNG, or WebP, up to 20 MB; the output video inherits the aspect ratio of this image.
Array [ string ]
resolutionstringOptionalDefault: "720p"Output video resolution; default is 720p.
360p540p720p1080pgenerate_audiobooleanOptionalDefault: falseWhether to generate background music, sound effects, and dialogue along with the video; to generate spoken lines, write the lines in quotes within the prompt; default is false.
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-max/image-to-video",
"input": {
"prompt": "…",
"duration": 5,
"image_urls": "…",
"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-max/image-to-video",
input: {
"prompt": "…",
"duration": 5,
"image_urls": "…",
"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-max/image-to-video",
"input": {
"prompt": "…",
"duration": 5,
"image_urls": "…",
"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
-
Gemini Omni 1.2 Google $0.023 /second -
Grok Imagine 1.5 Lite xAI $0.029 /second -
Veo 3.1 Fast Google $0.170 /second -
P-Video 2 Pro Avatar Pruna AI $0.029 /second -
Veo 3.1 Google $0.290 /second -
Gemini Omni 1.1 Google $0.450 /video -
Muse Video 1.0 Meta $0.034 /video -
OmniHuman 2.0 ByteDance $0.100 /second -
Wan 2.6 Flash Alibaba $0.043 /second -
P-Video 2 Pro Replace Pruna AI $0.036 /second -
HappyHorse 1.0 Alibaba $0.168 /second -
Wan 2.7 Video Alibaba $0.100 /second


