This page was machine-translated. Spotted a mistake?Help improve it.
Skip to content

KI-Engine-Referenz

Das @snapotter/ai-Paket verbindet Node.js mit einem dauerhaften Python-Sidecar für alle ML-Operationen. Der Dispatcher-Prozess bleibt zwischen Anfragen aktiv, was einen schnellen Warmstart ermöglicht. NVIDIA CUDA wird beim Start automatisch erkannt und, sofern verfügbar, genutzt; andernfalls laufen KI-Werkzeuge auf der CPU.

Eine iGPU-Beschleunigung von Intel/AMD über VA-API, Quick Sync oder OpenCL wird für KI-Inferenz derzeit nicht unterstützt. Das Durchreichen von /dev/dri in einen Container beschleunigt diese Python-Sidecar-Werkzeuge nicht, sofern keine CUDA-fähige NVIDIA-GPU verfügbar ist.

19 KI-Werkzeuge im Python-Sidecar über vier Modalitäten hinweg (Bild, Audio, Video, Dokument), plus 2 Werkzeuge mit optionalen KI-Fähigkeiten. Alle Modelle laufen lokal - nach dem ersten Modell-Download ist kein Internet erforderlich.

Architektur

Node.js Tool Route
      |
      v
 @snapotter/ai bridge.ts
      | (stdin/stdout JSON + stderr progress events)
      v
 Python dispatcher (persistent process, "ai" profile)
      |
      |-- remove_bg.py        (rembg / BiRefNet)
      |-- upscale.py          (RealESRGAN)
      |-- inpaint.py          (LaMa ONNX)
      |-- outpaint.py         (LaMa canvas expansion)
      |-- ocr.py              (PaddleOCR / Tesseract)
      |-- ocr_pdf.py          (page-by-page document OCR)
      |-- ocr_preprocess.py   (image enhancement for OCR)
      |-- detect_faces.py     (MediaPipe)
      |-- face_landmarks.py   (MediaPipe landmarks)
      |-- enhance_faces.py    (GFPGAN / CodeFormer)
      |-- colorize.py         (DDColor)
      |-- noise_removal.py    (SCUNet / tiered denoising)
      |-- red_eye_removal.py  (landmark + color analysis)
      |-- restore.py          (scratch repair + enhancement + denoising)
      |-- transcribe.py       (faster-whisper speech-to-text)
      +-- install_feature.py  (on-demand bundle installer)

Ein separates "docs"-Dispatcher-Profil ersetzt die KI-Zulassungsliste durch Skripte zur Dokumentenverarbeitung (doc_pagecount, doc_health, doc_flatten, doc_redact, doc_text, doc_to_word, doc_metadata, doc_html_pdf) und überspringt die aufwendigen ML-Importe.

Zeitüberschreitungen: 300 s standardmäßig; OCR und die BiRefNet-Hintergrundentfernung erhalten 600 s.

Feature-Bundles

KI-Modelle werden nach gemeinsamem Abhängigkeits-Stack gebündelt, nicht als ein Archiv pro Werkzeug. Ein Feature-Bundle kann mehrere Werkzeuge aktivieren, wenn diese dieselbe Modellfamilie, dieselben Python-Wheels oder dieselben nativen Bibliotheken verwenden. Das hält das Release-Docker-Image kleiner und vermeidet doppelte Kopien derselben Modelle für Hintergrund-Matting, Gesichtserkennung, OCR, Restaurierung und Sprache.

Das Docker-Image liefert die Anwendung sowie die gemeinsame Laufzeitumgebung. Große Modellarchive werden bei Bedarf in das dauerhafte /data/ai-Volume heruntergeladen und dann von jedem Werkzeug wiederverwendet, das sie benötigt. Wenn ein Bundle bereits installiert ist, weil ein anderes Werkzeug es benötigt hat, lädt das Aktivieren eines neuen abhängigen Werkzeugs dieses Bundle nicht erneut herunter.

