7c23c3f4c7
- Telegram-Bot (Polling) mit Inline-Menue: Klarbild x2/x4, Freistellen, kombiniert - Upscaling via OpenCV dnn_superres (FSRCNN default, EDSR optional), gekachelt - Freistellen via rembg (isnet-general-use, Alpha-Matting) - Picdrop-Batch via SFTP (/picdrop) - Health-Server (aiohttp) fuer Coolify, Zugriffsschutz via ALLOWED_USER_IDS - Dockerfile backt Modelle (SR von raw.githubusercontent, rembg von HF-Mirror) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XNQ8ghPfzAfsyVYd6HgFb6
2.1 KiB
2.1 KiB
Klarbildbot
Self-hosted Telegram-Bot für AI-Bildaufbereitung – alles lokal auf CPU, keine externen/US-APIs.
- 🔍 Klarbild (Upscaling) – AI-Super-Resolution (OpenCV
dnn_superres, FSRCNN/EDSR) + Entrauschung + Schärfung - ✂️ Freistellen – Hintergrund per AI entfernen (
rembg, ISNet/U2Net) → PNG mit Transparenz - ✨ Freistellen + Klarbild – kombiniert
- 📁 Picdrop-Batch (optional) – ganze Galerie per SFTP ziehen, verarbeiten, zurückladen
Nutzung
- Bild an den Bot senden (für volle Auflösung als Datei, nicht als komprimiertes Foto)
- Aktion im Menü wählen
- Ergebnis kommt als Datei zurück
Befehle: /start, /help, /picdrop <ordner> up2|up4|cut
Stack
Python 3.11 · python-telegram-bot (Polling) · rembg + onnxruntime · opencv-contrib (dnn_superres) · aiohttp (Health) · paramiko (Picdrop-SFTP). Deployment: Docker → Coolify, Repo in Gitea.
Lokal starten
pip install -r requirements.txt
bash scripts/fetch_models.sh models # SR-Modelle laden
export BOT_TOKEN=... MODELS_DIR=$PWD/models U2NET_HOME=$PWD/models/u2net
python -m app.bot
Konfiguration
Siehe .env.example. Wichtig:
BOT_TOKEN(Pflicht)ALLOWED_USER_IDS– auf die eigene Telegram-ID setzen (Zugriffsschutz)./startzeigt die ID.UPSCALE_MODEL=fsrcnn(Default, schnell).edsrgibt mehr Detail, ist auf CPU aber sehr langsam.- Picdrop:
PICDROP_USER/PICDROP_PASSWORDsetzen, um/picdropzu aktivieren.
Deployment (Coolify)
Dockerfile-Build. Modelle werden beim Build gebacken (SR-Modelle von raw.githubusercontent, rembg-Modell vom HuggingFace-Mirror). Health-Endpoint auf :8080/health. Bot läuft im Polling-Modus – kein öffentlicher Webhook nötig, die Coolify-URL dient nur dem Health-Check.
Hinweise
- Telegram-Bots können Dateien bis 20 MB laden/senden.
- Auf schwachen Boxen (z. B. Hetzner CX33, 8 GB, keine GPU)
fsrcnn+MAX_INPUT_EDGE≤1600+TILE_SIZE=256lassen. - Für Real-ESRGAN-Qualität
ENABLE_REALESRGAN=1+ ONNX-Modell hinterlegen (stärkere Box/GPU empfohlen).