Skip to content

Video models

Video generation, image-to-video, editing, swap, and upscaling — model input schemas.

Generations are charged in credits (see Credits & plans). Every generation model also accepts mock: true for a free placeholder result.

Seedance 2.0 seedance_r2v

ByteDance's reference-to-video model that generates a clip from a text prompt plus up to 9 reference images, 3 videos, and 3 audio clips for identity, motion, and voice consistency. Output up to native 4K.

Call it viavideo tool, action: "create" (text→video; optional reference_images, video_urls, audio_urls) · raw: POST /v1/jobs/seedance_r2v

Cost303 cr per call (5 s at the default 720p). Scales with resolution: 480p ≈ 135 cr, 1080p 681 cr, 4K 1555 cr per 5 s
Mode / timeoutwebhook / 15m

Parameters — the model's input schema:

ParamTypeRequiredDefaultAllowed / rangeDescription
promptstringText prompt used to generate the video. Refer to references as @Image1, @Video1, @Audio1.
image_urlslist<string>up to 9; JPEG/PNG/WebP; ≤30 MB eachReference images. Refer to them as @Image1, @Image2… Total files across all modalities ≤ 12.
video_urlslist<string>up to 3; MP4/MOV; combined 2–15 s; total <50 MB; each ~480p (640×640) to ~720p (834×1112)Reference videos. Refer to them as @Video1, @Video2…
audio_urlslist<string>up to 3; MP3/WAV; combined ≤15 s; ≤15 MB eachReference audio. Refer to them as @Audio1… If audio is provided, at least one reference image or video is required.
resolutionenum720p480p, 720p, 1080p, 4k480p for cheap drafts (~0.45× credits), 720p default, 1080p for final delivery (2.25×), 4k for hero shots (~5.1×).
durationenumautoauto, 415Duration in seconds, or auto to let the model decide.
aspect_ratioenumautoauto, 21:9, 16:9, 4:3, 1:1, 3:4, 9:16Aspect ratio of the generated video. When omitted, our wrapper applies its vertical preset (9:16) — pass auto explicitly to follow the reference images' geometry.
generate_audiobooleantrueGenerate synchronized audio (SFX, ambient, lip-synced speech). Cost is the same either way.
bitrate_modeenumstandardstandard, highOutput bitrate mode; high requests a higher-quality, larger-file encode.
end_user_idstringUnique ID of the end user.

