FL Prompt Reference Library
Load the pictures your prompt schedule points at
- prompt_schedule
- reference_library
One input, one output, and a job that's easy to describe: your prompt schedule can point at reference material - images, audio, video - and something has to turn those file references into actual tensors. That's this node.
FL Prompt Reference Library takes an FL_PROMPT_SCHEDULE (the object the pack's audio/prompt sequencer produces) and walks it to find every asset the schedule's sections reference. Then it loads each one in the right format and returns a single reference_library object holding them all, keyed by asset id.
What it hands back
It resolves by asset kind:
- Images come back as float RGB tensors normalised to 0–1, with EXIF rotation applied so a phone photo isn't sideways. There's a hard 64-megapixel cap - bigger than that and the node refuses rather than quietly eating your VRAM.
- Audio comes back as a waveform plus its sample rate, using ComfyUI's own audio loader.
- Video comes back as its component parts: frames, audio, and the frame rate.
Anything else raises. It's deliberately narrow: three kinds, three formats, no guessing.
The useful detail is which assets it loads. It doesn't load everything sitting in the schedule's asset map - it collects only the asset ids that sections actually reference. So a schedule with twenty tagged assets and four in use loads four. The result is a FL_PROMPT_REFERENCES object (internally versioned, so a future format change can be detected) that downstream nodes can read without each of them opening files and re-decoding the same PNG five times.
Wiring
The only input is prompt_schedule, and the only output is reference_library. It goes to whatever node in your graph needs the actual media - in this pack's ecosystem, that's the beat/shot planning side, where a prompt section can carry a look-reference image or a piece of audio that a later node consumes.
There's nothing to configure. No seed, no resolution, no quality dial. It's a loader with a schema, and the honest framing is that it exists so the rest of the pipeline can be about timing and content instead of about file IO.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/filliptm/ComfyUI_Fill-Nodes
Restart ComfyUI. Nothing special for this one, but note you'll need the thing that produces a prompt schedule to use it at all - that's the pack's audio/prompt sequencer node, which is where the heavier dependencies live. That node pulls in Beat This for beat and downbeat detection, and on first analysis it downloads its final0 checkpoint (about 77 MiB) to ComfyUI/models/beat_this/ with SHA-256 verification before use. Beat This expects the full master mix it was trained on, so don't hand it a stem and expect the same grid.
Where people get burned
Missing assets. Asset ids in a schedule that don't resolve to files give you a lookup failure, not a silent skip. If you've moved your project folder, the schedule and the files have parted ways.
Big images. The 64-megapixel guard exists because reference images are often lifted straight from a camera or a stock download. Downscale before you tag them as references - you're feeding them to a vision encoder that will resize them to 512 or 1280 anyway, so shipping a 100MP source in changes nothing except your RAM usage.
Video references are heavier than they look. A video asset decodes to a full frame stack. If you're only after a look, an image gets you most of the way for a fraction of the memory.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt_schedule | FL_PROMPT_SCHEDULE | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| reference_library | FL_PROMPT_REFERENCES | — |