Nodes/☁️BizyAir Nodes/☁️BizyAir Differential Diffusion
ComfyUI Node

☁️BizyAir Differential Diffusion

Turn a grayscale mask into a per-pixel denoise dial

By siliconflow·Created 2 years ago·Updated 11 months ago· 855
☁️BizyAir Differential Diffusion
  • model
  • BIZYAIR_MODEL

Standard inpainting treats a mask as binary: regenerate this pixel, leave that one alone. Differential Diffusion throws that out and reads the mask as a grayscale schedule instead - a pixel at 0.3 gray starts getting denoised roughly 30% of the way through sampling, one at 0.9 starts almost immediately. Feather a mask with a real gradient and you get an actually feathered transition in the generation itself, not a blur pasted over a hard edge afterward. It's one node, and it does exactly this one thing.

It sits in the _for_testing category, which is worth a note rather than a worry: that's also where the equivalent core ComfyUI node lives. It's a real, useful technique that never got promoted out of the experimental bucket in the reference implementation either - not a sign it's flaky.

How it works

Wire a model through it, and everything downstream reads your mask's continuous gray value as "how far into denoising should this pixel already be" rather than a strict yes/no. This is the structural version of what inpainting.md's denoising-strength guidance describes at the per-region level - 0.0-0.3 for subtle changes, 0.8-1.0 for full regeneration - except Differential Diffusion applies that same dial per pixel, driven directly by your mask's gray values instead of one number for the whole masked area.

The inputs and outputs that matter

  • model - a BIZYAIR_MODEL, not a plain MODEL. This is BizyAir's cloud-side model handle, so this node has to sit after a BizyAir model loader in the chain - it won't take a locally-loaded checkpoint from a non-BizyAir node.
  • Output: the patched BIZYAIR_MODEL, feed it onward to your BizyAir sampler.

There's nothing else to configure - the effect is entirely driven by whatever mask you feed into your conditioning downstream (typically through an inpaint-conditioning node), not by a parameter on this node itself.

How to install it

ComfyUI Manager: search BizyAir, install, restart. Or:

cd ComfyUI/custom_nodes
git clone https://github.com/siliconflow/BizyAir

then restart. Log in with a BizyAir API key on first use - the pack is account-gated end to end, and since this node outputs a BIZYAIR_MODEL handle it's specifically part of BizyAir's cloud execution graph rather than a standalone local patch.

Common issues & troubleshooting

Node won't connect to your model loader. Check the type - it wants BIZYAIR_MODEL specifically. If your graph loads a checkpoint through a regular (non-BizyAir) loader, this node has nothing to attach to.

No visible difference from ordinary inpainting. Differential Diffusion only earns its keep when the mask you feed downstream has real gradient in it - a soft-edged, actually-grayscale mask, not a binary black-and-white one. A plain hard mask gets you standard inpainting behavior with this node doing nothing useful in between.

Where to feed the mask. This node patches the model; the mask itself goes into whatever conditioning node sits between this and your sampler (an inpaint-conditioning-style node) - not into this node directly, since it takes no mask input at all.

Category☁️BizyAir/_for_testing

Inputs (1)

NameTypeDefaultDescription
modelBIZYAIR_MODEL

Outputs (1)

NameTypeDescription
BIZYAIR_MODELBIZYAIR_MODEL