Minimax H3 Singularity Reference To Video LoRA API Documentation

Minimax H3 Singularity Reference To Video LoRA API Documentation

Playground

Try it on WaveSpeedAI!

MiniMax H3 Singularity Open Weights Reference to Video with custom LoRA support generates coherent 480P / 540P / 768P videos from prompts and multimodal references, guided by up to 9 reference images, 3 reference videos, and 3 reference audios, with native stereo audio and flexible reference-based video generation. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.

Features

MiniMax H3 Singularity Reference-to-Video LoRA combines multimodal reference guidance with LoRA customization for more controlled video generation. Use reference images, videos, and audio to guide identity, appearance, motion, camera behavior, or sound, then apply up to three LoRA weights to further influence the generated result.

This open-weights endpoint runs on WaveSpeedAI infrastructure and supports 480p, 540p, 768p, and 1080p output, native stereo audio generation, multiple aspect ratios, and videos from 3 to 15 seconds.


Why Choose This?

  • Multimodal reference guidance
    Combine image, video, and audio references in the same generation workflow.

  • LoRA customization
    Load up to 3 LoRA weights per request, each with its own scale.

  • Up to 9 reference images
    Use multiple image references for characters, objects, environments, appearance, or visual style.

  • Up to 3 reference videos
    Guide motion, pacing, action, or camera behavior with video references.

  • Standalone audio references
    Add up to 3 reference audio tracks for voice, music, rhythm, ambience, or sound direction.

  • Native stereo audio
    Generate video and synchronized stereo audio together in a single workflow.

  • Reference-aware prompting
    Address inputs directly with tags such as <Picture 1>, <Video 1>, and <Audio 1>.

  • Four resolution tiers
    Generate at 480p, 540p, 768p, or 1080p.


Parameters

ParameterRequiredDescription
promptYesText instructions describing the desired video. Refer to supplied inputs using tags such as <Picture 1>, <Video 1>, and <Audio 1>.
reference_imagesNoUp to 9 reference image URLs.
reference_videosNoUp to 3 reference video URLs. They can be used at any supported output resolution, and their soundtracks are used automatically.
reference_audiosNoUp to 3 standalone reference audio URLs.
aspect_ratioNoOutput aspect ratio: 16:9, 9:16, 1:1, 4:3, 3:4, 21:9, or 9:21. Default: 16:9.
resolutionNoOutput resolution: 480p, 540p, 768p, or 1080p. Default: 480p.
durationNoOutput duration in seconds. Range: 3–15. Default: 5.
seedNoFixed seed for reproducible generation.
lorasNoUp to 3 LoRA weights. Each item uses {path, scale}, where path points to the LoRA file.

At least one of reference_images or reference_videos is required. reference_audios can provide additional audio guidance but cannot be used as the only reference input.


How to Use References

Address each reference directly in the prompt:

  • Images: <Picture 1>, <Picture 2>, …
  • Videos: <Video 1>, <Video 2>, …
  • Audio: <Audio 1>, <Audio 2>, …

Assign a clear role to each reference instead of leaving the model to infer its purpose.

For example:

> Use the character from <Picture 1>, the visual style from <Picture 2>, and follow the motion and camera pacing of <Video 1>. Use <Audio 1> as the voice reference.

Reference video soundtracks are used automatically.


Reference Rules

  • At least one reference image or reference video is required.
  • Reference audio cannot be used as the only reference type.
  • Up to 9 reference images are supported.
  • Up to 3 reference videos are supported.
  • Up to 3 standalone reference audio inputs are supported.
  • Reference video soundtracks are used automatically.
  • Total reference-video duration is capped at 15 seconds.
  • Longer reference-video inputs may be trimmed to fit the shared duration budget.

