Nodes/ComfyUI-DeepSeek-JanusPro/🧩Janus Model Loader
ComfyUI Node

🧩Janus Model Loader

Getting DeepSeek's Janus-Pro into ComfyUI

By ZHO-ZHO-ZHO·Created 2 years ago·Updated 2 years ago· 106
🧩Janus Model Loader
    • model
    • processor
    • tokenizer
    model_pathdeepseek-ai/Janus-Pro-7B

    This is the front door to a model that wants to hold two jobs at once. Janus-Pro-7B is DeepSeek's early-2025 "unified" model: the same weights that describe an image will also generate one. Janus Model Loader is how you get those weights into a ComfyUI graph, and it's a mandatory first stop - the other two nodes in this pack are useless without the three things it hands you.

    The name is not a lie about an API. Nothing here calls DeepSeek's servers, you don't need a key, and the only network traffic is the one-time model download. It's as local as a ComfyUI checkpoint, just bigger and weirder.

    What it actually does

    Under the hood it's a plain transformers load: AutoConfig plus AutoModelForCausalLM.from_pretrained(..., trust_remote_code=True), cast to bfloat16 on CUDA (fp16 otherwise), with the model's VLChatProcessor and its tokenizer loaded alongside. The janus/ modeling code ships inside the repo, so the whole thing runs from your own custom_nodes folder - no extra package to pip.

    That "same weights for both jobs" bit is the interesting part, and it's why this pack exists. Janus-Pro is autoregressive: it does image understanding and image generation as the same next-token prediction, not as diffusion plus a separate captioner. That's why one loader can feed both of the other nodes here.

    The inputs and outputs that matter

    There's exactly one input you'll ever touch:

    • model_path - a free-text box that defaults to deepseek-ai/Janus-Pro-7B. Leave it alone and the loader pulls the model from HuggingFace into your HF cache. Point it at a local folder and it loads from disk instead. The loader also registers a ComfyUI/models/Janus folder, so you can drop the model files there (e.g. ComfyUI/models/Janus/Janus-Pro-7B) and set this to the local path if you'd rather keep downloads out of your HF cache.

    Three outputs come out, and they only make sense to this pack:

    • model (JANUS_MODEL) - the loaded weights
    • processor (PROCESSOR) - the VLChatProcessor that turns images+text into tensors
    • tokenizer (TOKENIZER) - the text tokenizer

    All three feed straight into Janus_ImageGeneration or Janus_MultimodalUnderstanding. They're custom types, so nothing else in ComfyUI understands them - this is a self-contained little island, which is very on-brand for its author.

    How to install it

    ComfyUI Manager: open it, search "DeepSeek JanusPro", install, restart. Or do it by hand:

    cd ComfyUI/custom_nodes
    git clone https://github.com/ZHO-ZHO-ZHO/ComfyUI-DeepSeek-JanusPro
    # restart ComfyUI
    

    The requirements.txt pins exactly one thing: attrdict. Everything else - torch, transformers, Pillow - comes from your ComfyUI environment, which is good (no dependency hell) and bad (you inherit whatever transformers version ComfyUI bundled).

    The heavy lift isn't install, it's the model. First run downloads Janus-Pro-7B, roughly 15 GB, and the 7B needs ~14 GB of VRAM to be comfortable. People with 12 GB cards report it just won't fit.

    Where people get burned

    • First run looks frozen. That's the download. Let it sit; watch the console for progress.
    • A typo'd model_path downloads something you didn't mean, or fails with a confusing resolve error. There's no dropdown to save you.
    • A load that dies with a transformers attribute error is almost always your ComfyUI's transformers being too old - the pack pins nothing, so it inherits whatever's there.
    • CPU-only machines technically run it (fp16 on CPU) but you will age visibly waiting.

    One honesty note: this pack is a snapshot. ZHO-ZHO-ZHO's claim to fame here is that DeepSeek's R1 model wrote all the code - which makes it a fun artifact, but it's been folded into his bigger ComfyUI-DeepSeek-All-In-One project, so this loader isn't exactly getting feature updates. It still works; just know what you're installing.

    Category🧩Janus

    Inputs (1)

    NameTypeDefaultDescription
    model_pathSTRINGdeepseek-ai/Janus-Pro-7B

    Outputs (3)

    NameTypeDescription
    modelJANUS_MODEL
    processorPROCESSOR
    tokenizerTOKENIZER