PopNowAPI
Get API key

daVinci-MagiHuman API

by Sand.ai

Put a line in quotes and the person on screen says it

sand-ai/davinci-magihuman/text-to-video
  • Up to 1080p
  • 5–10s clips
  • Create Video
  • Image to Video

About daVinci-MagiHuman

daVinci-MagiHuman is served under the sand-ai/davinci-magihuman prefix with two endpoints, text-to-video (the default) and image-to-video. Each job returns one MP4 that already contains the generated soundtrack, so a line quoted in the prompt arrives as speech in the same file with no second audio pass. In our runs a five-second 720p clip took about a minute to render and a 1080p clip close to four minutes, so the job should run asynchronously from the start.

Call it with the model name sand-ai/davinci-magihuman/text-to-video on POST /jobs/createTask, from $0.12.

Introduction

daVinci-MagiHuman Text to video turns a written prompt into a short clip with a voice. daVinci-MagiHuman is an open 15-billion-parameter model from Sand.ai and SII-GAIR that generates the picture and the soundtrack together. Put the line the person should say in quotation marks and the model speaks it. This endpoint returns 5 to 10 seconds at 256p, 720p or 1080p, in 16:9 or 9:16.

Choose a mode by starting material

What you haveMode
a written descriptiondaVinci-MagiHuman Text to video

Key features

Picture and voice from one prompt

One request returns the video and its soundtrack. Write who is in frame, what they do and, in quotes, what they say. You do not pick a voice or run a second step.

What we measured

We ran two text-to-video clips. The first was 1080p at 16:9: it came back about 1904 x 1088, 25 fps, 5.0 seconds, with sound, after about 3 min 53 s of processing. The second was 720p at 9:16: about 726 x 1270, 5.0 seconds, after about 1 minute. We transcribed the soundtrack of both, and each matched the quoted line in the prompt word for word. The 720p size at 16:9 is not exactly 1280 x 720 (an image-to-video run gave about 1358 x 678), so treat the sizes as approximate.

Three resolutions, two shapes

resolution is 256p, 720p (the default) or 1080p. The model generates at a low base resolution and its own super-resolution stage produces the higher tiers. aspect_ratio is 16:9 (the default) or 9:16.

Languages

The publisher lists Chinese (Mandarin and Cantonese), English, Japanese, Korean, German and French. We tested English.

Request parameters

ParameterRequiredDescription
aspect_ratioNoThe shape of the frame: wide, square or tall. 16:9 · 9:16 · Default: 16:9
duration_secondsNoHow long the clip runs. You pay per second. ≥ 5 · ≤ 10 · Default: 5
promptYesWhat happens, and in quotes what the person says. The model speaks quoted lines itself.
resolutionNoOutput size. Bigger sizes look sharper and cost more. 256p · 720p · 1080p · Default: 720p
seedNoReuse the same number to get a repeatable result. ≥ 0 · ≤ 2147483647

Pricing

Prices are in USD. The API uses a separate USD balance. Website credits cannot be used or transferred to it, and API funds cannot be transferred to website credits. When a task is accepted, we reserve the maximum quoted amount from your API balance. On completion, we charge for actual usage, never more than the hold, and release the remainder. If the task fails, the hold is released.

OptionUSD per second
resolution 256p$0.024
resolution 720p$0.048
resolution 1080p$0.072

Send the same request body to POST /jobs/quote to see the estimated and maximum USD charge before running. A quote does not run the task or charge your balance.

Use cases

Short spoken clips

A greeting, a product intro or a teaser line: one person, one line in quotes, 5 to 10 seconds. In our runs the spoken words matched the quoted line exactly.

Vertical clips for phones

Set aspect_ratio to 9:16 for stories and short-video feeds. Our 720p portrait run came back about 726 x 1270, framed from the chest up. Describe the framing in words ("looks straight into the camera") rather than asking for a selfie with a phone, which put a phone in the shot in one of our tries.

Dialogue drafts

Try a line, a face and a setting together before you commit to a longer piece: change only the quoted line, keep the rest of the prompt, and compare the takes.

Prompt guide & pro tips

Put the line in quotation marks

Say who talks and how, then the line: says softly: "...". Our lines were 8 to 10 words for a 5-second clip.

Describe the framing, not a device

In an extra 9:16 run, asking for a selfie with a phone put a phone in the frame facing the camera from behind. Write "looks straight into the camera" and a shot size such as "vertical medium close-up".

Order the prompt

Person and place first, then the action and the line, then light and camera: Warm practical light, shallow depth of field, or Handheld, eye level.

Listen to the first run

The speech is generated, so play the clip and compare it with your line before you build on it. Use seed to keep the inputs steady while you change one thing, knowing the result is similar, not guaranteed identical.

Choosing between models

Pick daVinci-MagiHuman when you want the model to speak a line you write, or you need a 9:16 clip.

API quick start

Call the daVinci-MagiHuman API in three steps

  1. Create an API key. Sign in to PopNow and create a key in the API console. Keys start with sk-popnow-. API calls use your separate USD balance.
  2. Send the request. POST /jobs/createTask with model sand-ai/davinci-magihuman/text-to-video and an input object that follows the parameter table. The response returns a task ID straight away.
  3. Get the result. Poll GET /jobs/recordInfo with the task ID, or pass a callBackUrl and we post the result to it. Download the output links when the task succeeds.
