Nodes/radiance/◎ Radiance Compression Artifacts
ComfyUI Node

◎ Radiance Compression Artifacts

Deliberately making your images look compressed

By fxtdstudios·Created 7 months ago·Updated 9 days ago· 242
◎ Radiance Compression Artifacts
  • image
  • IMAGE
artifact_typeJPEG
quality50
block_size8
color_subsamplingtrue
banding_levels32
noise_amount0.000
seed0

Every other filter in the pack is trying to make images look better. This one is the exception - it exists to make them look worse, on purpose. Radiance Compression Artifacts bakes JPEG blocking and color banding into an image, and as strange as that sounds, it's a real tool with three legit jobs.

First: training and augmentation. If you're fine-tuning a model or an upscaler on real-world photos, the real world is full of compressed JPEGs, and your training data should be too. Adding controlled artifacts - rather than hoping the web already did it for you - gives you knobs to turn. Second: stylistic. A little compression sells "found footage," "old video," or "retro webcam" harder than any prompt alone, because the artifact pattern is what our eyes read as captured, not generated. Third: worst-case simulation. If you're shipping a video pipeline, seeing how bad a quality setting can get before you ship it beats discovering it from a client.

What you're setting

  • artifact_type - JPEG, Banding, or Both. JPEG is the blocking/ringing you get from lossy encoding; Banding is the posterized color gradients from too few quantization levels. "Both" is the realistic "terrible compressed video still."
  • quality - 1 to 100, the core knob. Lower = worse = more artifacts. 50 is a decent middle; 10 is aggressively crunchy.
  • block_size - the DCT block size, 4 to 32, default 8 (standard JPEG). Smaller blocks localize the artifacts, larger ones smear them.
  • color_subsampling - on by default, matching real JPEG's chroma subsampling. Off gives you blocking without the color smear.
  • banding_levels - 4 to 256. Fewer levels = harsher banding.
  • noise_amount - 0 to 0.1, a light dither. This is the detail that keeps the banding from looking like a clean gradient filter - real compression noise is messy.
  • seed - for reproducible noise. If you want the same "compressed" character across a batch, lock it.

Output is a single IMAGE, same resolution as the input, ready for the rest of your graph.

The mechanism, briefly

JPEG mode runs the image through an actual lossy encode/decode cycle, which is why it looks like the real thing - it is the real thing, just generated to order instead of happening by accident. Banding mode quantizes the values down to your chosen level count, then the noise option breaks up the result so it reads as compression instead of a posterize filter.

Gotchas

Worth being honest: this is a niche node, and it's a curious fit for a pack that markets itself on 32-bit float precision - adding JPEG artifacts is the fastest way to destroy the HDR data you spent the rest of the workflow preserving. If you're in a float pipeline, put this node last, or keep it on a clone branch for look development. Also, like several Radiance nodes, the pack's launch reception was mixed - the features work, but the documentation is thin, so a lot of the fine-tuning here is just experimentation.

Install

In the pack - ComfyUI Manager search "Radiance", or:

cd ComfyUI/custom_nodes
git clone https://github.com/fxtdstudios/radiance.git
cd radiance
pip install -r requirements_linux.txt   # or windows/mac_silicon

Restart after. Linux: install libopenexr-dev before pip. First boot is slow because the pack pulls OpenEXR, OpenColorIO, colour-science and transformers. If Manager's security level rejects it, the manual clone is the documented path.

CategoryFXTD Studios/Radiance/Filter

Inputs (8)

NameTypeDefaultDescription
imageIMAGE
artifact_typeCOMBOJPEG3 options: JPEG, Banding, Both
qualityINT501–100
block_sizeoptINT84–32
color_subsamplingoptBOOLEANtrue
banding_levelsoptINT324–256
noise_amountoptFLOAT0.0000–0.1
seedoptINT00–18446744073709550000Random seed for reproducible noise patterns.

Outputs (1)

NameTypeDescription
IMAGEIMAGE