Models/AI Character Consistency API

AI Character Consistency API — Reference Packs and Retry Rules

Live40+ reference/character models

Muapi's character consistency models keep a specific subject or character recognizable across new generated images or videos, driven by a pack of reference images (and, on some models, reference video and audio) instead of a plain text description. This page covers how reference packs work, what each model actually accepts, and how to avoid async failures — not which model to pick for raw output quality.

Image Reference vs. Video Reference-to-Video

Image reference models (MiniMax Subject Reference, Ideogram Character, Seedance 2 Character, Gemini Omni Character) take one or a few reference photos of a subject and generate a new still image that keeps that subject recognizable in a different pose, outfit, or setting. Reference-to-video models (Seedance 2.5 Omni Reference, Wan 3.0, Veo 3.1, Kling O1, Vidu Q2, MiniMax H3) do the same thing but output a video — the character stays consistent across every frame of motion, not just one static composition.

Muapi exposes 40+ character/reference models across image and video through the same unified REST pattern: one API key, one request/poll flow, pay-per-generation pricing with no subscription.

Reference Pack Size — Verified Limits

How many reference images a model accepts varies a lot, and it's a real constraint, not a UI preference — submitting more images than a model's images_list limit allows will fail the request. Verified against each model's live input schema:

ModelMax Reference ImagesOther Reference Types
MiniMax Subject Reference1
Seedance 2 Character1–3
Veo 3.1 Reference-to-Video3
Vidu Q2 Reference7
Kling O1 Reference-to-Video7Existing video_url to extend
Wan 3.0 Reference-to-Video10Video + audio references
MiniMax H3 Reference-to-VideoMultipleSeparate video + audio reference fields
Seedance 2.5 Omni Reference30Video + audio references

Multi-Modal References — Beyond Just a Photo

The most capable reference models don't stop at images. Seedance 2.5 Omni Reference and Wan 3.0 Reference-to-Video both accept a videos_list and an audios_list alongside the image references, letting the model carry over motion style or voice, not just visual appearance. MiniMax H3 Reference-to-Video exposes this as three explicit fields — reference_images, reference_videos, reference_audios — so you can mix visual identity from a photo with a voice sample and a motion clip in one request. Gemini Omni Character takes this further into image editing entirely: it builds a character asset from images plus an audio_ids reference for voice, ahead of any generation step.

Representative Models

MiniMaxImage

MiniMax Subject Reference

Cheapest option — a single reference image keeps a subject's identity while generating a new prompt-driven scene.

1 image
$0.01/generation
Try Model
IdeogramImage

Ideogram Character

Single-image character consistency with additional style and render-speed controls.

1 image
$0.15/generation
Try Model
ByteDanceImage

Seedance 2 Character

Builds a named character sheet from 1–3 reference photos — reuse the character_name across later generations.

1–3 images
$0.18/generation
Try Model
GoogleImage

Gemini Omni Character

Creates a full character asset — visual references plus audio_ids for voice — not just a still image.

Multi-image
Free
Try Model
ViduVideo

Vidu Q2 Reference

Cheapest reference-to-video option, with a movement_amplitude control for how much motion happens around the subject.

Up to 7 images
$0.065/generation
Try Model
AlibabaVideo

Wan 3.0 Reference-to-Video

Accepts image, video, and audio references together for full visual-and-motion coherence guidance.

Up to 10 images
$0.50/generation
Try Model
GoogleVideo

Veo 3.1 Reference-to-Video

Reference-driven video generation with a native generate_audio option.

Up to 3 images
$0.60/generation
Try Model
KuaishouVideo

Kling O1 Reference-to-Video Pro

Can combine a reference image pack with an existing video_url to continue or extend a scene.

Up to 7 images
$0.72/generation
Try Model
MiniMaxVideo

MiniMax H3 Reference-to-Video

Separate reference_images, reference_videos, and reference_audios fields — the most explicit multi-modal reference input in the lineup.

Multi-image + video + audio
$1.00/generation
Try Model
ByteDanceVideo

Seedance 2.5 Omni Reference

The largest reference pack in the lineup — up to 30 images plus video and audio references, with a task-type hint to catch constraint mismatches before submission.

Up to 30 images
$1.70/generation (720p)
Try Model

