Tone curve and fade
Contrast arrives as an S-curve around middle grey, then the blacks get lifted off zero. That lift is why a flat scan reads as film rather than as an underexposed JPEG — negative stock physically cannot reach true black.
Turn an everyday shot into a film still. Choose a look, make it yours, and save it. Your photos and clips stay on your device.
OriginalKomorebi
No account. No upload. Free full-resolution export.
JPG, PNG, WebP, AVIF · MP4, MOV, WebM
Choose a look to try it on a sample, then bring your own photo or video. Adjust the intensity and every setting to make it yours.
Start with a photo or a short standard-range clip. Three steps, all in your browser.
Open a photo or clip from your device, or use a sample to get a feel for the editor.
Choose a preset. Adjust Look intensity, then drag across the image to compare with the original.
Save a photo as JPEG or export your clip. Your original file stays untouched.
Working notes on grading, film emulation and the maths underneath. The latest three are below; the rest are in the journal.
Saturation moves every colour equally. Vibrance gives muted colours more room and vivid colours less, which keeps skin safer.
Why grain should scale with the photograph rather than its output pixels, and what a small preview cannot honestly show.
Softening an image and softening its micro-contrast are different operations, and only one of them looks like film.
Every look here is a set of numbers, not a guess. The same photo and the same settings produce the same file every time — which is exactly what a generative model cannot promise you.
Contrast arrives as an S-curve around middle grey, then the blacks get lifted off zero. That lift is why a flat scan reads as film rather than as an underexposed JPEG — negative stock physically cannot reach true black.
Two tints ride on separate luminance masks — one in the shadows, one in the highlights — blended in soft light so they colour the image without draining it. Teal below, orange above, and you have the look every action film has used since 2005.
Highlights above a threshold get isolated, blurred across two separable gaussian passes, tinted the orange-red of anti-halation backing, and added back. Diffusion is the same blur screened in untinted — a Black Pro-Mist, in software.
Grain is defined as a fixed number of cells across the frame rather than per screen pixel, so what you see at preview size is what lands in the full resolution file. It is weighted toward the midtones, where silver halide actually clumps.
Every formula above reads one pixel and writes one pixel. None of them look at the frame before or the frame after, so video needs no second pipeline — the shader that grades a photograph grades a clip unchanged. What video does need is time. Grain that stays put for a whole clip reads as dirt on the lens, so a fresh grain field is drawn twelve times a second, its phase taken from each frame's own timestamp rather than a counter — which is what keeps the cadence honest when frames are dropped or the source rate wanders. Video export uses WebCodecs. Audio is retained when supported by the output format, but may be re-encoded.