61.4-second voice track on VEED Fabric: billed 62 s, $11.63 at 720p
VEED Fabric 1.0 on Sume bills ceil of audio seconds: 61.4 s is 62 s, 62 x $0.1875 = $11.625 at 720p, $6.20 at 480p. Includes a Python route picker.

A 61.4-second voice track on VEED Fabric 1.0 is billed as 62 seconds on Sume: 62 x $0.1875 = $11.625 at 720p, shown as $11.63, or 62 x $0.10 = $6.20 at 480p (catalog, read 2026-10-09). The route prices per ceil of the audio second, and it accepts audio up to 300 seconds, so a track a little over a minute is no problem; it just rounds up.
The rounding table
The tenths that cause surprises are the ones that tip you over a whole second. This table shows a few lengths around one minute at the two Fabric resolutions.
| Audio | Billed seconds | 480p at $0.10 | 720p at $0.1875 |
|---|---|---|---|
| 60.0 s | 60 | $6.00 | $11.25 |
| 60.1 s | 61 | $6.10 | $11.4375 |
| 61.4 s | 62 | $6.20 | $11.625 |
| 62.0 s | 62 | $6.20 | $11.625 |
A route picker you can run
MiniMax H3 Max Lip Sync accepts audio of 5-14.8 seconds, and Fabric accepts 1-300 seconds, so the length of the audio decides which routes are open. The script below checks both windows, applies the ceil rule and returns the route, the billed seconds and the cost. It uses the catalog rates above; re-read the catalog at https://api.sume.com/v1/catalog if you cache them.
import math
RATES = { # USD per audio second, Sume catalog read 2026-10-09
"h3-max-lip-sync": {"480p": 0.0625, "768p": 0.10, "1080p": 0.20},
"fabric": {"480p": 0.10, "720p": 0.1875},
}
def plan(audio_seconds, resolution="720p"):
billed = math.ceil(audio_seconds)
if 5 <= audio_seconds <= 14.8 and resolution in RATES["h3-max-lip-sync"]:
route = "h3-max-lip-sync"
elif 1 <= audio_seconds <= 300 and resolution in RATES["fabric"]:
route = "fabric"
else:
raise ValueError("no route accepts this audio length and resolution")
return route, billed, round(billed * RATES[route][resolution], 4)
print(plan(61.4)) # ('fabric', 62, 11.625)
print(plan(9.2, "768p")) # ('h3-max-lip-sync', 10, 1.0)Notes on the declared length
The request carries duration_seconds, and Sume uses it for the reservation at admit: ceil of that value times the resolution rate times the margin. Send the length you measured from the file, not a round number. If you declare 300 for a 61.4-second track, you reserve $56.25 at 720p instead of $11.63 and tie up balance you may need for other jobs.
The audio file itself must be Sume-hosted and under 10 MB. A track near a minute is far from the cap as an MP3. A long uncompressed export may not be, so check.
Choosing a resolution for a one-minute talking still
For a 62-billed-second clip, 480p costs $6.20 and 720p $11.625, a difference of $5.425. If the clip plays in a small frame, such as a corner inset or a phone feed, 480p is often enough. If it is the main video on a large screen, 720p is the sensible choice. Draft at 480p, then rerun the keeper at 720p, and the pair costs $17.825.
Measure the audio with a tool you trust, such as ffprobe, and send that value, rounded up to a whole second if you prefer. Send Idempotency-Key on the submit so a network retry does not create a duplicate reservation, and poll the job rather than waiting on one request.
Sources
Related posts
More in Developers
- 7:5 and 5:7 images: crop from 3:2, 4:3, 3:4 or 2:3 on Sume
No Sume image row lists 7:5 or 5:7, but BFL's FLUX 3 Image does. How many pixels you lose cropping from 3:2, 4:3, 3:4 and 2:3, with the exact numbers.
- 8 avatar videos on a Free Sume workspace: 6 accepted, then 429
A Free Sume workspace runs 1 job, queues 5 and accepts 6. The 7th and 8th avatar video submits get 429 queue_full. A retry loop that waits and reuses the key.
- Eight Wan 3.0 clips on Free: six queue, two get queue_full
Free plan accepted capacity is 6 paid jobs. Submit eight 10-second Wan 3.0 720p jobs and two return 429 queue_full; the six accepted hold $7.50 of the $10.00.
- A 7-second clip on six Sume video models: $0.525 to $4.0446
Per-second list prices times 7 s for six Sume video models, with each model's accepted duration range and a Python check that rejects out-of-range lengths.
Written by Sume