Nodes/Refocus - Generative Refocusing/Load Genfocus LoRAs (Utility)
ComfyUI Node

Load Genfocus LoRAs (Utility)

The two-file starter kit for Refocus's deblur and bokeh nodes

By EricRollei·Created 8 months ago·Updated 4 months ago· 19
Load Genfocus LoRAs (Utility)
    • genfocus_loras
    deblur_loradeblurNet.safetensors
    bokeh_lorabokehNet.safetensors
    load_deblurtrue
    load_bokehtrue

    Every Refocus workflow that uses the "utility" apply nodes starts here. GenfocusLoRALoader grabs the two Genfocus LoRAs - deblurNet.safetensors and bokehNet.safetensors - and hands them to the graph as one GENFOCUS_LORAS bundle. It's a dumb but necessary glue node: there's no math in it, just file loading. If you're here it's because a workflow you dragged in has a wire you need to fill, and this is the node that fills it.

    The LoRAs themselves are the real story. They come from NYCU CP Lab's Genfocus project - the "Generative Refocusing: Flexible Defocus Control from a Single Image" paper (arXiv 2512.16923) that hit r/StableDiffusion in December 2025 to a chorus of "Comfy when?". DeblurNet restores all-in-focus sharpness from defocused input; BokehNet synthesizes realistic depth-of-field. Both are ~17MB FLUX adapters, licensed Apache 2.0, and you grab them in one go from nycu-cplab/Genfocus-Model on HuggingFace.

    What you actually set

    Two required dropdowns, both with one job each:

    • deblur_lora - point it at deblurNet.safetensors
    • bokeh_lora - point it at bokehNet.safetensors

    They default sensibly, but here's the trap: both dropdowns list both files, and they're independent. If you leave the bokeh slot on deblurNet.safetensors, you've just loaded the same LoRA twice under different names. Swap it to bokehNet.safetensors.

    The optional booleans, load_deblur and load_bokeh, just toggle whether each file gets read at all. Leave both on. About the only reason to switch one off is a deblur-only workflow where you don't want the extra tensors sitting in RAM.

    The single output, genfocus_loras, wires straight into DeblurNetApply and BokehNetApply.

    Where the files actually live

    Read this twice, because it's the pack's most confusing detail. This loader scans ComfyUI's standard models/loras/ folder - it calls ComfyUI's own LoRA directory lookup, not the custom models/genfocus/ folder the README tells you to create. The Native Genfocus nodes (GenfocusModelLoader, GenfocusComponentLoader) read from models/genfocus/. Same two LoRAs, two different drop zones depending on which loader you use.

    So: put the safetensors in models/loras/ for this node, or in models/genfocus/ for the native nodes - or just put them in both, they're tiny.

    Troubleshooting

    • The dropdown shows only deblurNet.safetensors and bokehNet.safetensors even though your loras folder is full - that's the fallback list when the folder scan comes back empty. Either the files aren't where this node looks, or ComfyUI hasn't been restarted since you added them. Restart first, then double-check the path.
    • "LoRA not loading" - check the two boolean toggles are on and the dropdowns point at the right files. The loader just prints a warning to the console if a file is missing; it won't throw.
    • One honest caveat worth knowing before you build a whole pipeline around this: the utility apply nodes this feeds are currently prompt-guided img2img approximations - the code notes the custom LoRA application "not yet implemented", so the weights get loaded but aren't patched into the model yet. If you want the trained DeblurNet/BokehNet doing the actual work, that's the Native diffusers path (GenfocusDeblur / GenfocusBokeh), which loads its LoRAs from models/genfocus/ instead.
    CategoryRefocus/LoRA

    Inputs (4)

    NameTypeDefaultDescription
    deblur_loraCOMBOdeblurNet.safetensorsSelect deblurNet.safetensors
    bokeh_loraCOMBObokehNet.safetensorsSelect bokehNet.safetensors
    load_debluroptBOOLEANtrueLoad the DeblurNet LoRA
    load_bokehoptBOOLEANtrueLoad the BokehNet LoRA

    Outputs (1)

    NameTypeDescription
    genfocus_lorasGENFOCUS_LORAS