Skip to main content
A Cast card is a saved character, location or prop: a name, a short description of what never changes, and up to 8 reference images. Pass cards to an image or video job with input.cast and Voyager puts their best references into the model’s reference field and describes them in the prompt, so the same person, place or object looks the same from shot to shot. Cast cards belong to the workspace. They’re the same cards you use when you connect ChatGPT or Codex to Voyager (see Connect your AI): a card saved from the API shows up there, and the other way round.
Cast in the API is not the same as Elements in the Voyager desktop app. Elements are local files in each project on your computer and aren’t reachable from the API. To use a character from the app, upload its reference images and save them as a Cast card.

The Cast card

An example card:
Each entry in references (url is a signed preview link, valid about 1 hour): version goes up on every change; send it back as expected_version when you change the card.

Endpoints

GET /v1/cast takes: The POST /v1/cast body: Each entry in its references: The PATCH /v1/cast/{id} body: The POST /v1/cast/{id}/references body:

Create a card and use it

1

Upload the references

Upload each photo or image with POST /v1/files and complete it, or reuse a file_… from an earlier output.
2

Save the card

3

Pass it to a job

How Cast goes into a job

  • Up to 4 cards per job in input.cast.
  • Voyager takes each card’s references in role order (hero first) and alternates between cards so each one gets its best reference in, up to the model’s own reference limit.
  • The cards’ names, kinds and descriptions are added to the start of the prompt.
  • The job records which version of each card it used.
  • Cast works with image and video models only; anything else returns 422 cast_not_supported. Look for a cast field in the operation’s input_schema on GET /v1/models/{id}. More references than the model takes, counting Cast’s, is 422 too_many_references.

Realistic faces

Some video models need a higher plan (Ultra or GigaMax today) for photoreal characters: a job that passes a photoreal character card to one of them on a lower plan returns 403 plan_required_for_faces before anything is charged. Use a stylized character, another model, or upgrade; voyager.so/pricing shows which plans include them. Locations, props and stylized characters aren’t affected. Every model also applies its own content rules to all inputs.

Changing cards safely

Every change takes the expected_version you last read (optional only for deleting a card). If someone changed the card since (in the API, ChatGPT or Codex), you get 409 version_conflict: read it again and retry with the new version.

Retention

Cast reference images are kept until you remove them from the card or delete the card, unlike plain uploads, which are deleted after 7 days. Saving an upload to a card is how you keep a reference for good.