Nodes/ComfyUI Deploy/EXR Output (ComfyDeploy)
ComfyUI Node

EXR Output (ComfyDeploy)

Save HDR EXR output from a deployed workflow — the export half of the HDR pair

By BennyKok·Created 3 years ago·Updated 10 months ago· 1,529
EXR Output (ComfyDeploy)
  • images
    filename_prefixComfyDeploy_EXR
    output_idoutput_exr

    "EXR Output" is the sibling of the External EXR input node: where that one brings HDR data into a workflow, this one pushes it back out. It takes your IMAGE tensor and writes it to disk as a float32 .exr file, then reports it to the ComfyDeploy backend so the dashboard can hand it to your API caller. If your deployed workflow produces anything meant for compositing, grading, or a 3D pipeline - light maps, depth passes, anything where you need more than 8 bits per channel - this is the terminal node you finish it with.

    Reaching for it makes sense only when the downstream consumer actually wants HDR. An EXR is useless in a normal image viewer and bloats a web gallery. But for a VFX studio pulling a rendered light pass off your API, it's exactly the format they want, and the dashboard uploads it the same way it uploads PNGs.

    How it works

    Under the hood it's a thin wrapper around OpenCV: the tensor is cast to float32, channels are flipped RGB→BGR (OpenCV's convention), and cv2.imwrite dumps it as an .exr. Because it's a save node, it returns no outputs - the "result" is the file plus a UI entry the ComfyDeploy uploader picks up, tagged with your output_id.

    Note the default output folder behavior: files land in ComfyUI's standard output directory, and if you run through ComfyDeploy they get uploaded to your configured storage. The filename_prefix (default ComfyDeploy_EXR) supports the usual %date% and %node.field% templates, so you can keep exports organized.

    What you set

    • images - the tensor to save as HDR.
    • filename_prefix - default ComfyDeploy_EXR.
    • output_id - default output_exr. Distinct ids let callers tell your HDR pass apart from your PNG previews when both are returned by one workflow.

    Installing it

    Standard pack install:

    cd ComfyUI/custom_nodes
    git clone https://github.com/BennyKok/comfyui-deploy.git
    

    Restart ComfyUI, or install "ComfyUI Deploy" from ComfyUI Manager. EXR writing needs OpenCV, and opencv-python is in the pack's requirements.txt, so it's pip-installed on first load - a couple of minutes the first time, then nothing. No models, no key.

    Where people get burned

    The most common gotcha is a silent dependency gap: this node imports OpenCV with OPENCV_IO_ENABLE_OPENEXR=1 and hard-fails if it's missing. If you ever see it error on a stripped-down environment, make sure opencv-python (or opencv-python-headless) is actually installed - ComfyUI Manager normally handles this for the pack, but a hand-rolled venv can miss it.

    Second: values above 1.0 are the whole point, so don't feed this node display-clamped PNG-range data and expect magic. If the image isn't already in a float HDR range (say, from a light-mapping node), the .exr you get back is just an overblown version of an 8-bit image. Also, EXRs don't preview in the ComfyUI UI or most browser dashboards - if you don't see a thumbnail, that's normal. Pair it with a PNG output node if you want a human-checkable preview alongside the HDR deliverable.

    Category🔗ComfyDeploy

    Inputs (3)

    NameTypeDefaultDescription
    imagesIMAGE
    filename_prefixSTRINGComfyDeploy_EXR
    output_idoptSTRINGoutput_exr

    Outputs (0)

    No outputs