Jedes KI-Werkzeug benötigt ein oder mehrere Feature-Bundles, bevor es ausgeführt werden kann. Die Admin-Oberfläche installiert werkzeugbezogen über POST /api/v1/admin/tools/:toolId/features/install, das die vollständige Bundle-Liste auflöst, bereits installierte Bundles überspringt und nur die fehlenden Downloads in die Warteschlange stellt. Zum Beispiel stellt das Aktivieren von Passfoto auf einer frischen Instanz background-removal und face-detection in die Warteschlange; wird es aktiviert, nachdem Hintergrundentfernung bereits installiert ist, wird nur face-detection in die Warteschlange gestellt.

BundleGrößeGemeinsame AbhängigkeitsgruppeWerkzeuge, die es nutzen
background-removal4-5 GBrembg / BiRefNet Hintergrund-Mattingremove-background, passport-photo, transparency-fixer, background-replace, blur-background
face-detection200-300 MBMediaPipe Gesichtserkennung und Landmarkenblur-faces, red-eye-removal, smart-crop
object-eraser-colorize1-2 GBLaMa Inpainting/Outpainting und DDColorerase-object, colorize, ai-canvas-expand
upscale-enhance5-6 GBRealESRGAN, GFPGAN / CodeFormer, Rauschunterdrückungupscale, enhance-faces, noise-removal
photo-restoration4-5 GBKratzerreparatur und Restaurierungs-Pipelinerestore-photo
ocr5-6 GBPaddleOCR / Tesseract OCR-Stackocr, ocr-pdf
transcription~600 MBfaster-whisper Sprache-zu-Text-Modelletranscribe-audio, auto-subtitles

Werkzeuge mit bundleübergreifenden Abhängigkeiten:

WerkzeugErforderliche BundlesGrund
passport-photobackground-removal, face-detectionEntfernt den Hintergrund und verwendet dann Gesichtslandmarken, um den Zuschnitt gemäß den Regeln für Pass- und Ausweisfotos auszurichten.
enhance-facesupscale-enhance, face-detectionErkennt Gesichter, bevor es GFPGAN oder CodeFormer zur Verbesserung der ausgewählten Gesichtsbereiche ausführt.

Ein Werkzeug ist nur verfügbar, wenn alle erforderlichen Bundles installiert sind. Teilinstallationen sind gültig und werden inkrementell behandelt: installierte Bundles werden wiederverwendet, fehlende Bundles werden als Downloads angezeigt, und Installationen in der Warteschlange werden nacheinander ausgeführt, damit die gemeinsame Python-Umgebung nicht gleichzeitig verändert wird.


Hintergrundentfernung

Werkzeug-Route: remove-background
Modell: rembg mit BiRefNet (Standard) oder U2-Net-Varianten

ParameterTypStandardBeschreibung
modelstring-Modellvariante (optionale Überschreibung)
backgroundTypestring"transparent"Eines von: transparent, color, gradient, blur, image
backgroundColorstring-Hex-Farbe für einfarbigen Hintergrund
gradientColor1string-Erste Verlaufsfarbe
gradientColor2string-Zweite Verlaufsfarbe
gradientAnglenumber-Verlaufswinkel in Grad
blurEnabledboolean-Hintergrundunschärfe-Effekt aktivieren
blurIntensitynumber (0-100)-Unschärfeintensität
shadowEnabledboolean-Schlagschatten am Motiv aktivieren
shadowOpacitynumber (0-100)-Schattendeckkraft
outputFormatstring-Ausgabeformat: png, webp oder avif
edgeRefineinteger (0-3)-Grad der Kantenverfeinerung
decontaminateboolean-Farbränder an den Kanten entfernen

Hintergrund ersetzen

Werkzeug-Route: background-replace
Modell: rembg / BiRefNet (gemeinsam mit remove-background)

Entfernt den Hintergrund und ersetzt ihn durch eine einfarbige Fläche oder einen Verlauf.

