Skip to content

H3 Max Camera Controls

Integrate

Model id minimax/h3-max/camera-controls
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.com/v1/run/minimax/h3-max/camera-controls?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt_expansion_mode": "balanced",
    "image": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
  }'

# Still "queued" or "running"? Poll with the id from the response:
curl "https://api.doitong.com/v1/requests/REQUEST_ID?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY"

This request: $0.163 163 API credits Run it on this page

Get API key

Made on Doitong

Public works made with Hailuo 03 New Turbo by the Doitong community. Reuse a prompt in one click.

Public works shown: 16
Close-up shot of a striking model with piercing eyes and flawless skin, a white snake elegantly c... Video

Close-up shot of a striking model with piercing eyes and flawless skin, a white snake elegantly coiled around her head and neck, its scales glistening in soft, diffused light. The camera gently zooms in, emphasizing the intricate texture of the snake’s scales and the model’s striking facial...

Animate the stickman drawings into a smooth dance animation. The simple black stick figure perfor... Video

Animate the stickman drawings into a smooth dance animation. The simple black stick figure performs fun rhythmic dance moves — waving its arms, bending knees, jumping lightly, spinning, and swaying side to side in time with upbeat music. Keep the white background clean and minimal. The motion...

A hyper-realistic, cinematic transformation sequence of the man in the uploaded image, sitting in... Video

A hyper-realistic, cinematic transformation sequence of the man in the uploaded image, sitting in meditation inside a traditional Japanese room. The atmosphere begins to tremble slightly as soft blue light flows around him. From the ground, thousands of magnetic nano-particles rise, shimmering...

A cinematic transformation video of the man. The scene begins with him standing naturally, then l... Video

A cinematic transformation video of the man. The scene begins with him standing naturally, then looking down at his hands as glowing holographic projections appear around his body. Mechanical parts of the Iron Man armor start assembling piece by piece with smooth animation: chest plate forming,...

An ultra-epic anime cinematic of Luffy’s greatest enemy unleashing a terrifying blind rage, rampa... Video

An ultra-epic anime cinematic of Luffy’s greatest enemy unleashing a terrifying blind rage, rampaging uncontrollably against nature itself. His gigantic body is surrounded by a storm of black and crimson energy, crackling with lightning that scorches the ground. His roar shakes the heavens,...

A fair-skinned red-haired woman with freckles tightly embraces a majestic white tiger with faint ... Video

A fair-skinned red-haired woman with freckles tightly embraces a majestic white tiger with faint reddish stripes. They remain close, perfectly synchronized in stillness. The woman blinks slowly, slightly tilting her head with a serious and intense expression. The tiger breathes gently — its...

The snowboarder is riding across massive, fluffy white clouds as if they were snow-covered mounta... Video

The snowboarder is riding across massive, fluffy white clouds as if they were snow-covered mountains, with dramatic lighting and deep shadows adding volume and realism. The background shows a stunning blue sky with scattered soft clouds and subtle light rays. crisp cinematic quality, vivid...

Мрачная комната для допросов, тесная и давящая. Одна резкая лампа под потолком бросает конус холо... Video

Мрачная комната для допросов, тесная и давящая. Одна резкая лампа под потолком бросает конус холодного света на металлический стол, вокруг густые тени. Виновный подозреваемый сидит в наручниках по одну сторону стола: потеет, нервно бегает глазами, тяжело дышит, избегает взгляда. Напротив —...

Build a request

Controls are generated from the model schema. The code and the price update as you change them.

0 / 50000

Video-generation prompt that overrides the default frozen-scene behavior. Leaving it blank or omitting it keeps the reference scene fixed and allows only camera movement.

•required

Pre-generation prompt rewriting effort: 'quality' develops a richer prompt over as much as approximately 30s, while 'balanced' returns in roughly a second. Choose 'disabled' to omit prompt expansion.

•required image_url
Drop a file, or

Image URL defining the video's opening frame.

resolution default 480P

Generation resolution selection: 1080P requires latent refinement of material generated natively at 768P, rather than native generation at the selected resolution.

default 5

Requested duration in seconds, allowing an actual video length up to approximately 0.7 s beyond that request.

Advanced seed · enable_safety_checker · camera_trajectory

Seed for random generation; if omitted, one is chosen randomly.

Ordered camera keyframes with signed full rotations retained and total azimuth travel capped at 32 turns. Outside the keyframes' time span, the camera holds the first pose before its timestamp and the final pose through the video's end.

POST /run/minimax/h3-max/camera-controls?wait=20 quote → $0.163
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.com/v1/run/minimax/h3-max/camera-controls?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt_expansion_mode": "balanced",
    "image": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg"
  }'

# Still "queued" or "running"? Poll with the id from the response:
curl "https://api.doitong.com/v1/requests/REQUEST_ID?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY"

Run this request

Your key stays in this browser: it is sent only to the Doitong API and saved (localStorage) only if you tick Remember. Get an API key

