Skip to main content
POST
Create Generation Task

Overview

Generate videos with the Berry 1.0 Pro all-in-one model (berry-1.0-pro) at 1080p, 2K, or 4K. Like berry-1.0, a single generation endpoint covers three capability sets — the media fields you send decide which one runs: Keyframe mode and reference mode are mutually exclusive — a single request cannot mix fields from both sides.

Key Features

  • Text-to-video, keyframe-driven image-to-video, and multi-modal reference-to-video in one endpoint
  • Three output tiers: 1080p / 2K / 4K, case-insensitive
  • Six aspect ratios plus adaptive, which derives the ratio from intent and input media
  • 2–30 second duration, or -1 for smart duration picked by the model
  • Audio output on by default — pricing is identical whether audio is on or off
  • Image inputs accept both URL and Base64; video / audio inputs are URL only
  • Reproducible generation with seed
  • Prompt rewriting on by default — set prompt_extend: false to stay close to the literal prompt text

Prompt Reference Syntax

In reference mode the prompt may refer to inputs by index — “Image 1” or “Video 1”. Images, videos and audios are counted separately per field, in array order.

Image Input Formats

first_frame, last_frame and every item of reference_images accept three shapes, and the three may be mixed within one reference_images array:
  1. A public HTTP/HTTPS URL
  2. A data URIdata:image/png;base64,iVBORw0KGgo...
  3. A bare Base64 string with no prefix
reference_videos and reference_audios are URL only — Base64 is not accepted there.

Output Ownership

All content generated through this API belongs entirely to the user. MuleRouter claims no ownership rights over any outputs.

Example Requests

Text-to-Video at 4K

First and Last Frame at 2K

First Frame via Base64

Reference-to-Video (Multi-Subject)

Literal Prompt (Rewriting Disabled)

Both fields are optional single HTTP/HTTPS URL strings and belong to reference mode. They cannot be combined with first_frame or last_frame, and file and link cannot be sent together. These combinations are mutually exclusive in the public contract and JSON Schema. The gateway does not synchronously reject combinations involving file or link; it forwards them to the upstream service, which reports incompatibility through the asynchronous task error.

File URL

file supports docx, doc, xlsx, xls, pptx, ppt, pdf, txt, key, pages, numbers, and md files up to 100MB. PDF, DOCX, DOC, PPTX, PPT, KEY, and PAGES files are limited to 50 pages.
link must point to a public web page that is accessible without authentication.

Pricing

Billed on one dimension — resolution unit price × billed duration in seconds. Both the input video and the output video are billed, by video seconds: billed duration = input video duration + output video duration
  • Input video duration — the actual duration, in seconds, of the video supplied in reference_videos; a request with no video input contributes 0 seconds here
  • Output video duration — the duration, in seconds, of the video that was successfully generated
  • A failed task is not billed
  • audio: false does not reduce the price

Parameters

prompt

  • Type: string, conditionally required
  • Max length: 20000 characters
  • Over-length prompts are not rejected — they are passed through and truncated upstream
  • At least one of prompt, a keyframe field, or a reference field must be provided

first_frame / last_frame

  • Type: string (URL, data URI, or bare Base64), optional
  • At most one image each; used strictly as the first / last frame of the video
  • Keyframe mode — cannot be combined with any reference-mode field

reference_images

  • Type: array of strings (URL, data URI, or bare Base64 — mixable), optional
  • Max items: 10
  • Reference mode — cannot be combined with keyframe fields

reference_videos

  • Type: array of URI strings, optional. URL only, no Base64
  • Max items: 5, total duration ≤ 15s
  • This gateway checks only the recognizable file extension (.mp4 / .mov); extensionless URLs such as signed links are passed through

reference_audios

  • Type: array of URI strings, optional. URL only, no Base64
  • Max items: 5, total duration ≤ 15s
  • Extension check is .wav / .mp3; extensionless URLs are passed through

resolution

  • Options: 1080p / 2k / 4k (case-insensitive)
  • Default: 1080p

ratio

  • Options: adaptive / 16:9 / 4:3 / 1:1 / 3:4 / 9:16 (case-insensitive)
  • Default: adaptive

duration

  • Range: integer 2–30 inclusive, or -1 for smart duration
  • Default: 5
  • With video input, the combined input + output duration must be ≤ 30s (validated upstream)

audio

  • Type: boolean
  • Default: true
  • Whether the output video carries an audio track. Pricing is identical either way.

