Extract video frames to images: PNG or JPEG before an upscale
Video frames returns jpeg by default or png for lossless inspection, at the source size unless you set max_edge. Pick png when the stills feed an upscaler.

Use format: "png" when the extracted frames will go to an upscaler, and leave max_edge off. The docs describe png as lossless inspection, jpeg is the default, and omitting max_edge keeps the source frame size. That gives the upscaler the most pixels to work from.
Facts are from the video frames docs, read 2026-10-01. Topaz Labs' September 2026 page, read the same day, lists its video workflows (Precision Upscale, Creative Upscale, Frame Interpolation) and image workflows (Standard Upscale, Face Enhancer); this post does not claim what any of them accepts as input.
What are the choices on the request?
Both are optional. Frames come back as durable artf_ images on media.sume.com.
| Field | Values | Effect |
|---|---|---|
format | jpeg (default), png | png is lossless inspection |
max_edge | 16 to 2160 | Long-edge clamp; omit to keep source size |
Result frames[] | {t, url, width, height} | Check width and height for the size you got |
Why leave max_edge off before an upscale?
max_edge is a long-edge clamp from 16 to 2160. If you set it below the source's long edge you throw pixels away before the upscaler sees them, and the result reports the smaller width and height. Omitted, the stills match the source (the docs call this the restage path). Compare that with video inspect, whose stills default to max_edge 768 and are meant for looking, not for reuse.
Is png always the right call?
Not always. A lossless image of a high-resolution frame is a bigger file than a jpeg of it, and for review or a thumbnail jpeg is enough. For a poster or thumbnail choice, see pick a frame with max_edge. For an upscale or any step that re-encodes again, start from the lossless frame so you do not stack jpeg loss.
curl -X POST https://api.sume.com/v1/video-frames \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: frames-png-001" \
-d '{
"video_url": "https://media.sume.com/artifacts/artf_demo/talk.mp4",
"at": [0, 2.5],
"format": "png"
}'Sources
Related posts
More in Developers
- Video starts on a black frame: fix the first Timeline segment
A render that opens on black usually has a fade or a late first clip. Timeline 1.0 refuses a first start other than 0 and any first-segment transition.
- Vidu movement_amplitude does nothing on Q2 and Q3; Sume uses prompts
Vidu says movement_amplitude has no effect on its q2 and q3 models. Sume has no motion-strength field at all; you steer motion in the prompt.
- Vidu Q3 allows 1 to 16 seconds; Sume's shortest clip is 2
Vidu Q3 accepts 1 to 16 seconds. On Sume the shortest clip is 2 seconds on wan-3.0, 3 on Gemini Omni Flash, 4 on Seedance, Kling and Grok, 5 on MiniMax.
- Vimeo can hide black bars; Sume bakes the right frame into the file
Vimeo's September 2026 Page theme hides black bars on non-16:9 videos. To remove them from the MP4 itself, render the frame with Timeline fit and output size.
Written by Sume