About H3 Max Camera Controls

Uses `image_url` as the first frame and moves the camera along `camera_trajectory`, a list of 2 to 12 ordered keyframes. By default, the scene stays rigid so only the camera changes. Duration is 0.92 to 15 seconds, with 480P, 768P or 1080P resolution. Prompt expansion can be tuned.

Parameters

Send either the canonical name or the native name, not both. Canonical names

NameType DefaultAllowed Description
promptoptional
Typestring
DefaultThe same elements in the reference are rigid. Preserve every element exactly. The entire scene is frozen. Only the camera moves. no scene motion only camera motion
≤ 50,000 characters
Video-generation prompt that overrides the default frozen-scene behavior. Leaving it blank or omitting it keeps the reference scene fixed and allows only camera movement.
durationoptional
Typenumber
Default5
0.92 – 15
Requested duration in seconds, allowing an actual video length up to approximately 0.7 s beyond that request.
resolutionoptional
Typeenum
Default480P
480P768P1080P
Generation resolution selection: 1080P requires latent refinement of material generated natively at 768P, rather than native generation at the selected resolution.
seedoptional
Typeinteger | null
Seed for random generation; if omitted, one is chosen randomly.
enable_safety_checkeroptional
Typeboolean
Defaulttrue
Safety checker activation; true enables checking.
prompt_expansion_moderequired
Typestring
Defaultbalanced
Pre-generation prompt rewriting effort: 'quality' develops a richer prompt over as much as approximately 30s, while 'balanced' returns in roughly a second. Choose 'disabled' to omit prompt expansion.
image_urlrequired image
Typeurl · image
Image URL defining the video's opening frame.
camera_trajectoryoptional
Typeobject[]
≤ 12 items≥ 2 items
Ordered camera keyframes with signed full rotations retained and total azimuth travel capped at 32 turns. Outside the keyframes' time span, the camera holds the first pose before its timestamp and the final pose through the video's end.
camera_trajectory[].timerequired
Typenumber
0 – 1
Normalized time within the video, using the interval [0, 1] to represent its beginning and end, respectively.
camera_trajectory[].azimuthrequired
Typenumber
Camera's horizontal angle about the subject, measured in degrees.
camera_trajectory[].elevationrequired
Typenumber
-90 – 90
Camera's vertical angle about the subject, measured in degrees.
camera_trajectory[].distancerequired
Typenumber
> 0
Separation between camera and subject, measured in normalized scene units.
required Canonical name, also accepted

File parameters take a public https:// URL, a data: URI up to 10 MB, or the file_url of an upload. Files

Output

GET /requests/req_8k2m4q7x1z9c3v5b6n0p2r4t
{
  "id": "req_8k2m4q7x1z9c3v5b6n0p2r4t",
  "object": "request",
  "model": "minimax/h3-max/camera-controls",
  "status": "succeeded",
  "created_at": "2026-10-20T12:00:00Z",
  "started_at": "2026-10-20T12:00:02Z",
  "completed_at": "2026-10-20T12:00:09Z",
  "queue_position": null,
  "cost": {
    "credits": 163,
    "usd": "0.163",
    "charged": 163,
    "refunded": 0
  },
  "input": {
    "image_url": "https://content.doitong.com/images/showcase/v3/gen_fox_cartoon.jpg",
    "prompt_expansion_mode": "balanced"
  },
  "output": {
    "video": {
      "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.mp4",
      "content_type": "video/mp4",
      "file_name": "0-output.mp4",
      "file_size": 1843200
    },
    "expanded_prompt": "string",
    "timings": {}
  },
  "outputs": [
    {
      "type": "video",
      "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.mp4",
      "content_type": "video/mp4",
      "file_size": 1843200,
      "width": 1280,
      "height": 720,
      "duration": 5,
      "stored": true
    }
  ],
  "error": null,
  "metrics": {
    "inference_seconds": 6.8
  },
  "urls": {
    "self": "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t",
    "cancel": "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t/cancel"
  }
}
Your files, your choiceEvery outputs[].url is a copy on our storage: kept forever (paid per GB-month) or 7 days for free, by your account setting or ?storage=.
Same shape on every modeltype, url, content_type, width, height and duration, for images, video and audio alike. output is the model’s own result object.
Fields of output
video
object {url, content_type, file_name, file_size}Video produced by the model.
expanded_prompt
string | nullModel-ready expanded prompt, or null if no expanded text is available. The null cases are disabled expansion, expansion that made no change, and expansion handled internally by the model's hosted API.
timings
object | nullTiming measurements expressed in seconds, available only on routes reporting backend timings; otherwise null. The 'inference' entry measures how long DiT denoising took on the GPU backend.

More models: Image to Video

For AI agents: this page as Markdown is at https://doitong.com/developers/models/minimax/h3-max/camera-controls.md. All models and guides: https://doitong.com/developers/llms.txt