ParameterTypStandardBeschreibung
backgroundType"color" | "gradient""color"Hintergrundmodus
colorstring"#ffffff"Hintergrund-Hex-Farbe (wenn backgroundType gleich color ist)
gradientColor1string-Erste Verlaufs-Hex-Farbe
gradientColor2string-Zweite Verlaufs-Hex-Farbe
gradientAngleinteger (0-360)180Verlaufswinkel in Grad
featherinteger (0-20)0Radius der Kantenweichzeichnung
format"png" | "webp""png"Ausgabeformat

Hintergrund weichzeichnen

Werkzeug-Route: blur-background
Modell: rembg / BiRefNet (gemeinsam mit remove-background)

Zeichnet den Hintergrund weich und hält das Motiv scharf.

ParameterTypStandardBeschreibung
intensityinteger (1-100)50Unschärfeintensität
featherinteger (0-20)0Radius der Kantenweichzeichnung
format"png" | "webp""png"Ausgabeformat

Bildhochskalierung

Werkzeug-Route: upscale
Modell: RealESRGAN (mit Lanczos-Fallback, wenn nicht verfügbar)

ParameterTypStandardBeschreibung
scalenumber2Hochskalierungsfaktor
modelstring"auto"Modellvariante
faceEnhancebooleanfalseGFPGAN-Durchgang zur Gesichtsverbesserung anwenden
denoisenumber0Stärke der Rauschunterdrückung
formatstring"auto"Überschreibung des Ausgabeformats
qualitynumber95Ausgabequalität (1-100)

OCR / Textextraktion

Werkzeug-Route: ocr
Modelle: Tesseract (schnell), PaddleOCR PP-OCRv5 (ausgewogen), PaddleOCR-VL 1.5 (beste)

ParameterTypStandardBeschreibung
quality"fast" | "balanced" | "best""balanced"Verarbeitungsstufe
languagestring"auto"Sprache: auto, en, de, fr, es, zh, ja, ko
enhancebooleantrueBild vorverarbeiten, um die OCR-Genauigkeit zu verbessern
enginestring-Veraltet. Bildet tesseract auf fast ab, paddleocr auf balanced

Gibt strukturierte Ergebnisse mit Begrenzungsrahmen, Konfidenzwerten und extrahierten Textblöcken zurück.

PDF-OCR

Werkzeug-Route: ocr-pdf
Modelle: Dasselbe Stufensystem wie bei der Bild-OCR

Extrahiert Text aus gescannten PDF-Dokumenten mittels KI-gestützter OCR, Seite für Seite.

ParameterTypStandardBeschreibung
quality"fast" | "balanced" | "best""balanced"Verarbeitungsstufe
languagestring"auto"Sprache: auto, en, de, fr, es, zh, ja, ko
pagesstring"all"Seitenauswahl: "all", "1-3", "1,3,5"

Gesichts- / PII-Weichzeichnung

Werkzeug-Route: blur-faces
Modell: MediaPipe-Gesichtserkennung

ParameterTypStandardBeschreibung
blurRadiusnumber (1-100)30Radius der Gaußschen Weichzeichnung
sensitivitynumber (0-1)0.5Konfidenzschwelle der Erkennung

Gesichtsverbesserung

Werkzeug-Route: enhance-faces
Modelle: GFPGAN, CodeFormer

ParameterTypStandardBeschreibung
model"auto" | "gfpgan" | "codeformer""auto"Verbesserungsmodell
strengthnumber (0-1)0.8Verbesserungsstärke
sensitivitynumber (0-1)0.5Schwellenwert der Gesichtserkennung
onlyCenterFacebooleanfalseNur das zentralste Gesicht verbessern

KI-Kolorierung

Werkzeug-Route: colorize
Modell: DDColor (mit OpenCV-DNN-Fallback)

Wandelt Schwarz-Weiß- oder Graustufenfotos in Vollfarbe um.

ParameterTypStandardBeschreibung
intensitynumber (0-1)1.0Stärke der Farbsättigung
model"auto" | "ddcolor" | "opencv""auto"Modellvariante

Rauschentfernung

