FlipMyFormat

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.

Gaussian, not flat noiseReal grain cluster sizeSeeded and reproducibleBatch + ZIP downloadNever uploaded

Drop images here

or click to browse · or paste with Ctrl+V

JPG · PNG · WebP · GIF · BMP · AVIF

40%

How far each pixel can deviate from the original.

2 px
Fine 35mmPushed / coarse

Grain type

Monochrome matches film. Colour matches a high-ISO digital sensor.

Same seed gives identical grain on every image in the batch.

Presets

92

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.

LookAmountSizeTypeCharacter
Fine slow film (ISO 50-100)20-251MonoBarely visible, adds texture without announcing itself.
Everyday 400 speed35-452MonoThe familiar look most people picture when they think of film.
Pushed 160060-703MonoCoarse and obviously present, good for gritty reportage.
Heavy artistic texture80-954-6MonoA deliberate effect rather than a simulation.
High-ISO digital sensor40-552ColourChroma speckle in the shadows, like a night phone photo.
Banding fix for gradients12-181MonoBoth protections off so it covers the whole tonal range.
Video still or thumbnail25-352MonoSurvives 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

CapabilityFlipMyFormatTypical 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. 1

    Resize first, then add

    Get your image to its final dimensions before graining, because a later downscale averages the grain away.

  2. 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. 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.