Writing Controlled Prompts for Reference Models

  • Describe the new scene, not the subject. The reference images already establish who the character is — the prompt should describe the pose, setting, action, or camera move, not re-describe the character's appearance.
  • Use multiple angles when the pack allows it. A front, a 3/4, and a profile shot of the same subject give models with a larger reference limit (Wan 3.0, Seedance 2.5 Omni Reference) more identity signal than three near-identical front shots.
  • Keep lighting and background simple in reference photos. A cluttered or heavily stylized reference image can bleed unwanted background elements into the generated result.
  • Build your own test set before batch-producing. Run the same reference pack through 3–5 different prompts and compare results side by side — consistency quality varies by pose extremity and scene complexity, and there is currently no published third-party benchmark to substitute for testing your specific character.

Avoiding Async Failures — Task-Type Hints and Retries

Seedance 2.5 Omni Reference exposes an omni_reference_task_type field (auto/reference/edit/extend) specifically so that ratio/duration constraint mismatches get caught at submission time instead of failing asynchronously after you've already waited on the job. edit and extend both require aspect_ratio: "adaptive", and edit additionally requires duration: -1 — leaving these as their defaults on the wrong task type is a common cause of a late, avoidable failure. Note the model still re-derives the actual task type from the prompt during processing, so a mismatch can still surface as an async error even with the hint set correctly — treat the field as a submission-time sanity check, not a guarantee.

How to Call a Character Consistency Model

  1. Host your reference images. Upload via POST /api/v1/upload_file, or use any publicly reachable URLs.
  2. Submit the request. POST /api/v1/{model-slug} with images_list (or image_url for single-reference models) and a prompt describing the new scene.
  3. Poll for completion. Check GET /api/v1/predictions/{request_id}/result until status is completed, then download the result.
curl -X POST https://api.muapi.ai/api/v1/seedance-2.5-omni-reference \
  -H "Content-Type: application/json" \
  -H "x-api-key: YOUR_API_KEY" \
  -d '{
    "images_list": [
      "https://example.com/character-front.jpg",
      "https://example.com/character-side.jpg"
    ],
    "prompt": "the character walking through a neon-lit city street at night",
    "omni_reference_task_type": "reference",
    "duration": 5,
    "aspect_ratio": "16:9"
  }'
import requests

response = requests.post(
    "https://api.muapi.ai/api/v1/seedance-2.5-omni-reference",
    headers={"x-api-key": "YOUR_API_KEY"},
    json={
        "images_list": [
            "https://example.com/character-front.jpg",
            "https://example.com/character-side.jpg",
        ],
        "prompt": "the character walking through a neon-lit city street at night",
        "omni_reference_task_type": "reference",
        "duration": 5,
        "aspect_ratio": "16:9",
    },
)
request_id = response.json()["request_id"]

result = requests.get(
    f"https://api.muapi.ai/api/v1/predictions/{request_id}/result",
    headers={"x-api-key": "YOUR_API_KEY"},
)
print(result.json())

Frequently Asked Questions

How many reference images can I use?

It depends on the model: 1 for MiniMax Subject Reference, 1–3 for Seedance 2 Character, 3 for Veo 3.1, 7 for Vidu Q2 and Kling O1, 10 for Wan 3.0, and up to 30 for Seedance 2.5 Omni Reference. Submitting more than a model's limit will fail the request.

Can I use a video or audio clip as a reference, not just a photo?

Yes, on the more capable models — Seedance 2.5 Omni Reference and Wan 3.0 Reference-to-Video accept video and audio references alongside images, and MiniMax H3 Reference-to-Video exposes separate reference_images, reference_videos, and reference_audios fields.

What's the difference between image reference and reference-to-video?

Image reference models (MiniMax Subject Reference, Ideogram Character) output a single new image keeping the subject consistent. Reference-to-video models (Seedance 2.5 Omni Reference, Veo 3.1, Kling O1, Vidu Q2, Wan 3.0, MiniMax H3) output a full video with the character consistent across every frame.

How do I avoid an async failure on Seedance 2.5 Omni Reference?

Set omni_reference_task_type explicitly (reference/edit/extend) and match its ratio/duration requirements — edit and extend both require aspect_ratio: "adaptive", and edit additionally requires duration: -1. The model still re-derives the task type from the prompt, so this catches most but not all mismatches at submission time.

How much does character consistency cost?

From free (Gemini Omni Character) and $0.01/generation (MiniMax Subject Reference) up to $1.70/generation for Seedance 2.5 Omni Reference at 720p — see the pack-size table above for the full comparison.

Can I get Character Consistency API access right now?

Yes. Sign up at muapi.ai, create an API key from your dashboard, and start calling any character/reference model immediately — no waitlist required.