Animate a brand mascot still: which Sume models take a first frame
Almost every Sume video row takes a first frame, except H3 Max Recast and Genjutsu. Grok Imagine Video 1.5 is $0.0125 a second; Omni, Wan and Kling add more.

To animate a mascot still, pass it as a first_frame in frame_images. On Sume that works on grok-imagine-video-1.5 (first frame required, $0.0125 a second), gemini-omni-flash-1.1, wan-3.0, kling-3, minimax-h3, minimax-h3-max and the Seedance rows. The two person-swap rows, h3-max-recast and higgsfield-genjutsu, work from a source video and do not.
Choose by what you need beyond the first frame: sound, a last frame, a longer clip or a square ratio. Limits are from the Sume video docs and Video Router guide, read 2026-10-05.
Image-to-video rows compared
Sume bills the provider list price times 1.25 and rounds the job up to the cent, so a one-second figure here is a rate, not a charge.
| Model id | Needs a first frame | Last frame | Audio | Rate per second |
|---|---|---|---|---|
| grok-imagine-video-1.5 | Yes, no text-only | No | None | $0.0125 at 480p or 720p |
| wan-3.0 | No | Yes | Yes | $0.0625 at 480p |
| minimax-h3 | No | Yes | Stereo, always on | $0.0625 at 480p |
| gemini-omni-flash-1.1 | No | Yes | Native, always on | $0.0375 at 360p |
| kling-3 | No | Yes | Optional | $0.14 without audio |
Cheap is not always the point
Grok is the lowest rate on the list: a 6-second loop is $0.075. It has no sound, no last frame and no aspect_ratio option. That suits a silent web loop. For a mascot that has to speak or end on a set pose, use Omni or Wan.
A mascot photo or illustration is also a style anchor. If the mascot appears in several shots, put the same image in input_references on Omni or Wan, which hold up to 10 images, so each clip draws on the same look.
Request
The cheapest route, a silent loop from a still.
import os, time, requests
H = {"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"}
payload = {
"model": "grok-imagine-video-1.5",
"prompt": "The mascot waves and blinks, gentle bounce, plain background",
"duration": 6,
"resolution": "720p",
"frame_images": [
{"type": "image_url", "image_url": {"url": "https://example.com/mascot.png"}, "frame_type": "first_frame"}
],
}
job = requests.post("https://api.sume.com/v1/videos", headers=H, json=payload).json()
while True:
time.sleep(30)
s = requests.get(job["polling_url"], headers=H).json()
if s["status"] in ("completed", "failed", "cancelled"):
break
print(s["status"], s.get("unsigned_urls"), s.get("usage"))Sources
Related posts
More in Use cases
- Anki cards with AI images: collection.media and the img tag
Anki finds images by filename in collection.media, via an img tag, with Allow HTML on. Make one PNG per word with Sume and write a tab-separated import file.
- Annual compliance refresher as an avatar video: review and records
An avatar can deliver a 45-second compliance refresher. Legal approves the script; you keep the video id and transcript as a record of what was said.
- App demo promo clip: generate the scene, composite the real screen
Don't ask a video model to invent your app UI. Generate the scene with Sume, then stack your real screen recording with Timeline compose, $0.02 flat per shot.
- App screenshots to a 30-second product demo with Wan 3.0 on Sume
Turn six app screenshots into a 30 second demo on Sume: five 6 second first-and-last-frame Wan 3.0 clips cost $3.75 at 720p. Setup, limits, and what to check.
Written by Sume