seed

  • Range: 0–2147483647, nullable
  • Default: null (auto-generated seed)

prompt_extend

  • Type: boolean
  • Default: true
  • Whether upstream rewrites (expands) the prompt before generation. Rewriting usually improves motion and cinematography on short prompts; set false to keep generation close to the literal prompt text

Input Requirements

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json

All-in-One video generation. At least one of prompt, a reference field, or a keyframe field must be provided.

Two mutually exclusive input modes:

  • Reference mode: reference_images / reference_videos / reference_audios / file / link
  • Keyframe mode: first_frame / last_frame
prompt
string | null

Text prompt describing the desired video. Up to 20000 characters — over-length prompts are not rejected, they are passed through and truncated upstream. Required unless a keyframe or reference input is given.

first_frame
string | null

First-frame image, strictly used as the first frame of the video. Accepts a public HTTP/HTTPS URL, a data:image/<type>;base64,... data URI, or a bare Base64 string. Keyframe mode; cannot be combined with reference-mode fields.

Upstream format requirements (validated upstream, not by this gateway): JPEG/JPG/PNG (no alpha)/BMP/WEBP, side 240–8000px, ratio ≤8:1, ≤20MB.

last_frame
string | null

Last-frame image, strictly used as the last frame of the video. Same input formats and upstream constraints as first_frame. Keyframe mode; cannot be combined with reference-mode fields.

reference_images
string[] | null

Reference images, up to 10. Each item accepts a public HTTP/HTTPS URL, a data:image/<type>;base64,... data URI, or a bare Base64 string; the three shapes may be mixed within one array. Referenced in prompt as "Image 1", "Image 2", … in array order. Reference mode; cannot be combined with keyframe fields.

Upstream format requirements: JPEG/JPG/PNG (no alpha)/BMP/WEBP, side 240–8000px, ratio ≤8:1, ≤20MB.

Maximum array length: 10
reference_videos
string<uri>[] | null

Reference videos, up to 5, total duration ≤15s. URL only — Base64 is not accepted here (a 100MB video would inflate the request body to ~133MB). Referenced in prompt as "Video 1", "Video 2", … in array order. Reference mode; cannot be combined with keyframe fields.

Upstream format requirements: mp4/mov, side 240–4096px, ratio ≤8:1, each 1–15s, ≤100MB. This gateway checks only the recognizable file extension (.mp4 / .mov); extensionless URLs such as signed links are passed through.

Maximum array length: 5
reference_audios
string<uri>[] | null

Reference audios, up to 5, total duration ≤15s. URL only — Base64 is not accepted here. Reference mode; cannot be combined with keyframe fields.

Upstream format requirements: wav/mp3, each 1–15s, ≤15MB. This gateway checks only the recognizable file extension (.wav / .mp3); extensionless URLs are passed through.

Maximum array length: 5
file
string<uri> | null

Reference file URL. HTTP/HTTPS only; at most one file. Supported formats: docx, doc, xlsx, xls, pptx, ppt, pdf, txt, key, pages, numbers, md. Maximum size is 100MB. The upstream specification limits PDF, DOCX, DOC, PPTX, PPT, KEY, and PAGES files to 50 pages. Mutually exclusive with link and keyframe-mode fields.

Pattern: ^https?://

Public web page URL. HTTP/HTTPS only; the page must be accessible without authentication. At most one link. Mutually exclusive with file and keyframe-mode fields.

Pattern: ^https?://
resolution
enum<string>
default:1080p

Final output resolution tier (case-insensitive).

Available options:
1080p,
2k,
4k
ratio
enum<string>
default:adaptive

Aspect ratio (case-insensitive). adaptive derives the ratio from intent and input media.

Available options:
16:9,
4:3,
1:1,
3:4,
9:16,
adaptive
duration
integer
default:5

Video duration in seconds, 2–30 inclusive, or -1 for smart duration (upstream picks the length from intent / content / media). With video input, the combined input + output duration must be ≤30s — validated upstream.

audio
boolean
default:true

Whether the output video includes an audio track. Pricing is identical either way.

seed
integer | null

Random seed [0, 2147483647]. null or omitted for an auto-generated seed.

Required range: 0 <= x <= 2147483647
prompt_extend
boolean
default:true

Whether upstream rewrites (expands) the prompt before generation. Enabled by default: rewriting usually improves motion and cinematography on short prompts. Set to false to keep generation close to the literal prompt text.

Response

OK - Task created successfully

task_info
object