Recall notice as a 9:16 and 16:9 avatar video: cost and captions
A recall notice needs to reach people on phones and on a site. Two 30-second Sume avatar jobs, one per aspect ratio, cost $14.70 at plus quality with captions.
Run two avatar jobs with the same script, one at aspect_ratio 9:16 for phones and one at 16:9 for your site. A 30-second notice at plus quality is 30 x $0.245 = $7.35 each, $14.70 for both, with inline captions at no extra job charge.
Why two jobs
Avatar Video supports aspect ratios 1:1, 3:4, 9:16, 4:3 and 16:9, and the default is 9:16. One job produces one ratio, so a vertical and a horizontal cut are two renders. Resolution is 720p.
| Quality | Per second | One ratio | Both ratios |
|---|---|---|---|
| standard | $0.184 | $5.52 | $11.04 |
| plus | $0.245 | $7.35 | $14.70 |
| max | $0.55 | $16.50 | $33.00 |
Script for a notice
Keep to what a person must do, in this order: the product, the risk in plain words, what to do now, and where to get help. Do not add anything your legal team has not approved, because Sume speaks the text you send.
- Name the product and the affected batch.
- Say what to stop doing.
- Say how to get a refund or replacement.
- Give the page or number for questions.
Captions on both
Inline captions burn the spoken script into the final MP4 and do not create a separate billed video-caption job. A caption stage failure is a soft failure: the job can still succeed with a clean video_url and captions.status set to failed, so check that field before you publish.
import json, os, urllib.request
script = os.environ["RECALL_SCRIPT"]
for ratio in ("9:16", "16:9"):
body = {
"avatar_handle": os.environ["AVATAR_HANDLE"],
"script": script,
"aspect_ratio": ratio,
"quality": "plus",
"captions": {"enabled": True, "style": "punch", "language": "auto"},
}
req = urllib.request.Request(
"https://api.sume.com/v1/avatar-1.0/talking-video",
data=json.dumps(body).encode(), method="POST",
headers={"Authorization": f"Bearer {os.environ['SUME_API_KEY']}",
"Content-Type": "application/json",
"Idempotency-Key": "recall-" + ratio.replace(":", "x")},
)
with urllib.request.urlopen(req, timeout=30) as r:
print(ratio, r.status)What to do
Render at standard first and have the notice read by the person who owns the recall. When the wording is final, render the plus versions. Keep the job ids with the recall record.
Sources
Related posts
More in Use cases
- Proof watermark for client drafts of AI images, in Pillow
Stamp a tiled diagonal PROOF text over an image from Sume before sending drafts. Layer, rotate, alpha-composite, and why it is a courtesy and not security.
- Proposal walkthrough video with an AI avatar: 40 seconds, by tier
Turn a sales quote into a 40-second avatar walkthrough: scope, timeline and price in three scenes, the request body, and the per-quote cost on each Sume tier.
- Quarterly business review recap as an avatar video, three scenes
A QBR recap fits one 45-second Sume avatar video: result, one risk, next steps. A Plus render is $11.03; keep exact figures in the email, not the clip.
- Qwen-Image 2.1 circle-and-edit prompts, 10 references: a test plan
Qwen-Image 2.1 lists circle annotations, mask edits, 10 references. A test plan, plus the Sume route: mask_url and 16 references on ChatGPT Image 2.5.
Written by Sume