π BV LUT Loader
Twelve free film looks before you've downloaded a thing
- lut
- info
Every LUT workflow starts here: a dropdown with a dozen built-in looks, and - if you've dropped .cube files into ComfyUI/models/luts - your own looks right next to them. It's the manual, standalone entry point to BV Node Pack's color tooling, the one you use when you just want to slap a grade on an image without touching the regional or registry machinery.
The pack ships twelve built-in looks generated in code: Warm Contrast, Cool Graphite, Digital Green, Machine Blue, Dustfire, Steel Action, Sunbleached Coast, Expired Film, Classic Monochrome, Grayscale, HDR Color Boost, and Identity (a no-op you can use as a placeholder). They're the 1.2.0 changelog's "nine deterministic built-in looks" plus the earlier three, and they're real 3D LUTs, not shader tricks - the same math that grades a film scan.
How it works
Pick a name, get a BV_LUT_PROTOTYPE. If you chose a built-in, the node synthesizes a 17Β³ 3D LUT on the fly. If you chose a disk file, it parses the useful 3D subset of the common .cube text format - the TITLE, LUT_3D_SIZE, and LUT_3D_INPUT_RANGE header fields plus the value rows - and caps the file size to keep pathological files from eating your RAM. Either way you get a dict that any BV LUT consumer accepts, plus a info string describing it.
Two things worth knowing about the dropdown. First, this node registers ComfyUI/models/luts as a first-class model folder on import, so files you drop there show up automatically after a refresh - no manual path config. Second, the last option is literally "Download more LUTsβ¦". Picking it doesn't load anything; it raises "Choose a LUT after closing the download catalog" and opens the pack's async LUT catalog (Stable and Experimental channels, checksum-verified downloads). It's the pack's way of fetching community LUTs without making you hunt URLs.
The inputs and outputs that matter
Just one input you'll ever touch: lut_name, the enum. Outputs are lut (wire it to BV Apply LUT, BV LUT Job, or a registry) and info - a human-readable line like Dustfire\n17³\n⦠that tells you the title, cube size, and where the look came from. That info string is handy for baking into metadata or just sanity-checking that you loaded the file you thought you did.
How to install
It's part of BV Node Pack, so install the pack:
cd ComfyUI/custom_nodes
git clone https://github.com/BlackVortexAI/bv_nodepack.git
Restart ComfyUI and hard-refresh the browser. Or use ComfyUI Manager and search "BV Node Pack". No checkpoints, no model downloads - the built-ins are pure code, and your own LUTs go in ComfyUI/models/luts as plain .cube files.
Common issues
- "LUT not found: β¦" - the name came from the catalog or another machine and the file isn't in your
lutsfolder (or the catalog download hasn't completed). Re-check the dropdown, which only lists what's actually available. - Picking "Download more LUTsβ¦" errors - that's expected behavior, not a bug; it's a launcher for the catalog, not a loadable look. Close the catalog and choose a real entry.
- Your .cube doesn't show up - the loader reads
.cubeextensions only, and after a refresh. Also note Windows path separators get normalized, so a LUT referenced on Linux travels fine to a Windows box.
If you're going deeper than "one look, one image," the registry and regional plan nodes give you the same LUTs with names and regions attached. The loader is where you start, though - and starting is free.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| lut_name | COMBO | 14 options: Built-in: Identity, Built-in: Warm Contrast, Built-in: Cool Graphite, Built-in: Digital Green, Built-in: Machine Blue, Built-in: Dustfire, +8 |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| lut | BV_LUT_PROTOTYPE | β |
| info | STRING | β |