PRYX ComfyUI Higgsfield Reference Collector
Turn up to 30 images into one ordered reference list
- references
- image
- video
- audio
- image_2
- image_3
- image_4
- image_5
- image_6
- image_7
- image_8
- image_9
- image_10
- image_11
- image_12
- image_13
- image_14
- image_15
- image_16
- image_17
- image_18
- image_19
- image_20
- image_21
- image_22
- image_23
- image_24
- image_25
- image_26
- image_27
- image_28
- image_29
- image_30
- video_2
- video_3
- video_4
- video_5
- video_6
- video_7
- video_8
- video_9
- video_10
- audio_2
- audio_3
- audio_4
- audio_5
- audio_6
- audio_7
- audio_8
- audio_9
- audio_10
- references
Multimodal video models eat references. Kling wants your character and your outfit. Wan 3.0's reference endpoint wants image 1, image 2, a video reference and maybe an audio track, and it addresses them by number in the prompt. Feeding five separate wires into a generator and hoping it guesses the order is how you get the wrong face on the right body.
The Reference Collector is the node that fixes that: one socket in the graph, a list of media in a defined order, and a generator that reads them in exactly the order you built.
How it works
It builds a references value - the pack's own PRYX_HF_REFERENCES type - from every socket you connect. Slot counts:
image…image_30- 30 image slots, and image batches are split, so a 4-image batch from one Load Image becomes four ordered references.video…video_10- 10 video slots.audio…audio_10- 10 audio slots.references- merge an existing collection in, if you have one already.external_url+external_type(urlorfile) - one already-public HTTPS link to a document or web page.
Order is deterministic and not the order you drew the wires. Slots are collected in numeric order: image_2 always comes after image, even if you connected image_2 first. Direct inputs on the generator (its image, video, audio, end_image sockets) map before anything coming from a Collector, and all of it is numbered separately per media type. Two Collector images become Image 1 and Image 2; they don't shift the videos.
The frontend grows extra sockets as you connect them, so you're not staring at 50 empty dots on drop.
The two fields you'll actually touch are names and label. names takes one assignment per line:
image_1=person
image_2=outfit
video_1=camera
Those become labels. Labels are what the {{ref:label}} prompt syntax resolves against, but only on endpoints that document numbered prompt tokens - currently Wan 3.0 Reference to Video. On other endpoints named aliases are rejected outright rather than silently ignored, which is the honest failure mode: better a stopped request than a wrong one. Braces aren't allowed in names, duplicate keys are an error, and labels must be unique per media item.
label is the legacy single-label field kept so old workflows still open. Use names for anything new.
Output
One output: references. Wire it into the references input of a generator (Text to Video, Image to Video, Reference to Video, Image Generate & Edit, Video Edit, Video Extend) or into Reference Preview. Model limits - how many references that endpoint accepts and of which type - are checked by the generator, not here. The Collector will happily build you eight images for a model that allows two; you'll get a validation error before anything uploads.
Install
Manager: search PRYX ComfyUI Higgsfield, install, restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/PRYX-STUDIO/pryx-comfyui-higgsfield.git pryx-comfyui-higgsfield
python -m pip install -r pryx-comfyui-higgsfield/requirements.txt
Portable Windows: .\python_embeded\python.exe -m pip install -r .\pryx-comfyui-higgsfield\requirements.txt. ComfyUI 0.35.0+, frontend 1.53.6+, Python 3.10–3.13. No model downloads - just higgsfield-client, httpx and jsonschema. Your Higgsfield key goes in Settings → PRYX ComfyUI Higgsfield → Credentials (key-id:key-secret), or via HF_KEY for headless.
Note that the collector itself never uploads anything. Uploads happen later, in the generator: local media gets converted, pushed through Higgsfield's presigned upload flow, and only then referenced by URL. That's why an estimate-only run can still touch the network.
Traps worth knowing
external_urlmust be public HTTPS already. Everything else in this node is a local file the pack will upload for you - that one field is not.- Reordering means renumbering. Move a reference to a slot you think is earlier and you may have changed nothing; the Preview node shows the real mapping. Run it after touching media, labels or the model.
- The model still has the final say. A video-only reference type on an image-only endpoint fails validation before upload, not after you've paid for anything.
Inputs (55)
| Name | Type | Default | Description |
|---|---|---|---|
| referencesopt | PRYX_HF_REFERENCES | — | |
| imageopt | IMAGE | — | |
| videoopt | VIDEO | — | |
| audioopt | AUDIO | — | |
| external_urlopt | STRING | — | |
| external_typeopt | COMBO | url | 2 options: url, file |
| labelopt | STRING | Legacy shared label. Prefer names for separate media labels. Existing workflows retain this label. | |
| namesopt | STRING | Optional names, one per line: image_1=person, image_2=outfit, video_1=camera. Otherwise socket names become labels. Batches use name[1], name[2], etc. Reference Preview shows the final mapping. | |
| image_2opt | IMAGE | Image slot 2. Slots are collected in numeric order, not connection order. Model limits still apply. | |
| image_3opt | IMAGE | Image slot 3. Slots are collected in numeric order, not connection order. Model limits still apply. | |
| image_4opt | IMAGE | Image slot 4. Slots are collected in numeric order, not connection order. Model limits still apply. | |
| image_5opt | IMAGE | Image slot 5. Slots are collected in numeric order, not connection order. Model limits still apply. | |
| image_6opt | IMAGE | Image slot 6. Slots are collected in numeric order, not connection order. Model limits still apply. | |
| image_7opt | IMAGE | Image slot 7. Slots are collected in numeric order, not connection order. Model limits still apply. | |
| image_8opt | IMAGE | Image slot 8. Slots are collected in numeric order, not connection order. Model limits still apply. | |
| image_9opt | IMAGE | Image slot 9. Slots are collected in numeric order, not connection order. Model limits still apply. | |
| image_10opt | IMAGE | Image slot 10. Slots are collected in numeric order, not connection order. Model limits still apply. | |
| image_11opt | IMAGE | Image slot 11. Slots are collected in numeric order, not connection order. Model limits still apply. | |
| image_12opt | IMAGE | Image slot 12. Slots are collected in numeric order, not connection order. Model limits still apply. | |
| image_13opt | IMAGE | Image slot 13. Slots are collected in numeric order, not connection order. Model limits still apply. | |
| image_14opt | IMAGE | Image slot 14. Slots are collected in numeric order, not connection order. Model limits still apply. | |
| image_15opt | IMAGE | Image slot 15. Slots are collected in numeric order, not connection order. Model limits still apply. | |
| image_16opt | IMAGE | Image slot 16. Slots are collected in numeric order, not connection order. Model limits still apply. | |
| image_17opt | IMAGE | Image slot 17. Slots are collected in numeric order, not connection order. Model limits still apply. | |
| image_18opt | IMAGE | Image slot 18. Slots are collected in numeric order, not connection order. Model limits still apply. | |
| image_19opt | IMAGE | Image slot 19. Slots are collected in numeric order, not connection order. Model limits still apply. | |
| image_20opt | IMAGE | Image slot 20. Slots are collected in numeric order, not connection order. Model limits still apply. | |
| image_21opt | IMAGE | Image slot 21. Slots are collected in numeric order, not connection order. Model limits still apply. | |
| image_22opt | IMAGE | Image slot 22. Slots are collected in numeric order, not connection order. Model limits still apply. | |
| image_23opt | IMAGE | Image slot 23. Slots are collected in numeric order, not connection order. Model limits still apply. | |
| image_24opt | IMAGE | Image slot 24. Slots are collected in numeric order, not connection order. Model limits still apply. | |
| image_25opt | IMAGE | Image slot 25. Slots are collected in numeric order, not connection order. Model limits still apply. | |
| image_26opt | IMAGE | Image slot 26. Slots are collected in numeric order, not connection order. Model limits still apply. | |
| image_27opt | IMAGE | Image slot 27. Slots are collected in numeric order, not connection order. Model limits still apply. | |
| image_28opt | IMAGE | Image slot 28. Slots are collected in numeric order, not connection order. Model limits still apply. | |
| image_29opt | IMAGE | Image slot 29. Slots are collected in numeric order, not connection order. Model limits still apply. | |
| image_30opt | IMAGE | Image slot 30. Slots are collected in numeric order, not connection order. Model limits still apply. | |
| video_2opt | VIDEO | Video slot 2. Slots are collected in numeric order, not connection order. Model limits still apply. | |
| video_3opt | VIDEO | Video slot 3. Slots are collected in numeric order, not connection order. Model limits still apply. | |
| video_4opt | VIDEO | Video slot 4. Slots are collected in numeric order, not connection order. Model limits still apply. | |
| video_5opt | VIDEO | Video slot 5. Slots are collected in numeric order, not connection order. Model limits still apply. | |
| video_6opt | VIDEO | Video slot 6. Slots are collected in numeric order, not connection order. Model limits still apply. | |
| video_7opt | VIDEO | Video slot 7. Slots are collected in numeric order, not connection order. Model limits still apply. | |
| video_8opt | VIDEO | Video slot 8. Slots are collected in numeric order, not connection order. Model limits still apply. | |
| video_9opt | VIDEO | Video slot 9. Slots are collected in numeric order, not connection order. Model limits still apply. | |
| video_10opt | VIDEO | Video slot 10. Slots are collected in numeric order, not connection order. Model limits still apply. | |
| audio_2opt | AUDIO | Audio slot 2. Slots are collected in numeric order, not connection order. Model limits still apply. | |
| audio_3opt | AUDIO | Audio slot 3. Slots are collected in numeric order, not connection order. Model limits still apply. | |
| audio_4opt | AUDIO | Audio slot 4. Slots are collected in numeric order, not connection order. Model limits still apply. | |
| audio_5opt | AUDIO | Audio slot 5. Slots are collected in numeric order, not connection order. Model limits still apply. | |
| audio_6opt | AUDIO | Audio slot 6. Slots are collected in numeric order, not connection order. Model limits still apply. | |
| audio_7opt | AUDIO | Audio slot 7. Slots are collected in numeric order, not connection order. Model limits still apply. | |
| audio_8opt | AUDIO | Audio slot 8. Slots are collected in numeric order, not connection order. Model limits still apply. | |
| audio_9opt | AUDIO | Audio slot 9. Slots are collected in numeric order, not connection order. Model limits still apply. | |
| audio_10opt | AUDIO | Audio slot 10. Slots are collected in numeric order, not connection order. Model limits still apply. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| references | PRYX_HF_REFERENCES | — |