FervorCreative AI
Live Latest 27.10.26 · morning 265 tools tracked 674 workflows indexed 442 topics Hot: ComfyUI, MOSS-Image, MiniMax H3

ComfyUI v0.43.0's linear ACEScg EXR option makes AI frames land correctly in an ACES compositing pipeline, but it is a delivery fix rather than an image upgrade, because an ordinary model's picture gains correct colour labelling and precision, not new highlight detail.

ComfyUIACEScgOpenEXRSave Image (Advanced)Pad Imagecreative-workflowsimage-genvideo-genai-editing

ComfyUI Now Saves ACEScg EXR: How to Hand AI Images to a VFX Comp, and What the File Cannot Give You

The free ComfyUI release from October 27 adds the colour space most VFX pipelines work in to its stock save node. Here is the handoff routine, the padding trick that goes with it, and the one thing a better file format cannot fix.


Most AI images arrive in a VFX pipeline the same way a stranger arrives at a wedding: underdressed. A PNG is a format built for screens. Its values stop at white, its colours are squeezed into the small range a monitor shows, and the first thing a compositor does is guess how to convert it into the space the rest of the shot lives in.

That guess has been the norm for AI elements since the first generated matte painting landed in a comp. As of ComfyUI v0.43.0, published on the morning of October 27, it no longer has to be a guess. The stock Save Image (Advanced) node can now write EXR files tagged as linear ACEScg, the working colour space most compositing pipelines hand files around in.

It is a small option in a dropdown. It also changes who can use AI frames in serious post work without a colour scientist on call. The catch, and it is a real one, is that a better container does not create a better picture. Here is how to use it and how to tell what you actually gained.

What ACEScg is, in one paragraph

ACES is the colour system the film industry built so footage from different cameras, CG renders and paintings can share one set of rules. ACEScg is its working space for compositing. The official spec calls it "an appropriate working space for CGI rendering and compositing." Two things make it different from the colour of a normal image file. Its range of colours is wide enough to contain the big cinema and HDR colour ranges. And it is linear, meaning the numbers track real light: double the number, double the light. Values well above 1.0, a bright window, a specular glint, are expected, and the spec says they should not be clamped except as a deliberate creative choice.

A PNG does neither. It stores a picture already shaped for a monitor, with a hard ceiling at white.

What changed in ComfyUI

The change came from a pull request merged on October 23 and shipped in v0.43.0. It adds "linear ACEScg" in two places: as a source and destination in the Convert Image Color Space node, and as an input colour space when Save Image (Advanced) writes an EXR.

Before this, the EXR options were sRGB, HDR (meaning the HLG broadcast format) and linear, where linear meant the ordinary Rec.709 range. Save Image (Advanced) already wrote every EXR as scene-linear light, which was a good start. The problem was the colour range. The pull request explains that saving ACEScct material, the log flavour of ACES some HDR video models work in, meant converting it through Rec.709, which clipped every colour outside that smaller range. A saturated neon sign or a deep cyan sky could lose its edge on the way out the door.

Now the file can stay in ACES the whole way. The author also notes that values above 1.0 are preserved, and that ACEScg 1.0 maps to the same reference white as ComfyUI's existing linear option, so brightness lines up across the two.

My position: use it, and know it is a delivery fix

If you hand AI elements to a compositor, or you are the compositor, switch to ACEScg EXR for anything that goes into an ACES project. The file arrives in the space the comp already uses, nobody has to guess the conversion, and the default 16-bit float EXR keeps the image's full precision instead of rounding it to the 256 steps per channel of a standard 8-bit PNG. That headroom matters the moment someone grades the element hard.

What it does not do is invent light. Most image models produce a picture meant for a screen, with white as the ceiling. Convert that picture to ACEScg and you get a correctly labelled, wide-range file that contains the same picture, with nothing above white because nothing was ever above white. The sun in a generated sky is still a flat disc at the top of the scale. A grader pulling exposure down will find no detail hiding in it.

The format only carries extra highlight information when the source had it, such as an HDR-capable model or a camera-log plate that you processed in ComfyUI. The pull request mentions HDR video models working in ACEScct as the reason for the change but does not name one. So treat the option as a clean, honest handoff, not a free upgrade to HDR.

Put this into practice: the handoff routine

