Nodes/ComfyUI_Pops/Pops_Decode
ComfyUI Node

Pops_Decode

Turn embeddings into pixels

By smthemex·Created 2 years ago·Updated 2 years ago· 21
Pops_Decode
  • vae
  • positive_emb
  • negative_emb
  • image
seed2
steps25
guidance_scale1.0
height768
width768

If Pops_Sampler is the brain of this pack, Pops_Decode (display name for Pops_Decoder) is the paintbrush. It takes the image embeddings the Sampler produced, feeds them to the Kandinsky 2.2 decoder, and hands you an actual IMAGE. It's the node you wire the whole workflow into, and it's also the simplest one in the pack - which is exactly why it's the easiest to miswire.

What it is

The pOps method operates in CLIP image-embedding space: a trained diffusion prior maps your input images into a new embedding that semantically represents the transformation you asked for. But an embedding isn't a picture. The decoder - the image-diffusion half of the Kandinsky 2.2 pipeline - is what turns that embedding into pixels. That's the whole job here: one forward pass of the decoder conditioned on the embeddings from the Sampler.

How to wire it

The pack forms a three-node chain:

Pops_Repo_Loader ── model/clip/vae ──► Pops_Sampler ── positive_emb ──► Pops_Decode ──► image
                                   └──── vae ──────────────────────────► Pops_Decode ──► SaveImage
  • vae - from the Pops_Repo_Loader's vae output. Note this is the decoder pipeline, not a standard VAE. A regular VAELoader won't work here, and this output won't work in a normal sampler.
  • positive_emb / negative_emb - both CONDITIONING outputs from Pops_Sampler. Feed both; the negative is what lets classifier-free guidance do its thing.

The inputs you actually touch

The rest are the decode parameters, and they map onto the decoder's num_inference_steps and guidance_scale:

  • steps - decoder steps, default 25. This is separate from the Sampler's prior_steps; they're two different diffusion runs.
  • guidance_scale - decoder CFG, default 1.0. Raise it a bit if the decode looks washed out, but this is not the same knob as prior_guidance_scale on the Sampler.
  • seed - the decoder is stochastic too, so this affects the final render independent of the Sampler's seed.
  • height / width - output resolution, default 768×768, in steps of 64. Keep these aligned with the Sampler's height/width so your inputs and output match.

Troubleshooting

Since this node has so few knobs, nearly every problem is upstream. Blurry or gray output usually means the embeddings don't match the loaded operator - re-run with the same Pops_Repo_Loader config. If the decoder runs but produces visual noise, check that you actually wired both the positive and negative embeddings. And if it never runs at all, it's almost certainly the vae connection: remember this is the pack's own decoder pipeline, and it only accepts the vae output from Pops_Repo_Loader.

One honest caveat: this whole pack is a research reproduction, and the README itself admits output quality is highly variable ("抽卡的几率太大了" - the luck factor is high). If a result looks off, try a different seed on both the Sampler and the Decoder before you go hunting for a bug. There often isn't one - that's just what the model does.

CategoryPops

Inputs (8)

NameTypeDefaultDescription
vaeVAE
positive_embCONDITIONING
negative_embCONDITIONING
seedINT21–2147483647
stepsINT251–4096
guidance_scaleFLOAT1.00.1–24
heightINT768256–4096
widthINT768256–4096

Outputs (1)

NameTypeDescription
imageIMAGE