Run AiPicDetect on your own machine
AiPicDetect est un outil gratuit et open source qui évalue les images générées par IA et supprime les métadonnées cachées — hébergé ou auto-hébergé, à vous de choisir. Self-hosting means the server binds to your own machine, the model runs on your CPU, and no picture ever leaves your network. One Docker command or one uv command is enough.
Docker (recommended)
docker run -p 8000:8000 -v aipicdetect-models:/data ghcr.io/micorlov/aipicdetect:latest
Open http://127.0.0.1:8000. The named volume keeps the downloaded model between restarts. The image is rebuilt from the GitHub repository on every change to main and listens on all interfaces, so phones on the same Wi-Fi can reach it at http://<your-LAN-IP>:8000.
Python with uv
git clone https://github.com/Micorlov/aipicdetect.git
cd aipicdetect
uv sync
uv run aipicdetect serve # binds to 127.0.0.1:8000
uv run aipicdetect serve --host 0.0.0.0 # also reachable from your phone
Python 3.12 or newer is required. The first run downloads the detector model haywoodsloan/ai-image-detector-deploy (about 750 MB) into the Hugging Face cache; the status pill in the top bar reads “Detector ready” once it is loaded. After that the server works offline.
Environment variables
| Variable | Default | Effect |
|---|---|---|
AIPICDETECT_DETECTOR_MODEL | haywoodsloan/ai-image-detector-deploy | Any Hugging Face image-classification model whose labels name AI/fake vs. human/real content. |
AIPICDETECT_DAILY_LIMIT | 10 | Analyses allowed per client IP in a rolling 24-hour window; 0 disables the limit. |
AIPICDETECT_PUBLIC_URL | request origin | Public origin used in canonical links, the sitemap and llms.txt when the app sits behind a proxy or custom domain. |
AIPICDETECT_SKIP_WARMUP | unset | Set to 1 to skip loading the model at startup (used by the test suite). |
HF_HOME | /data/hf in Docker | Where the model cache lives. |
Running it as a public service
The hosted instance runs on Google Cloud Run with 4 GiB of memory, two CPUs and a startup probe on GET /ready, which returns 503 until the model is loaded. Set AIPICDETECT_PUBLIC_URL to the public origin so search engines see one canonical host, and keep the daily limit on unless you want to pay for unlimited inference. The exact gcloud run deploy command is in the repository README.
Command-line tools
uv run aipicdetect scrub photo.jpg # writes photo.clean.jpg with no metadata
uv run aipicdetect scrub photo.png --format webp --quality 90
uv run aipicdetect inspect photo.clean.jpg # lists EXIF/XMP/IPTC/C2PA/ICC blocks found
uv run aipicdetect batch inbox clean --detect # scrub a folder, score it, write clean/report.json
See the privacy page for what the hosted instance does with uploads.
Dernière mise à jour 2026-09-13 · code source sur GitHub