Gemini Omni 4K on Sume: send 4K or 4k, 10 s max, 16:9 or 9:16

Sume's gemini-omni-flash-1.1 takes 4K, and lowercase 4k works as an alias. Requests run 3 to 10 seconds, 16:9 or 9:16. Python body builder.

4 min readSume
All posts

What do I send for 4K on Gemini Omni through Sume?

Set resolution to 4K. Lowercase 4k is accepted as an alias, so either spelling works. A request on gemini-omni-flash-1.1 is 3 to 10 seconds long and 16:9 or 9:16 only, and native audio is always on, so leave generate_audio out (the API rejects false).

Google's Gemini Omni 1.1 Flash post lists 360p, 720p, 1080p and 4K, a 360p draft mode, first and last frame control and scene extension to 40 seconds in 10 second steps. Sume's catalog exposes the resolutions and the 3 to 10 second request, not an extension parameter, so plan longer shots as separate requests.

Sume's catalog also lists up to 10 reference images and up to 3 reference videos, each clip no longer than 3 seconds. That is enough to pin a product or a character across a 10 second shot, and the Video Router accepts image_url plus an optional end_image_url for the start and end of the take.

Request limits for gemini-omni-flash-1.1

gemini-omni-flash-1.1 on Sume (catalog and Google page, read 2026-10-06)
FieldAcceptedNote
resolution360p, 720p, 1080p, 4K (and 4k)Lowercase 4k is an alias
duration3 to 10 sInteger seconds
aspect_ratio16:9 or 9:16Nothing else
generate_audioNot a fieldNative audio is always produced
reference images / videosUp to 10 / up to 3Each reference video up to 3 s
List price at 4K$0.30 per secondCatalog list 2026-08-28, subject to change

Body builder that checks the rules

The function normalizes the resolution, enforces the ranges locally and returns a body for POST /v1/videos. It runs offline, so it fits in a unit test.

ALLOWED = {"360p", "720p", "1080p", "4K"}

def omni_body(prompt: str, seconds: int, resolution: str = "720p",
              aspect_ratio: str = "16:9") -> dict:
    res = "4K" if resolution.lower() == "4k" else resolution
    if res not in ALLOWED:
        raise ValueError(f"resolution must be one of {sorted(ALLOWED)}")
    if not 3 <= seconds <= 10:
        raise ValueError("gemini-omni-flash-1.1 takes 3 to 10 seconds")
    if aspect_ratio not in ("16:9", "9:16"):
        raise ValueError("aspect_ratio must be 16:9 or 9:16")
    return {"model": "gemini-omni-flash-1.1", "prompt": prompt, "duration": seconds,
            "resolution": res, "aspect_ratio": aspect_ratio}

print(omni_body("A paper boat on a rain-lit street", 10, "4k"))
try:
    omni_body("x", 12)
except ValueError as e:
    print("rejected:", e)

Draft cheap, finish sharp

Google says its 360p draft mode is up to 60 percent faster and a third of the cost of standard 720p (Google's figure, not a Sume measurement). Sume lists 360p at $0.03 per second and 4K at $0.30, so a 10 second draft reserves a small fraction of the 4K final. Resolution is the main lever on price for a fixed duration, so treat it as the last choice, not the first. Iterate on the prompt at 360p, then raise only the resolution for the take you keep, with a new Idempotency-Key because the body changed.

If you need a clip longer than 10 seconds in one request, wan-3.0 in the Sume catalog accepts 2 to 30 seconds. It is a different model, so the look will differ from Omni's. Check each model's descriptor at GET /v1/videos/models before you hard-code a range.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume