What is PiD?
NVIDIA Research's Pixel Diffusion Decoder — a replacement for the VAE decode step. Instead of a single deterministic decode, the latent is projected to a low-res pixel image, a conditional diffusion model denoises that image guided by the latent features, and the result is a high-res, detail-rich image in one pass — decoding and upsampling combined. Signature: LATENT + caption + sigma → PiD → IMAGE. v1.5 shipped checkpoints for FLUX, FLUX.2 and Qwen-Image. Weights are NSCLv1 — non-commercial research/evaluation only.
How does it work with Krea 2?
Krea 2 sampling runs as normal, but instead of VAE Decode you capture the final latent plus its sigma and hand them to PiD with the prompt as caption. PiD makes a low-res pixel image from the latent (using the Qwen VAE internally), then diffuses it up into a detailed high-res image — decode and upscale in one pass.
What you get
INSANE Resolution for free. 1024 latent → 4096 image in the decode step. No separate upscale pass, no tiling seams, no second sampler. All this in 20 seconds on an RTX PRO 6000.
Invented micro-detail. Skin pores, fabric weave, hair strands, foliage — detail that was never in the latent. This is the main visible win over VAE + ESRGAN-style upscalers, which can only sharpen what exists.
Fewer VAE artifacts. v1.5 specifically removed grid artifacts and improved colour fidelity; anime and facial detail were called out as improved.
Caption sensitivity. Because the decoder is text-conditioned, the prompt influences the final pixels, not just the latent. A mismatched caption can push detail the wrong way
For this workflow you'll need
custom nodes: https://github.com/Merserk/ComfyUI-PiD
side encoder: https://huggingface.co/Comfy-Org/PixelDiT/resolve/main/text_encoders/gemma_2_2b_it_elm_bf16.safetensors"
Workflow is embedded. Just pull one of my samples into Comfy.
Thanks to @xNzX and @peeheaven for their feedback.
Description
Artifact issues fixed
FAQ
Comments (27)
Sounds interesting. But in your examples skin looks ugly, with noise-like artifacts. Same story (no one good example) on Github and HF of this model. So, we need good result as example first.
Personally, I've use this 'VAE-Upscaler' for Krea2 - https://github.com/spacepxl/ComfyUI-VAE-Utils
You can see workflow here - https://civitai.red/posts/30959395/
I've compare 'Regular VAE' and this 'Upscaler VAE' - and 'Upscaler VAE' really add details and improve quality (and make upscale, of course). Recommended for use 👍
A lot of what you are seeing is due to the author's workflow and implementation. No offense OP, just that the custom node is not needed at all and your custom sigmas have a curve that leaves lots of noise mid-late for PID. LCM simple is solid for sampler choice. Not to piggyback off your post, but i build a quick workflow for @xNzX to test. You can use that custom VAE with it as well. I used all native nodes to keep it simple other than the comparer for nodes 2.0
place the PID v1.5 checkpoint in diffusion_models. mine is named differently because I made the comfy conversion before comfy-org did, the output will be the same.
Thanks @peeheaven. Much appreciated. Where would I find your workflow example?
@LFMX Take a note: in description you provide same link for 'side model' and 'side encoder'.
@peeheaven Yes, I'm also don't see any workflow, what are you talking about. LCM+Simple - ok, got it.
Just to confirm: @peeheaven solution fixes the artefact and noise issue. Lower sigma trajectories do the trick. You might want to try a custom sigma of "0.999, 0.811, 0.565, 0.292, 0.0"
UPDATE for V2: the above comments affected V1. Thanks to @peeheaven s feedback i did change to LCM scheduler and a 1.2 aimed sigma curve. Issues resolved.
@LFMX Man, no offence here, but issue with bad quality is NOT resolved. You post images - with 'noise-like' artifacts on skin - red dots like small drops of blood. Also skin hair is noisy and artifact. Take a look on - https://civitai.red/images/142482794 <-- 🧐
And look here, at low abdomen - https://civitai.red/images/142480918 <-- 🧐
The rumor: you post images in article about workflow - and not post original ComfyUI file with embedded workflow. Strange.
Ok, I look in workflow in attach. For this 'PiD Upscale' you need to load PiD model (1.5 Gb) and text encoder (2.5 Gb). Consume +4Gb VRAM... for nothing? I've better use old good ComfyUI-VAE-Utils 🤪
@xNzX admit. It's not a 100% resolved. The tinted color in the lower end is a mystery to me. Speckles and hair is a prompting issue. Details are being amplified. Omit "fine vellus hair" and the hair is gone...
Look man, I've posted a ton of images. All with workflow embedded. Take it or leave it.
@LFMX @xNzX sorry i left my workflow out: copy the json into an empty comfy https://pastebin.com/MwUi0qhi
here is an image comparision honestly just run yourself though or dont... up to you https://imgur.com/a/krea-2-native-qwen-vae-vs-pixel-image-diffusion-4k-vae-0fBRBBS
i use sigmas 0.999, 0.866, 0.634, 0.342, 0.0 if youre going the custom sigma route personally im sure it can be a bit better i just found that good enough for me
@xNzX also feel free to update the post workflow with any of the stuff in my workflow, i didnt share anything i created myself so its all free to use if you want. Prompt is from @9score
@peeheavenSeems there is not one perfect solution - depends on the input (model, sampler, scheduler, ...). So i've tried a couple of sigmas:
1.4 - 0.999, 0.856, 0.621, 0.332, 0.0 0.332
1.3 - 0.999, 0.835, 0.594, 0.312, 0.0 0.312
1.2 - 0.999, 0.811, 0.565, 0.292, 0.0 0.292
1.1 - 0.999, 0.782, 0.533, 0.271, 0.0 0.271
You mentioned this runs fast on an RTX PRO 6000. For those of us who don’t have a $3000 graphics card, what’s the minimum GPU on which this could feasibly work?
Well, not that I own a $3000 gpu :D
Using smaller models for text encoders and diffusion models this should easily fit into memory of a RTX 5090. Thus not taking significantly longer. With less than 48 GB it would need to swap models in between runs ... costing time.
On my 3090 (24GB Vram/64GB of system ram) this stage has been running for 20 mins
[INFO] Model PiD prepared for dynamic VRAM loading. 2669MB Staged. 0 patches attached. Force pre-loaded 166 weights: 271 KB.
0%| | 0/4 [00:00<?, ?it/s, Model Initializing ... ][INFO] got prompt
50%|█████████████████████████████████████████▌ | 2/4 [26:06<26:06, 783.35s/it]
And has only got 50% so it looks like it will be 40 mins per image on lower end systems!
Maybe using a very small int4 model would help but they are usally pretty bad looking.
Ok it was taking 40 mins as ops workflow was 4x-ing the the already high resolution I had entered. a reasonable sized image does only take 20 seconds.
I've done the maths.
You'll need:
diffusion model = 8.5 GB
text encoder = 4.9 GB
pid model (pid_1.5_qwenimage_1024_to_4096) = 1.6 GB (int8) / 2.8 GB (bf16)
pid text encoder (gemma) = 2.6 (fb8) / 5.2 GB (bf16)
So: 18GB (8bit) of 22GB (16bit) of VRAM without swapping.
@J1B Congrats, bro! First example in this article with good final quality! BTW, 40 mins vs 20 secs - yes, this difference is too much 😁 Thank you for your experiment and patience! I NEVER wait for 40 mins, even in video generation 😁
@J1B And you hide your worflow. In article about workflow. Very smart move, congrats. (Sarcasm).
@xNzX it's hard to live up to your expectations
@LFMX Yeah, sure, it's very hard to post original ComfyUI png file, with embedded workflow. Instead, you post bullshit jpeg with unloadable workflow. You too smart for this world.
@xNzX I just used the workflow I downloaded, I didn't notice it was automatically set to save as .jpeg , so chill out.
Hmm. This i don't get. I switched to JPEG as the PNGs got rather large. And then checked that the workflow would load, when I pulled the JPEG into comfy. Which it did. So ... you're saying the JPEG embedded workflows don't load?
@LFMX Yes .JPEG files cannot embed workflows unfortunately, only prompts.
I have uploaded my compare workflow here: https://files.catbox.moe/tui2w3.json
It has got a lot of custom nodes in it which people like to complain about, but you can delete any that are not necessary.
It is not possible to get the exact composition the same to compare as the initial resolution is different for the PiD workflow section so changed composition.
Here's a couple of images saved as PNG. Workflow embedded: https://civitai.red/posts/30984703
In greece RTX Pro 6000 Blackwell 96GB has 20.000 euro - 25.000...just saying...