Werkzeug-Route: noise-removal
Modell: SCUNet (gestufte Rauschunterdrückungs-Pipeline)

ParameterTypStandardBeschreibung
tier"quick" | "balanced" | "quality" | "maximum""balanced"Verarbeitungsstufe
strengthnumber (0-100)50Stärke der Rauschunterdrückung
detailPreservationnumber (0-100)50Wie viele Details erhalten bleiben; höher bewahrt mehr Textur
colorNoisenumber (0-100)30Stärke der Farbrauschreduzierung
formatstring"original"Ausgabeformat: original, png, jpeg, webp, avif, jxl
qualitynumber (1-100)90Qualität der Ausgabekodierung

Rote-Augen-Entfernung

Werkzeug-Route: red-eye-removal

Erkennt Gesichtslandmarken, lokalisiert Augenbereiche und korrigiert die Übersättigung des Rotkanals.

ParameterTypStandardBeschreibung
sensitivitynumber (0-100)50Schwellenwert zur Erkennung roter Pixel
strengthnumber (0-100)70Korrekturstärke
formatstring-Überschreibung des Ausgabeformats (optional)
qualitynumber (1-100)90Ausgabequalität

Fotorestaurierung

Werkzeug-Route: restore-photo

Mehrstufige Pipeline für alte oder beschädigte Fotos: Erkennung und Reparatur von Kratzern/Rissen, Gesichtsverbesserung, Rauschunterdrückung und optionale Kolorierung.

ParameterTypStandardBeschreibung
scratchRemovalbooleantrueKratzer und Risse erkennen und reparieren
faceEnhancementbooleantrueDurchgang zur Gesichtsverbesserung anwenden
fidelitynumber (0-1)0.7Stärke der Gesichtsverbesserung (höher = konservativer)
denoisebooleantrueDurchgang zur Rauschunterdrückung anwenden
denoiseStrengthnumber (0-100)25Stärke der Rauschunterdrückung
colorizebooleanfalseNach der Restaurierung kolorieren
colorizeStrengthnumber (0-100)85Kolorierungsintensität

Passfoto

Werkzeug-Route: passport-photo
Modelle: MediaPipe-Gesichtslandmarken + BiRefNet-Hintergrundentfernung

Zweiphasiger Ablauf: analysieren (Gesicht erkennen + Hintergrund entfernen), dann generieren (zuschneiden, skalieren, kacheln). Unterstützt über 37 Länder in 6 Regionen.

Phase 1: Analysieren

POST /api/v1/tools/image/passport-photo/analyze

Nimmt eine Bilddatei entgegen (multipart). Gibt Gesichtslandmarkendaten, eine Base64-Vorschau und Bildabmessungen zurück.

Phase 2: Generieren

POST /api/v1/tools/image/passport-photo/generate

Nimmt einen JSON-Body mit den Ergebnissen aus Phase 1 sowie den Generierungseinstellungen entgegen:

ParameterTypStandardBeschreibung
jobIdstring(erforderlich)Job-ID aus Phase 1
filenamestring(erforderlich)Ursprünglicher Dateiname aus Phase 1
countryCodestring(erforderlich)ISO-Ländercode (z. B. US, GB, IN)
documentTypestring"passport"Dokumententyp
bgColorstring"#FFFFFF"Hintergrundfarbe als Hex
printLayoutstring"none"Druck-Layout: none, 4x6, a4, letter
maxFileSizeKbnumber0Maximale Dateigröße in KB (0 = kein Limit)
dpinumber (72-1200)300Ausgabe-DPI
customWidthMmnumber-Benutzerdefinierte Breite in mm (überschreibt die Länderspezifikation)
customHeightMmnumber-Benutzerdefinierte Höhe in mm (überschreibt die Länderspezifikation)
zoomnumber (0.5-3)1Zoomfaktor
adjustXnumber0Horizontale Positionsanpassung
adjustYnumber0Vertikale Positionsanpassung
landmarksobject(erforderlich)Landmarken aus Phase 1
imageWidthnumber(erforderlich)Bildbreite aus Phase 1
imageHeightnumber(erforderlich)Bildhöhe aus Phase 1

