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

Referens för AI-motorn

Paketet @snapotter/ai kopplar Node.js till en beständig Python-sidecar för alla ML-operationer. Dispatcher-processen hålls vid liv mellan förfrågningar för snabb prestanda med varm start. NVIDIA CUDA identifieras automatiskt vid uppstart och används när det är tillgängligt; annars körs AI-verktygen på CPU.

Acceleration via Intel/AMD-iGPU genom VA-API, Quick Sync eller OpenCL stöds inte för AI-inferens idag. Att mappa /dev/dri in i en container accelererar inte dessa Python-sidecar-verktyg om inte en CUDA-kapabel NVIDIA-GPU finns tillgänglig.

19 Python-sidecar-AI-verktyg över fyra modaliteter (bild, ljud, video, dokument), plus 2 verktyg med valfria AI-funktioner. Alla modeller körs lokalt - ingen internetuppkoppling krävs efter den första nedladdningen av modellerna.

Arkitektur

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)

En separat "docs"-dispatcherprofil ersätter AI-tillåtelselistan med skript för dokumentbearbetning (doc_pagecount, doc_health, doc_flatten, doc_redact, doc_text, doc_to_word, doc_metadata, doc_html_pdf) och hoppar över tunga ML-importer.

Tidsgränser: 300 s som standard; OCR och BiRefNet-bakgrundsborttagning får 600 s.

Funktionspaket

AI-modeller paketeras efter delad beroendestack, inte ett arkiv per verktyg. Ett funktionspaket kan aktivera flera verktyg när de använder samma modellfamilj, Python-wheels eller inbyggda bibliotek. Detta håller den utgivna Docker-avbildningen mindre och undviker att lagra dubbletter av samma modeller för bakgrundsmattning, ansiktsdetektering, OCR, restaurering och tal.

Docker-avbildningen levereras med applikationen plus den gemensamma körtidsmiljön. Stora modellarkiv laddas ned vid behov till den beständiga volymen /data/ai och återanvänds sedan av alla verktyg som behöver dem. Om ett paket redan är installerat eftersom ett annat verktyg behövde det, laddas det paketet inte ned igen när ett nytt beroende verktyg aktiveras.

Varje AI-verktyg kräver ett eller flera funktionspaket innan det kan köras. Admingränssnittet installerar per verktyg via POST /api/v1/admin/tools/:toolId/features/install, som löser upp den fullständiga paketlistan, hoppar över paket som redan är installerade och köar bara de saknade nedladdningarna. Att till exempel aktivera Passfoto på en ny instans köar background-removal och face-detection; att aktivera det efter att Bakgrundsborttagning redan är installerat köar bara face-detection.

PaketStorlekDelad beroendegruppVerktyg som använder det
background-removal4-5 GBrembg / BiRefNet bakgrundsmattningremove-background, passport-photo, transparency-fixer, background-replace, blur-background
face-detection200-300 MBMediaPipe ansiktsdetektering och landmärkenblur-faces, red-eye-removal, smart-crop
object-eraser-colorize1-2 GBLaMa inpainting/outpainting och DDColorerase-object, colorize, ai-canvas-expand
upscale-enhance5-6 GBRealESRGAN, GFPGAN / CodeFormer, brusreduceringupscale, enhance-faces, noise-removal
photo-restoration4-5 GBpipeline för reparation av repor och restaureringrestore-photo
ocr5-6 GBPaddleOCR / Tesseract OCR-stackocr, ocr-pdf
transcription~600 MBfaster-whisper tal-till-text-modellertranscribe-audio, auto-subtitles

Verktyg med beroenden över flera paket:

VerktygNödvändiga paketVarför
passport-photobackground-removal, face-detectionTar bort bakgrunden och använder sedan ansiktslandmärken för att beskära bilden enligt reglerna för pass- och ID-foton.
enhance-facesupscale-enhance, face-detectionDetekterar ansikten innan GFPGAN- eller CodeFormer-förbättring körs på de valda ansiktsregionerna.

