Seedream 5.0 Pro jest już LIVE | Wypróbuj w Generator obrazów →

Gen4 Turbo

runwayml /

RunwayML Gen4 Turbo is an image-to-video model that generates high-quality videos from images. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.

image-to-video
Wejście

Przeciągnij i upuść lub kliknij, aby przesłać

Bezczynny

$0.05za uruchomienie·~20 / $1

Dalej:

Powiązane modele

README

Runway Gen4 Turbo

Bring your images to life with AI-powered video generation. Runway Gen4 Turbo transforms static images into dynamic videos based on your text descriptions — perfect for creating cinematic motion, animated scenes, and engaging visual content.

Why It Looks Great

  • Image-to-video synthesis: Animates your source image with natural, fluid motion guided by your prompt.
  • Prompt Enhancer: Built-in tool to refine and improve your text descriptions for better results.
  • Flexible aspect ratios: Supports 16:9, 4:3, 1:1, 3:4, and 9:16 for any output format.
  • High-quality motion: Generates smooth, realistic movement that respects the original image composition.
  • Turbo speed: Optimized for fast generation without compromising visual quality.

Parameters

ParameterRequiredDescription
promptYesText description of the motion and action you want (e.g., "The model walks forward, fabric flowing in the wind").
imageYesSource image to animate (upload or public URL).
aspect_ratioNoOutput aspect ratio: 16:9, 4:3, 1:1, 3:4, or 9:16. Leave empty to match source.

How to Use

  1. Write your prompt — describe the motion, action, and atmosphere you want in the video.
  2. Use Prompt Enhancer (optional) — click the button to refine your description for better results.
  3. Upload your image — drag and drop or paste a public URL.
  4. Choose aspect ratio (optional) — select an output format or leave empty to match the source image.
  5. Run — click the button to generate.
  6. Download — preview and save your generated video.

Pricing

Flat rate per video generation.

OutputCost
Per second$0.01

Best Use Cases

  • Fashion & Lookbooks — Animate model shots with realistic fabric movement and poses.
  • Product Showcases — Bring product images to life with subtle motion and dynamic angles.
  • Social Media Content — Create eye-catching video content from existing photos.
  • Art & Illustration — Add movement to artwork, illustrations, and concept art.
  • Marketing & Ads — Transform static campaign images into engaging video ads.

Example Prompts

  • "A model walks forward slowly, the sculptural gown catching the light as fabric flows gracefully"
  • "Camera slowly zooms in as soft wind moves through the hair"
  • "The subject turns their head to look at the camera with a subtle smile"
  • "Gentle camera pan to the right, revealing more of the scene"
  • "Leaves fall softly in the background while the subject remains still"

Pro Tips for Best Results

  • Be specific about motion — describe what moves, how it moves, and the camera behavior.
  • Use the Prompt Enhancer to add cinematic details to simple descriptions.
  • High-quality source images with clear subjects produce the best animations.
  • Describe both subject motion and camera movement for more dynamic results.
  • Keep prompts focused — one clear action often works better than multiple complex movements.
  • Match aspect ratio to your intended platform: 9:16 for TikTok/Reels, 16:9 for YouTube.

Notes

  • If using a URL for the image, ensure it is publicly accessible. A preview thumbnail confirms successful loading.
  • Generation time may vary based on current queue load.
  • Complex motions or detailed prompts may require iteration to achieve desired results.
Uwaga:Ta strona korzysta z modeli AI udostępnianych przez podmioty trzecie.

Gen4 Turbo API — Quick start

Grab a WaveSpeedAI API key, then call POST https://api.wavespeed.ai/api/v3/runwayml/gen4-turbo 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 output values from data.outputs. Examples for Gen4 Turbo below.

HTTP example
set -euo pipefail

: "${WAVESPEED_API_KEY:?Set WAVESPEED_API_KEY}"

REQUEST_BODY=$(cat <<'JSON'
{
    "prompt": "A cinematic shot of a city at sunset, soft golden light",
    "image": "https://interactive-examples.mdn.mozilla.net/media/cc0-images/painted-hand-298-332.jpg",
    "duration": 5,
    "aspect_ratio": "16:9"
}
JSON
)

# 1. Submit the prediction.
SUBMIT_RESPONSE=$(curl --silent --show-error --fail-with-body \
  -X POST "https://api.wavespeed.ai/api/v3/runwayml/gen4-turbo" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $WAVESPEED_API_KEY" \
  -d "$REQUEST_BODY")

TASK=$(printf '%s' "$SUBMIT_RESPONSE" | jq 'if has("data") then .data else . end')
PREDICTION_ID=$(printf '%s' "$TASK" | jq -r '.id')
if [ -z "$PREDICTION_ID" ] || [ "$PREDICTION_ID" = "null" ]; then
  printf 'Submission response did not contain a prediction id
' >&2
  exit 1
fi
RESULT_URL=$(printf '%s' "$TASK" | jq -r '.urls.get // empty')
if [ -z "$RESULT_URL" ]; then
  RESULT_URL="https://api.wavespeed.ai/api/v3/predictions/$PREDICTION_ID/result"
fi

# 2. Poll until the prediction finishes.
while true; do
  RESPONSE=$(curl --silent --show-error --fail-with-body "$RESULT_URL" \
    -H "Authorization: Bearer $WAVESPEED_API_KEY")
  RESULT=$(printf '%s' "$RESPONSE" | jq 'if has("data") then .data else . end')
  STATUS=$(printf '%s' "$RESULT" | jq -r '.status')
  case "$STATUS" in
    completed) printf '%s\n' "$RESULT" | jq '.outputs'; break ;;
    failed|cancelled|timeout) printf '%s\n' "$RESULT" | jq . >&2; exit 1 ;;
    created|processing) sleep 2 ;;
    *) printf 'Unexpected status: %s
