Load Janus-Pro Model
The node that gets DeepSeek's Janus-Pro into your graph
- janus_model
DeepSeek's Janus-Pro is a genuinely weird model in the best way: one set of weights does both image understanding (describe or answer questions about a picture) and image generation (draw one from text). This loader is the front door to that in ComfyUI - and the name is a small trap. "Pro" here is DeepSeek's model line, not some advanced mode, and the node doesn't call any API or need a key. It's a plain local loader, the thing every other node in this pack expects to be wired into first.
What it does
JanusProLoader scans your ComfyUI/models/Janus-Pro/ folder for installed model directories, gives you a dropdown, loads the one you pick, and hands the whole thing downstream as a single janus_model wire. That bundle contains both the model and its processor, so the sibling nodes - Analyze Image, Janus Chat, and Janus Text2Image - only ever see one clean connection. Think of it like a checkpoint loader: one per workflow, everything else plugs into it.
How it works
Under the hood it does the honest, unglamorous thing. It lists folders under models/Janus-Pro and only offers you ones that actually contain a model: config.json, tokenizer.json, tokenizer_config.json, plus either a single pytorch_model.bin or sharded pytorch_model-*.bin files. Then it loads the processor with VLChatProcessor.from_pretrained and the model with transformers' AutoModelForCausalLM using trust_remote_code=True, bfloat16, and low-CPU-memory mode, and parks it on ComfyUI's GPU device. It caches by path, so re-running a workflow doesn't redo the (slow) load. If loading fails, it returns an error bundle instead of crashing - the downstream nodes just echo the message to you.
The inputs and outputs that matter
There's exactly one input, and it's all you set: model_path, a dropdown of the folders it found in models/Janus-Pro. If nothing valid is there, the dropdown shows a Chinese placeholder that translates to "please put the model files in the models/Janus-Pro directory" - which is ComfyUI's way of saying "you haven't downloaded anything yet."
The single output, janus_model, wires into any of the pack's three other nodes. That's the whole job.
How to install
Use ComfyUI Manager and search for ComfyUI_Yc_JanusPro (display name "ComfyUI_Yc_JanusPro"), or do it by hand:
cd ComfyUI/custom_nodes
git clone https://github.com/yichengup/ComfyUI_Yc_JanusPro
Restart ComfyUI. The pack's requirements.txt installs DeepSeek's official janus package straight from GitHub (git+https://github.com/deepseek-ai/Janus.git), which is the actual heavy dependency - ComfyUI's bundled transformers, torch, and numpy handle the rest. Then the model itself, which is the real download:
mkdir -p ComfyUI/models/Janus-Pro
# grab from Hugging Face: deepseek-ai/Janus-Pro-1B or deepseek-ai/Janus-Pro-7B
# each model needs its own folder, e.g. ComfyUI/models/Janus-Pro/Janus-Pro-1B/
Where people get burned
- It wants
.binweights, not safetensors. The loader explicitly setsuse_safetensors=Falseand validates forpytorch_model.binfiles. If you grab a safetensors-only conversion from somewhere, the dropdown will mysteriously stay empty. The official HF repos ship the.binform, so use those. - The 7B is ~14GB in bf16. It fits on a 16GB card but the first load is a long coffee break. The 1B is the version most people actually run for understanding tasks.
- Transformers version drift. Janus is built against a specific transformers release; if generation later throws attribute errors, a mismatched transformers in your shared ComfyUI environment is the classic culprit (the whole ecosystem's dependency-hell problem, not this pack specifically).
Download the 1B first, get one workflow running end to end, then decide whether the 7B is worth the VRAM.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| model_path | COMBO | 1 options: 请将模型文件放置在models/Janus-Pro目录下 |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| janus_model | JANUS_MODEL | — |