Grok Imagine first and last frame: keyframes on xAI only
xAI takes up to 4 timestamped keyframes for Grok Imagine video. Sume's grok-imagine-video-1.5 row takes one start image and rejects an end frame.

xAI's Grok Imagine docs describe keyframes: up to 4 {image, timestamp_s} entries. The Sume Grok row has end_frame: false, takes one start image, and lists "no end_frame" in its constraints.
xAI's keyframes are from its video docs, read 2026-09-30. Sume's rules are from its catalog and Video Router docs.
What does the Sume Grok row accept?
One start image, as image_url or first_frame_url, and nothing at the end. There is no timestamp-based keyframe list on that row.
Which Sume ids take an end frame?
The Video Router docs show gemini-omni-flash-1.1 accepting image_url plus an optional end_image_url. The catalog marks end_frame: true for wan-3.0, and MiniMax H3 Max is documented with first/last-frame image-to-video.
| Where | Frame inputs |
|---|---|
| xAI, Grok Imagine | Up to 4 {image, timestamp_s} keyframes |
| Sume, Grok | Start image only |
Sume, gemini-omni-flash-1.1 | image_url + optional end_image_url |
Sume, wan-3.0 | end_frame: true in the catalog |
Where can I read more on first and last frames?
See Kling 3 first and last frame and first and last frame image-to-video for ids that take both.
What should I do?
If you depend on mid-clip keyframes, use xAI directly. On Sume, pick an id whose catalog row lists end_frame and send a start and end image.
Sources
Related posts
More in Developers
- Grok Imagine: how many images per request, xAI vs Sume
xAI's image API takes n from 1 to 10 per request. Sume's catalog code gives Grok a maximum of 1, so send one image per call and loop for more.
- Grok Imagine video length: 1-15 s on xAI, 4-15 s on Sume
xAI allows 1 to 15 seconds for grok-imagine-video-1.5. Sume's catalog row allows 4 to 15, so a 2-second clip needs another id such as wan-3.0.
- HeyGen API key permissions: /v3/api_keys/self vs Sume /v1/me
HeyGen's GET /v3/api_keys/self shows a key's name, scopes and expiry. On Sume, GET /v1/me verifies the key and returns non-secret account metadata.
- HeyGen avatar voice id: default_voice_id vs Sume avatar_handle
HeyGen's PATCH /v3/avatars/{group_id} stores a default_voice_id. On Sume, TTS can take an avatar_handle and resolve that avatar's ready voice.
Written by Sume