Objekte entfernen (Inpainting)

Werkzeug-Route: erase-object
Modell: LaMa über ONNX Runtime

Die Maske wird als zweiter Dateibestandteil gesendet (Feldname mask), nicht als Base64. Weiße Pixel in der Maske kennzeichnen die zu entfernenden Bereiche. Die Einstellungen format und quality werden als Formularfelder auf oberster Ebene gesendet.

ParameterTypStandardBeschreibung
filefile(erforderlich)Quellbild (multipart)
maskfile(erforderlich)Maskenbild (multipart, Feldname mask, weiß = entfernen)
formatstring"auto"Ausgabeformat: auto, png, jpg, jpeg, webp, tiff, gif, avif, heic, heif, jxl
qualityinteger (1-100)95Ausgabequalität

CUDA-beschleunigt, wenn eine NVIDIA-GPU verfügbar ist.

KI-Leinwanderweiterung

Werkzeug-Route: ai-canvas-expand
Modell: LaMa-basiertes Outpainting

Erweitert die Leinwand eines Bildes in jede Richtung und füllt die neuen Bereiche mit KI-generierten Inhalten, die zum bestehenden Bild passen.

ParameterTypStandardBeschreibung
extendTopinteger0Pixel zur Erweiterung oben
extendRightinteger0Pixel zur Erweiterung rechts
extendBottominteger0Pixel zur Erweiterung unten
extendLeftinteger0Pixel zur Erweiterung links
tier"fast" | "balanced" | "high""balanced"Qualitätsstufe
formatstring"auto"Ausgabeformat: auto, png, jpg, jpeg, webp, tiff, gif, avif, heic, heif, jxl
qualityinteger (1-100)95Ausgabequalität

Mindestens eine Erweiterungsrichtung muss größer als 0 sein.

Intelligenter Zuschnitt

Werkzeug-Route: smart-crop
Modell: MediaPipe-Gesichtserkennung (nur im Gesichtsmodus)

ParameterTypStandardBeschreibung
modestring"subject"Zuschnittstrategie: subject, face, trim
strategy"attention" | "entropy""attention"Strategie für den Motivmodus
widthinteger-Ausgabebreite
heightinteger-Ausgabehöhe
paddinginteger (0-50)0Prozentualer Abstand um das Motiv
facePresetstring"head-shoulders"Voreingestellte Rahmung, wenn mode=face
sensitivitynumber (0-1)0.5Schwellenwert der Gesichtserkennung
thresholdinteger (0-255)30Schwellenwert der Hintergrunderkennung (Trim-Modus)
padToSquarebooleanfalseGetrimmtes Ergebnis auf ein Quadrat auffüllen
padColorstring"#ffffff"Hintergrundfarbe für die quadratische Auffüllung
targetSizeinteger-Zielgröße für die aufgefüllte Ausgabe (Pixel)
qualityinteger (1-100)-Ausgabequalität

Die veralteten mode-Werte attention und content werden akzeptiert und auf subject bzw. trim abgebildet.

Gesichts-Voreinstellungen:

VoreinstellungAm besten geeignet für
closeupPorträtaufnahmen
head-shouldersProfilfotos
upper-bodyLinkedIn / formell
half-bodyGesamter Oberkörper

Audio transkribieren

Werkzeug-Route: transcribe-audio
Modell: faster-whisper

Wandelt Sprache in Text um. Unterstützt die Ausgabeformate Klartext, SRT und VTT.

ParameterTypStandardBeschreibung
languagestring"auto"Sprache: auto, en, de, fr, es, zh, ja, ko, id, th, vi
outputFormat"txt" | "srt" | "vtt""txt"Ausgabeformat

Automatische Untertitel

Werkzeug-Route: auto-subtitles
Modell: faster-whisper (extrahiert Audio aus dem Video und transkribiert dann)

Erzeugt Untertiteldateien aus der Audiospur eines Videos.