Ett verktyg är tillgängligt först när alla dess nödvändiga paket är installerade. Delvisa installationer är giltiga och hanteras stegvis: installerade paket återanvänds, saknade paket visas som nedladdningar, och köade installationer körs en i taget så att den delade Python-miljön inte modifieras samtidigt.


Bakgrundsborttagning

Verktygsrutt: remove-backgroundModell: rembg med BiRefNet (standard) eller U2-Net-varianter

ParameterTypStandardBeskrivning
modelstring-Modellvariant (valfri åsidosättning)
backgroundTypestring"transparent"En av: transparent, color, gradient, blur, image
backgroundColorstring-Hexfärg för enfärgad bakgrund
gradientColor1string-Första gradientfärgen
gradientColor2string-Andra gradientfärgen
gradientAnglenumber-Gradientvinkel i grader
blurEnabledboolean-Aktivera oskärpeeffekt på bakgrunden
blurIntensitynumber (0-100)-Oskärpans intensitet
shadowEnabledboolean-Aktivera slagskugga på motivet
shadowOpacitynumber (0-100)-Skuggans opacitet
outputFormatstring-Utdataformat: png, webp eller avif
edgeRefineinteger (0-3)-Nivå för kantförfining
decontaminateboolean-Ta bort färgblödning från kanter

Bakgrundsutbyte

Verktygsrutt: background-replaceModell: rembg / BiRefNet (delas med remove-background)

Tar bort bakgrunden och ersätter den med en enfärgad färg eller gradient.

ParameterTypStandardBeskrivning
backgroundType"color" | "gradient""color"Bakgrundsläge
colorstring"#ffffff"Bakgrundens hexfärg (när backgroundType är color)
gradientColor1string-Första gradientens hexfärg
gradientColor2string-Andra gradientens hexfärg
gradientAngleinteger (0-360)180Gradientvinkel i grader
featherinteger (0-20)0Radie för kantutjämning
format"png" | "webp""png"Utdataformat

Oskärp bakgrund

Verktygsrutt: blur-backgroundModell: rembg / BiRefNet (delas med remove-background)

Gör bakgrunden oskarp samtidigt som motivet hålls skarpt.

ParameterTypStandardBeskrivning
intensityinteger (1-100)50Oskärpans intensitet
featherinteger (0-20)0Radie för kantutjämning
format"png" | "webp""png"Utdataformat

Bilduppskalning

Verktygsrutt: upscaleModell: RealESRGAN (med Lanczos-reserv när den inte är tillgänglig)

ParameterTypStandardBeskrivning
scalenumber2Uppskalningsfaktor
modelstring"auto"Modellvariant
faceEnhancebooleanfalseKör en GFPGAN-ansiktsförbättring
denoisenumber0Styrka på brusreducering
formatstring"auto"Åsidosättning av utdataformat
qualitynumber95Utdatakvalitet (1-100)

OCR / Textextraktion

Verktygsrutt: ocrModeller: Tesseract (snabb), PaddleOCR PP-OCRv5 (balanserad), PaddleOCR-VL 1.5 (bäst)

ParameterTypStandardBeskrivning
quality"fast" | "balanced" | "best""balanced"Bearbetningsnivå
languagestring"auto"Språk: auto, en, de, fr, es, zh, ja, ko
enhancebooleantrueFörbehandla bilden för att förbättra OCR-noggrannheten
enginestring-Föråldrad. Mappar tesseract till fast, paddleocr till balanced

Returnerar strukturerade resultat med avgränsningsrutor, konfidenspoäng och extraherade textblock.

PDF-OCR

Verktygsrutt: ocr-pdfModeller: Samma nivåsystem som bild-OCR

Extraherar text från inskannade PDF-dokument med AI-driven OCR, sida för sida.

