UGC ad casting test: one script across three AI avatars

Test which AI spokesperson sells your script: create three Sume previews with the same copy, pick a still, then render only the winner. Curl loop and costs.

5 min readSume
All posts

Run a casting test by sending the same script and scene to three Sume avatar-video previews, one per avatar handle, then compare the first-frame stills and render only the one you pick. A UGC brand does this with creators by hiring three; with avatars it is three requests.

The preview stage creates first-frame stills without the full render. It is the cheap place to decide who fronts the ad. The routes and fields come from the Avatar video previews docs and the avatar video docs, read 2026-10-03; I do not state a preview price because the docs do not publish one, so check the pricing page.

What stays the same, and what changes?

One UGC script across three avatars, what to hold constant, read 2026-10-03
FieldHold constant?Why
scriptYesSo the avatar is the only variable
sceneYesSame room, same light
aspect_ratioYes9:16 is the default
qualityYes, cheapestPreview stills are tier-independent
avatar_handleNo: three valuesThe thing you are testing
Idempotency-KeyNo: unique per requestReuse a key only for the same operation and payload

What does the loop look like?

Each response includes an avatar_video_preview_id and job URLs. Poll the job, then read preview_image_url from the preview resource. Use stock handles from catalog search or your own.

for handle in host_a host_b host_c; do
  curl -s -X POST https://api.sume.com/v1/avatar-video-previews \
    -H "Authorization: Bearer $SUME_API_KEY" \
    -H "Content-Type: application/json" \
    -H "Idempotency-Key: cast-$handle-001" \
    -d "{\"avatar_handle\": \"$handle\", \"aspect_ratio\": \"9:16\", \"quality\": \"standard\", \"scene\": {\"type\": \"prompt\", \"prompt\": \"Casual kitchen counter, daytime light\"}, \"script\": \"Okay, I did not expect this to work. Watch what happens when I drop in one photo.\"}"
  echo
done

How do I pick the winner?

  • Read the stills at phone size, since that is where the ad will be seen.
  • Check that the face, hands and room look plausible and that the avatar suits the product and the audience.
  • Ask whether the avatar fits the claim: a script about a skincare routine and a script about payroll want different faces.
  • Show the three stills to a few people from your target audience and take their pick over yours.
  • Do not choose on a still alone if the script is long; render the winner and review the motion.

How do I read the preview responses?

Each preview is a job. The submit response gives data.status_url, data.result_url and data.terminal; poll the status URL until terminal is true, then read the preview resource. Wait the number of seconds in next_poll_after_seconds between polls rather than hammering the route.

Use a distinct Idempotency-Key per handle. If a request times out, resend it with the same key and the same body; the docs say to reuse a key only for the same operation and payload.

How many avatars should I test?

Three is enough for most ads. More choices make the decision slower without making it better, and every extra preview is another request to review. If two of the three are close, run a second round with a changed scene or first line, not a new set of faces.

What if none of the three work?

Change the avatar, not the tier. The stills are tier-independent, so a different quality setting will not change who appears in them. Create new avatars at $0.95 each, or search the catalog for stock handles, and run the same three-request loop again. If the face is right but the room is wrong, change the scene and create a fresh preview, since the scene is one of the structural fields.

What does the final render cost?

Call generate-video on the winning preview id. An empty body keeps the tier set at preview, and an optional quality overrides the final render only. At list rates, a 15-second ad with no product image is $2.76 on standard, $3.68 on plus and $8.25 on max, so the test avoids paying for two full renders you will not run. The same approve-then-upgrade pattern appears in the $100 ad test budget.

If the script changes after you pick, the preview is stale: script, scene, avatar and aspect ratio are structural, so create a new preview. Then run the casting test only for the avatar choice, and test hooks separately by changing the first line.

Sources

Related posts

More in Use cases

All Use cases posts

Written by Sume