Nodes/Janus-Pro ComfyUI Plugin/๐ŸŽจ Janus Image Generator
ComfyUI Node

๐ŸŽจ Janus Image Generator

Janus-Pro's generator, quirks included

By greengerongยทCreated 2 years agoยทUpdated 2 years agoยท 12
๐ŸŽจ Janus Image Generator
  • model
  • processor
  • images
โ—„promptA beautiful sunset over mountainsโ–บ
โ—„system_promptโ–บ
โ—„temperature0.8โ–บ
โ—„num_images1โ–บ
โ—„cfg_scale5.00โ–บ
โ—„image_size384โ–บ
โ—„seed666โ–บ

The ๐ŸŽจ Janus Image Generator is the creative half of this pack: it turns a text prompt into actual images using DeepSeek's Janus-Pro. And right up front, the part nobody says loudly: output is fixed at 384ร—384, and the community consensus when Janus-Pro launched was "average to good" at drawing. This is not a Flux killer and it was never meant to be. It's a compact autoregressive model living inside the same weights as a genuinely good vision-language model - think of it as a toy worth having, a concept-sketch machine, or a research curiosity, not your new primary sampler.

How it works

Janus-Pro isn't a diffusion model. It's autoregressive: after the prompt, the model predicts an image token-by-token into a VQ codebook, and then decodes those tokens back into pixels via a learned vision codec. Concretely, this node builds a VLChat conversation, applies Janus's SFT template, seeds RNG with your seed, then generates 576 image tokens in parallel streams and runs them through decode_code to produce the images.

One detail makes the internal plumbing visible: to do classifier-free guidance it runs two token streams per image - one conditioned on the prompt, one not - and combines them. That doubling is why num_images is really "parallel size" and why every extra image roughly doubles the VRAM and compute for the batch.

Inputs worth knowing

  • model + processor - from the ๐Ÿ”ฎ Janus-Pro Model Loader. Non-negotiable.
  • prompt - the actual text. Multiline, default "A beautiful sunset over mountains". Be descriptive; Janus rewards it.
  • num_images - how many images to generate in one run (default 1). Low-VRAM cards: keep this at 1โ€“2. The README suggests 16โ€“32 on a big GPU as a speed multiplier.
  • seed - reproducibility (default 666). Same seed, same images.
  • image_size - looks free-form, isn't. It's a string, but only 384 works; anything else throws "Currently only support 384 resolution".
  • temperature and cfg_scale - here's the honest gotcha. These inputs exist in the UI, but in this revision of the pack they don't reach the generation code. Inside the node, temperature is hardcoded to 1.0 and CFG weight to 5.0, so cranking the sliders does nothing. Pretend they're documentation. Same story for system_prompt: it's threaded through the interface, but the actual generation path re-templates with an empty system prompt. The dials that actually do something are prompt, num_images, image_size, and seed.

Output

One output: images (IMAGE), a standard ComfyUI tensor you can wire straight into a Preview Image or Save Image node. If you want the results in a real workflow, run them through an upscaler - 384px is small, and the model's textures don't survive a big upscale gracefully, but for concept exploration it's fine.

Installing the pack

It's one of three nodes in greengerong/ComfyUI-JanusPro-PL. ComfyUI Manager: search "Janus-Pro ComfyUI Plugin" and install. Manual:

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

Restart ComfyUI. The requirements.txt installs the Janus library from DeepSeek's GitHub plus transformers, torch, bitsandbytes, Pillow, numpy - and yes, bitsandbytes is required even if you run bf16, because the loader imports it unconditionally. First generation will also wait on the model download from Hugging Face (~16 GB for the 7B) if you haven't run it yet.

Troubleshooting

  • "Currently only support 384 resolution" - you typed something other than 384 into image_size. Type 384. That's the whole fix.
  • CUDA out of memory - num_images is your VRAM multiplier. Drop it to 1, and if that's still too much, switch the loader to Janus-Pro-1B with int4.
  • Images look mediocre - that's Janus, not you. It generates at 384px and the community found its outputs middling at launch. Write more descriptive prompts, upscale after, or use it for what it's actually good at: the understanding node's captions.

Bottom line: reach for this node when you want to play with a unified autoregressive model that also talks about images, or when you need quick sketch-level variations in a pipeline. Want wallpapers? Look elsewhere. Want to poke at one of 2025's more interesting model releases for the price of a download? This is a tidy way to do it.

CategoryJanus-Pro/Generation

Inputs (9)

NameTypeDefaultDescription
modelJANUS_PRO_MODELโ€”
processorVLC_PROCESSORโ€”
promptSTRINGA beautiful sunset over mountainsโ€”
system_promptSTRINGโ€”
temperatureFLOAT0.80โ€“1โ€”
num_imagesINT1โ€”
cfg_scaleFLOAT5.00โ€”
image_sizeSTRING384โ€”
seedINT6660โ€“18446744073709550000โ€”

Outputs (1)

NameTypeDescription
imagesIMAGEโ€”