How to Use

  1. Add reference media — Provide image or video references, plus optional standalone audio references.
  2. Write the prompt — Use <Picture N>, <Video N>, and <Audio N> tags to assign each reference a clear role.
  3. Choose aspect ratio — Select the output composition that fits your target format.
  4. Choose resolution — Select 480p, 540p, 768p, or 1080p.
  5. Set duration — Choose an output length from 3 to 15 seconds.
  6. Add LoRAs optional — Supply up to 3 LoRA files with individual scale values.
  7. Set seed optional — Use a fixed seed when reproducibility is needed.
  8. Submit — Generate the final reference-guided video with audio.

Pricing

Pricing is based on generated output duration, total billed reference-video duration, selected resolution, and the number of reference images and standalone audio inputs.

Video Pricing

The generated output and reference-video duration use the same resolution-based rate.

ResolutionPer 5sPer Second
480p$0.30$0.06
540p$0.45$0.09
768p$0.60$0.12
1080p$1.20$0.24

Reference Pricing

Reference TypePrice
Reference image$0.02 each
Standalone reference audio$0.02 each
Reference videoSame per-second rate as the selected output resolution

Output duration and total reference-video duration are each capped at 15 seconds for pricing. Reference-video duration is rounded up to the next whole second.

Example Cost

ComponentCost
10s output video$0.60
2 reference images$0.04
5s reference video$0.30
Total$0.94

Best Use Cases

  • LoRA-guided character generation — Combine character references with LoRA weights for stronger subject control.
  • Style customization — Apply LoRAs alongside reference images to guide a specific visual direction.
  • Motion-guided generation — Use reference videos to influence movement, pacing, gestures, or camera behavior.
  • Multi-reference scenes — Combine characters, environments, motion, and audio references in one request.
  • Audio-guided workflows — Use standalone audio to guide voice, music, ambience, or rhythm.
  • Creative experimentation — Compare different LoRA combinations, scales, references, and prompts.

Pro Tips

  • Give every reference a specific role in the prompt.
  • Use exact tags such as <Picture 1>, <Video 1>, and <Audio 1>.
  • Use reference images for identity, appearance, objects, environments, or visual style.
  • Use reference videos when motion, gesture, pacing, or camera behavior matters.
  • Use reference audio when voice, rhythm, music, or ambience matters.
  • Keep LoRA combinations focused; several high-scale LoRAs may compete with each other.
  • Use 480p for lower-cost testing before moving to higher resolutions.
  • Set a fixed seed when comparing LoRA scale or reference changes.

Notes

  • prompt is required.
  • At least one reference image or reference video is required.
  • Up to 9 reference images are supported.
  • Up to 3 reference videos are supported.
  • Up to 3 standalone reference audio inputs are supported.
  • Up to 3 LoRA weights can be loaded per request.
  • Total reference-video duration is capped at 15 seconds.
  • Reference video soundtracks are used automatically.
  • duration supports 3–15 seconds.
  • resolution defaults to 480p.
  • aspect_ratio defaults to 16:9.

Authentication

For authentication details, please refer to the Authentication Guide.

API Endpoints

Submit Task & Query Result

set -euo pipefail

export WAVESPEED_API_KEY="your-api-key"

REQUEST_BODY=$(cat <<'JSON'
{
  "prompt": "A cinematic ocean wave at sunrise, highly detailed",
  "aspect_ratio": "16:9",
  "resolution": "480p",
  "duration": 5
}
JSON
)

# 1. Submit the prediction.
SUBMIT_RESPONSE=$(curl --silent --show-error --fail-with-body \
  -X POST "https://api.wavespeed.ai/api/v3/wavespeed-ai/minimax-h3-singularity/reference-to-video-lora" \
  -H "Authorization: Bearer ${WAVESPEED_API_KEY}" \
  -H "Content-Type: application/json" \
  -d "${REQUEST_BODY}")

TASK=$(printf '%s' "${SUBMIT_RESPONSE}" | jq 'if type == "object" and has("data") then .data else . end')
PREDICTION_ID=$(printf '%s' "${TASK}" | jq -r '.id // empty')
if [ -z "${PREDICTION_ID}" ]; then
  printf 'Submission response did not contain a prediction id
' >&2
  exit 1
