Nodes/Janus-Pro ComfyUI Plugin/🔮 Janus-Pro Model Loader
ComfyUI Node

🔮 Janus-Pro Model Loader

The node every Janus-Pro workflow starts with (and what it downloads)

By greengerong·Created 2 years ago·Updated 2 years ago· 12
🔮 Janus-Pro Model Loader
    • model
    • processor
    model_namedeepseek-ai/Janus-Pro-7B
    precisionbf16
    local_dirmodels/Janus-Pro

    Every Janus-Pro workflow in this pack starts here, and it's the least glamorous node in the bunch - which is exactly why it needs explaining before you get frustrated. 🔮 Janus-Pro Model Loader pulls DeepSeek's Janus-Pro multimodal model off Hugging Face, loads it into memory, and hands out the model and processor that every other node in the pack demands. No model, no understanding node, no image generator. It's the gatekeeper.

    What it loads

    Janus-Pro is the unified understanding-plus-generation model DeepSeek ninja-released in late January 2025, right in the middle of the R1 hype. One set of weights does both vision-language chat and text-to-image. This loader can grab either of the two official sizes:

    • deepseek-ai/Janus-Pro-1B - small, fits modest VRAM, fine for captioning.
    • deepseek-ai/Janus-Pro-7B - the flagship, roughly 16 GB in bf16. This is the default, and the one you actually want if your card can hold it.

    Mechanically it's straightforward: it checks a local folder for the model, and if it's missing it runs a Hugging Face snapshot_download - so the first load triggers a big download. Then it loads via transformers with trust_remote_code=True (Janus needs its custom code) and device_map="auto" to spread across your GPUs.

    The inputs

    Only three, and honestly only two matter at the start:

    • model_name - deepseek-ai/Janus-Pro-1B or deepseek-ai/Janus-Pro-7B. Pick based on VRAM before you pick anything else.
    • precision - bf16, int8, or int4. bf16 is full quality; int8/int4 use bitsandbytes quantization (int4 is NF4 with double quantization) to cram the 7B onto smaller cards at a quality cost. Rule of thumb: if it fits in bf16, use bf16.
    • local_dir - where models land, default models/Janus-Pro. Leave it alone unless you've pre-placed the files or want them somewhere specific.

    That's it. No exotic knobs, no sampler settings hiding in here.

    What comes out

    Two outputs, and they're a matched pair - feed both into the 🖼️ Janus Image Understanding and 🎨 Janus Image Generator nodes:

    • model (JANUS_PRO_MODEL) - the loaded model, ready for inference.
    • processor (VLC_PROCESSOR) - the VLChat tokenizer/processor that formats prompts and images for it.

    Lose either wire and the downstream node refuses to run.

    Installing the pack

    The loader ships with the other two nodes in greengerong/ComfyUI-JanusPro-PL. ComfyUI Manager route: search "Janus-Pro ComfyUI Plugin" and install. Manual route:

    cd ComfyUI/custom_nodes
    git clone https://github.com/greengerong/ComfyUI-JanusPro-PL
    pip install -r requirements.txt
    

    Restart ComfyUI after. The requirements are the thing to watch: git+https://github.com/deepseek-ai/Janus.git, transformers, torch, bitsandbytes, Pillow, numpy. That git+... line means pip builds the Janus library straight from DeepSeek's repo, so a fresh install needs a working network and a compiler-friendly environment. And bitsandbytes is required even for bf16 - if pip install fails on it (historically painful on Windows), that's your first suspect.

    Troubleshooting

    • "Model loading failed" / first-run hang - the snapshot download needs internet. Check the connection, or pre-download the model manually and drop it into models/Janus-Pro/Janus-Pro-7B/ so the loader finds it locally.
    • CUDA out of memory - drop to Janus-Pro-1B and/or int4. The 7B in bf16 will not fit comfortably on an 8 GB card, and the loader holds the whole thing in VRAM.
    • int8/int4 load errors - bitsandbytes build trouble, usually a CUDA/torch version mismatch. Fix the bnb install, not the node.

    One thing worth knowing before you fall in love: this is a fairly young, lightly-maintained plugin from the early Janus-Pro wave, and it loads the model fresh every time your workflow runs - there's no ComfyUI-level model caching here, so first run after a restart will always pay the load cost. Accept it, and the loader does its one job well.

    CategoryJanus-Pro/Loaders

    Inputs (3)

    NameTypeDefaultDescription
    model_nameCOMBOdeepseek-ai/Janus-Pro-7B2 options: deepseek-ai/Janus-Pro-1B, deepseek-ai/Janus-Pro-7B
    precisionCOMBObf163 options: bf16, int8, int4
    local_diroptSTRINGmodels/Janus-Pro

    Outputs (2)

    NameTypeDescription
    modelJANUS_PRO_MODEL
    processorVLC_PROCESSOR