Framepack
Framepack is an efficient Image-to-video model that autoregressively generates videos.
Features
Framepack is a lightweight, autoregressive video synthesis model. Instead of generating all frames simultaneously, it builds each frame step by step, preserving motion logic and fine details over time. Originally developed by the author of ControlNet, Framepack focuses on real-world usability: speed, structure retention, and compatibility with modern image generation workflows.
Key Features
- Autoregressive Generation: Each video frame is conditioned on the previous, leading to fluid and logically consistent motion.
- High Structure Fidelity: Retains detailed spatial structures and visual elements from the input image, ideal for character animation or style-sensitive scenes.
- Fast & Lightweight: Built with efficiency in mind—Framepack runs rapidly on WaveSpeedAI’s backend with low compute cost.
- General-Purpose Prompt Support: Accepts image inputs and prompt-based guidance for versatile video output.
ComfyUI
framepack 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
- Generation Speed: While optimized for efficiency, the frame generation speed varies depending on hardware. For instance, on an NVIDIA RTX 4090, the generation speed can reach up to 0.6 frames per second with optimization techniques like teacache.
- Hardware Compatibility: Currently, FramePack requires NVIDIA RTX 30/40/50 series GPUs with support for FP16 and BF16 data formats. Compatibility with older NVIDIA GPUs, as well as AMD and Intel hardware, has not been verified
- Frame Rate Cap: The model has a 30 FPS cap, which may not meet the requirements of all professional applications.
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/v2/wavespeed-ai/framepack" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}" \
--data-raw '{
"image": "https://d2g64w682n9w0w.cloudfront.net/media/images/1745337597019716935_RS1XUQMI.jpg",
"prompt": "A fierce female warrior swings a long sword with full strength. Her expression is intense and focused, and her long hair flows dramatically through the air with the force of her movement",
"negative_prompt": "",
"aspect_ratio": "16:9",
"resolution": "720p",
"seed": 0,
"num_inference_steps": 25,
"num_frames": 180,
"guidance_scale": 10,
"enable_safety_checker": true
}'
# Get the result
curl --location --request GET "https://api.wavespeed.ai/api/v2/predictions/${requestId}/result" \
--header "Authorization: Bearer ${WAVESPEED_API_KEY}"
Parameters
Task Submission Parameters
Request Parameters
Parameter | Type | Required | Default | Range | Description |
---|---|---|---|---|---|
image | string | Yes | https://d2g64w682n9w0w.cloudfront.net/media/images/1745337597019716935_RS1XUQMI.jpg | - | The URL of the video to generate the audio for. |
prompt | string | Yes | A fierce female warrior swings a long sword with full strength. Her expression is intense and focused, and her long hair flows dramatically through the air with the force of her movement | - | Prompt for generating video |
negative_prompt | string | No | - | - | The negative prompt to generate the audio for. |
aspect_ratio | string | No | 16:9 | - | The aspect ratio of the video to generate. |
resolution | string | No | 720p | - | The resolution of the video to generate. 720p generations cost 1.5x more than 480p generations. |
seed | integer | No | - | -1 ~ 9999999999 | The seed for the random number generator |
num_inference_steps | integer | No | 25 | 4 ~ 50 | The number of steps to generate the audio for. |
num_frames | integer | No | 180 | 30 ~ 1800 | The duration of the audio to generate. |
guidance_scale | number | No | 10 | 0 ~ 32 | Guidance scale for the generation. |
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 |