How to Reduce Noise in Photos
3 methods — PixelForge, Lightroom, and Python
Digital noise — the grain, speckle, and color artifacts visible in low-light or high-ISO photos — degrades image quality, makes compression less efficient, and reduces perceived sharpness. Here are three ways to reduce noise across a batch of photos, from a browser tool to a Python script.
Method 1: Using PixelForge (fastest, no software needed)
Reduce grain from hundreds of photos in one batch — no Lightroom or software required.
- 1Go to the Reduce Image Noise tool on PixelForge.
- 2Upload your photos or a ZIP of images.
- 3Set the filter size: 3 is the default for moderate noise reduction; increase to 5 or 7 for heavily noisy images.
- 4Click Process and download your denoised images as a ZIP.
Run noise reduction before compression. JPEG compression amplifies existing noise — clean images compress more efficiently and at smaller file sizes.
Method 2: Using Adobe Lightroom
Lightroom's Detail panel and AI Denoise feature deliver the highest quality noise reduction for individual photos.
- 1Open your photos in Lightroom Classic or Lightroom (desktop).
- 2Select all photos you want to denoise (Ctrl+A / Cmd+A in Grid view).
- 3Go to the Develop module → Detail panel.
- 4For standard noise reduction: drag the Luminance slider to 25–50 for moderate noise; higher for severe grain.
- 5For AI Denoise (Lightroom Classic 12.3+): click 'Denoise' in the Detail panel, set the Amount (50 is a good starting point), and click Enhance.
- 6To export: File → Export, set your output format and quality.
AI Denoise creates a new DNG file from each photo. It produces excellent results but is slow on large batches. For bulk processing, use standard Luminance noise reduction with a Sync preset applied to all selected photos.
Method 3: Using Python (Pillow)
Scriptable noise reduction using a median filter — best for automated pipelines.
- 1Install Pillow: pip install Pillow
- 2Run the script below, adjusting MEDIAN_SIZE for your noise level.
python
from PIL import Image, ImageFilter
import os
input_dir = "./noisy-photos"
output_dir = "./denoised"
MEDIAN_SIZE = 3 # Must be odd: 3 (subtle), 5 (moderate), 7 (strong)
os.makedirs(output_dir, exist_ok=True)
for filename in os.listdir(input_dir):
if filename.lower().endswith((".jpg", ".jpeg", ".png", ".webp")):
img = Image.open(os.path.join(input_dir, filename))
denoised = img.filter(ImageFilter.MedianFilter(size=MEDIAN_SIZE))
denoised.save(os.path.join(output_dir, filename), quality=92)
print(f"Denoised {filename}")
print("Done!")For heavily noisy images, run two passes at size=3 rather than one pass at size=7. Two gentle passes preserve more edge detail than a single aggressive pass.
Frequently asked questions
What causes noise in digital photos?
Noise is caused by the camera sensor amplifying a weak light signal. The main causes are: shooting at high ISO (above ISO 1600), long exposures in low light, small camera sensors (smartphones in dark conditions), and underexposing and then brightening in post-processing.
What's the difference between noise reduction and blurring?
A Gaussian blur averages all neighboring pixels equally, which reduces noise but also softens edges. A median filter replaces each pixel with the median value of its neighbors, which removes random noise spikes while better preserving hard edges. Median filtering is always preferred for noise reduction.
What filter size should I use?
Size 3 is the right starting point for most photos — it removes visible grain without softening fine detail. Size 5 gives stronger smoothing for heavily noisy shots. Size 7–9 produces aggressive smoothing suitable only for images where detail is less important than a clean, smooth appearance.
Should I denoise before or after compressing?
Always denoise before compressing. JPEG compression works by discarding high-frequency data — random noise is high-frequency, so a noisy image will compress to a larger file than a clean one at the same quality setting. Denoising first produces both a cleaner image and a smaller file.
Ready to try the fastest method?
Remove grain and noise from photos in bulk using a median filter. Clean up low-light and high-ISO images.
Reduce Noise — free