Introduction
Video AI’s enlargement tool is for a small recording that needs a larger place in an edit: an interview insert, a phone clip or an animated scene. It offers source-specific processing rather than a single look, so a face-damaged transfer and a clean computer-rendered shot need not receive the same treatment.
Key features & highlights
The 21-model selection covers general enhancement, several degrees of source damage, edge halos, repeating interference and interlacing. Proteus provides the initial setting, Rhea focuses on faithful detail, and Iris addresses faces in degraded material. Dione is relevant when alternating scan lines are part of the recording rather than ordinary blur.
The podcast trial expanded a five-second 640×360 shot into a 1920×1080 file without losing its microphone audio or 24 fps timing. In the street trial, bicycle contours became easier to read but block-shaped compression remained in places. The result demonstrates useful enlargement while leaving a visible ceiling on what the damaged input can support.
Request parameters
| Parameter | Required | Description |
|---|---|---|
video_url | Yes | Required MP4 URL or upload, 1–60 seconds; longer or shorter sources are rejected before acceptance. Enlargement retains the source duration and audio track. at least 1 characters |
preset | No |
Default: |
resolution | No | Choose |
Pricing
Upscale usage depends on the selected model and resolution tier. Source duration is rounded up to a whole second, then to a full billing step, with one step as the minimum. The displayed second rate equals the step price divided by step length. Acceptance reserves the measured upload duration or 60 seconds for a URL; completion releases the excess and failures cost nothing. Twenty presets share a tier rate; gaia_2_animation is priced separately, and larger tiers cost more.
| Resolution | Style preset: artemis_aliasing_moire | Style preset: artemis_hq | Style preset: artemis_lq | Style preset: artemis_medium_halo | Style preset: artemis_mq | Style preset: artemis_strong_halo | Style preset: dione_dehalo | Style preset: dione_dv | Style preset: dione_robust | Style preset: dione_robust_dehalo | Style preset: dione_tv | Style preset: gaia_cg | Style preset: gaia_hq | Style preset: iris_lq | Style preset: iris_mq | Style preset: proteus | Style preset: proteus_natural | Style preset: rhea | Style preset: theia_detail | Style preset: theia_fidelity | Style preset: gaia_2_animation |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| $0.0070588235 / second | $0.0070588235 / second | $0.0070588235 / second | $0.0070588235 / second | $0.0070588235 / second | $0.0070588235 / second | $0.0070588235 / second | $0.0070588235 / second | $0.0070588235 / second | $0.0070588235 / second | $0.0070588235 / second | $0.0070588235 / second | $0.0070588235 / second | $0.0070588235 / second | $0.0070588235 / second | $0.0070588235 / second | $0.0070588235 / second | $0.0070588235 / second | $0.0070588235 / second | $0.0070588235 / second | $0.012 / second |
| $0.0146341463 / second | $0.0146341463 / second | $0.0146341463 / second | $0.0146341463 / second | $0.0146341463 / second | $0.0146341463 / second | $0.0146341463 / second | $0.0146341463 / second | $0.0146341463 / second | $0.0146341463 / second | $0.0146341463 / second | $0.0146341463 / second | $0.0146341463 / second | $0.0146341463 / second | $0.0146341463 / second | $0.0146341463 / second | $0.0146341463 / second | $0.0146341463 / second | $0.0146341463 / second | $0.0146341463 / second | $0.012 / second |
| $0.026 / second | $0.026 / second | $0.026 / second | $0.026 / second | $0.026 / second | $0.026 / second | $0.026 / second | $0.026 / second | $0.026 / second | $0.026 / second | $0.026 / second | $0.026 / second | $0.026 / second | $0.026 / second | $0.026 / second | $0.026 / second | $0.026 / second | $0.026 / second | $0.026 / second | $0.026 / second | $0.036 / second |
| $0.0585365854 / second | $0.0585365854 / second | $0.0585365854 / second | $0.0585365854 / second | $0.0585365854 / second | $0.0585365854 / second | $0.0585365854 / second | $0.0585365854 / second | $0.0585365854 / second | $0.0585365854 / second | $0.0585365854 / second | $0.0585365854 / second | $0.0585365854 / second | $0.0585365854 / second | $0.0585365854 / second | $0.0585365854 / second | $0.0585365854 / second | $0.0585365854 / second | $0.0585365854 / second | $0.0585365854 / second | $0.036 / second |
Use cases
For a talking-head compilation, process a short answer that includes both facial movement and the microphone. This exposes problems that a still portrait would conceal, including edges that change as the speaker turns.
For a mixed-media sequence, separate animation from old DV material before testing. Gaia’s animation options and Dione’s interlace treatments address different source structures; one choice across the entire sequence can miss the reason a particular shot looks poor.
Prompt guide & pro tips
There is no prompt field for this operation. Start with proteus at 1080p, inspect a representative section and change the model according to the visible problem. Moving directly to 4K increases the delivery size and cost without establishing that the selected model suits the source.
Check the returned dimensions before conforming the shot, especially with the two presets that always double width and height. Compare thin lines, eyes and hair at the intended display size, then play the whole take with sound. Keep the input beside the output during approval so sharper contours are not mistaken for complete removal of compressed texture.
API quick start
# Generate the idempotency key once; reuse it when retrying after a lost response.
export SPICY_IDEMPOTENCY_KEY="${SPICY_IDEMPOTENCY_KEY:-$(uuidgen)}"
curl -X POST https://api.spicyapi.ai/api/v1/jobs/createTask \
-H "Authorization: Bearer $SPICY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $SPICY_IDEMPOTENCY_KEY" \
-d '{
"model": "topaz/video-ai/upscale",
"input": {
"preset": "proteus",
"resolution": "1080p",
"video_url": "https://example.com/reference.mp4"
}
}'
# Copy data.taskId from the response into TASK_ID, then poll the status.
TASK_ID="TASK_ID_FROM_RESPONSE"
curl "https://api.spicyapi.ai/api/v1/jobs/recordInfo?taskId=$TASK_ID" \
-H "Authorization: Bearer $SPICY_API_KEY"
See the API reference for authentication, the complete schema, polling, and error handling.








