Runway
Runway Gen 4.5
runway-gen-4.5/text-to-video
Upon release, it ranked first on the Artificial Analysis text-to-video leaderboard with 1247 Elo, showing outstanding prompt adherence, physics, and human motion, making it well suited for film storyboarding and brand short films
Try runway-gen-4.5/text-to-video
Input
Showcases
View all showcasesOutput
videoPricing
runway-gen-4.5/text-to-video per second
| Unit Price | $0.1715 |
|---|
Positioning Overview
The Runway Gen-4.5 text-to-video route is a video generation model built for professional imaging workflows: input a text prompt and it produces finished footage. It is heavily optimized for prompt adherence, motion quality, and physical behavior, supports both 16:9 and 9:16 aspect ratios, and lets you control clip length in 5-second, 8-second, and 10-second increments. It suits film and TV previz, brand short films, and design exploration teams that need to turn storyboard descriptions into evaluable frames quickly, as well as developers generating shots in batches within automated pipelines.
Core Highlights
- Improved prompt adherence and motion quality — clear gains in instruction following and dynamic performance over the previous generation, so camera and action descriptions land more reliably in the final footage.
- More natural physics and human motion — strong modeling of complex physical processes and realistic human movement, suited to shots that need credible action.
- Handles both realistic and stylized looks — the same route can produce photographic realism or fully stylized visual expression, making style experiments easier to keep consistent.
- Aspect ratio and duration specified per scene — supports 16:9 or 9:16 output and offers 5-second, 8-second, and 10-second increments to match delivery formats.
Capability Details
Text-to-video generation: pass a prompt of up to 1000 characters to generate video, ideal for quickly turning storyboard text into reviewable motion assets.
Duration control: duration supports 5, 8, and 10 seconds, defaulting to 5 seconds; choose the length that matches the shot's pacing and cut down on post-production trimming.
Landscape/portrait switching: aspect_ratio supports 16:9 and 9:16, defaulting to 16:9, so a single call produces assets suited to landscape or portrait delivery.
Execution of camera and action descriptions: high adherence to framing, movement, and action instructions, so developers can describe camera language in structured prompts without repeated trial and error.
Use Cases
- Film and TV teams doing pre-production previz and storyboard validation — generate short shots from storyboard text descriptions for table reads, shot design, and production planning discussions.
- Brand marketing teams generating portrait short-video assets — generate product and scene shots in 9:16 at 5 or 10 seconds, ready for short-video placement on social platforms.
- Design teams exploring concept videos — turn creative concepts into prompts and batch-generate stylized clips as motion references for pitches and visual direction comparisons.
- Developers building batch video generation pipelines — submit prompts along with aspect ratio and duration parameters through a unified interface and plug generation into automated content production pipelines.
Limitations and Selection Advice
Generated results can still get causal order wrong, with effects appearing before causes; objects may pop in or vanish across frames, and temporal consistency fluctuates; some physical results and action performance deviate from expectations and require multiple generations to filter. It is therefore not suited to finished-grade long-form production that demands extremely high shot continuity and cannot be manually reviewed. If shots require strict temporal stability or specific physical behavior, prepare fallback options or switch to a model better suited to those needs.
Frequently asked questions
View all FAQs →-
What first-frame image can I use?
One image per request in jpeg, png or webp, up to 10MB; SVG isn't supported. Ideally match the image to the output ratio. When they differ, the first frame is center-cropped, so keep the subject in the middle.
-
Can I add a last frame?
No. This model uses a single first frame, and the ending comes from the prompt and the model. To pin down the final picture, Kling 2.5 Turbo Image-to-Video accepts an optional last frame.
-
Which ratios, lengths and resolution are supported?
16:9, 9:16, 4:3, 3:4, 1:1, defaulting to 16:9; 5, 8 or 10 seconds in every ratio, defaulting to 5; resolution is fixed at 720p.
-
Is there audio in the output?
No. Clips are picture only, so add music and voice-over in your edit.
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: runway-gen-4.5/text-to-video
routestringOptionalCurrent fixed value: default
inputobjectRequired
Business parameters for runway-gen-4.5/text-to-video and route default — see the parameter table below.
promptstringRequiredminLength 1maxLength 1000Text description of the video, maximum length 1000 characters.
durationintegerOptionalDefault: 5min 5max 10Video duration (seconds), default 5. When aspect_ratio is 9:16, only 5/10 are supported; other aspect ratios also support 8 seconds, but 8-second requests cannot be generated in fallback mode.
5810aspect_ratiostringOptionalDefault: "16:9"Video aspect ratio, default 16:9; when set to 9:16, only 5-second or 10-second durations are supported.
16:99:16callbackobjectOptional
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": "runway-gen-4.5/text-to-video",
"input": {
"prompt": "…",
"duration": 5,
"aspect_ratio": "16:9"
}
}' 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: "runway-gen-4.5/text-to-video",
input: {
"prompt": "…",
"duration": 5,
"aspect_ratio": "16:9"
}
}),
});
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": "runway-gen-4.5/text-to-video",
"input": {
"prompt": "…",
"duration": 5,
"aspect_ratio": "16:9"
}
},
)
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
-
FLUX 3 Max Black Forest Labs $0.061 /second -
Creatify Boreal Creatify $0.015 /second -
Kling 4.0 Kuaishou $0.330 /second -
Wan 2.6 Flash Alibaba $0.043 /second -
LTX 2.5 Fast Lightricks $0.086 /second -
Kling AI Avatar Kuaishou -- -
HeyGen Avatar IV HeyGen $0.150 /second -
Veo 3.1 Lite Google $0.060 /second -
Runway Gen 4.5 Runway $0.172 /second -
MiniMax H3 MiniMax $0.072 /second -
Vidu Q3 Vidu $0.149 /second -
Kling 3.0 Turbo Kuaishou $0.130 /second