Every finished photo or film frame you have ever admired went through a pass like this one. Most AI renders never do.
The model gives you pixels. Grading is what makes them look like a photo someone finished.
You can spot an ungraded AI render from across a room, even when the anatomy is clean and the prompt landed exactly right. The shadows sit at a dull charcoal instead of true black. The whole frame has one flat contrast curve from corner to corner. The color feels correct but not chosen, like a photo that was exposed properly and then never touched again.
That is because it wasn't touched again. A diffusion model was trained to produce a plausible image, not a finished one, and finishing has always been a separate job. Every photograph, film frame or professional render you have ever found impressive passed through someone doing exactly the pass this guide walks through.
None of this requires new software you have not heard of. A free browser tool like Photopea, Lightroom, Photoshop's Camera Raw filter, or a color correct node in a ComfyUI graph all expose the same three controls: levels, curves, and color balance split across shadows, midtones and highlights. The tool matters less than knowing what to move and in what order.
Open the histogram on a raw render and look at the left edge. Diffusion models regress toward the mean of their training data, which means true black, a pixel value of zero, shows up far less often than it would in a photograph lit with real shadow falloff. The result is a shadow region that reads as a washed, slightly lifted charcoal even when the scene is supposed to be dark.
Pull the black point slider in until it touches the first real cluster of data in the histogram, not the empty space past it. Do the same for the white point on the right edge. This single move, done correctly, adds more perceived quality to a render than any prompt tweak, because it is restoring contrast range the model quietly compressed.
With true black and white points set, add a gentle S-curve: pull the shadows down slightly below the line and push the highlights up slightly above it, leaving the midtones alone. This is the same curve every color negative film stock baked in physically and every digital colorist re-adds by hand, because a straight, uncurved response looks flat to a human eye even when it is technically accurate.
| Move | What it fixes | How far to push it |
|---|---|---|
| Black point | Washed, gray-looking shadows | Until it touches the histogram's left edge, no further |
| White point | Dull, low-contrast highlights | Until it touches the histogram's right edge |
| S-curve | Flat midtone contrast | Subtle, a few percent, not a dramatic hook |
| Split toning | Color feels random instead of chosen | One warm and one cool, opposite ends of the tonal range |
| Grain overlay | Smooth gradients banding under a strong grade | Light, visible only at full zoom |
Split toning means pushing a slightly different hue into the shadows than the highlights, most commonly a cool tint, blue or teal, into the dark areas and a warm tint, amber or gold, into the light areas, though the reverse works for a colder mood. The effect is subtle at the values that work and looks obviously wrong when overdone, which is exactly why so much professional color grading uses it: it reads as intentional without reading as a filter.
The reason this matters more for AI renders than for photographs is that diffusion output color is usually accurate to the prompt but has no unifying logic across the frame. A photographer's lighting setup naturally creates that logic, warm key light against a cooler ambient fill, for instance, and a render generated from a text description often skips it entirely. Split toning is the fastest way to manufacture that missing logic after the fact.
Push any of these moves too far and diffusion output fails in a specific, ugly way that photographs mostly do not: banding. AI-generated skies, skin and out-of-focus backgrounds often have smoother gradients than a camera sensor would ever produce, because there is no photon noise sitting underneath them. A strong curve or saturation boost applied to a gradient that smooth can turn what should be an invisible transition into visible stepped bands, especially after the file gets compressed for the web.
The fix is almost free: add a very light film grain or noise layer, low enough that it is invisible at normal viewing size, before you export. That noise breaks up the smooth gradient just enough to stop banding from forming, and as a side effect it makes the image read as slightly more photographic, since real photographs always carry some sensor noise the eye is trained to expect.
None of this fixes a hand with the wrong number of fingers, a background that does not match the foreground's perspective, or a composition that was weak before you opened an editor. Color grading changes how light and color feel across an image that is otherwise correct. It has no opinion about anatomy, and pushing a grade harder to distract from a structural problem almost always makes the problem more visible instead of less, because a stronger grade draws the eye to contrast edges, which is exactly where a bad hand or a warped line usually lives.
The other honest limit is consistency across a series. A single grade eyeballed image by image will drift, warmer on one, cooler on the next, without you noticing until you view them side by side. If you post in sets or run a consistent character across many images, save your three-step recipe as a preset or export it as a LUT once you land on values you like, and apply the same starting point to every image in that series before making per-image adjustments. That single habit does more for a cohesive-looking body of work than any individual grading choice.
Take one render you already like the composition on and run just the black point and white point move, nothing else. Look at it next to the original for ten seconds. Most people are surprised how much of the "AI look" they were trying to prompt away was actually sitting in an uncorrected histogram the whole time.