Janus Text2Image
The text-to-image node that actually follows your prompt
- janus_model
- images
The generation half of Janus-Pro, and the node with the most distinctive personality in this pack. Where diffusion models drift and reinterpret, Janus Text2Image is obedient - when the model launched in early 2025, the community's comparison posts kept landing on the same point: Janus-Pro-1B followed the prompt more literally than Flux.schnell, SD1.5, or SDXL in head-to-head tests. That is its superpower. The catch, and it's a big one, is that everything it draws is a fixed 384×384 image, and it does not do photorealism the way a diffusion checkpoint does. This is a compact, literal-minded illustrator, not your next realistic-photo model - reach for it when adherence beats fidelity.
How it works
No diffusion under the hood. The prompt is tokenized and templated, then the model autoregressively predicts 576 image tokens in a fixed loop - one token at a time, feeding each back in - and finally decodes the token grid through the vision model's codebook into pixels. That's why there's no "steps" parameter like a sampler: the loop is the process. The cfg_weight (default 5) is applied directly to the logits each step as uncond + cfg * (cond − uncond), the classic classifier-free-guidance trick reimplemented on a token level. temperature and top_p shape the sampling, seed locks reproducibility, and batch_size runs multiple generations in parallel - a batch of three costs barely more than a batch of one, because the token loop is the bottleneck, not the batch.
The inputs that matter
- prompt - your text prompt. This is the node's whole point; Janus earns its reputation here.
- cfg_weight - guidance strength, default 5. Lower for more variety, higher for stricter adherence to a complex prompt.
- temperature - default 1.0. Set 0 for greedy, deterministic output; nudge it up if results look samey.
- batch_size - how many images to generate at once (1–64). Remember the near-free batching.
seed and top_p (default 0.9) round it out. The required janus_model input comes from the pack's loader.
The output
images, a standard IMAGE tensor - so it plugs into anything in ComfyUI: a preview node, Save Image, an upscaler, a face detailer. At a hard 384×384 you'll almost always want it upscaled downstream, which is also where this node shines: its prompt-faithful output survives upscaling well.
Install and gotchas
Same as the rest of the pack: Manager → search ComfyUI_Yc_JanusPro, or clone into custom_nodes and restart. The real dependencies are DeepSeek's janus package (installed via the pack's requirements.txt) and a model in ComfyUI/models/Janus-Pro/ - the 1B is the sweet spot here, the 7B wants ~14GB of VRAM.
Watch out for two things. First, a failed generation returns black image tensors instead of an error - if your output is all black rectangles, something threw, and the real message is in the ComfyUI console. Second, don't judge Janus by photorealism; if a diffusion-realism result is the goal, this is the wrong tool. For prompt adherence, multi-image comparison setups, or just a tiny model that draws what you asked, it's genuinely fun.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| janus_model | JANUS_MODEL | — | |
| prompt | STRING | A stunning princess | — |
| seed | INT | 420–18446744073709550000 | — |
| batch_size | INT | 11–64 | — |
| cfg_weight | FLOAT | 5.00–20 | — |
| temperature | FLOAT | 1.00–2 | — |
| top_p | FLOAT | 0.900–1 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |