Nodes/radiance/◎ Save Image 16-bit
ComfyUI Node

◎ Save Image 16-bit

A 16-bit PNG save that stops banding in your gradients

By fxtdstudios·Created 7 months ago·Updated 9 days ago· 242
◎ Save Image 16-bit
  • image
    filename_prefixRadiance
    output_path

    ComfyUI's default save writes 8-bit PNGs, and 8-bit PNGs band. Skies, gradients, soft bokeh - anything with a smooth tonal ramp picks up visible steps, because 256 levels per channel just isn't enough to represent a gentle gradient without quantization. ◎ Save Image 16-bit writes a proper 16-bit PNG instead. It's the single lowest-effort upgrade for anyone who's ever stared at a posterized sunset and wondered why their render looks banded.

    Real talk: 16-bit PNG is not HDR, and it won't fix a sky that's already crushed. But it gives you 65,536 levels per channel instead of 256, which eliminates banding in normal SDR material entirely - and it keeps everything in the classic PNG container, so nothing about your workflow changes except the file gets bigger.

    How it works

    It's a thin wrapper over the pack's unified write pipeline (RadianceWrite), saving a single image as a PNG with the 16-bit output format, in sRGB, with broadcast_safe on. "Broadcast safe" means the write clamps/steps values into a legal signal range (no super-blacks or super-whites in the SDR output) - which is what you want for a deliverable, even if you don't want it in your working image. The filename handling, counter indexing, overwrite protection, and history reporting all come from the same shared write code as the EXR/HDR nodes, so output lands predictably in ComfyUI's output folder (or your output_path).

    The important detail is what this node does not do: it's an 8-bit→16-bit-container conversion for material that already fits in SDR. It can't put highlight detail back that was never there - the pack's README is explicit that "It cannot recover highlight or shadow detail that was already clipped in an 8-bit source image." What it does give you is a file with headroom to grade in, free of the 8-bit quantization that causes banding.

    The inputs that matter

    • image - the tensor to save.
    • filename_prefix - base name (default Radiance).
    • output_path - optional absolute directory; empty uses the default output folder.

    No outputs - it's an output node, and the file on disk is your result.

    How to install it

    It's in the radiance pack. ComfyUI Manager → search "Radiance", or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/fxtdstudios/radiance.git
    cd radiance
    pip install -r requirements_windows.txt
    

    Restart ComfyUI, and find it under FXTD Studios/Radiance/IO. No extra model files - it's pure image I/O.

    Common issues

    The two honest traps: First, 16-bit PNG is not the same as 16-bit float. If you need actual HDR values above 1.0, you need EXR (Radiance Save EXR) or Radiance HDR - this node is for SDR material that should look smooth. Second, size and compatibility: 16-bit PNGs are bigger than 8-bit, and some light-weight tools and image hosts still choke on or downconvert them - Reddit, Discord previews, and most CDNs will strip your precision right back to 8-bit, so treat the 16-bit file as your master and the upload as a derivative. The KB's I/O essay makes the same point about metadata: keep the master, share derivatives.

    For the "why does my render band" crowd, this is usually the whole answer - and it costs nothing but disk space. Swap it in for the default save on anything with smooth gradients and you'll stop seeing steps.

    CategoryFXTD Studios/Radiance/IO

    Inputs (3)

    NameTypeDefaultDescription
    imageIMAGE
    filename_prefixSTRINGRadiance
    output_pathoptSTRING

    Outputs (0)

    No outputs