Our wrapper params (not part of the model input schema): out (required — workdir-relative output path), mock (optional — test placeholder), and format (optional — size preset shorts/reels/horizontal, mapped by our format_field/format_mapping to the model's aspect_ratio: shorts/reels→9:16, horizontal→16:9, default 9:16).

Limits — prompt: text only. image_urls: max 9 images, JPEG/PNG/WebP, ≤30 MB each. video_urls: max 3 videos, MP4/MOV, combined 2–15 s, total <50 MB, each between ~480p (640×640) and ~720p (834×1112). audio_urls: max 3 files, MP3/WAV, combined ≤15 s, ≤15 MB each; requires at least one image or video reference. Total reference files across all modalities ≤ 12. Output resolution up to native 4K; duration 4–15 s (or auto). No seed input — every render is a new take.

HappyHorse 1.1 Image-to-Video happyhorse_11_i2v

Animate a still image into a clip with natively generated audio and multilingual lip-sync — the default model for image(animate). The input image is the first frame, so composition, style and identity come from it; the prompt controls motion, camera and sound.

There is no audio input: the model writes the soundtrack itself, including the voice, and lip-syncs the face to it. Steer it with prose in the prompt. To put your own recording on a clip, generate it here and then call video(mix_audio) — included in the free plan. Making the mouth match a track you supply is a different job: that needs video(lipsync), which is not on the free plan.

Passing audio_url fails the job, unbilled — it is not ignored. Over MCP the call is refused outright; over REST the submit is still accepted with a job id and the job then fails before anything reaches the model, releasing the credit hold. Either way you get the reason instead of a clip with invented audio. The parameter was advertised for a time and never worked.

Call it viaimage tool, action: "animate" (no tier needed — this is the default) · raw: POST /v1/jobs/happyhorse_11_i2v

Cost140 cr for the default 5 s at 720p — billed per second: 28 cr/s at 720p, 36 cr/s at 1080p
Mode / timeoutasync job / 15 m

Parameters — the model's input schema:

ParamTypeRequiredDefaultAllowed / rangeDescription
image_urlstringJPEG/PNG/BMP/WebP, ≥300 px per side, aspect ratio 1:2.5–2.5:1, ≤20 MBThe first frame. Over MCP the animate action sends it for you.
promptstringWhat should happen: motion, camera, sound. Optional — with none, the model animates the frame on its own.
negative_promptstringArtefacts to keep out (extra limbs, text overlays, watermarks).
resolutionstring720p720p, 1080p1080p costs ~1.29× per second.
durationstring"5""3""15"Clip length in seconds; billed per second.
prompt_extendbooleantruetrue / falseLet the model rewrite your prompt for better motion; false keeps your wording exactly.
seedintegerrandom0–2147483647Same seed + same prompt and frame reproduces a take.

Our wrapper params (not part of the model input schema): out (required — workdir-relative output path), mock (optional — test placeholder), and format (optional — a quality preset mapped to resolution: shorts/reels720p, horizontal1080p).

Limits — the clip's aspect ratio follows the input image; there is no aspect parameter. No last frame: this model animates from one frame only — for a pinned start and end frame use tier: "pro" (Kling), which also has the multi-shot timeline. 480p is not offered: the tier is unpriced upstream, so it would cost the same as 720p for a lower-quality result.

Seedance 2.5 seedance_2_5

The long-form tier: up to 30 seconds (against 15), up to 30 reference images (against 9), 10 video and 10 audio references, and mov output for grading. It is the only tier that accepts audio references with no image or video alongside them.

It is not a superset of Seedance 2.0, though — it has no 1080p or 4K. Where 2.0 goes up to native 4K, this tier stops at 720p, so a delivery master at high resolution belongs on 2.0 and length belongs here.

Call it viavideo(action: "create", tier: "max", prompt, out) · raw: POST /v1/jobs/seedance_2_5

Cost303 cr for the 5s default at 720p · 60 cr/s at 720p, 27 cr/s at 480p
A 30-second clip1,815 cr at 720p · 810 cr at 480p
Mode / timeoutasync job / 30m

The price per second is the same as full Seedance 2.0 — length is what you are buying here, not a premium. Below 15 seconds, choose this tier for a capability rather than for duration: audio-only input, more than 9 reference images, or mov output. If you need none of those and no 1080p/4K, the 2.0 tiers are the better-understood route.

ParameterValues
duration430, or auto to let the model pace it from the prompt
resolution480p · 720p (this tier has no 1080p or 4K)
aspect_ratioauto · 21:9 · 16:9 · 4:3 · 1:1 · 3:4 · 9:16
image_urlsup to 30, cited as @Image 1
video_urlsup to 10, 2–30s each and 30s combined, cited as @Video 1
audio_urlsup to 10, 2–30s each and 30s combined, cited as @Audio 1
output_formatmp4 (default) · mov — 10-bit with PCM audio
seedinteger, or -1/omitted for a new take

Limits — a start/end frame and reference media are two separate modes and cannot be combined; a request carrying both is refused before it is sent. With a start frame the output shape comes from that frame and aspect_ratio is ignored.

Writing for it — the extra seconds are for pacing, not for a longer prompt: the same 150–200 word ceiling that degrades the 2.0 tiers applies. Label the beats (Shot 1: … Shot 2: …) — an unlabelled 30-second prompt renders as one continuous take. Iterate at 480p and confirm at 720p; across 30 seconds that difference is over 1,000 credits. Full guidance: models(action: "guide", model: "seedance_2_5").

Seedance 2.0 Fast seedance_2_fast · Seedance 2.0 Mini seedance_2_mini

The same model as seedance_r2v — same prompt, same reference channels — at a fraction of the credits, in exchange for the 1080p and 4K tiers.

MiniFastFull
5 s at 720p76 cr121 cr303 cr
5 s at 480p34 cr54 cr135 cr
15 s at 720p227 cr363 cr908 cr
Max resolution720p720p4K

Billed per second, so the figures above scale with duration; the charge is computed on the whole job rather than rounded per second, which is why 15 s is not exactly three times 5 s.

Call them viavideo tool, action: "create" with tier: "mini" or tier: "fast" · raw: POST /v1/jobs/seedance_2_mini and POST /v1/jobs/seedance_2_fast respectively

Use Mini to find the shot and Fast for everyday work; re-run the same prompt on the full model only when you need 1080p or 4K.

Parameters — identical to seedance_r2v above, with two differences:

ParamTypeDefaultAllowedDescription
resolutionstring720p480p, 720pNo 1080p or 4K on these tiers — the model refuses them, so the job fails rather than silently downscaling. 480p is ~0.45× the credits.
durationstring"5""4""15"Clip length in seconds; billed per second.

Limits — up to 9 reference images, 3 reference videos (2–15 s each, 15 s combined), 3 reference audios (2–30 s each, 30 s combined). References are cited positionally within their own type: @Image 1, @Video 1, @Audio 1 — the number counts only references of that type, so the first video is @Video 1 even if images came before it.

HappyHorse 1.1 Reference-to-Video happyhorse_11_r2v

Give it 1–9 reference images and a prompt that cites them[Image 1], [Image 2] — and it composes their subjects into one new scene. Use it to put a character in a new setting, pair a person with a product, or keep a face consistent across shots. Audio is generated with the picture, as on the i2v model.

Unlike the i2v model, this one builds the frame rather than animating yours: the prompt is required, and the output shape comes from aspect_ratio (default 16:9), not from the references' geometry.

Call it viavideo tool, action: "create", tier: "lite" · raw: POST /v1/jobs/happyhorse_11_r2v

Cost140 cr for the default 5 s at 720p — billed per second: 28 cr/s at 720p, 36 cr/s at 1080p
Mode / timeoutasync job / 15 m

Parameters — the model's input schema:

ParamTypeRequiredDefaultAllowed / rangeDescription
reference_image_urlsarray1–9 images, JPEG/PNG/WebP, shortest side ≥400 px, ≤20 MB eachThe references. Order is meaning: the first is [Image 1], the second [Image 2]. Over MCP pass reference_images.
promptstring≤5000 charsThe scene, citing each reference by position and naming the subject you mean in it: "the woman in the red coat in [Image 1] walks past [Image 2]".
negative_promptstringArtefacts to keep out.
aspect_ratiostring16:916:9, 9:16, 3:4, 4:3, 4:5, 5:4, 1:1, 9:21, 21:9Shape of the generated video. Portrait references still give 16:9 unless you ask otherwise.
resolutionstring720p720p, 1080p1080p costs ~1.29× per second.
durationstring"5""3""15"Clip length in seconds; billed per second.
prompt_extendbooleantruetrue / falseLet the model rewrite your prompt; false keeps your wording exactly — worth setting when your [Image N] citations are doing precise work.
seedintegerrandom0–2147483647Same seed + same prompt and references reproduces a take.

Our wrapper params (not part of the model input schema): out (required — workdir-relative output path), mock (optional — test placeholder), and format (optional — an aspect preset mapped to aspect_ratio: shorts/reels/vertical/portrait9:16, square1:1, horizontal/landscape/wide16:9, cinematic21:9).

Limitsimages only: there is no video or audio reference channel (that is Seedance — drop the tier), and no audio input on this model either. Cite every reference you pass; an uncited image is a paid input the model may ignore. 480p is not offered, for the same reason as on the i2v model.

Kling v3 Standard Image-to-Video kling_v3_std_i2v

Image-to-video at standard quality with cinematic visuals, fluid motion, native audio generation, and custom element support. What it has that the default animate model does not: a multi-shot timeline (multi_prompt), an end frame (end_image_url), and elements (reference images/videos, optionally with a bound voice).

Call it viaimage tool, action: "animate", model: "kling_v3_std_i2v" (it is no longer a tiertier: "pro" selects the Kling pro tier) · raw: POST /v1/jobs/kling_v3_std_i2v

Asking animate for multi_prompt, shot_type, end_image_url, elements or audio without naming a Kling model returns an input error rather than a quietly different clip — the default model has none of them.

The image(animate) tool exposes the multi-shot timeline directly: pass multi_prompt (an array of {prompt, duration} shots) and optional shot_type instead of a single prompt. The tool validates Kling's caps before submitting — at most 6 shots and a combined duration ≤ 15 s (each shot 1–15 s, default 5) — and rejects prompt + multi_prompt together.

Cost126 cr per call (5 s, audio on — the default). Audio off: 85 cr. With a cloned voice bound to an element (elements[].voice_id): 154 cr
Mode / timeoutwebhook / 15m

Parameters — the model's input schema:

ParamTypeRequiredDefaultAllowed / rangeDescription
start_image_urlstringURL of the image used as the starting frame of the video.
promptstringmaxLength 2500Text prompt for video generation. Either prompt or multi_prompt must be provided, but not both.
multi_promptarray<object>items: { prompt: string (required), duration: string default "5", enum "1"–"15" }List of prompts for multi-shot generation; divides the video into multiple shots.
durationstring"5""3","4","5","6","7","8","9","10","11","12","13","14","15"Duration of the generated video in seconds.
generate_audiobooleantrueGenerate native audio for the video. Supports Chinese/English; other languages auto-translated to English.
end_image_urlstringURL of the image used as the end frame of the video.
elementsarray<object>items: { frontal_image_url, reference_image_urls (1–3, ≥1 required), video_url, voice_id }Characters/objects to inject. Each entry is either an image set (frontal + reference images) or a video. Reference in prompt as @Element1, @Element2, etc. Only one element may carry a video.
shot_typestring"customize"customize, intelligentMulti-shot generation type; intelligent lets the model auto-determine shot structure.
negative_promptstring"blur, distort, and low quality"maxLength 2500What to steer away from.
cfg_scalenumber0.50–1Classifier-Free Guidance scale — how strictly the model follows the prompt.

Our wrapper params (not part of the model input schema): out (required — output filename) and mock (optional — test placeholder). format is accepted by our image MCP tool but is NOT forwarded to this model (the model has no size/aspect field; YAML format_field is empty), so it has no effect here.

Limits (model limits):

  • Prompt / negative_prompt: max 2500 characters each.
  • Duration: 3–15 s (top-level); multi-shot element duration 1–15 s.
  • start_image_url / end_image_url / element images: max file size 10 MB, min 300×300 px, aspect ratio 0.40–2.50; accepted formats jpg, jpeg, png, webp, gif, avif.
  • Element video_url: max 200 MB, 720–2160 px per side, 3–10.05 s, 24–60 FPS; accepted formats mp4, mov, webm, m4v, gif.
  • Element reference_image_urls: 1–3 images, at least one required.

Kling v3 Pro Image-to-Video kling_v3_pro_i2v

Top-tier image-to-video with cinematic visuals, fluid motion, native audio generation, and custom element (character/object) injection.

Call it via — MCP tool image, action animate with tier: "pro" (routes animate_prokling_v3_pro_i2v) · raw: POST /v1/jobs/kling_v3_pro_i2v

The image(animate) tool exposes the multi-shot timeline directly: pass multi_prompt (an array of {prompt, duration} shots) and optional shot_type instead of a single prompt. The tool validates Kling's caps before submitting — at most 6 shots and a combined duration ≤ 15 s (each shot 1–15 s, default 5) — and rejects prompt + multi_prompt together. Billed per second (no per-shot surcharge).

Cost168 cr per call (5 s, audio on — the default). Audio off: 113 cr. With a cloned voice bound to an element (elements[].voice_id): 197 cr
Mode / timeoutwebhook / 15m (from our YAML)

Parameters — the model's input schema:

ParamTypeRequiredDefaultAllowed / rangeDescription
start_image_urlstringMax 10MB; min 300×300px; aspect ratio 0.40–2.50URL of the start frame image. Aspect ratio of the output is inferred from this image.
promptstringmaxLength 2500Text prompt. Either prompt or multi_prompt must be provided, but not both.
multi_promptKlingV3MultiPromptElement[]array of {prompt (req), duration}Multi-shot prompt list; divides the video into shots. Overrides prompt. Each shot duration enum "1""15", default "5".
durationstring (enum)"5""3","4","5","6","7","8","9","10","11","12","13","14","15"Total video length in seconds.
generate_audiobooleantrueGenerate native audio (Chinese/English native; other languages auto-translated to English).
end_image_urlstring | nullMax 10MB; min 300×300px; aspect ratio 0.40–2.50Optional end frame image URL (start-to-end interpolation).
elementsKlingV3ComboElementInput[] | nullarrayReference characters/objects to inject. Each item is an image set (frontal_image_url + reference_image_urls) or a video (video_url), with optional voice_id. Reference in prompt as @Element1, @Element2.
shot_typestring (enum)"customize"customize, intelligentMulti-shot generation type; intelligent lets the model auto-plan shot structure.
negative_promptstring"blur, distort, and low quality"maxLength 2500Things to avoid.
cfg_scalenumber0.50–1Classifier-free guidance scale; higher = stricter prompt adherence.

elements[] sub-fields: frontal_image_url (string, main view), reference_image_urls (string[], 1–3 images from different angles, at least one required when using image elements), video_url (string, max one video element per request), voice_id (string; voice binding supported only for video elements, not image elements).

Our wrapper params (not part of the model input schema): out (required — workdir-relative output path), mock (optional — test placeholder). We do not map a format field — there is no model size/aspect_ratio parameter; aspect ratio is inferred from start_image_url (format_field: "").

Limits — model limits:

  • Video duration: 3–15 seconds (single-prompt duration); per-shot multi_prompt duration 1–15s; shot durations sum to total length.
  • prompt / negative_prompt: max 2500 characters each.
  • start_image_url / end_image_url / element images: max 10 MB; min 300×300 px; aspect ratio 0.40–2.50; formats jpg, jpeg, png, webp, gif, avif.
  • Element reference_image_urls: 1–3 images.
  • Element video_url: max 200 MB; 720–2160 px; 3.0–10.05 s; 24–60 fps; formats mp4, mov, webm, m4v, gif; max one video element per request.
  • Audio: native Chinese and English; other languages auto-translated to English.
  • Cost: ≈22 cr/s (audio off, the catalog default), ≈34 cr/s (audio on).

Kling O3 Video Edit kling_o3_video_edit

Video-to-video editing with Kling O3 — restyle footage, replace characters/objects, or insert elements into a source video using reference images and structured element definitions.

Call it viavideo tool, action edit_ref (video(edit_ref) — requires video_url, prompt, reference_images) · raw: POST /v1/jobs/kling_o3_video_edit

Cost126 cr per call
Mode / timeoutwebhook / 15m

Parameters — the model's input schema:

ParamTypeRequiredDefaultAllowed / rangeDescription
promptstringmaxLength 2500Text prompt for the edit. Reference the source video as @Video1, elements as @Element1@ElementN, and reference images as @Image1@ImageN.
video_urlstring.mp4/.mov only; 720–2160px; 3.0–10.05s; 24–60 FPS; ≤200MBReference (source) video URL to edit.
image_urlsstring[] | nullnulleach image ≤10MB, ≥300×300px, aspect 0.40–2.50Reference images for style/appearance, cited in prompt as @Image1, @Image2, … Max 4 total (elements + reference images) when using video.
keep_audiobooleantruetrue / falseKeep the original audio from the source video.
elementsobject[] | nullnullarray of { frontal_image_url: string, reference_image_urls: string[] (1–3) }Elements (characters/objects) to inject, cited in prompt as @Element1, @Element2. Each element needs a frontal image and 1–3 reference images (per-image limits same as image_urls).
shot_typestringcustomizeconst customizeMulti-shot generation type (only customize is accepted).

Our wrapper params (not part of the model input schema): out (required — workdir-relative output path), mock (optional — skip the API call and return a placeholder). This model has no format mapping (no model size field). Our video(edit_ref) action collects reference photos under reference_images and maps them to the model's image_urls field; the optional elements argument passes through to the model's elements input (cite as @Element1).

Limits — prompt ≤2500 chars · source video .mp4/.mov, 3.0–10.05s, 720–2160px, 24–60 FPS, ≤200MB · reference/element images ≤10MB each, min 300×300px, aspect ratio 0.40–2.50 · max 4 total (elements + reference images) when using video.

PixVerse Swap pixverse_swap

Generate high-quality video clips by swapping a person, object, or background in source footage using a reference image — keyframe-based, prompt-free.

Call it viavideo tool, action swap (routes to pixverse_swap) · raw: POST /v1/jobs/pixverse_swap

Cost40 cr per 5 s clip at 720p (the default). 360p/540p: 31 cr. Clips over 5 s double (billed from the measured output length)
Mode / timeoutwebhook / 15m (from our YAML)

Parameters — the model's input schema:

ParamTypeRequiredDefaultAllowed / rangeDescription
video_urlstringURLURL of the external video to swap.
image_urlstringURLURL of the target image for swapping (the element to swap IN).
modestringpersonperson, object, backgroundThe swap mode to use.
keyframe_idinteger1min 1, max = duration_seconds × 24Keyframe ID for face/object mapping. Input video is normalized to 24 FPS, so keyframe 1 = first frame, keyframe 24 = 1s in.
resolutionstring720p360p, 540p, 720pOutput resolution (1080p not supported).
original_sound_switchbooleantruetrue / falseWhether to keep the original audio.
seedinteger | nullnullany integerRandom seed for generation.

Our wrapper params (not part of the model input schema): out (required — workdir-relative output path), mock (optional — skip the API call and return a placeholder for testing). This model does not use our format→size mapping (format_field is empty).

Limits:

  • Input video formats: MP4, MOV, WebM, M4V, GIF.
  • Reference image formats: JPG, JPEG, PNG, WebP, GIF, AVIF.
  • Resolution: 360p / 540p / 720p (1080p listed but not supported).
  • Cost is per 5-second clip (360p/540p 31 cr, 720p 40 cr); videos longer than 5s cost double. Best quality on clips under ~10 seconds.
  • keyframe_id upper bound is duration_seconds × 24 (24 FPS normalized).

Wan 2.7 Video Edit wan_27_video_edit

Video-to-video editing driven by a text instruction (and optional reference image) — restyle, transform scenes, or apply style transfer to existing footage using WAN 2.7.

Call it viavideo tool, action: "edit" (restyle existing footage) · raw: POST /v1/jobs/wan_27_video_edit

Cost100 cr per call
Mode / timeoutwebhook / 15m

Parameters — the model's input schema:

ParamTypeRequiredDefaultAllowed / rangeDescription
promptstringminLength 1Editing instruction or style-transfer description.
video_urlstringMP4/MOV, 2–10s, ≤100 MBURL of the input video to edit.
reference_image_urlstring (nullable)nulljpg/jpeg/png/webp/gif/avifReference image URL for reference-based editing.
resolutionstring1080p720p, 1080pOutput video resolution tier.
aspect_ratiostring (nullable)null (matches input)16:9, 9:16, 1:1, 4:3, 3:4Aspect ratio of the generated video; defaults to the input video's.
durationinteger00, 210Output duration in seconds. 0 = match input; when set (2–10) truncates from the start.
audio_settingstringautoauto, originAudio handling. auto: model decides whether to regenerate audio. origin: preserve original audio.
seedinteger (nullable)null0–2147483647Random seed for reproducibility.
enable_safety_checkerbooleantruetrue / falseEnable content moderation on input and output.

Wrapper params (our API, not part of the model input schema): out (required — workdir-relative output filename), mock (optional — return a test placeholder, skips the model call). This model defines format_field: "", so there is no format → model-size mapping.

Limits — Source video: MP4/MOV, duration 2–10 s, max file size 100 MB (upload timeout 30 s). Reference image formats: jpg, jpeg, png, webp, gif, avif. Output duration: 0 (match input) or 2–10 s. Output resolution: 720p or 1080p. Seed range: 0–2147483647.

Topaz Video Upscale topaz_upscale_video

Professional-grade video upscaling and enhancement using Topaz technology — upscale resolution, interpolate frames, and clean up noise/compression artifacts.

Call it viavideo tool, action upscale (pass video_url) · raw: POST /v1/jobs/topaz_upscale_video

CostScales with output resolution and duration: 2 cr/s up to 720p, 4 cr/s for 720p–1080p, 16 cr/s above 1080p (our default absent a declared tier — see expected_resolution_tier); doubles at 60fps output; Gaia 2 costs half. Billed from the measured output length
Mode / timeoutwebhook / 15m

Parameters — the model's input schema:

ParamTypeRequiredDefaultAllowed / rangeDescription
video_urlstringURL of the video to upscale.
modelstringProteusProteus, Artemis HQ, Artemis MQ, Artemis LQ, Nyx, Nyx Fast, Nyx XL, Nyx HF, Gaia HQ, Gaia CG, Gaia 2, Starlight Precise 1, Starlight Precise 2, Starlight Precise 2.5, Starlight HQ, Starlight Mini, Starlight Sharp, Starlight Fast 1, Starlight Fast 2Enhancement model. Proteus = most videos; Artemis = denoise+sharpen; Nyx = dedicated denoising; Gaia HQ/CG = rendered content; Gaia 2 = animation/motion graphics at 2x; Starlight = generative diffusion-based upscaling.
upscale_factornumber21–4Factor to upscale by (e.g. 2.0 doubles width and height).
target_fpsinteger— (null)16–60Target FPS for frame interpolation. If set, interpolation is enabled.
compressionnumber— (null, model-dependent)0.0–1.0Compression artifact removal level.
noisenumber— (null, model-dependent)0.0–1.0Noise reduction level.
halonumber— (null, model-dependent)0.0–1.0Halo reduction level.
grainnumber— (null, model-dependent)0.0–0.1 (step 0.01)Film grain amount.
recover_detailnumber— (null)0.0–1.0Recover original detail; higher preserves more original detail.
H264_outputbooleanfalsetrue / falseUse H264 codec for output. Default (false) = H265.

Our wrapper params (not part of the model input schema): out (required — workdir-relative output path), mock (optional — test placeholder). This model has no format mapping (format_field is empty). expected_resolution_tier (string, optional, enum ≤720p/720p-1080p/>1080p) is a billing hint only — never sent to the provider — that declares the expected output resolution (after upscale_factor) for accurate credits; omit it and you're billed at the safe >1080p default.

Limits — accepted input formats: mp4, mov, webm, m4v, gif. Max upscale_factor 4x; target_fps capped at 60. Pricing scales with duration and resolution: 2 cr/sec up to 720p, 4 cr/sec for 720p–1080p, 16 cr/sec above 1080p (assumed if expected_resolution_tier is not declared); price doubles for 60fps output; Gaia 2 costs half. (No published max duration / resolution / file-size limit.)

Framehood