Framepack is an efficient autoregressive Image-to-Video model that generates smooth, temporally consistent videos from a single image. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.
Siap
$0.198per run·~50 / $10
He abruptly kicks his chair back, drawing a revolver with startling speed and aiming it into the oppressive darkness of the doorway.
Animate this scene with a deliberate and unfolding sense of drama. The camera should begin with a tight close-up on the woman's intensely focused eyes, before slowly and dramatically pulling back to reveal her full figure standing on the rain-slicked balcony. As the camera pulls back, a sudden gust of wind should whip through the scene, causing her crimson gown to billow dramatically around her, and strands of her dark hair to fly across her face. She should lift one hand slowly and deliberately, as if anticipating or reacting to something in the cityscape below. The neon lights of the metropolis in the background should flicker erratically, casting dynamic and shifting shadows across the balcony and her form. A distant siren should wail, its sound seemingly carried on the wind. The rain on the balcony floor should briefly intensify, creating visible ripples and reflections of the dramatic lighting. The overall animation should build a sense of heightened tension and impending conflict through its deliberate and impactful movements.
Aeronaut leaps across a chasm between airships, grappling hook firing mid-air.
Shaman slams their staff into the ground, unleashing a violent, controlled vortex of sand and scrap metal.
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
In a blur of silk and shadow, the masked figure sidesteps and executes a single, lethally precise strike with a poisoned stiletto.
FramePack is an image-to-video model designed for smooth, cinematic animation from a single input image. Upload a reference image to anchor composition and subject identity, then use a director-style prompt to control motion, pacing, and camera language (push-in, pull-back, reveals, etc.). FramePack exposes frame-level control via num_frames, making it convenient for generating clips at different lengths while keeping output stable and consistent.
Pricing scales with the number of frames generated.
| Frames | Price per run |
|---|---|
| 60 | $0.066 |
| 120 | $0.132 |
| 180 | $0.198 |
| 240 | $0.264 |
Write prompts like a shot list:
Grab a WaveSpeedAI API key, then call POST https://api.wavespeed.ai/api/v3/wavespeed-ai/framepack with your input as JSON. The endpoint returns a prediction id. Start polling the result endpoint around every 2 seconds, increase the interval for long-running tasks, and stop on any terminal status. On completed, read URLs from data.outputs. Examples for Framepack below.
# Submit the prediction
curl --fail-with-body --connect-timeout 10 --max-time 60 \
-X POST "https://api.wavespeed.ai/api/v3/wavespeed-ai/framepack" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $WAVESPEED_API_KEY" \
-d '{
"prompt": "A cinematic shot of a city at sunset, soft golden light",
"image": "https://example.com/your-input.jpg",
"aspect_ratio": "16:9",
"resolution": "720p",
"seed": 0,
"num_inference_steps": 25,
"num_frames": 180,
"guidance_scale": 10
}'
# Wait at least 2 seconds, then poll. Safe GET requests may be retried.
curl --fail-with-body --connect-timeout 10 --max-time 30 \
--retry 4 --retry-all-errors --retry-delay 1 \
-X GET "https://api.wavespeed.ai/api/v3/predictions/{request_id}/result" \
-H "Authorization: Bearer $WAVESPEED_API_KEY"
# Start at 2 seconds and increase the interval for long-running tasks.
# Stop on completed, failed, cancelled, or timeout.// npm install wavespeed
const { Client } = require('wavespeed');
const apiKey = process.env.WAVESPEED_API_KEY;
if (!apiKey) throw new Error('Set WAVESPEED_API_KEY');
const client = new Client(apiKey);
try {
const result = await client.run("wavespeed-ai/framepack", {
"prompt": "A cinematic shot of a city at sunset, soft golden light",
"image": "https://example.com/your-input.jpg",
"aspect_ratio": "16:9",
"resolution": "720p",
"seed": 0,
"num_inference_steps": 25,
"num_frames": 180,
"guidance_scale": 10
}, {
timeout: 3600,
pollInterval: 2.0,
});
console.log(result.outputs);
} catch (error) {
console.error('Generation failed:', error);
process.exitCode = 1;
}# pip install wavespeed
import os
from wavespeed import Client
client = Client(api_key=os.environ["WAVESPEED_API_KEY"])
try:
output = client.run(
"wavespeed-ai/framepack",
{
"prompt": "A cinematic shot of a city at sunset, soft golden light",
"image": "https://example.com/your-input.jpg",
"aspect_ratio": "16:9",
"resolution": "720p",
"seed": 0,
"num_inference_steps": 25,
"num_frames": 180,
"guidance_scale": 10
},
timeout=3600.0,
poll_interval=2.0,
)
print(output["outputs"])
except Exception as error:
raise SystemExit(f"Generation failed: {error}") from errorFramepack is a WaveSpeedAI model for video generation from images, exposed as a REST API on WaveSpeedAI. Framepack is an efficient autoregressive Image-to-Video model that generates smooth, temporally consistent videos from a single image. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing. You can call it programmatically or try it from the playground above.
POST your input parameters to the model's REST endpoint (shown in the API tab of this playground) with your WaveSpeedAI API key in the Authorization header. Submission returns a prediction ID. Poll the result endpoint starting around every 2 seconds, increase the interval for long-running tasks, and stop on any terminal status. The playground generates production-oriented Python, JavaScript, and cURL examples with timeouts, transient-error handling, and safe GET retries. Full request/response shape is documented at https://wavespeed.ai/docs/docs-api/wavespeed-ai/framepack.
Framepack starts at $0.20 per run. That figure is the base price — the final charge scales with the parameters you set in the form (output size, length, count, references, or whatever knobs this model exposes), so a higher-quality or larger output costs more than a minimal one. The exact cost for your current input is shown live next to the Generate button before you submit, and the actual per-call charge is recorded on the prediction afterwards.
Key inputs: `prompt`, `image`, `aspect_ratio`, `resolution`, `seed`, `guidance_scale`. The full JSON schema (types, defaults, allowed values) is rendered above the Generate button and mirrored in the API reference at https://wavespeed.ai/docs/docs-api/wavespeed-ai/framepack.
Average end-to-end generation time on WaveSpeedAI is around 563 seconds per request — measured across recent runs. Queue time scales with global demand; live status is visible in the prediction record.
Commercial usage rights depend on the model's license, set by its provider (WaveSpeedAI). The license summary appears on the model card above; see WaveSpeedAI's Terms of Service for platform-level conditions.