Nodes/ComfyUI-BAGEL/BAGEL Model Loader
ComfyUI Node

BAGEL Model Loader

The whole pack starts here

By neverbiasu·Created about a year ago·Updated 18 days ago· 188
BAGEL Model Loader
    • model
    modelundefined

    Every BAGEL node in this pack wants a BAGEL_MODEL object, and this is the only node in ComfyUI that produces one. If you're here you've probably seen BAGEL's demo - ByteDance Seed's unified model that does text-to-image, image editing, and image understanding with a single set of weights, which is the closest open-source thing to GPT-4o's native image generation - and you want it running locally. This loader is your front door. Load it first, feed the model output into the other BAGEL nodes, and you're done.

    That's basically the whole node. Its single input, model, is a dropdown listing every .safetensors file it finds in ComfyUI/models/bagel/. Its single output, model (type BAGEL_MODEL), plugs into BAGEL Text to Image, BAGEL Image Edit, and BAGEL Image Understanding. No CLIP, no config file, no tokenizer step.

    What's actually happening under the hood

    The pack (by Faych, under the handle neverbiasu, Apache 2.0 licensed) recently went through a big refactor into what it calls "ComfyUI native style." Older BAGEL ComfyUI ports were all-in-one: they auto-downloaded weights, spun up a private pipeline, and hid a VAE inside the model. The native loader does none of that. It scans models/bagel, loads a single-file converted checkpoint, and reads its model config from configs built into the node - or from optional metadata embedded in the file itself. The Qwen tokenizer ships inside the repository, so you never download one. Nothing is fetched at runtime. That's a feature: no surprise network calls, and ComfyUI's own model caching handles the rest.

    Installing it (the real way)

    BAGEL is not a "one node, one download" situation. Plan for two big files.

    cd ComfyUI/custom_nodes
    git clone https://github.com/neverbiasu/ComfyUI-BAGEL
    cd ComfyUI-BAGEL
    pip install -r requirements.txt
    

    Then download the single-file converted model from 6chan/bagel_comfy into ComfyUI/models/bagel/, and FLUX's ae.safetensors into ComfyUI/models/vae/ (you'll need it for the generate and edit nodes even though the loader itself doesn't). Restart ComfyUI. Or use ComfyUI Manager and search "ComfyUI-BAGEL" - same result.

    The dependencies in requirements.txt are the boring ones - decord, einops, opencv, pyarrow, accelerate. The optional extras are where it gets real: flash_attn for CUDA speedups, and bitsandbytes if you want the INT8/NF4 quantized variants.

    Gotchas, from people who've run it

    • This is the new native loader, and it's picky about model layout. It wants a single converted .safetensors. If you instead downloaded the old ByteDance-Seed/BAGEL-7B-MoT shard folder or a DFloat11 folder, the dropdown will be empty - those only work with the deprecated Bagel* nodes. Either convert your checkpoint with scripts/convert_bagel_model.py or grab the converted single file.
    • It's heavy. BF16 is A100-class territory; the README's own numbers say the legacy full-precision runs ate 30 GB at 1024×1024, and the DFloat11 quant about 22 GB. In the community, "FP8 runs fine on my system but BF16 doesn't" is a common refrain - if you're on 16–24 GB, plan around a quantized variant from the start.
    • Dropdown shows "undefined"? Nothing matched in models/bagel. Check the path, confirm the file is .safetensors, and refresh ComfyUI.

    One honest take: for a pack this heavy, the loader being this boring is exactly what you want. The hard part is the model download, not the node.

    CategoryBAGEL/Core

    Inputs (1)

    NameTypeDefaultDescription
    modelCOMBOundefinedBAGEL .safetensors placed in ComfyUI/models/bagel

    Outputs (1)

    NameTypeDescription
    modelBAGEL_MODEL