ParameterTypStandardBeschreibung
languagestring"auto"Sprache: auto, en, de, fr, es, zh, ja, ko, id, th, vi
format"srt" | "vtt""srt"Ausgabeformat der Untertitel

PNG-Transparenz-Korrektur

Werkzeug-Route: transparency-fixer
Modell: BiRefNet HR-Matting (Auflösung 2048x2048)

Behebt "unecht transparente" PNGs, bei denen der Hintergrund entfernt wurde, aber Fransen, Halos oder halbtransparente Artefakte zurückgeblieben sind. Verwendet das hochauflösende Matting-Modell von BiRefNet, um einen sauberen Alphakanal zu erzeugen, und wendet anschließend eine konfigurierbare Defringe-Verarbeitung an, um Farbverunreinigungen entlang der Kanten zu entfernen.

OOM-Fallback-Kette: Überschreitet das BiRefNet HR-Matting den verfügbaren Speicher, greift das Werkzeug automatisch auf birefnet-general und dann auf u2net zurück.

ParameterTypStandardBeschreibung
defringenumber (0-100)30Stärke des Kanten-Defringe zur Entfernung von Farbverunreinigungen
outputFormat"png" | "webp""png"Ausgabebildformat
removeWatermarkbooleanfalseVorverarbeitung zur Wasserzeichenentfernung anwenden (Medianfilter)
bash
curl -X POST http://localhost:1349/api/v1/tools/image/transparency-fixer \
  -H "Authorization: Bearer <token>" \
  -F "[email protected]" \
  -F 'settings={"defringe":30,"outputFormat":"png"}'

Werkzeuge mit optionalen KI-Fähigkeiten

Die folgenden Werkzeuge sind keine Python-Sidecar-Werkzeuge, nutzen aber KI-Funktionen, wenn bestimmte Optionen aktiviert sind.

Bildverbesserung

Werkzeug-Route: image-enhancement
Engine: Analysebasiert (Sharp-Histogramm und -Statistik)

Analysiert das Bild und wendet automatische Korrekturen für Belichtung, Kontrast, Weißabgleich, Sättigung, Schärfe und Rauschen an. Unterstützt szenenspezifische Modi.

ParameterTypStandardBeschreibung
mode"auto" | "portrait" | "landscape" | "low-light" | "food" | "document""auto"Szenenmodus zum Feinabstimmen der Korrekturen
intensitynumber (0-100)50Gesamtkorrekturstärke
corrections.exposurebooleantrueBelichtungskorrektur anwenden
corrections.contrastbooleantrueKontrastkorrektur anwenden
corrections.whiteBalancebooleantrueWeißabgleichskorrektur anwenden
corrections.saturationbooleantrueSättigungskorrektur anwenden
corrections.sharpnessbooleantrueSchärfekorrektur anwenden
corrections.denoisebooleantrueRauschunterdrückung anwenden
deepEnhancebooleanfalseKI-Rauschentfernung über SCUNet aktivieren (erfordert das upscale-enhance-Bundle)

Ein zusätzlicher Analyse-Endpunkt ist unter POST /api/v1/tools/image/image-enhancement/analyze verfügbar, der die erkannten Korrekturen zurückgibt, ohne sie anzuwenden.

Inhaltsbewusste Größenänderung (Seam Carving)

Werkzeug-Route: content-aware-resize
Engine: Go-Binary caire (kein Python - kein GPU-Vorteil)

Ändert die Größe von Bildern intelligent, indem energiearme Nähte entfernt und wichtige Inhalte erhalten werden.

ParameterTypStandardBeschreibung
widthnumber-Zielbreite
heightnumber-Zielhöhe
protectFacesbooleanfalseErkannte Gesichtsbereiche schützen (erfordert das face-detection-Bundle)
blurRadiusnumber (0-20)4Vorab-Weichzeichnung für die Energieberechnung
sobelThresholdnumber (1-20)2Schwellenwert der Kantenempfindlichkeit
squarebooleanfalseQuadratische Ausgabe erzwingen