Hunyuan I2V
Hunyuan Video is an Open video generation model with high visual quality, motion diversity, text-video alignment, and generation stability. This endpoint generates videos from image and text descriptions.
Features
HunyuanVideo-I2V is an open-source AI video generation model developed by Tencent, designed for image-to-video tasks. It offers two versions: a 14-billion-parameter professional model that excels in generating complex motions and simulating physical dynamics, and a 1.3-billion-parameter lite version optimized for consumer-grade GPUs, requiring only 8.2GB of VRAM, making it suitable for secondary development and academic research.
Built upon a causal 3D Variational Autoencoder (VAE) and Video Diffusion Transformer architecture, HunyuanVideo-I2V efficiently models spatiotemporal dependencies. In the authoritative VBench evaluation, the 14B version achieved a leading score of 86.22%, surpassing models like Sora, Luma, and Pika, and securing the top position. The model is available on Wavespeed AI, providing convenient access for developers.
Key Features
- High-Fidelity Video Generation: Produces videos up to 720p resolution, maintaining sharpness and realism across diverse subjects, including photographs, illustrations, and 3D renders.
- Temporal Consistency: Ensures smooth motion and stable transitions, effectively eliminating common issues like flickering, thus preserving object identity and scene details.
- Multimodal Integration: Utilizes a pre-trained Multimodal Language Model (MLLM) with a Decoder-only architecture to deeply analyze the semantic content of input images, enhancing the alignment between visual and textual data.
ComfyUI
hunyuan-video/i2v is also available on ComfyUI, providing local inference capabilities through a node-based workflow. This ensures flexible and efficient video generation on your system, catering to various creative workflows.
Limitations
- Hardware Requirements: Effective operation requires NVIDIA GPUs with at least 60 GB of memory, which may limit accessibility for some users.
- Creative Focus: Designed primarily for creative content generation; not intended for producing factually accurate or reliable information.
- Input Sensitivity: The quality and consistency of the generated videos depend significantly on the quality of the input image and the specificity of the accompanying prompt.
Out-of-Scope Use
The model and its derivatives may not be used in any way that violates applicable national, federal, state, local, or international law or regulation, including but not limited to:
- Exploiting, harming, or attempting to exploit or harm minors, including solicitation, creation, acquisition, or dissemination of child exploitative content.
- Generating or disseminating verifiably false information with the intent to harm others.
- Creating or distributing personal identifiable information that could be used to harm an individual.
- Harassing, abusing, threatening, stalking, or bullying individuals or groups.
- Producing non-consensual nudity or illegal pornographic content.
- Making fully automated decisions that adversely affect an individual’s legal rights or create binding obligations.
- Facilitating large-scale disinformation campaigns.
Accelerated Inference
Our accelerated inference approach leverages advanced optimization technology from WavespeedAI. This innovative fusion technique significantly reduces computational overhead and latency, enabling rapid image generation without compromising quality. The entire system is designed to efficiently handle large-scale inference tasks while ensuring that real-time applications achieve an optimal balance between speed and accuracy. For further details, please refer to the blog post.
Authentication
For authentication details, please refer to the Authentication Guide.
API Endpoints
Submit Task & Query Result
# Submit the task
curl --location --request POST "https://api.wavespeed.ai/api/v3/wavespeed-ai/hunyuan-video/i2v" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}" \
--data-raw '{
"prompt": "A pale vampire woman slowly walks to a candlelit window, her crimson eyes glowing in the dark. She lifts one hand and gently taps her long, sharp nails against the glass. Her expression shifts from seductive to dangerous. Outside, bats flutter past a glowing full moon, casting flickering shadows across her face. The candlelight flickers, reflecting in her eyes as she stares into the night",
"image": "https://d2g64w682n9w0w.cloudfront.net/media/images/1744974349400389272_BzwspkJG.jpg",
"num_inference_steps": 30,
"duration": 5,
"seed": -1,
"size": "1280*720",
"enable_safety_checker": true
}'
# Get the result
curl --location --request GET "https://api.wavespeed.ai/api/v3/predictions/${requestId}/result" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}"
Parameters
Task Submission Parameters
Request Parameters
Parameter | Type | Required | Default | Range | Description |
---|---|---|---|---|---|
prompt | string | No | A pale vampire woman slowly walks to a candlelit window, her crimson eyes glowing in the dark. She lifts one hand and gently taps her long, sharp nails against the glass. Her expression shifts from seductive to dangerous. Outside, bats flutter past a glowing full moon, casting flickering shadows across her face. The candlelight flickers, reflecting in her eyes as she stares into the night | - | The prompt to generate the video from. |
image | string | Yes | https://d2g64w682n9w0w.cloudfront.net/media/images/1744974349400389272_BzwspkJG.jpg | - | The image to generate the video from. |
num_inference_steps | integer | No | 30 | 2 ~ 30 | The number of inference steps to run. Lower gets faster results, higher gets better results. |
duration | integer | No | 5 | 5 ~ 10 | Generate video duration length seconds. |
seed | integer | No | -1 | -1 ~ 9999999999 | The seed to use for generating the video. |
size | string | No | 1280*720 | 1280*720, 720*1280 | The size of the output. |
enable_safety_checker | boolean | No | true | - | If set to true, the safety checker will be enabled. |
Response Parameters
Parameter | Type | Description |
---|---|---|
code | integer | HTTP status code (e.g., 200 for success) |
message | string | Status message (e.g., “success”) |
data.id | string | Unique identifier for the prediction, Task Id |
data.model | string | Model ID used for the prediction |
data.outputs | array | Array of URLs to the generated content (empty when status is not completed ) |
data.urls | object | Object containing related API endpoints |
data.urls.get | string | URL to retrieve the prediction result |
data.has_nsfw_contents | array | Array of boolean values indicating NSFW detection for each output |
data.status | string | Status of the task: created , processing , completed , or failed |
data.created_at | string | ISO timestamp of when the request was created (e.g., “2023-04-01T12:34:56.789Z”) |
data.error | string | Error message (empty if no error occurred) |
data.timings | object | Object containing timing details |
data.timings.inference | integer | Inference time in milliseconds |
Result Query Parameters
Result Request Parameters
Parameter | Type | Required | Default | Description |
---|---|---|---|---|
id | string | Yes | - | Task ID |
Result Response Parameters
Parameter | Type | Description |
---|---|---|
code | integer | HTTP status code (e.g., 200 for success) |
message | string | Status message (e.g., “success”) |
data | object | The prediction data object containing all details |
data.id | string | Unique identifier for the prediction |
data.model | string | Model ID used for the prediction |
data.outputs | array | Array of URLs to the generated content (empty when status is not completed ) |
data.urls | object | Object containing related API endpoints |
data.urls.get | string | URL to retrieve the prediction result |
data.has_nsfw_contents | array | Array of boolean values indicating NSFW detection for each output |
data.status | string | Status of the task: created , processing , completed , or failed |
data.created_at | string | ISO timestamp of when the request was created (e.g., “2023-04-01T12:34:56.789Z”) |
data.error | string | Error message (empty if no error occurred) |
data.timings | object | Object containing timing details |
data.timings.inference | integer | Inference time in milliseconds |