# 1. Create the task. Keep the Idempotency-Key if you retry after a network error.
export IDEMPOTENCY_KEY="$(uuidgen)"
curl -X POST https://api.popnow.ai/api/v1/jobs/createTask \
  -H "Authorization: Bearer $POPNOW_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $IDEMPOTENCY_KEY" \
  -d '{
  "model": "sand-ai/davinci-magihuman/text-to-video",
  "input": {
    "prompt": "A slow aerial shot drifting over a misty pine forest at sunrise",
    "aspect_ratio": "16:9",
    "resolution": "720p",
    "duration_seconds": 5
  }
}'

# 2. Copy data.taskId from the response, then poll until state is succeeded, failed, canceled or expired.
TASK_ID="TASK_ID_FROM_RESPONSE"
curl "https://api.popnow.ai/api/v1/jobs/recordInfo?taskId=$TASK_ID" \
  -H "Authorization: Bearer $POPNOW_API_KEY"

Replace the prompt and any links with your own. The API tab has the response, polling and callback reference.

What to build with the daVinci-MagiHuman API

  • A character-driven short where each scene is one generated clip with a single spoken line, sent as its own createTask call.
  • An app that turns a customer's portrait into a short greeting or testimonial with one spoken sentence.
  • A lesson builder that renders 9:16 clips at 720p for phones and 16:9 clips at 1080p for desktop courses.

daVinci-MagiHuman parameter notes

  • prompt is required, 3 to 5,000 characters. Put the spoken words inside quotation marks, because the model speaks what is quoted. Describe the camera as looking straight into the lens, since asking for a selfie can put a phone in the frame.
  • duration_seconds takes whole seconds from 5 to 10, defaulting to 5. Billing is per second of the requested duration.
  • resolution takes 256p, 720p (the default) or 1080p. The model renders at a small base size and its own upscaling stage produces the larger tiers, so 1080p comes back close to 1904 by 1088 rather than exactly 1920 by 1080.
  • aspect_ratio accepts 16:9 (the default) or 9:16 only. The shape does not change the rate.
  • image_url is used on image-to-video as the first frame. Pass a public, directly downloadable link or an uploaded reference, and the clip starts from that picture.
  • seed is optional. The same seed with the same inputs gives similar results, though not identical ones.

How daVinci-MagiHuman API pricing adds up

Billing is in USD per second of the requested duration at the rate for the chosen resolution: $0.024 per second at 256p, $0.048 at 720p and $0.072 at 1080p. A five-second 720p clip is $0.24. Sound and aspect ratio do not change the rate, and failed requests are not charged. API usage is paid from the separate API balance.

  • resolution 256p, 5-second clip: $0.12 each, $12.00 for 100 clips
  • resolution 1080p, 5-second clip: $0.36 each, $36.00 for 100 clips

Async jobs, webhooks and rate limits

Every daVinci-MagiHuman request is asynchronous: createTask returns a taskId straight away, and the result arrives when the job finishes. Poll GET /jobs/recordInfo every few seconds, or pass a public https callBackUrl and verify the X-Webhook-Signature header (HMAC-SHA256 over taskId, timestamp and the body hash) before trusting the payload. Each account gets 1,000 write requests per 10 seconds; a 429 carries Retry-After. Send an Idempotency-Key with createTask so a retried request for sand-ai/davinci-magihuman/text-to-video never runs or bills twice.

Common daVinci-MagiHuman API errors

errorCodeWhat it usually means and how to fix it
invalid_requestduration_seconds outside 5 to 10, a resolution other than 256p, 720p or 1080p, or an aspect_ratio other than 16:9 and 9:16.
invalid_assetimage_url could not be fetched or is not an image. Upload local files first and pass the returned reference.
content_rejectedThe prompt or the portrait was declined. Ask the user to rephrase the wording or to choose another photo.
timeoutA 1080p render ran past the job limit. Retry at 720p, which finishes in about a minute in our runs, and render the final at the larger size once the take is approved.

daVinci-MagiHuman API questions

How much does the daVinci-MagiHuman API cost?

daVinci-MagiHuman starts at $0.12 for a 5-second clip with Create Video, its cheapest task. Prices by option: 256p $0.024 per second, 720p $0.048 per second, 1080p $0.072 per second. The API uses a separate USD balance. Website credits cannot be used or transferred to it, and API funds cannot be transferred to website credits. When a task is accepted, we reserve the maximum quoted amount from your API balance. On completion, we charge for actual usage, never more than the hold, and release the remainder. If the task fails, the hold is released.

What is the model name for daVinci-MagiHuman in the API?

Put sand-ai/davinci-magihuman/text-to-video for Create Video; sand-ai/davinci-magihuman/image-to-video for Image to Video in the model field of POST /jobs/createTask.

How do I make the person speak?

Put the words in quotation marks inside the prompt. The endpoint generates the picture and the voice together, so there is no speech parameter to set and no second audio job to queue.

Is the soundtrack always included?

Yes. Every MP4 from this model carries the generated sound, and the rate does not depend on whether a line is quoted.

Why is the output not exactly 1920 by 1080?

The model renders small and upscales in its own stage, so the returned size is close to nominal. Expect about 1904 by 1088 at 1080p 16:9 and about 726 by 1270 at 720p 9:16.

How long does a job take?

About a minute at 720p and close to four minutes at 1080p in our runs. Poll every 10 to 15 seconds at 720p and every 30 seconds at 1080p, or use a callback.

What are the limits of the daVinci-MagiHuman API?

Clip length: 5–10 s; Resolutions: 256p · 720p · 1080p; Aspect ratios: 16:9 · 9:16; Prompt length (characters): 5,000. Requests outside these limits are rejected before anything is charged.

Can I try daVinci-MagiHuman without writing code?

Run daVinci-MagiHuman in the Playground with your API USD balance, without an API key. Each run appears in your developer history with its matching code.

More about daVinci-MagiHuman