Reference Roles — Tell the Model What to Take from Each Reference
When you wire a reference into a Generate Image or Generate Video node — a plain image, or a Character / Location / Object / Animal asset via the Assets handle — you can tell the model which aspect of that reference to use: its identity, its outfit, its background, its style, and so on. That aspect is the reference’s role label.
A labeled reference resolves to one uniform phrase in the final prompt:
… the {label} from reference image A …(image — references are lettered A, B, C…)
… the {label} from @image_1 …(video — references are numbered @image_1, @image_2…)
The vocabulary is identical for image and video — only the binding (reference image A vs.
@image_1) differs. The same mechanism powers plain image references and every asset type, so they
share one numbering and never collide.
Type-aware defaults
A freshly-wired reference starts with the most useful label for its type, so it does the right thing with zero configuration:
| Wired source | Default label |
|---|---|
| Character | person |
| Location | background |
| Object | object |
| Animal / Creature | creature |
| Face | face |
| Plain image / upload | ref-only (bare reference) |
| Video / audio | ref-only (bare reference) |
Plain images, video, and audio default to ref-only — see Ref only below.
Preset roles
Click a reference pill to pick its role from a curated, type-aware menu (most-useful first; the default is bold). Custom… is always available for anything not listed.
| Source | Preset roles |
|---|---|
| Character / Person | ref-only · person · face · clothes · hair · pose · expression · style |
| Location | ref-only · background · atmosphere · as-is · empty background · layout · lighting · style |
| Object | object · shape · material · color · texture · style |
| Animal / Creature | creature · anatomy · markings · pose · color · style |
| Plain image (wired / uploaded) | ref-only · object · person · face · clothes · background · style · pose · texture |
A few roles read as a fuller phrase so the prompt stays natural:
| Role | Resolves to |
|---|---|
as-is |
reference image A, used as-is |
empty background |
the background from reference image A (without its foreground objects) |
Ref only
Ref only injects the bare reference — reference image A on image nodes, or @image_1 /
@video_1 / @audio_1 on video nodes — with no the {label} from … phrase, so the model sees the
reference without being told what to take from it. It’s the top entry of every reference pill’s menu
and the default for plain image, video, and audio references.
For Character / Location / Object / Animal assets, ref-only is an explicit choice (their described
defaults — person / background / object / creature — are unchanged). A Character or Location pill set
to ref-only serializes as a plain role (@kira:1:ref-only) and shows a compact ref badge to set
it apart from its described default.
Combining a variant with a role
A character or location mention can pick which image (the variant) and what to take from it
(the role) independently: @abi:1:walking:clothes attaches Abi’s walking image and injects
the clothes from reference image A. Any role works — curated, custom, or ref-only
(@abi:1:walking:ref-only → bare reference image A with the walking image attached). Locations
mirror it: @library:1:weather/rain:lighting.
In the editor the two axes map to the chip’s two controls: click the thumbnail to swap which image (canonical or a variant — swapping within the same character keeps your role), click the label to pick the role (picking a role keeps the variant; Default resets the role but keeps the image).
Custom labels
Pick Custom… and type anything (e.g. dragon, Danny, hoodie). Custom labels are sanitized
(≤32 chars, spaces become dashes) and slot into the default phrase: the hoodie from reference image A.
Proper nouns are used verbatim (Danny from reference image A).
Identity-lock (optional, off by default)
By default nothing identity-locking is auto-injected — references behave like images, and the role label alone drives the result. When you want to pin a subject’s exact identity, switch the identity-lock on for that reference and it prepends a short fidelity line:
Lock the exact identity of the person in reference image A — face, bone structure, skin tone, all unique features.
… the person from reference image A …
The lock is opt-in and editable per reference: turn it on when you need it, and either keep the built-in wording (tuned per type — person / face / creature / location) or replace it with your own. Left off, your prompt stays terse and you remain in full control of any fidelity language.
In the editor you can also flip the lock per @-mention: open a character or location pill’s
menu and toggle Identity lock. That mention then serializes a trailing ~lock
(@kira:1:face~lock, @old-library:1:background~lock) and its reference gets the lock line — even
when the source’s default lock is off. Locations use their own built-in wording:
Lock the exact look of reference image A — match the location's architecture, layout, and lighting.
The reverse is also available: a trailing ~nolock (@kira:1:face~nolock) forces the lock
off for that one mention — even when the reference’s own default lock is on. So ~lock and
~nolock are a symmetric pair: force-on and force-off; a mention with neither simply inherits the
reference’s default. ~nolock is typed directly into the prompt (the pill menu’s toggle only sets
force-on or inherit).
The per-mention toggles apply to the default (hybrid) reference format only.
Combining references
Wire several references and label each one — the model composes them:
“A portrait of the person from reference image A wearing the clothes from reference image B, standing in the background from reference image C, lit by the lighting from reference image D.”
References are numbered image-refs first, then assets, in the order they appear, and the same numbering drives both the prompt phrasing and the images sent to the model — so what you see in the final-prompt preview is exactly what runs.
API / SDK / MCP / CLI
The role label and identity-lock travel on the structured connectedReferences shape, so server-side
callers control them too. See API Integration and the
SDK Reference for the connected_references fields, and CLI for the
passthrough flags.
See also
- Reference Boards Guide — building identity-consistent boards and cast grids
- Character Platform — scripting Character Studio
- Asset nodes: Character · Location · Object · Creature