Best AI video model for seamless loops: the end-frame rows
For a looping clip, use a Sume row that takes both a first and an end frame: Seedance, Wan 3.0, Kling 3, MiniMax H3 or Omni. Rows without one, read 2026-10-13.

To make a clip that loops, you need a row that accepts an end frame, because the usual trick is to give the model the same picture (or a matching pose) as the first and last frame. On Sume, the rows that list an end frame are the Seedance family, kling-3, wan-3.0, minimax-h3, minimax-h3-max and gemini-omni-flash-1.1. The rows that do not are grok-imagine-video-1.5, the Veo rows, higgsfield-genjutsu, h3-max-recast and the Tencent text-to-video rows.
Which rows accept an end frame?
An end frame goes in frame_images with frame_type: "last_frame", next to the first_frame entry. The catalog validates frame_type against what each row lists, so an unsupported row answers 400 unsupported_capability instead of dropping the field.
| Row | End frame | Length | Notes |
|---|---|---|---|
seedance-2.5 | yes | 4-30 s | 480p, 720p, 1080p |
wan-3.0 | yes | 2-30 s | Audio; 480p, 720p, 1080p |
kling-3 | yes | 4-15 s | 1080p only; 16:9, 9:16, 1:1 |
minimax-h3 | yes | 5-15 s | Native stereo audio, always on |
minimax-h3-max | yes | 5-15 s | Native stereo audio, always on |
gemini-omni-flash-1.1 | yes | 3-10 s | 16:9 or 9:16 only |
grok-imagine-video-1.5 | no | 4-15 s | First frame only |
veo-3.1 rows | no | 4, 6, 8 s | Text-to-video only |
How do I request a loop?
Send the same image URL as both frames, a short duration, and the lowest resolution the row lists. The docs describe the two frame types but do not promise that identical frames produce a seamless join, so treat the first result as a test and look at the seam before you spend more. Audio matters for loops: a row that always makes sound (H3, H3 Max, Omni) will give you a track that does not loop on its own, so plan to detach or replace it.
curl -X POST https://api.sume.com/v1/videos \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "wan-3.0",
"prompt": "Steam drifts up from the cup, camera static, the scene returns to its start",
"duration": 4,
"resolution": "480p",
"aspect_ratio": "16:9",
"frame_images": [
{"type": "image_url", "image_url": {"url": "https://example.com/cup.jpg"}, "frame_type": "first_frame"},
{"type": "image_url", "image_url": {"url": "https://example.com/cup.jpg"}, "frame_type": "last_frame"}
]
}'When is a loop not worth it?
If the clip must match a brand film exactly, a loop made from model motion is a gamble. A cheaper path is a short clip, then repeat it on a timeline. Pick the row by length: wan-3.0 can make a 2-second loop, while H3 and H3 Max start at 5 seconds.
Sources
Related posts
More in Use cases
- Best AI video model for UGC-style ads: a model or an avatar?
For UGC-style ads, Sume offers two routes: a script-driven Avatar video of 4-60 s, or a video model with native speech such as Kling 3. Read 2026-10-13.
- Best AI video model to edit an existing clip: four Sume rows
To edit or regenerate a clip you already have, Sume has four rows that take video_url: Omni edit, Genjutsu, H3 Max Recast and Hailuo H3 Regen. Read 2026-10-13.
- Car dealer video ad: a Total Price line after FTC's Greenway deal
FTC's Oct 8, 2026 Greenway settlement asks for the Total Price as the most prominent price. Burn that line into each lot clip for $0.20 on Sume.
- Slow down for phone numbers: phrase pacing in a Sume TTS script
Decagon says Chord's pacing follows each sentence. On Sume, speed is one setting per job, so render a phone number as its own slower take and join the takes.
Written by Sume