ParameterTypStandardBeskrivning
quality"fast" | "balanced" | "best""balanced"Bearbetningsnivå
languagestring"auto"Språk: auto, en, de, fr, es, zh, ja, ko
pagesstring"all"Sidval: "all", "1-3", "1,3,5"

Oskärp ansikten / PII

Verktygsrutt: blur-facesModell: MediaPipe ansiktsdetektering

ParameterTypStandardBeskrivning
blurRadiusnumber (1-100)30Radie för gaussisk oskärpa
sensitivitynumber (0-1)0.5Konfidenströskel för detektering

Ansiktsförbättring

Verktygsrutt: enhance-facesModeller: GFPGAN, CodeFormer

ParameterTypStandardBeskrivning
model"auto" | "gfpgan" | "codeformer""auto"Förbättringsmodell
strengthnumber (0-1)0.8Styrka på förbättring
sensitivitynumber (0-1)0.5Tröskel för ansiktsdetektering
onlyCenterFacebooleanfalseFörbättra endast det mest centrala ansiktet

AI-kolorering

Verktygsrutt: colorizeModell: DDColor (med OpenCV DNN-reserv)

Omvandlar svartvita eller gråskalefoton till fullständig färg.

ParameterTypStandardBeskrivning
intensitynumber (0-1)1.0Styrka på färgmättnad
model"auto" | "ddcolor" | "opencv""auto"Modellvariant

Brusreducering

Verktygsrutt: noise-removalModell: SCUNet (nivåindelad pipeline för brusreducering)

ParameterTypStandardBeskrivning
tier"quick" | "balanced" | "quality" | "maximum""balanced"Bearbetningsnivå
strengthnumber (0-100)50Styrka på brusreducering
detailPreservationnumber (0-100)50Hur mycket detaljer som ska bevaras; högre behåller mer textur
colorNoisenumber (0-100)30Styrka på reducering av färgbrus
formatstring"original"Utdataformat: original, png, jpeg, webp, avif, jxl
qualitynumber (1-100)90Kvalitet på utdatakodning

Borttagning av röda ögon

Verktygsrutt: red-eye-removal

Detekterar ansiktslandmärken, lokaliserar ögonregioner och korrigerar övermättnad i rödkanalen.

ParameterTypStandardBeskrivning
sensitivitynumber (0-100)50Tröskel för detektering av röda pixlar
strengthnumber (0-100)70Styrka på korrigering
formatstring-Åsidosättning av utdataformat (valfritt)
qualitynumber (1-100)90Utdatakvalitet

Fotorestaurering

Verktygsrutt: restore-photo

Pipeline i flera steg för gamla eller skadade foton: detektering och reparation av repor/revor, ansiktsförbättring, brusreducering och valfri kolorering.

ParameterTypStandardBeskrivning
scratchRemovalbooleantrueDetektera och reparera repor, revor
faceEnhancementbooleantrueKör en ansiktsförbättring
fidelitynumber (0-1)0.7Styrka på ansiktsförbättring (högre = mer konservativ)
denoisebooleantrueKör en brusreducering
denoiseStrengthnumber (0-100)25Styrka på brusreducering
colorizebooleanfalseKolorera efter restaurering
colorizeStrengthnumber (0-100)85Intensitet på kolorering

Passfoto

Verktygsrutt: passport-photoModeller: MediaPipe ansiktslandmärken + BiRefNet-bakgrundsborttagning

Arbetsflöde i två faser: analysera (detektera ansikte + ta bort bakgrund) och sedan generera (beskär, ändra storlek, lägg i rutmönster). Stöder 37+ länder över 6 regioner.

Fas 1: Analysera

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

Tar emot en bildfil (multipart). Returnerar data om ansiktslandmärken, en base64-förhandsvisning och bilddimensioner.

Fas 2: Generera

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

Tar emot en JSON-kropp med resultaten från Fas 1 plus genereringsinställningar:

