Janus Pro Model Loader ๐
Load DeepSeek's Janus Pro for captioning
- model
This is the fuel tank. It doesn't caption anything by itself - it loads DeepSeek's Janus Pro into memory and hands it downstream to the node that actually does the describing (Janus Pro Describe Image or the batch Caption Images Under Directory). Split loader-from-worker is a pattern you'll see all over ComfyUI: you pay the load cost once, then run the model against as many images as you like without reloading it every time.
What Janus Pro actually is
Janus Pro is a unified multimodal model from DeepSeek - one network that can both generate images and understand them. Here's the thing worth knowing before you commit disk space to it: the generation half is underwhelming (it spits out 384ร384 and nobody's using it to make art), but the understanding half is genuinely useful. The community's honest take is that Janus's image understanding is good enough to write usable prompts from a picture, which is exactly what you want it for here. Captioning only touches the understanding side, so you get the good part and ignore the weak one.
The one input that matters
There's a single knob: model_name, and it's a choice between two:
deepseek-ai/Janus-Pro-7B- the default. Bigger, sharper descriptions, but it's a ~15GB download and wants real VRAM.deepseek-ai/Janus-Pro-1B- the small one. Loads fast, runs on modest cards, and for straightforward "what's in this image" captioning it's honestly fine. This is the one I'd start with if you're on a laptop GPU or just kicking the tires.
The output is a single model (type MIE_JANUS_MODEL). It only fits the Janus describe/caption nodes in this pack - you can't feed it into the Florence2 nodes, they speak a different type.
Where it fits in a real workflow
The whole point of this pack, per the author, is image-to-image tasks and LoRA dataset prep. You load Janus once here, wire it into a describe node, point that at your images, and get captions out - either to read on screen or, in batch mode, written as .txt files next to each image so a trainer picks them up. Janus writes natural-language descriptions, which is what modern LLM-encoder base models (Flux, Qwen-Image, Z-Image) want to be trained on. For those, prose beats tags.
How to install it
The node ships in ComfyUI-CaptionThis, so you install the pack, not the node:
- ComfyUI Manager (recommended): open the Manager, search CaptionThis, click Install, restart.
- Manual:
cd ComfyUI/custom_nodes && git clone https://github.com/MieMieeeee/ComfyUI-CaptionThis, then restart ComfyUI.
The Janus weights are not bundled. On first run the node pulls them from HuggingFace automatically, or you can grab Janus-Pro-1B / Janus-Pro-7B by hand and drop each in its own folder under ComfyUI/models/Janus-Pro/ (e.g. ComfyUI/models/Janus-Pro/Janus-Pro-1B/).
Common issues & troubleshooting
First run hangs on "loading" for ages. That's the download, not a freeze - 7B is around 15GB. Watch your console. If HuggingFace is slow or blocked where you are, set the environment variable HF_ENDPOINT=https://hf-mirror.com before launching ComfyUI to pull from the mirror.
Out of memory on 7B. Drop to Janus-Pro-1B. System RAM can't rescue you here - VRAM spillover to RAM is so slow it's effectively broken, so the fix is a smaller model, not more patience.
"Nothing happens after I load it." Correct - the loader has no visible output on its own. It's a dependency for the describe nodes. Wire the model output into Janus Pro Describe Image and run that.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| model_name | COMBO | deepseek-ai/Janus-Pro-7B | 2 options: deepseek-ai/Janus-Pro-7B, deepseek-ai/Janus-Pro-1B |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| model | MIE_JANUS_MODEL | โ |