Genjutsu video length limit: 4 to 30 seconds, inspect first
Genjutsu takes a 4 to 30 second source video. On Sume the duration field must equal the inspected length, rounded up. Probe it with video inspect first.

Genjutsu accepts a source video of 4 to 30 seconds. On Sume, the duration you send for the Genjutsu Motion Transfer row must be the input video's actual length in seconds, rounded up, and that value must fall in 4 to 30. Get the number from video inspect before you submit.
The 4 to 30 second range is from Higgsfield's Genjutsu page, read 2026-09-30. The rest is from Sume's catalog in code and the Video inspect docs.
Is duration a trim control?
No. The catalog says the output preserves source length and framing, and that duration is the inspected input length. The model is priced per output second by resolution, so a wrong value is a wrong cost estimate, not a shorter clip. To cut a clip, trim it before you import it.
How do I get the exact length?
Use POST /v1/video-inspect with a video_url. Probe and stills are unbilled. It reads one media.sume.com clip owned by your workspace, and there is no open-internet fetch, so the clip must already be on Sume (a public TikTok or Instagram URL can be imported with POST /v1/media-imports). Inspect needs an Idempotency-Key. Rounded-up examples:
| Inspected length | Send as duration | Valid? |
|---|---|---|
| 4.0 s | 4 | Yes, at the floor |
| 2.5 s | 3 | No, below 4 |
| 11.4 s | 12 | Yes |
| 29.01 s | 30 | Yes |
| 30.5 s | 31 | No, above 30 |
What default resolution applies?
The catalog lists 480p as the default, with 480p and 720p available. More on the probe in Get video duration, resolution and fps.
Will the model always be available?
The Video generation docs say the row is listed only when its provider is configured. Check GET /v1/video-router/models first.
Sources
Related posts
More in Developers
- GitHub Actions retention days: keep the Sume job id elsewhere
From 1 October 2026 GitHub Actions runs, checks and statuses follow the log retention setting (default 90 days). Store Sume job ids outside the log.
- cancel-in-progress killed my workflow; does the Sume job stop?
Cancelling a GitHub Actions run does not cancel a Sume job. Cancellation only works before generation starts, so store the job id and cancel it explicitly.
- GitHub Actions dropped Node 20: calling Sume needs no Node
Node 20 is gone from GitHub Actions runners. Sume's CLI is a native binary and the API is plain HTTPS, so a workflow step can call it with no Node version.
- GitHub Actions re-run: which idempotency key for Sume jobs?
GITHUB_RUN_ID stays the same on a re-run while GITHUB_RUN_ATTEMPT increments. Build the Sume Idempotency-Key from the run id so a re-run does not bill twice.
Written by Sume