Nodes/BrushNet/BrushNet Loader
ComfyUI Node Runs on cloud

BrushNet Loader

Pick your checkpoint file, pick a dtype, done

By nullquant·Created 2 years ago·Updated about a year ago· 947
BrushNet Loader
    • brushnet
    brushnet
    dtype

    This is the boring-but-necessary first node in every BrushNet graph. It doesn't do any inpainting itself - it just points at a checkpoint file on disk and hands you back a BRMODEL object that the BrushNet node (or PowerPaint, if you loaded a PowerPaint file) can actually use. Nothing fancy, two fields, and both of them matter more than they look.

    What the two fields do

    • brushnet - a dropdown listing whatever checkpoint files you've placed in your models/inpaint folder (or your extra_model_paths.yaml inpaint entry). If it's empty, that's not a bug - it means the loader hasn't found any files there yet. This same loader is used for both BrushNet and PowerPaint checkpoints, so double-check you're picking the right one for the node it's feeding.
    • dtype - float16, bfloat16, float32, or float64. The README is explicit about the tradeoff here: float16 is the default and works fine on modern cards, but "if you have old GPU or NVIDIA 16 series card try to switch to torch.float32." That one line has saved people a confusing crash.

    The output is a single BRMODEL socket. Wire it into BrushNet's brushnet input or PowerPaint's powerpaint input - that's the entire job of this node.

    Installing it

    Comes bundled with the whole pack - ComfyUI Manager search "BrushNet," or cd ComfyUI/custom_nodes && git clone https://github.com/nullquant/ComfyUI-BrushNet && pip install -r requirements.txt, then restart. No separate install for this specific node; if the pack is installed, so is this.

    You still need to get an actual checkpoint file into models/inpaint before the brushnet dropdown shows anything. For BrushNet itself: segmentation_mask_brushnet_ckpt or random_mask_brushnet_ckpt from the pack's Google Drive link, in SD1.5 or _sdxl_v0 SDXL flavors. For PowerPaint: the two files from JunhaoZhuang/PowerPaint-v2-1 on HuggingFace.

    Common issues

    The dropdown is empty. Almost always means no file has landed in models/inpaint yet, or it's in the wrong folder. If you're using extra_model_paths.yaml to point at a shared model directory, confirm the inpaint key is actually set there - a typo in that YAML is invisible until you go looking for a file that "should" be there.

    Filename collisions. Every BrushNet download shares the exact same filename, diffusion_pytorch_model.safetensors. If you've grabbed more than one checkpoint (segmentation + random, SD1.5 + SDXL), rename them to something distinct before dropping them in - otherwise you'll overwrite one with another and the dropdown will show a file that isn't what you think it is. A structure like inpaint/brushnet/segmentation_mask.safetensors and inpaint/brushnet/random_mask.safetensors in separate subfolders keeps them straight, and it's the exact fix people landed on in the pack's own support threads.

    float16 errors on old hardware. If you're on a GTX 16-series card or anything a few generations back and BrushNet throws dtype-related errors or produces garbage output, switch dtype to float32 here first before chasing anything else.

    Wrong checkpoint in the wrong node. Because BrushNet and PowerPaint checkpoints both load through this same node into the same BRMODEL type, it's easy to accidentally wire a PowerPaint file into the BrushNet node's brushnet slot (or vice versa). If your results look nonsensical rather than just low-quality, that's the first thing to check.

    Categoryinpaint

    Inputs (2)

    NameTypeDefaultDescription
    brushnetCOMBO0 options:
    dtypeCOMBO4 options: float16, bfloat16, float32, float64

    Outputs (1)

    NameTypeDescription
    brushnetBRMODEL