You need ComfyUI v0.43.0 or newer. Update first, and back up your custom nodes folder before you do; this release merged dozens of changes.

1. Render at a size the model accepts, without a seam. Some image and video models need width and height in multiples of 32. Instead of cropping your plate or stretching it, add the new Pad Image node before the model. Set padding_type to pad to a multiple and padding_style to mirror. Mirror padding reflects the edge pixels outward, and the node's author notes that a solid-colour border can turn into a visible hard edge in the output. Render, then crop back to your original size. The node also leaves values above 1.0 alone, so it is safe on HDR frames.

2. Convert to ACEScg. Add Convert Image Color Space. Set the source to what your image actually is. For an ordinary image model, that is sRGB. If you loaded an ARRI plate or an HDR source, the node also offers "HDR LogC3," "HDR ACEScct," "HDR PQ" and the HLG "HDR" option. Set the destination to "linear ACEScg."

3. Save as EXR in ACEScg. In Save Image (Advanced), set format to exr, keep bit_depth at 16-bit float unless your pipeline asks for 32-bit, and set input_color_space to "linear ACEScg." Use a filename prefix with the shot name; the node accepts date tokens such as %date:yyyy-MM-dd%.

4. Bring it into the comp as ACEScg. In Nuke, Resolve or whatever your facility uses, read the file with ACEScg as its input colour space. Do not let the software assume sRGB; that is the mistake this whole routine exists to remove.

5. Check it against the old way. Save the same frame as a PNG too. In the comp, view both through the same display transform. They should look the same on screen. Then pull exposure down two or three stops on each. On an ordinary model frame you will see the same clipped highlights in both, which tells you the file is honest. Pull saturation and contrast hard and look at gradients: the EXR should hold smoother steps than the 8-bit PNG.

6. Ignore what ComfyUI's preview shows. The pull request says ComfyUI's EXR preview treats pixels as the ordinary Rec.709 range, so ACEScg files look slightly washed out inside ComfyUI. The saved file is correct. Judge colour in your comp viewer, never in the preview.

A worked example

Say you are building a set extension: a generated city skyline behind a live-action rooftop. You generate the skyline at a size the model accepts using mirror padding, crop back, convert from sRGB to linear ACEScg, and save a 16-bit EXR named after the shot.

In the comp, the skyline reads in as ACEScg alongside the plate, which was already converted to ACEScg by the colourist. The two live in the same space. When the colourist warms the whole shot later, the skyline moves with the plate instead of shifting a different way because it was guessed into the wrong space.

What you will not get is a sun that blooms realistically when the grader brings exposure down. If the shot needs real highlight detail in the sky, paint or render that element separately, or comp in a real sky plate. The AI skyline is a mid-tones element.

Where it breaks

No new highlights. Worth repeating. An ordinary model's picture stops at white, and an ACEScg file of that picture also stops at white. If the job needs bright detail, the source has to have it.

The preview lies a little. ACEScg EXRs look desaturated in ComfyUI's preview. Check in your comp tool.

The docs lag the release. ComfyUI's documentation page for Save Image (Advanced) still lists only sRGB, HDR and linear for EXR. The "linear ACEScg" option is in the code and the release, but you will not find it in the docs yet.

No model is named. The pull request was written for HDR video models working in ACEScct but names none. If someone tells you a particular model outputs true HDR into this path, test it with the exposure check above before you trust it.

Bigger files. 16-bit EXRs are larger than PNGs, and 32-bit doubles that again. The docs note that 16-bit gives smaller files; it is the sensible default.

Your pipeline may not be ACES. If your project works in Rec.709 or a camera's native space, use the matching option instead. ACEScg is right when the comp is in ACES, and only then.

The bigger point

AI tools have spent years arguing about picture quality and very little time on how pictures leave the building. That is backwards for anyone working in post. A beautiful frame in the wrong colour space costs a compositor more time than a slightly worse frame that lands correctly.

This release gets the boring part right. The routine above takes five minutes to set up and turns an AI element from a stranger in the comp into a file that behaves like everything else on the timeline.

Try it on one element in a real shot this week. Save it both ways, run the exposure check, and look at what holds up under a hard grade. You will know in ten minutes which of your AI elements are ready for serious work, and which ones were only ever good on a monitor.


From the briefing