Add Film Grain to a Photo Online
Gaussian grain with a real cluster size, weighted so it peaks in the midtones and fades in shadow and highlight the way film actually behaves — and a fixed seed so a whole batch gets identical texture. Live preview, drag-to-compare, ZIP download, all in your browser.
Drop images here
or click to browse · or paste with Ctrl+V
JPG · PNG · WebP · GIF · BMP · AVIF
How far each pixel can deviate from the original.
Grain type
Monochrome matches film. Colour matches a high-ISO digital sensor.
Same seed gives identical grain on every image in the batch.
Presets
Your images are never uploaded. The grain is generated inside this browser tab.
People also use
Everything this tool does
Gaussian noise, not uniform
Values are drawn from a normal distribution using Box-Muller, so grain clusters around the mean the way silver halide crystals actually distribute rather than spreading evenly.
True grain cluster size
The noise field is generated at a lower resolution and mapped up, so a size of 4 produces genuinely chunky 4-pixel grain that stays sharp instead of a blurred approximation.
Luminance-weighted strength
Grain peaks in the midtones at nearly full strength and falls to about 7% in deep shadow and blown highlight, matching how film density actually behaves.
Seeded and reproducible
The same seed always regenerates exactly the same grain, so a whole batch shares one texture and you can reproduce a result months later.
Monochrome or colour grain
Monochrome shifts brightness only, which is what film does. Colour adds independent noise per channel, which is what a high-ISO digital sensor does.
Shadow and highlight protection
Optional tapering keeps the darkest and brightest quarter clean. Switch both off and grain spreads evenly, which is how you use it to break up banding.
Drag-to-compare preview
A split handle wipes between original and grained so you can judge a subtle texture instead of guessing at a slider position.
Batch with one ZIP
Apply identical seeded grain across a whole shoot and download everything as a single archive built in your browser.
Transparency preserved
The alpha channel is untouched for PNG and WebP output, so grain lands only on visible pixels.
Nothing is uploaded
The noise is generated locally and applied locally. No server, no queue, nothing to delete afterwards.
Settings by film look
These are starting points that approximate the character of familiar film speeds and digital noise. They are approximations of a look, not scans of the emulsions themselves.
| Look | Amount | Size | Type | Character |
|---|---|---|---|---|
| Fine slow film (ISO 50-100) | 20-25 | 1 | Mono | Barely visible, adds texture without announcing itself. |
| Everyday 400 speed | 35-45 | 2 | Mono | The familiar look most people picture when they think of film. |
| Pushed 1600 | 60-70 | 3 | Mono | Coarse and obviously present, good for gritty reportage. |
| Heavy artistic texture | 80-95 | 4-6 | Mono | A deliberate effect rather than a simulation. |
| High-ISO digital sensor | 40-55 | 2 | Colour | Chroma speckle in the shadows, like a night phone photo. |
| Banding fix for gradients | 12-18 | 1 | Mono | Both protections off so it covers the whole tonal range. |
| Video still or thumbnail | 25-35 | 2 | Mono | Survives platform re-compression better than a clean image. |
6
grain sizes
2
grain types
0
files uploaded
Seeded
fully reproducible
ZIP
batch download
Free
no account needed
FlipMyFormat vs other grain tools
| Capability | FlipMyFormat | Typical free tool |
|---|---|---|
| Files stay in your browser | ||
| Gaussian rather than uniform noise | ||
| Adjustable grain cluster size | ||
| Luminance-weighted grain strength | ||
| Fixed seed for consistent batches | ||
| Batch ZIP download without paying | ||
| No watermark on the output |
How to add film grain that looks convincing
Grain that reads as fake almost always fails on scale rather than strength, and the reason is that grain size is measured in pixels while your judgement is made on a screen showing the photo at a fraction of its real size. Set the sliders while looking at a 900 pixel preview of a 6000 pixel photo and you are seeing roughly a seventh of the actual grain frequency; it looks pleasingly coarse on screen, and then the downloaded file at full resolution has speckle so fine it reads as sensor noise or vanishes into JPEG compression entirely. The fix is to decide your output size first, resize to it, and only then grain — because grain applied before a downscale gets averaged away by the resampling, and grain judged on a preview of an unresized file is being judged at the wrong scale. The second thing that separates convincing grain from a noise overlay is where it sits tonally: real film shows almost no grain structure in deep shadow, because there is too little exposure to build density, and none in a blown highlight, because the emulsion is fully saturated; noise applied flat across the whole range immediately reads as digital because it puts speckle in blacks that should be clean. Leave both protections on for anything meant to look photographic, and turn them off only when you are using grain as a technical tool to break up banding in a gradient, where even coverage is exactly the point. Finally, set the seed once and leave it: a set of photos that each got a different random pattern will feel subtly inconsistent even to someone who could not say why.
- 1
Resize first, then add
Get your image to its final dimensions before graining, because a later downscale averages the grain away.
- 2
Set size, then amount
Pick the cluster size that suits the look, then raise the amount until it reads. Use the compare handle rather than the number.
- 3
Fix the seed and apply
Keep one seed across the batch for a consistent texture, then download individually or as a single ZIP.
What makes grain look like film
Distribution and cluster size
Uniform random noise gives every deviation the same likelihood, which produces a harsh, even speckle that nothing physical looks like. This tool draws from a gaussian distribution instead, so most pixels shift a little and only a few shift a lot — the same shape as the distribution of silver crystals in an emulsion. Cluster size is handled by generating the noise field at a reduced resolution and mapping each output pixel onto it, so one noise value covers a square of pixels. That keeps coarse grain crisp, which a blur-based approach cannot do because blurring noise also flattens it.
Why brightness changes the strength
Each pixel's luminance is measured and turned into a weight that peaks in the midtones and falls toward both ends of the range. At the midpoint the weight is essentially 1; in the darkest and brightest quarter it drops to around 0.07 when protection is on. This single detail is the biggest visual difference between grain that looks photographic and noise that looks applied, because clean blacks are what your eye uses to judge whether an image came from film or from a filter.
What people use it for
Analogue photo look
Give a clean digital photo the texture people associate with film, without buying a preset pack.
Fixing banded gradients
A small amount of fine grain breaks up the visible steps in a sky or a background gradient.
Album and poster art
Heavy grain adds the tactile, printed quality that flat digital artwork often lacks.
Video thumbnails
A grained thumbnail survives platform re-compression better, because the encoder is not smoothing an already-clean image.
Matching mixed footage
Add grain to clean stills so they sit alongside genuinely grainy scans in the same gallery or edit.
Game and UI textures
Seeded grain gives repeatable noise overlays for backgrounds, which matters when the asset must be regenerated.
Print preparation
Slight grain can mask the dot pattern of some printing processes and makes flat areas look less synthetic.
Concealing upscaling artefacts
An upscaled image often looks unnaturally smooth. Grain restores some of the texture that scaling removed.
Six tips worth knowing
Resize to your final output size before adding grain. Downscaling afterwards averages the clusters away and leaves a muddy texture instead of a crisp one.
The preview is scaled down, so fine grain always looks weaker there than in the downloaded file. Download once early to calibrate your eye.
Keep one seed for a whole set. Different random patterns across a gallery read as inconsistent even when nobody can point to why.
Use monochrome grain for anything meant to look like film. Colour grain is a digital sensor artefact and will fight a film look rather than support it.
For banding, turn both protections off and use amount 12-18 at size 1. Even coverage is the point there, unlike in a photographic look.
Expect the file to grow. Grain is incompressible by nature, so budget for 30 to 80 percent extra size, or raise JPEG quality to stop the encoder smearing it.
Troubleshooting
The grain disappeared after saving
Either the image was downscaled after graining, or JPEG quality was low enough that the encoder smoothed it away. Resize first and export above quality 85.
It looks like digital noise, not film
You are probably on colour grain at size 1. Switch to monochrome and raise the size to 2 or 3.
The shadows look dirty
Shadow protection is off. Turn it on so deep blacks stay clean, which is what makes grain read as photographic.
Every image in my batch looks different
The seed changed between runs. Set a fixed number rather than randomising, and it will stay identical across the whole set.
Frequently asked questions
How do I add film grain to a photo online?
Drop your image onto the tool, then set the amount and grain size. The preview updates as you drag and the compare handle wipes between the original and the grained version. Press Apply and save. Nothing is uploaded — the noise is generated and applied inside your browser tab.
Why does this look more like real film than a simple noise overlay?
Three reasons. The noise is gaussian rather than uniform, so values cluster around the middle the way silver halide crystals actually distribute. Grain size is a real cluster size rather than a blur, so coarse grain stays sharp instead of turning mushy. And the strength is weighted by brightness, because on real film grain is most visible in the midtones and almost invisible in deep shadow and blown highlight. A flat noise layer misses all three.
What does the seed number do?
It fixes the random pattern. The same seed always produces exactly the same grain, so you can apply identical grain to a whole batch, come back tomorrow and reproduce a result exactly, or change the seed to get a different pattern at the same settings. Most tools reseed on every run, which makes a consistent look across a set impossible.
What is the difference between grain size and amount?
Amount is how strong the deviation from the original pixel is. Size is how many screen pixels one grain cluster covers. A high amount at size 1 gives fine, intense speckle that reads as digital noise. A moderate amount at size 3 or 4 gives the chunky texture people associate with pushed film. They are independent and both matter.
Should I use monochrome or colour grain?
Monochrome for anything meant to look like film, because film grain is a physical density variation and affects brightness, not hue. Colour grain adds independent noise to red, green and blue, which is what a digital sensor produces at high ISO. Use colour if you are simulating a noisy digital camera rather than a film stock.
What do the shadow and highlight protection switches do?
They taper the grain to nothing in the darkest and brightest quarter of the range. On real film, deep shadow has too little exposure to show grain structure and blown highlight is fully saturated, so both look clean. Leaving them on is more realistic; turning them off spreads grain evenly, which is what you want if you are using grain to hide banding.
Can grain actually fix banding in a gradient?
Yes, and it is a genuinely useful trick. Banding happens because a smooth gradient has more distance to cross than it has 8-bit levels, so the steps become visible. A small amount of fine grain breaks up the boundary between steps so your eye reads a continuous gradient instead. Use the print softener preset with both protections off, around amount 15 at size 1.
Are my photos uploaded to a server?
No. The noise is generated and applied pixel by pixel in your own browser using the canvas API. Nothing is sent anywhere, and the tool keeps working if your connection drops after the page has loaded.
Can I apply the same grain to a whole batch?
Yes, and this is where the fixed seed matters. Add as many images as you like and every one receives grain generated from the same seed at the same settings, so a set of photos shares a consistent texture rather than each getting a different random pattern.
Does adding grain make the file larger?
Yes, often substantially. Compression works by finding smooth, predictable areas, and grain is by definition unpredictable, so JPEG and WebP both struggle with it. A grained photo can be 30 to 80 percent larger than the same photo without. That is inherent to noise, not a flaw in this tool.
Should I add grain before or after resizing?
After, always. Grain size is measured in pixels, so if you add grain and then downscale, the clusters shrink and often disappear or turn into a muddy texture. Resize to your final dimensions first, then grain.
Which file formats are supported?
Any format your browser can decode: JPG, PNG, WebP, GIF (first frame), BMP, and AVIF or HEIC where supported. You can keep the original format or export as PNG, JPG or WebP.
Is transparency preserved?
Yes for PNG and WebP output. The alpha channel is untouched and grain is applied only to visible pixels. JPG has no alpha, so transparent areas are filled with the colour you choose.
Can I remove grain or noise with this tool?
No. This tool adds grain; it does not reduce it. Removing noise properly needs edge-aware denoising that distinguishes noise from real detail, which is a fundamentally different and much harder problem than adding it.
Why does my grain look invisible at 100 percent zoom on a large photo?
Because the browser is showing you a scaled-down view. Grain at size 1 on a 6000 pixel wide photo is genuinely tiny when that photo is displayed at 900 pixels. Either increase the size, or judge the result by downloading and viewing at full resolution.
How much grain is realistic?
For a subtle film feel, amount 20 to 30 at size 1 or 2. For a clearly visible but still natural look, around 40 at size 2. Above about 70 it stops reading as film and starts reading as an effect, which is fine if that is the intention.
Does this remove EXIF data?
Yes. Re-encoding from the canvas drops camera model, GPS coordinates, timestamps and other metadata. If you want to strip metadata without changing the picture, use the remove EXIF tool instead.
Does the tool add a watermark or need an account?
No to both. No sign-up, no email wall, no daily limit and no watermark. The output is your image with grain applied and nothing else added.