FL Bernini-R Loader
The 117 GB sibling you don't get to skip
- pipeline
Every Bernini-R workflow starts here. FL Bernini-R Loader pulls ByteDance/Bernini-R-Diffusers - the 14B renderer that's the community default for Bernini - into ComfyUI's own Python environment, using the official Bernini source the pack ships inside itself. No separate service, no API call, no key. The name's honest: this is the node that does the heavy lifting, and "heavy" is doing a lot of work in that sentence.
The model lives at ComfyUI/models/BerniniR/Bernini-R-Diffusers by default. When you hit Load, the node validates the snapshot is complete - it checks for config.json, the scheduler, text encoder, tokenizer, both transformer files, and the VAE - then builds the pipeline with your settings and hands you a pipeline output (type BERNINI_R_PIPELINE) to feed into FL Bernini-R Generate.
That snapshot is roughly 117 GB. Read that again. On most setups this is the single biggest thing in your models folder, which is why the first-run ritual is: check your disk, check your VRAM, run the Environment Check node first.
Inputs that matter
You can honestly leave most of the Loader's inputs alone. The ones worth knowing:
- download_if_missing - off by default. Flip it on and the node fetches the snapshot from Hugging Face into the default path if it isn't there. Convenient, but a 117 GB download mid-workflow is not a "start it and walk away" experience.
- dtype -
bfloat16by default, withfloat16andfloat32options. bf16 is the right default on a modern card; drop to float32 only if you're chasing precision and have the VRAM to spare. - device -
cudaorcpu. CPU technically works; it's not a place you want to be for this model. - force_reload - the loader caches the built pipeline keyed on path/dtype/device, so your second prompt reuses the first load instead of reloading 117 GB. Flip this when you've changed something and want the cache busted.
- use_unipc and use_src_tgt_id - both default to true. These are the official pipeline's defaults (the UniPC solver, and the source/target rotary embedding that makes multi-reference conditioning work). Turn them off only if you know why.
There's also model_path_override for when your snapshot lives somewhere non-standard, and model_variant, which currently offers exactly one choice (Bernini-R-Diffusers). Not much of a choice.
Attention backend, the hidden switch
This pack deliberately defaults Bernini's attention to PyTorch SDPA because some ComfyUI installs ship FlashAttention-3 packages with incompatible custom-op signatures. If you know your FA works, you can opt in with an environment variable:
set FL_BERNINI_ATTENTION_BACKEND=auto
Supported values are sdpa, auto, fa3, and fa2. The sdpa default is the safe call, and you should probably stay on it unless you have a specific reason to leave.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/filliptm/ComfyUI-FL-BerniniR.git
cd ComfyUI-FL-BerniniR
pip install -r requirements.txt
Restart ComfyUI. Manager users can just search ComfyUI-FL-BerniniR. Python 3.10+ and an NVIDIA GPU are strongly recommended, and the pack expects recent torch, diffusers, transformers, accelerate, decord, and imageio - the Environment Check node reports all of those.
Troubleshooting
The most common Loader failure is a FileNotFoundError listing missing pieces of the snapshot - a download that was interrupted or cut short. Either enable download_if_missing or re-download the repo into the default path. A CUDA error with device: cuda? Run the Environment Check and look at torch_cuda_available. And if the load itself OOMs, that's the model being 117 GB, not a bug - close other workflows, or accept that this may not be the box for Bernini. When you're done generating, FL Bernini-R Unload (or unload_after_run on Generate) is how you get that memory back.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| model_variant | COMBO | Bernini-R-Diffusers | 1 options: Bernini-R-Diffusers |
| model_path_override | STRING | — | |
| download_if_missing | BOOLEAN | false | — |
| dtype | COMBO | bfloat16 | 3 options: bfloat16, float16, float32 |
| device | COMBO | cuda | 2 options: cuda, cpu |
| use_unipc | BOOLEAN | true | — |
| use_src_tgt_id | BOOLEAN | true | — |
| force_reload | BOOLEAN | false | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| pipeline | BERNINI_R_PIPELINE | — |