Models

Consistent character across multiple AI video shots: 3 API inputs

Three documented Sume API inputs send the same character source into every shot: a reusable Avatar 1.0 avatar, one first-frame still, or image references.

5 min readSume
All posts

To reuse one character across several AI video shots with the Sume API, send the same source into every request: the same Avatar 1.0 avatar_handle for talking shots, the same still as the first_frame in frame_images for image-to-video shots, or the same image in input_references for reference-to-video shots. The docs describe what each input feeds the model; none is documented as a guarantee that the character looks identical in every shot.

The inputs below are described in Sume's Create new avatar, Generate avatar video, Video generation, and Image API docs, read on 2026-09-26. For one talking video built from several scenes, see Multi-scene avatar video API.

Which inputs can carry one character into several shots?

Pick the input by the kind of shot. Talking shots go through Avatar 1.0; generated motion shots go through POST /v1/videos.

From Generate avatar video, Video generation, and Image API, read 2026-09-26. Check each video model's lists with GET /v1/videos/models.
InputEndpointWhat the docs say it isLimits
avatar_handlePOST /v1/avatar-1.0/talking-videoA ready, reusable avatar4–60 s per video; one resolved avatar per final video
frame_images with first_framePOST /v1/videosThe first frame of an image-to-video shotThe model must list first_frame in supported_frame_images
input_references with image_urlPOST /v1/videosVisual guidance for reference-to-video, not exact framesThe model must list image_url in supported_input_references
input_references with image_urlPOST /v1/imagesA reference image for image-to-imageText-to-image-only models reject references

How do I reuse one avatar for talking shots?

Create the avatar once with POST /v1/avatar-1.0/generate, from a prompt, a profile (props), or a reference photo (photo with a public HTTPS image_url). Creation is a job; when it completes, use the returned avatar handle or resource id to generate avatar videos. How to create a reusable AI avatar walks through the request.

Then send that same avatar_handle in every POST /v1/avatar-1.0/talking-video request, each with exactly one of script or video_inputs.

  • Each video is accepted when Sume estimates it at 4–60 seconds.
  • Current execution supports one resolved avatar per final video and expects scene backgrounds to resolve to one shared scene.
  • A photo scene reference, scene: { "type": "photo", "image_url": "https://..." }, can go on each video too.

How do I start every generated shot from the same still?

Send the character still as the first_frame in frame_images on each POST /v1/videos request and change only the prompt. The docs define frame_images as first or last frame images for image-to-video, and each entry needs a frame_type of first_frame or last_frame. Check that the model lists first_frame in supported_frame_images in GET /v1/videos/models, and host the still at a public HTTPS URL. This is the second shot of a sequence:

curl -X POST "https://api.sume.com/v1/videos" \
  -H "Authorization: Bearer $SUME_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: character-shot-02" \
  -d '{
    "model": "seedance-2",
    "prompt": "The character sits down on a park bench and opens a book",
    "frame_images": [
      {
        "type": "image_url",
        "image_url": { "url": "https://example.com/character-still.png" },
        "frame_type": "first_frame"
      }
    ],
    "resolution": "1080p"
  }'

When should I use image references instead of a first frame?

Use input_references when a shot should not open on your still. The docs describe reference images as style or content guidance for reference-to-video: the model uses them as visual guidance rather than exact frames. Only models whose supported_input_references lists image_url accept them, and each model caps the count; the reference-to-video guide compares them.

The two do not combine in one request. If both fields are sent, frame_images takes precedence, the request is treated as image-to-video, and the references are dropped.

How do I make the character still in the first place?

With the Image API, POST /v1/images. Send a prompt, or send a reference photo as an image_url entry in input_references for image-to-image. A 200 response returns Sume-hosted image URLs in data[].url, and n asks for up to 10 images in one call, with lower per-model ceilings, so you can generate candidates and pick one.

The Image API docs describe data[].url as Sume-hosted and signed, and the Video generation docs do not document passing that URL straight into frame_images. Host the still you pick at your own public HTTPS URL before you reuse it.

  • Reference URLs must be public HTTPS.
  • Models whose input_references descriptor is {"min": 0, "max": 0} are text-to-image only and reject references.
  • On image-to-image calls the docs recommend aspect_ratio: "auto" to match the reference; omitting the field is not the same.

What can these inputs not do?

Each input reuses a source; it is not a lock on the output. Plan around these documented limits:

  • No seed. No v1 video model accepts seed, and no image model advertises one, so neither API takes a seed.
  • One resolved avatar per final talking video in current execution, so each speaker needs a separate video.
  • A talking video is 4–60 seconds; the docs say to shorten longer scripts or split them into multiple jobs.
  • No input is documented to keep a character identical across shots, so review each shot before you assemble them.

Sources

Related posts

Written by Sume