ConcatReferences
Bundle up to four image references into one subject reference
- reference_1
- reference_2
- reference_3
- reference_4
- concat_references
ConcatReferences exists because one reference image is usually not enough. If you want a subject - a character, an object, a thing - to show up reliably in Luma's Photon generations, a single image only captures one angle, one lighting, one pose. This node takes up to four REFERENCE objects and bundles them into a single CONCAT_REFERENCES output, which you then feed into LumaImageGeneration's image_ref input. It's the subject-reference path of the pack, as opposed to the single-image style_ref path.
The mechanism is dead simple: it collects whatever references you've wired in (all four inputs are optional, so you can use two or three) and raises "You must provide at least one reference" if you give it none. It doesn't fetch or process any images - it just groups the {url, weight} objects into a list for the API. The thought behind it is exactly the multi-view reference idea from character-consistency practice: more views of the same subject give the model enough signal to keep that subject recognizably itself instead of inventing a lookalike.
How to wire it
- Feed
Referencenodes intoreference_1throughreference_4. The standard pattern from theimg_ref.jsonexample workflow isLoadImage → ImgBBUpload → Referencerepeated per image, all funneling intoConcatReferences. - The single
concat_referencesoutput goes intoLumaImageGeneration'simage_ref. - Keep each
Reference's weight reasonable (0.3–0.8); four images at weight 1.0 will flatten your prompt entirely.
Where it fits
The pack distinguishes three reference kinds, and it's worth not mixing them up:
style_ref- oneReference, transfers the look.image_ref-ConcatReferences, transfers the subject from multiple views.character_ref-CharacterReference(a separate node), transfers a specific character identity from up to four URLs.
If you're trying to keep a character consistent across generations, the character_ref path is the dedicated tool; ConcatReferences is more for "this object/product/scene from several angles." Use the one that matches your actual goal - the API treats them as distinct conditions.
Installing
Pack standard: ComfyUI Manager → search "ComfyUI-LumaAI-API", or clone into ComfyUI/custom_nodes and pip install -r requirements.txt. Light dependencies, no networking in this node itself, no API key here (that's the LumaAIClient's job upstream).
Common issues
- "You must provide at least one reference" - all four inputs are empty. Either you haven't wired any
Referencenodes in, or you've connected the wrong output (theREFERENCEtype fromReference, not a raw string URL). - Subject still drifts between runs - more consistent views in (that's what the four slots are for) and mind the weights. One strongly weighted reference usually beats four weak ones.
- No visible effect - double-check you plugged the
concat_referencesoutput intoimage_ref, notstyle_ref. Wrong port, wrong behavior.
It's a plumbing node - no widgets, no settings, just grouping - but it's the difference between "the model vaguely remembers the vibe" and "the model actually knows what this thing looks like."
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| reference_1opt | REFERENCE | — | |
| reference_2opt | REFERENCE | — | |
| reference_3opt | REFERENCE | — | |
| reference_4opt | REFERENCE | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| concat_references | CONCAT_REFERENCES | — |