ParameterTypStandardBeskrivning
jobIdstring(obligatorisk)Jobb-ID från Fas 1
filenamestring(obligatorisk)Ursprungligt filnamn från Fas 1
countryCodestring(obligatorisk)ISO-landskod (t.ex. US, GB, IN)
documentTypestring"passport"Dokumenttyp
bgColorstring"#FFFFFF"Bakgrundsfärg i hex
printLayoutstring"none"Utskriftslayout: none, 4x6, a4, letter
maxFileSizeKbnumber0Maximal filstorlek i KB (0 = ingen gräns)
dpinumber (72-1200)300Utdata-DPI
customWidthMmnumber-Anpassad bredd i mm (åsidosätter landsspecifikationen)
customHeightMmnumber-Anpassad höjd i mm (åsidosätter landsspecifikationen)
zoomnumber (0.5-3)1Zoomfaktor
adjustXnumber0Justering av horisontellt läge
adjustYnumber0Justering av vertikalt läge
landmarksobject(obligatorisk)Landmärken från Fas 1
imageWidthnumber(obligatorisk)Bildbredd från Fas 1
imageHeightnumber(obligatorisk)Bildhöjd från Fas 1

Objektborttagning (Inpainting)

Verktygsrutt: erase-objectModell: LaMa via ONNX Runtime

Masken skickas som en andra fildel (fältnamn mask), inte som base64. Vita pixlar i masken anger områden som ska raderas. Inställningarna format och quality skickas som formulärfält på toppnivå.

ParameterTypStandardBeskrivning
filefile(obligatorisk)Källbild (multipart)
maskfile(obligatorisk)Maskbild (multipart, fältnamn mask, vitt = radera)
formatstring"auto"Utdataformat: auto, png, jpg, jpeg, webp, tiff, gif, avif, heic, heif, jxl
qualityinteger (1-100)95Utdatakvalitet

CUDA-accelererad när en NVIDIA-GPU finns tillgänglig.

AI-canvasutökning

Verktygsrutt: ai-canvas-expandModell: LaMa-baserad outpainting

Utökar bildens canvas i valfri riktning och fyller nya områden med AI-genererat innehåll som matchar den befintliga bilden.

ParameterTypStandardBeskrivning
extendTopinteger0Antal pixlar att utöka upptill
extendRightinteger0Antal pixlar att utöka till höger
extendBottominteger0Antal pixlar att utöka nedtill
extendLeftinteger0Antal pixlar att utöka till vänster
tier"fast" | "balanced" | "high""balanced"Kvalitetsnivå
formatstring"auto"Utdataformat: auto, png, jpg, jpeg, webp, tiff, gif, avif, heic, heif, jxl
qualityinteger (1-100)95Utdatakvalitet

Minst en utökningsriktning måste vara större än 0.

Smart beskärning

Verktygsrutt: smart-cropModell: MediaPipe ansiktsdetektering (endast ansiktsläge)

ParameterTypStandardBeskrivning
modestring"subject"Beskärningsstrategi: subject, face, trim
strategy"attention" | "entropy""attention"Strategi för motivläge
widthinteger-Utdatabredd
heightinteger-Utdatahöjd
paddinginteger (0-50)0Marginal i procent runt motivet
facePresetstring"head-shoulders"Förinställd inramning när mode=face
sensitivitynumber (0-1)0.5Tröskel för ansiktsdetektering
thresholdinteger (0-255)30Tröskel för bakgrundsdetektering (trimläge)
padToSquarebooleanfalseFyll ut trimmat resultat till en kvadrat
padColorstring"#ffffff"Bakgrundsfärg för kvadratisk utfyllnad
targetSizeinteger-Målstorlek för utfyllt utdata (pixlar)
qualityinteger (1-100)-Utdatakvalitet

Äldre mode-värden attention och content accepteras och mappas till subject respektive trim.

Förinställningar för ansikte:

FörinställningBäst för
closeupPorträttbilder
head-shouldersProfilbilder
upper-bodyLinkedIn / formellt
half-bodyHela överkroppen

