GuidesHow Do You Get AI Video Character Consistency Across Clips?
Makernice Team · ·
Prices as of November 12, 2026 (price list v15).
Key takeaways
- Makernice has no saved character or character ID, so a recurring character comes from inputs you repeat in every request: reference images, a frame from the previous clip, a seed and the same appearance text.
- 9 of the 13 video models take reference images in r2v mode; Seedance 2.5 takes the most, up to 16, and MiniMax H3 Max Turbo, Kling 3.0 Pro, Kling 3.0 Standard and Kling 3.0 4K have no r2v mode.
- 12 video models accept a first frame (image to video or first and last frame), so the last frame of one clip can open the next; Kling 3.0 4K is text to video only.
- The optional seed field (0 to 2,147,483,647) is accepted on 8 video models; MiniMax H3 Max, Kling 3.0 Pro, Kling 3.0 Standard, Kling 3.0 4K and Kling 4.0 return 400 invalid_request when it is sent.
AI video character consistency on Makernice comes from repeating the same inputs in every request, so the same character carries across clips: the same reference images in reference-to-video, the previous clip's last frame as image_url, the same seed where the model takes one, and the same written description of the character. Makernice has no saved-character feature, and each generation is a separate request. Which of these four settings you can use depends on the model, and the table below lists them for all 13 video models.
How do I keep the same character consistent across AI video clips?
Keep the same character consistent across AI video clips by sending four inputs again with every clip, as far as the model accepts them: reference images of the character, the last frame of the previous clip as the starting frame, a fixed seed and the same written description. The table lists which of the four each of the 13 video models accepts, with its clip length.
| Model | Reference images | Next clip from last frame | seed | Clip length |
|---|---|---|---|---|
| Seedance 2.5 | Up to 16 (r2v) | Yes: image to video, first and last frame | Accepted | 4 to 30 s |
| Seedance 2.0 | Up to 9 (r2v) | Yes: image to video, first and last frame | Accepted | 4 to 15 s |
| Seedance 2.0 Fast | Up to 9 (r2v) | Yes: image to video, first and last frame | Accepted | 4 to 15 s |
| MiniMax H3 | Up to 5 (r2v) | Yes: image to video, first and last frame | Accepted | 5 to 15 s |
| MiniMax H3 Max | Up to 4 (r2v) | Yes: image to video, first and last frame | Not accepted | 5 to 15 s |
| MiniMax H3 Max Turbo | No r2v mode | Yes: image to video, first and last frame | Accepted | 5 to 15 s |
| Wan 3.0 | Up to 10 (r2v) | Yes: image to video, first and last frame | Accepted | 2 to 30 s |
| Wan 3.0 Prime | Up to 10 (r2v) | Yes: image to video, first and last frame | Accepted | 2 to 30 s |
| Kling 3.0 Pro | No r2v mode | Yes: image to video, first and last frame | Not accepted | 3 to 15 s |
| Kling 3.0 Standard | No r2v mode | Yes: image to video, first and last frame | Not accepted | 3 to 15 s |
| Kling 3.0 4K | No r2v mode | No (text to video only) | Not accepted | 3 to 15 s |
| Kling 4.0 | Up to 10 (r2v) | Yes: image to video, first and last frame | Not accepted | 3 to 30 s |
| Happy Horse 1.1 | Up to 9 (r2v) | Yes: image to video | Accepted | 3 to 15 s |
Every model in the table also accepts a text prompt, so the written description works everywhere. Model ids, modes and limits can change, so read GET /v1/models before building a pipeline around one model; it needs no API key.
How do I send reference images of the character?
To keep the same character with reference images, use mode r2v and put still images of the character in reference_images: for example one close-up of the face, one full-body shot of the outfit and one side view. Send the same set, in the same order, with every clip of the sequence. Each image must be a public https link to a still JPEG or PNG file of at most 10 MB, served directly, because redirects are not followed. Each model also has its own pixel and aspect-ratio limits, listed in the API docs. Sending more images than the model's limit returns 400 invalid_request.
If you don't have photos of the character yet, an image model can make the set first. Image to image mode takes reference images too, up to 16 on MiniMax H3-Image, 14 on Seedream 5.0, 10 on Seedream 5.0 Pro, 10 on Seedream 5.5, 3 on Qwen3 Image and 3 on Qwen3 Pro Image. The reference-to-video guide covers aspect_ratio rules per model in r2v mode.
How do I start the next clip from the last frame of the previous one?
To open the next clip on the same character where the last one ended, export the final frame of the finished clip as a still image, upload it to a public https link, and send that link as image_url in image to video mode for the next clip. With first and last frame mode you can also send a target end frame as last_image_url. One way to export the last frame is with ffmpeg:
ffmpeg -sseof -1 -i clip-1.mp4 -update 1 clip-1-last-frame.pngSave the frame as PNG or JPEG, because the Kling models don't take WebP input images. The image-to-video and first and last frame guide lists which models accept an aspect_ratio in those two modes.
Which video models accept a fixed seed?
Seedance 2.5, Seedance 2.0, Seedance 2.0 Fast, MiniMax H3, MiniMax H3 Max Turbo, Wan 3.0, Wan 3.0 Prime and Happy Horse 1.1 accept an optional integer seed from 0 to 2,147,483,647. MiniMax H3 Max, Kling 3.0 Pro, Kling 3.0 Standard, Kling 3.0 4K and Kling 4.0 don't, and a request that sends seed to them returns 400 invalid_request. None of the image models takes seed either. If seed can't be honoured for a model at that moment, the quote is refused, and Makernice doesn't drop the field silently.
A seed sets the random starting point of one run on one model. Keep it identical across the clips of a sequence together with the model, resolution and aspect ratio. It is unrelated to any character identity, and the same number on a different model starts a different run.
What should the character description in each prompt contain?
For the same character in every clip, write the appearance once and paste the same sentence at the start of every prompt, word for word. Change only the action, the setting and the camera for each clip. Concrete, visible details are easier to repeat exactly: age range, hair, glasses, each piece of clothing with its colour, and one distinguishing mark.
- Name the character in the description and use that name in every clip.
- Keep the outfit the same across the sequence unless the story changes it, and describe a change in the prompt where it happens.
- Mind the prompt length when the description is long: Kling 3.0 Pro, Kling 3.0 Standard, Kling 3.0 4K and Happy Horse 1.1 accept up to 2,500 characters, and the other video models up to 4,000.
- More prompt-writing patterns are in the text-to-video prompt tips.
How do I keep the same character consistent across Seedance clips?
Every Seedance model on Makernice accepts all four settings, so a Seedance sequence can repeat reference images, a starting frame, a seed and the description in every clip to keep the same character. Seedance 2.5 takes up to 16 reference images in r2v mode and runs 4 to 30 seconds per clip. Seedance 2.0 and Seedance 2.0 Fast take up to 9 and run 4 to 15 seconds. Seedance 2.5, Seedance 2.0 and Seedance 2.0 Fast don't accept video input, so a finished clip can't be passed back in; its last frame goes in as image_url instead.
How do I keep the same character consistent across Kling clips?
Kling models on Makernice take no seed, so a Kling sequence keeps the same character with reference images, a starting frame and the repeated description. Kling 4.0 is the only Kling model with r2v mode, taking up to 10 reference images. Kling 3.0 Pro and Kling 3.0 Standard start a clip from a frame in image to video or first and last frame mode, and Kling 3.0 4K is text to video only, so it carries the character through the description alone. The Kling models don't take WebP files, so save frames and reference images as PNG or JPEG.
How do I keep the same character consistent across MiniMax H3 (Hailuo 03) clips?
MiniMax H3 (Hailuo 03) accepts all four settings for keeping the same character: up to 5 reference images in r2v mode, a starting frame in image to video or first and last frame mode, and a seed. Within the same family, MiniMax H3 Max takes up to 4 reference images but no seed, and MiniMax H3 Max Turbo takes a seed and a starting frame but has no r2v mode. Pick the model by which of those inputs your sequence depends on, then keep that model for every clip.
How do I keep the same character consistent with Qwen3 Image?
To carry the same character across still pictures, Qwen3 Image and Qwen3 Pro Image use image-to-image edits: send up to 3 existing pictures of the character in reference_images with the same written description, and change only the pose, setting or outfit in the prompt. Neither Qwen model takes a seed, and both make still images only. A set of pictures made this way can then be the reference images or the starting frame for a video model.
What do two consecutive Wan 3.0 requests look like?
Two consecutive Wan 3.0 requests for the same character can use all four settings on Wan 3.0. The first clip uses three reference images; the second clip starts from the first clip's last frame. Both share the same seed and the same description.
{
"model": "wan-3.0",
"mode": "r2v",
"prompt": "Mara, a woman in her thirties with a short black bob, round silver glasses, a mustard-yellow raincoat over a grey hoodie, and a small scar above her left eyebrow. She unlocks a bicycle outside a corner bakery at dawn, wide shot, camera slowly pushing in.",
"reference_images": [
"https://example.com/mara-face.png",
"https://example.com/mara-full-body.png",
"https://example.com/mara-profile.png"
],
"duration": 6,
"resolution": "720p",
"seed": 4271
}{
"model": "wan-3.0",
"mode": "i2v",
"prompt": "Mara, a woman in her thirties with a short black bob, round silver glasses, a mustard-yellow raincoat over a grey hoodie, and a small scar above her left eyebrow. She rides the bicycle down a quiet street lined with plane trees, tracking shot from the side.",
"image_url": "https://example.com/clip-1-last-frame.png",
"duration": 6,
"resolution": "720p",
"seed": 4271
}Send each input to POST /v1/generations/quote first, then create the generation with the quote id and an Idempotency-Key. Each clip is quoted and billed on its own, per second of the duration you request. Failed runs are not charged. Note: if a finished output is blocked by output moderation for a policy violation, the run is still charged. You can contact support for a manual review.