Model Details
NAFNet Denoise removes noise, grain, and sensor artifacts from a photo and returns a cleaner, restored version at the input's native resolution. Provide a single noisy image and it reconstructs fine detail and smooth tones while preserving edges and structure, with no prompt or manual tuning required. It is built on NAFNet (Nonlinear Activation Free Network), a state-of-the-art image-restoration architecture from MEGVII Research introduced in the ECCV 2022 paper \"Simple Baselines for Image Restoration,\" trained on the SIDD smartphone-denoising dataset for realistic noise removal.\n\nThe model takes one image URL and an optional seed, and returns a single restored image URL. Because it restores at the original resolution, the output dimensions match the input — making it a clean before/after comparison.\n\n## Best for\n- Cleaning up low-light or high-ISO photos with visible grain and color noise\n- Removing sensor noise from smartphone and camera shots\n- Restoring scanned images, film grain, and old or degraded photographs\n- Reducing compression and JPEG artifacts before further editing or upscaling\n- Pre-processing noisy images ahead of detection, OCR, or other downstream pipelines\n\n## Choose another model when\n- You want to enlarge or add resolution rather than denoise — use an upscaling model\n- You need to fix motion or out-of-focus blur specifically — use a deblurring model\n- You want to relight, restyle, or edit content from a text prompt — use an image-editing or relighting model\n- You need to generate a new image from text with no source photo — use a text-to-image model\n\n## Tips\n- Pass the highest-quality version of the noisy image you have; the model restores at its native resolution, so input dimensions carry through to the output.\n- Set a `seed` only when you need reproducible results across runs.\n\n## Limitations\n- Very heavy noise can soften the finest texture as it is smoothed away.\n- It removes noise only — it does not sharpen blur, upscale, or correct exposure and color.\n\nTo run via the ModelRunner JavaScript client:\n```js\nimport { modelrunner } from \"@modelrunner/client\";\n\nconst result = await modelrunner.subscribe(\"megvii-research/nafnet/denoise\", {\n input: {\n image_url: \"https://media.modelrunner.ai/example-noisy-photo.png\",\n },\n});\n```