Transkribera ljud

Verktygsrutt: transcribe-audioModell: faster-whisper

Omvandlar tal till text. Stöder utdataformaten oformaterad text, SRT och VTT.

ParameterTypStandardBeskrivning
languagestring"auto"Språk: auto, en, de, fr, es, zh, ja, ko, id, th, vi
outputFormat"txt" | "srt" | "vtt""txt"Utdataformat

Automatiska undertexter

Verktygsrutt: auto-subtitlesModell: faster-whisper (extraherar ljud från video och transkriberar sedan)

Genererar undertextfiler från en videos ljudspår.

ParameterTypStandardBeskrivning
languagestring"auto"Språk: auto, en, de, fr, es, zh, ja, ko, id, th, vi
format"srt" | "vtt""srt"Utdataformat för undertext

PNG-transparensfixare

Verktygsrutt: transparency-fixerModell: BiRefNet HR-matting (2048x2048 upplösning)

Åtgärdar "falskt transparenta" PNG-filer där bakgrunden togs bort men lämnade kvar fransning, glorior eller halvtransparenta artefakter. Använder BiRefNets högupplösta mattningsmodell för att producera en ren alfakanal och tillämpar sedan konfigurerbar defringe-bearbetning för att ta bort färgkontaminering längs kanterna.

Reservkedja vid minnesbrist: Om BiRefNet HR-matting överskrider tillgängligt minne faller verktyget automatiskt tillbaka till birefnet-general, sedan till u2net.

ParameterTypStandardBeskrivning
defringenumber (0-100)30Styrka på kant-defringe för att ta bort färgkontaminering
outputFormat"png" | "webp""png"Utdatabildens format
removeWatermarkbooleanfalseKör förbehandling för borttagning av vattenstämpel (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"}'

Verktyg med valfria AI-funktioner

Följande verktyg är inte Python-sidecar-verktyg men använder AI-funktioner när vissa alternativ är aktiverade.

Bildförbättring

Verktygsrutt: image-enhancementMotor: Analysbaserad (Sharp-histogram och statistik)

Analyserar bilden och tillämpar automatiska korrigeringar för exponering, kontrast, vitbalans, mättnad, skärpa och brus. Stöder scenspecifika lägen.

ParameterTypStandardBeskrivning
mode"auto" | "portrait" | "landscape" | "low-light" | "food" | "document""auto"Scenläge för att finjustera korrigeringar
intensitynumber (0-100)50Total korrigeringsstyrka
corrections.exposurebooleantrueTillämpa exponeringskorrigering
corrections.contrastbooleantrueTillämpa kontrastkorrigering
corrections.whiteBalancebooleantrueTillämpa vitbalanskorrigering
corrections.saturationbooleantrueTillämpa mättnadskorrigering
corrections.sharpnessbooleantrueTillämpa skärpekorrigering
corrections.denoisebooleantrueTillämpa brusreducering
deepEnhancebooleanfalseAktivera AI-brusreducering via SCUNet (kräver paketet upscale-enhance)

En ytterligare analysslutpunkt finns tillgänglig på POST /api/v1/tools/image/image-enhancement/analyze som returnerar de detekterade korrigeringarna utan att tillämpa dem.

Innehållsmedveten storleksändring (Seam Carving)

Verktygsrutt: content-aware-resizeMotor: Go-binären caire (inte Python - ingen GPU-fördel)

Ändrar storlek på bilder intelligent genom att ta bort lågenergisömmar och bevara viktigt innehåll.

ParameterTypStandardBeskrivning
widthnumber-Målbredd
heightnumber-Målhöjd
protectFacesbooleanfalseSkydda detekterade ansiktsregioner (kräver paketet face-detection)
blurRadiusnumber (0-20)4Föroskärpa för energiberäkning
sobelThresholdnumber (1-20)2Tröskel för kantkänslighet
squarebooleanfalseTvinga kvadratiskt utdata