Nodes/Easy Color Correction/RAW Image Processor (beta)
ComfyUI Node

RAW Image Processor (beta)

Load camera RAW straight into ComfyUI, no Lightroom detour

By regiellis·Created about a year ago·Updated 6 months ago· 158
RAW Image Processor (beta)
    • image
    • metadata
    file_path
    format_typeauto
    white_balanceauto
    demosaic_algorithmAHD
    tone_mappingaces
    hdr_exposure0.0
    hdr_gamma2.2
    exposure0.0
    highlights0.0
    shadows0.0
    brightness0.0
    contrast0.0
    saturation0.0
    noise_reduction0.0
    output_colorspacesRGB
    output_gammasRGB

    Every other node in this pack takes an already-loaded ComfyUI IMAGE. RawImageProcessor is the odd one out: it reads a file straight off disk - a camera RAW file, an EXR, an HDR, or 16-bit TIFF - and does the actual RAW development (demosaicing, white balance, tone mapping) itself. The author's own pitch for it is blunt: skip the whole "import to Lightroom first" dance.

    What it is and why you'd reach for it

    If your workflow starts from real camera footage - reference photography, a color-match source, an actual RAW capture you want to blend with generated content - you'd normally have to develop it in a separate RAW tool and export a JPEG or TIFF before ComfyUI could touch it. This node does that development step inline, in the graph, with real demosaicing and tone-mapping controls rather than a black-box "just decode it" conversion. It's labeled beta, alongside BatchColorCorrection and ColorCorrectionViewer - the author's own framing for this trio is "the experimental playground," next to the "rock solid" main Color Corrector.

    How it works

    format_type (default auto) picks between actual RAW sensor data, EXR, HDR, or 16-bit TIFF sources, each of which needs different handling. For true RAW files it runs a demosaic algorithm - AHD, VNG, PPG, or AAHD, the same named algorithms real RAW processors use to reconstruct full-color pixels from a Bayer sensor's single-channel-per-pixel data - then applies white balance and, for HDR/EXR sources specifically, tone mapping (Reinhard, Drago, or ACES, the standard HDR-to-SDR tone curves) to bring a wide dynamic range down into something displayable.

    The inputs and outputs that matter

    file_path is required and is a plain string field - you type or paste a path, there's no upload widget. format_type picks the source type (auto/raw/exr/hdr/tiff16). From there it's a long list of optional processing knobs in familiar RAW-editor vocabulary: white_balance (auto, camera, or lighting presets like daylight/cloudy/shade/tungsten/fluorescent/flash), demosaic_algorithm (default AHD, generally the safest choice), tone_mapping (default aces), hdr_exposure/hdr_gamma for HDR sources specifically, and a standard develop pass - exposure, highlights, shadows, brightness, contrast, saturation, noise_reduction - plus output_colorspace (sRGB, Adobe RGB, ProPhoto RGB) and output_gamma for how the final image is encoded. Outputs are image (the developed result, ready for the rest of your ComfyUI graph) and metadata - a string carrying whatever info the RAW file exposed.

    How to install it

    Via ComfyUI Manager: search "Easy Color Correction" and install the pack - this node ships with it. Manually:

    cd ComfyUI/custom_nodes
    git clone https://github.com/regiellis/ComfyUI-EasyColorCorrector.git
    cd ComfyUI-EasyColorCorrector
    pip install -r requirements.txt
    

    then restart ComfyUI. This is the one node in the pack where the heavier dependencies aren't optional extras - rawpy (a LibRaw wrapper) and OpenEXR are what actually let it read RAW and EXR files at all. Both wrap native C/C++ libraries rather than being pure Python, so they're the two most likely entries in the requirements list to fail to build if your system is missing a compiler toolchain or the underlying library - if the install script errors out specifically on one of these, that's why.

    Common issues & troubleshooting

    file_path doesn't point anywhere. This field is a plain string, not a file picker - on a server-hosted ComfyUI instance (rather than one running on your own machine), that path has to be reachable by the server, not by your browser. If you're used to a local upload widget elsewhere in ComfyUI, this node's file input works differently and it's easy to type a path that only exists on your own computer.

    Install fails on rawpy or OpenEXR specifically. Both need native libraries under the hood (LibRaw and the OpenEXR C++ library respectively) rather than being pure-Python wheels everywhere. If the rest of the pack's requirements installed fine and only one of these two is the holdout, that's a strong hint - you may need your platform's build tools rather than a pip flag fixing it.

    It's beta - expect rougher edges than the main Color Corrector. That's consistent with how the author describes this trio of nodes. If a specific demosaic algorithm or tone-mapping mode misbehaves, try AHD (the default) and ACES before assuming your source file is bad.

    RAW output looks flat or dull straight out of the node. That's often correct, not broken - RAW development intentionally starts conservative so you have headroom. Push exposure, contrast, and saturation from there, or hand the output to one of the pack's other color-correction nodes for the actual grade.

    Categoryitsjustregi / Easy Color Corrector

    Inputs (16)

    NameTypeDefaultDescription
    file_pathSTRING
    format_typeCOMBOauto5 options: auto, raw, exr, hdr, tiff16
    white_balanceoptCOMBOauto8 options: auto, camera, daylight, cloudy, shade, tungsten, +2
    demosaic_algorithmoptCOMBOAHD4 options: AHD, VNG, PPG, AAHD
    tone_mappingoptCOMBOaces4 options: none, reinhard, drago, aces
    hdr_exposureoptFLOAT0.0-5–5
    hdr_gammaoptFLOAT2.20.5–4
    exposureoptFLOAT0.0-3–3
    highlightsoptFLOAT0.0-1–1
    shadowsoptFLOAT0.0-1–1
    brightnessoptFLOAT0.0-1–1
    contrastoptFLOAT0.0-1–1
    saturationoptFLOAT0.0-1–1
    noise_reductionoptFLOAT0.00–1
    output_colorspaceoptCOMBOsRGB3 options: sRGB, Adobe RGB, ProPhoto RGB
    output_gammaoptCOMBOsRGB4 options: sRGB, linear, 1.8, 2.2

    Outputs (2)

    NameTypeDescription
    imageIMAGE
    metadataSTRING