Nodes/ComfyUI-FL-BerniniR/FL Bernini-R Loader
ComfyUI Node

FL Bernini-R Loader

The 117 GB sibling you don't get to skip

By filliptm·Created 3 months ago·Updated 3 months ago· 0
FL Bernini-R Loader
    • pipeline
    model_variantBernini-R-Diffusers
    model_path_override
    download_if_missingfalse
    dtypebfloat16
    devicecuda
    use_unipctrue
    use_src_tgt_idtrue
    force_reloadfalse

    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 - bfloat16 by default, with float16 and float32 options. 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 - cuda or cpu. 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.

    CategoryFL/BerniniR

    Inputs (8)

    NameTypeDefaultDescription
    model_variantCOMBOBernini-R-Diffusers1 options: Bernini-R-Diffusers
    model_path_overrideSTRING
    download_if_missingBOOLEANfalse
    dtypeCOMBObfloat163 options: bfloat16, float16, float32
    deviceCOMBOcuda2 options: cuda, cpu
    use_unipcBOOLEANtrue
    use_src_tgt_idBOOLEANtrue
    force_reloadBOOLEANfalse

    Outputs (1)

    NameTypeDescription
    pipelineBERNINI_R_PIPELINE