' "$STATUS" >&2; exit 1 ;;
  esac
done
Node.js example
const submitUrl = "https://api.wavespeed.ai/api/v3/runwayml/gen4-turbo";
const apiKey = process.env.WAVESPEED_API_KEY;
if (!apiKey) throw new Error('Set WAVESPEED_API_KEY');

async function requestJson(url, options = {}) {
  const response = await fetch(url, options);
  if (!response.ok) throw new Error(await response.text());
  return response.json();
}

// 1. Submit the prediction.
const body = await requestJson(submitUrl, {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${apiKey}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
        "prompt": "A cinematic shot of a city at sunset, soft golden light",
        "image": "https://interactive-examples.mdn.mozilla.net/media/cc0-images/painted-hand-298-332.jpg",
        "duration": 5,
        "aspect_ratio": "16:9"
}),
});
const task = body.data ?? body;
if (!task.id) throw new Error("Submission response did not contain a prediction id");
const resultUrl = task.urls?.get ||
  `https://api.wavespeed.ai/api/v3/predictions/${task.id}/result`;

// 2. Poll until the prediction finishes.
while (true) {
  const resultBody = await requestJson(resultUrl, {
    headers: { "Authorization": `Bearer ${apiKey}` },
  });
  const result = resultBody.data ?? resultBody;
  if (result.status === "completed") {
    console.log(result.outputs);
    break;
  }
  if (["failed", "cancelled", "timeout"].includes(result.status)) throw new Error(JSON.stringify(result));
  if (!["created", "processing"].includes(result.status)) throw new Error("Unexpected status: " + result.status);
  await new Promise(resolve => setTimeout(resolve, 2000));
}
Python example
import json
import os
import time
from urllib.request import Request, urlopen

api_key = os.environ["WAVESPEED_API_KEY"]
headers = {"Authorization": f"Bearer {api_key}", "Content-Type": "application/json"}
payload = {
    "prompt": "A cinematic shot of a city at sunset, soft golden light",
    "image": "https://interactive-examples.mdn.mozilla.net/media/cc0-images/painted-hand-298-332.jpg",
    "duration": 5,
    "aspect_ratio": "16:9"
}

def request_json(url, data=None):
    request = Request(url, data=data, headers=headers, method="POST" if data else "GET")
    with urlopen(request) as response:
        return json.load(response)

# 1. Submit the prediction.
body = request_json("https://api.wavespeed.ai/api/v3/runwayml/gen4-turbo", json.dumps(payload).encode())
task = body.get("data", body)
if not task.get("id"):
    raise RuntimeError("Submission response did not contain a prediction id")
result_url = task.get("urls", {}).get("get") or f"https://api.wavespeed.ai/api/v3/predictions/{task['id']}/result"

# 2. Poll until the prediction finishes.
while True:
    result_body = request_json(result_url)
    result = result_body.get("data", result_body)
    status = result.get("status")
    if status == "completed":
        print(result.get("outputs", []))
        break
    if status in {"failed", "cancelled", "timeout"}:
        raise RuntimeError(result)
    if status not in {"created", "processing"}:
        raise RuntimeError(f"Unexpected status: {status}")
    time.sleep(2)

Gen4 Turbo API — Frequently asked questions

What is the Gen4 Turbo API?

Gen4 Turbo is a Runwayml model for video generation from images, exposed as a REST API on WaveSpeedAI. RunwayML Gen4 Turbo is an image-to-video model that generates high-quality videos from images. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing. You can call it programmatically or try it from the playground above.

How do I call the Gen4 Turbo API?

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/runwayml/runwayml-gen4-turbo.

How much does Gen4 Turbo cost per run?

Gen4 Turbo starts at $0.050 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.

What inputs does Gen4 Turbo accept?

Key inputs: `prompt`, `image`, `aspect_ratio`, `duration`. 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/runwayml/runwayml-gen4-turbo.

How long does Gen4 Turbo take to generate?

Average end-to-end generation time on WaveSpeedAI is around 35 seconds per request — measured across recent runs. Queue time scales with global demand; live status is visible in the prediction record.

Can I use Gen4 Turbo outputs commercially?

Commercial usage rights depend on the model's license, set by its provider (Runwayml). The license summary appears on the model card above; see WaveSpeedAI's Terms of Service for platform-level conditions.

Gen4 Turbo | Fast Image-to-Video API | WaveSpeedAI