2K or 4K AI video on Sume: H3 upscale or Omni 4K, and what each costs

For 4K on Sume, H3 is $0.20 a second as an upscale of its 768p output and Omni is $0.375. A 10-second 4K clip is $2.00 on H3 and $3.75 on Omni.

5 min readSume
All posts

Two Sume models price a 4K clip: minimax-h3 at $0.20 a second and gemini-omni-flash-1.1 at $0.375. H3's 2K ($0.1625) and 4K tiers are upscales of its native 768p picture; Omni lists 4K as a normal resolution. A 10-second 4K clip is $2.00 on H3 and $3.75 on Omni. Every other model tops out at 1080p.

The H3 upscale note and the prices are from the Video Router guide, read 2026-10-05.

High-resolution rates

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.

Resolutions above 1080p and the 1080p alternatives on Sume (read 2026-10-05)
ModelResolutionRate per second10-second clip
minimax-h32K (upscaled from 768p)$0.1625$1.63
minimax-h34K (upscaled from 768p)$0.20$2.00
gemini-omni-flash-1.14K$0.375$3.75
gemini-omni-flash-1.11080p$0.1875$1.88
kling-31080p$0.14$1.40
wan-3.01080p$0.25$2.50

When 4K is worth it

An upscale adds pixels, not new detail, so H3 4K suits a clip that will be cropped or shown on a large screen. If the source detail itself matters, such as fabric or small print on a label, start from a model whose 1080p or 4K is generated at that size.

Omni is capped at 10 seconds and only 16:9 or 9:16. H3 runs 5 to 15 seconds and takes more ratios, including 21:9, 4:3, 1:1 and 3:4.

  • Need the lowest 4K bill: H3.
  • Need a 4K clip generated at that resolution: Omni.
  • Do not need 4K: Kling 3 at 1080p is the cheapest 1080p.

Request

A 4K Omni request; use "2K" or "4K" as the resolution on H3.

import os, time, requests

H = {"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"}
payload = {
    "model": "gemini-omni-flash-1.1",
    "prompt": "Close-up of a watch face, second hand sweeping, studio light",
    "duration": 6,
    "resolution": "4K",
    "aspect_ratio": "16:9",
}
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 Models

All Models posts

Written by Sume