fi
RESULT_URL="https://api.wavespeed.ai/api/v3/predictions/${PREDICTION_ID}/result"

# 2. Poll until the prediction finishes.
while true; do
  RESPONSE=$(curl --silent --show-error --fail-with-body \
    "${RESULT_URL}" \
    -H "Authorization: Bearer ${WAVESPEED_API_KEY}")
  RESULT=$(printf '%s' "${RESPONSE}" | jq 'if type == "object" and has("data") then .data else . end')
  STATUS=$(printf '%s' "${RESULT}" | jq -r '.status // empty')

  case "${STATUS}" in
    completed) printf '%s\n' "${RESULT}" | jq '.outputs'; break ;;
    failed|cancelled|timeout|deleted) printf '%s\n' "${RESULT}" | jq . >&2; exit 1 ;;
    *) sleep 2 ;;
  esac
done

Parameters

Task Submission Parameters

Request Parameters

ParameterTypeRequiredDefaultRangeDescription
promptstringYes-Text description of the desired video. Refer to reference inputs as <Picture 1>..<Picture 9>, <Video 1>..<Video 3>, and <Audio 1>..<Audio 3>. Audio is generated natively together with the video.
reference_imagesarray<string>No-0 ~ 9 itemsReference image URLs (up to 9). At least one reference input is required.
reference_videosarray<string>No-0 ~ 3 itemsReference video URLs (up to 3, usable at any output resolution). Their soundtracks are used automatically. Total reference video duration is budgeted to 15 seconds; longer inputs are truncated fairly.
reference_audiosarray<string>No-0 ~ 3 itemsStandalone reference audio URLs (up to 3, trimmed to 15 seconds each).
aspect_ratiostringNo16:916:9, 9:16, 1:1, 4:3, 3:4, 21:9, 9:21Output aspect ratio.
resolutionstringNo480p480p, 540p, 768p, 1080pOutput video resolution. 768p is the model's native canvas; 480p is a faster, lower-cost tier; 540p is a mid tier at 1.5x the 480p price. 1080p is the highest-quality full-HD tier at 2x the 768p price (generation takes longer).
durationintegerNo53, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15Output video duration in seconds.
lorasarray<object>No0 ~ 3 itemsList of LoRAs to apply (max 3).
seedintegerNo--The random seed to use for the generation. -1 means a random seed will be used.

Response Parameters

ParameterTypeDescription
codeintegerHTTP status code (e.g., 200 for success)
messagestringStatus message (e.g., “success”)
data.idstringUnique identifier for the prediction, Task Id
data.modelstringModel ID used for the prediction
data.outputsarrayOutput values, usually URL strings; some models return text strings or structured result objects (empty when status is not completed)
data.urlsobjectObject containing related API endpoints
data.statusstringTask status. completed is successful; failed, cancelled, timeout, and deleted are failure terminal statuses.
data.created_atstringISO timestamp of when the request was created (e.g., “2023-04-01T12:34:56.789Z”)
data.errorstringError message (empty if no error occurred)
data.timingsobjectObject containing timing details
data.timings.inferenceintegerInference time in milliseconds

Result Request Parameters

ParameterTypeRequiredDefaultDescription
idstringYes-Task ID

Result Response Parameters

ParameterTypeDescription
codeintegerHTTP status code (e.g., 200 for success)
messagestringStatus message (e.g., “success”)
dataobjectThe prediction data object containing all details
data.idstringUnique identifier for the prediction
data.modelstringModel ID used for the prediction
data.outputsarray<string | object>Array of generated outputs (empty when status is not completed). Items are usually URL strings, but may be text strings or structured result objects, depending on the model.
data.urlsobjectObject containing related API endpoints
data.statusstringStatus: completed is successful; failed, cancelled, timeout, and deleted are failure terminal statuses
data.created_atstringISO timestamp of when the request was created
data.errorstringError message (empty if no error occurred)
data.timingsobjectObject containing timing details
data.timings.inferenceintegerInference time in milliseconds
© 2026 WaveSpeedAI. All rights reserved.