Introduction
Astra is designed for shots whose finish can change during enlargement. An AI-generated interior or a stylized sequence may benefit from richer materials even if those materials are newly imagined. The task is therefore to approve a visual interpretation, including its treatment of people, rather than recover a definitive record of the scene.
Key features & highlights
Creative freedom has three levels, starting at low, and an optional written description can direct the scene’s appearance. Raising creativity changes the scope for invention without changing the price. The three output tiers are 720p, 1080p and 4K, leaving no intermediate 2K selection in this endpoint.
The no-prompt cellar run at low creativity added individual hair strands and more distinct glass boundaries, but also altered the woman’s eye and profile. Its three-second source took roughly two hundred ten seconds at 1080p. Even the restrained setting can therefore change meaningful facial detail, and a better-resolved still is only one part of evaluating the returned sequence.
Request parameters
| Parameter | Required | Description |
|---|---|---|
video_url | Yes | Provide an MP4 by URL or upload with a duration of 1–60 seconds. Shorter or longer clips are rejected before acceptance; the creative result keeps the source runtime and audio. at least 1 characters |
prompt | No | Optional text describing the visible scene or desired finish; leaving it empty lets the image guide the interpretation. No separate price change applies to adding text. at most 2000 characters |
resolution | No | Output choices: |
creativity_level | No |
|
Pricing
Astra’s output tier sets the price and billing-step length; prompt content and creativity do not alter the rate. Source time is rounded to the next second and then the next complete step, with a one-step floor. The second rate shown equals step price divided by its length. On acceptance, funds cover the known upload or 60 seconds for a linked source; the unused portion returns at settlement, and failed processing is free. 720p and 1080p cost the same, while 4K is higher.
| Specification | Price |
|---|---|
| $0.36 / second |
| $0.36 / second |
| $0.60 / second |
Use cases
For a stylized film insert, use a selected interior take to explore a richer surface treatment. Compare clothing, glass and background materials with the intended art direction and with neighboring shots, where a change in visual finish may become conspicuous.
For AI video finishing, test the chosen take before creating all delivery sizes. Reject an appealing result if a recognizable face or important object drifts beyond what the project permits, even when the new texture looks attractive in isolation.
Prompt guide & pro tips
Establish an unprompted low pass before steering the image with text. If direction is needed, describe the visible subject, material and lighting in a coherent sentence; asking for unrelated objects makes the requested finish harder to judge against the supplied composition. Change one control at a time when comparing creative versions.
Watch turns of the head and movement around hair or glass across neighboring frames. Check that the added appearance remains useful throughout the take, then verify dimensions and the retained soundtrack. Choose 4K for the final delivery requirement after creative approval, since a higher tier increases cost without reducing the freedom to reinterpret facial features.
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/astra/upscale",
"input": {
"creativity_level": "low",
"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.






