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

Referensi Mesin AI

Paket @snapotter/ai menjembatani Node.js ke sidecar Python persisten untuk semua operasi ML. Proses dispatcher tetap hidup di antara permintaan demi performa warm-start yang cepat. NVIDIA CUDA dideteksi otomatis saat startup dan digunakan bila tersedia; jika tidak, alat AI berjalan di CPU.

Akselerasi iGPU Intel/AMD melalui VA-API, Quick Sync, atau OpenCL saat ini tidak didukung untuk inferensi AI. Memetakan /dev/dri ke dalam sebuah kontainer tidak mempercepat alat sidecar Python ini kecuali tersedia GPU NVIDIA yang mendukung CUDA.

19 alat AI sidecar Python di empat modalitas (gambar, audio, video, dokumen), plus 2 alat dengan kemampuan AI opsional. Semua model berjalan secara lokal - tidak diperlukan internet setelah unduhan model awal.

Arsitektur

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)

Profil dispatcher "docs" yang terpisah menggantikan allowlist AI dengan skrip pemrosesan dokumen (doc_pagecount, doc_health, doc_flatten, doc_redact, doc_text, doc_to_word, doc_metadata, doc_html_pdf) dan melewati impor ML yang berat.

Timeout: 300 d default; OCR dan penghapusan latar belakang BiRefNet mendapat 600 d.

Bundel Fitur

Model AI dikemas berdasarkan tumpukan dependensi bersama, bukan satu arsip per alat. Sebuah bundel fitur dapat mengaktifkan beberapa alat saat mereka memakai keluarga model, wheel Python, atau pustaka native yang sama. Ini menjaga image Docker rilis tetap lebih kecil dan menghindari penyimpanan salinan duplikat dari model matting latar belakang, deteksi wajah, OCR, restorasi, dan model bicara yang sama.

Image Docker mengirimkan aplikasi ditambah runtime umum. Arsip model besar diunduh sesuai permintaan ke dalam volume /data/ai persisten, lalu dipakai ulang oleh setiap alat yang membutuhkannya. Jika sebuah bundel sudah terpasang karena alat lain memerlukannya, mengaktifkan alat dependen baru tidak mengunduh bundel itu lagi.

Setiap alat AI memerlukan satu atau lebih bundel fitur sebelum dapat berjalan. UI admin memasang per alat melalui POST /api/v1/admin/tools/:toolId/features/install, yang menyelesaikan daftar bundel lengkap, melewati bundel yang sudah terpasang, dan mengantrekan hanya unduhan yang kurang. Sebagai contoh, mengaktifkan Passport Photo pada instansi baru mengantrekan background-removal dan face-detection; mengaktifkannya setelah Background Removal sudah terpasang hanya mengantrekan face-detection.

BundelUkuranGrup dependensi bersamaAlat yang memakainya
background-removal4-5 GBmatting latar belakang rembg / BiRefNetremove-background, passport-photo, transparency-fixer, background-replace, blur-background
face-detection200-300 MBdeteksi wajah dan landmark MediaPipeblur-faces, red-eye-removal, smart-crop
object-eraser-colorize1-2 GBinpainting/outpainting LaMa dan DDColorerase-object, colorize, ai-canvas-expand
upscale-enhance5-6 GBRealESRGAN, GFPGAN / CodeFormer, denoisingupscale, enhance-faces, noise-removal
photo-restoration4-5 GBpipeline perbaikan goresan dan restorasirestore-photo
ocr5-6 GBtumpukan OCR PaddleOCR / Tesseractocr, ocr-pdf
transcription~600 MBmodel speech-to-text faster-whispertranscribe-audio, auto-subtitles

Alat dengan dependensi lintas bundel:

AlatBundel yang diperlukanAlasan
passport-photobackground-removal, face-detectionMenghapus latar belakang, lalu memakai landmark wajah untuk membingkai crop sesuai aturan foto paspor dan KTP.
enhance-facesupscale-enhance, face-detectionMendeteksi wajah sebelum menjalankan peningkatan GFPGAN atau CodeFormer pada wilayah wajah yang dipilih.

Sebuah alat tersedia hanya ketika semua bundel yang diperlukannya terpasang. Pemasangan sebagian valid dan ditangani secara bertahap: bundel yang terpasang dipakai ulang, bundel yang kurang ditampilkan sebagai unduhan, dan pemasangan yang diantrekan berjalan satu per satu sehingga lingkungan Python bersama tidak dimodifikasi secara bersamaan.


Penghapusan Latar Belakang

Rute alat: remove-background
Model: rembg dengan BiRefNet (default) atau varian U2-Net

ParameterTipeDefaultDeskripsi
modelstring-Varian model (override opsional)
backgroundTypestring"transparent"Salah satu dari: transparent, color, gradient, blur, image
backgroundColorstring-Warna hex untuk latar belakang solid
gradientColor1string-Warna gradien pertama
gradientColor2string-Warna gradien kedua
gradientAnglenumber-Sudut gradien dalam derajat
blurEnabledboolean-Aktifkan efek blur latar belakang
blurIntensitynumber (0-100)-Intensitas blur
shadowEnabledboolean-Aktifkan drop shadow pada subjek
shadowOpacitynumber (0-100)-Opasitas bayangan
outputFormatstring-Format keluaran: png, webp, atau avif
edgeRefineinteger (0-3)-Tingkat penyempurnaan tepi
decontaminateboolean-Hilangkan rembesan warna dari tepi

Penggantian Latar Belakang

Rute alat: background-replace
Model: rembg / BiRefNet (dibagikan dengan remove-background)

Menghapus latar belakang dan menggantinya dengan warna solid atau gradien.

ParameterTipeDefaultDeskripsi
backgroundType"color" | "gradient""color"Mode latar belakang
colorstring"#ffffff"Warna hex latar belakang (saat backgroundType adalah color)
gradientColor1string-Warna hex gradien pertama
gradientColor2string-Warna hex gradien kedua
gradientAngleinteger (0-360)180Sudut gradien dalam derajat
featherinteger (0-20)0Radius feathering tepi
format"png" | "webp""png"Format keluaran

Blur Latar Belakang

Rute alat: blur-background
Model: rembg / BiRefNet (dibagikan dengan remove-background)

Memburamkan latar belakang sambil menjaga subjek tetap tajam.

ParameterTipeDefaultDeskripsi
intensityinteger (1-100)50Intensitas blur
featherinteger (0-20)0Radius feathering tepi
format"png" | "webp""png"Format keluaran

Upscaling Gambar

Rute alat: upscale
Model: RealESRGAN (dengan fallback Lanczos saat tidak tersedia)

ParameterTipeDefaultDeskripsi
scalenumber2Faktor upscale
modelstring"auto"Varian model
faceEnhancebooleanfalseTerapkan tahap peningkatan wajah GFPGAN
denoisenumber0Kekuatan denoising
formatstring"auto"Override format keluaran
qualitynumber95Kualitas keluaran (1-100)

OCR / Ekstraksi Teks

Rute alat: ocr
Model: Tesseract (cepat), PaddleOCR PP-OCRv5 (seimbang), PaddleOCR-VL 1.5 (terbaik)

ParameterTipeDefaultDeskripsi
quality"fast" | "balanced" | "best""balanced"Tingkat pemrosesan
languagestring"auto"Bahasa: auto, en, de, fr, es, zh, ja, ko
enhancebooleantruePra-proses gambar untuk meningkatkan akurasi OCR
enginestring-Usang. Memetakan tesseract ke fast, paddleocr ke balanced

Mengembalikan hasil terstruktur dengan bounding box, skor kepercayaan, dan blok teks yang diekstrak.

OCR PDF

Rute alat: ocr-pdf
Model: Sistem tingkat yang sama seperti OCR gambar

Mengekstrak teks dari dokumen PDF hasil pindaian menggunakan OCR bertenaga AI, halaman per halaman.

ParameterTipeDefaultDeskripsi
quality"fast" | "balanced" | "best""balanced"Tingkat pemrosesan
languagestring"auto"Bahasa: auto, en, de, fr, es, zh, ja, ko
pagesstring"all"Pemilihan halaman: "all", "1-3", "1,3,5"

Blur Wajah / PII

Rute alat: blur-faces
Model: deteksi wajah MediaPipe

ParameterTipeDefaultDeskripsi
blurRadiusnumber (1-100)30Radius blur Gaussian
sensitivitynumber (0-1)0.5Ambang kepercayaan deteksi

Peningkatan Wajah

Rute alat: enhance-faces
Model: GFPGAN, CodeFormer

ParameterTipeDefaultDeskripsi
model"auto" | "gfpgan" | "codeformer""auto"Model peningkatan
strengthnumber (0-1)0.8Kekuatan peningkatan
sensitivitynumber (0-1)0.5Ambang deteksi wajah
onlyCenterFacebooleanfalseTingkatkan hanya wajah paling tengah

Pewarnaan AI

Rute alat: colorize
Model: DDColor (dengan fallback OpenCV DNN)

Mengubah foto hitam-putih atau grayscale menjadi berwarna penuh.

ParameterTipeDefaultDeskripsi
intensitynumber (0-1)1.0Kekuatan saturasi warna
model"auto" | "ddcolor" | "opencv""auto"Varian model

Penghapusan Derau

Rute alat: noise-removal
Model: SCUNet (pipeline denoising bertingkat)

ParameterTipeDefaultDeskripsi
tier"quick" | "balanced" | "quality" | "maximum""balanced"Tingkat pemrosesan
strengthnumber (0-100)50Kekuatan denoising
detailPreservationnumber (0-100)50Seberapa banyak detail yang dipertahankan; makin tinggi makin banyak tekstur yang terjaga
colorNoisenumber (0-100)30Kekuatan pengurangan derau warna
formatstring"original"Format keluaran: original, png, jpeg, webp, avif, jxl
qualitynumber (1-100)90Kualitas enkoding keluaran

Penghapusan Mata Merah

Rute alat: red-eye-removal

Mendeteksi landmark wajah, menemukan wilayah mata, dan mengoreksi oversaturasi kanal merah.

ParameterTipeDefaultDeskripsi
sensitivitynumber (0-100)50Ambang deteksi piksel merah
strengthnumber (0-100)70Kekuatan koreksi
formatstring-Override format keluaran (opsional)
qualitynumber (1-100)90Kualitas keluaran

Restorasi Foto

Rute alat: restore-photo

Pipeline multi-langkah untuk foto lama atau rusak: deteksi dan perbaikan goresan/robekan, peningkatan wajah, denoising, dan pewarnaan opsional.

ParameterTipeDefaultDeskripsi
scratchRemovalbooleantrueDeteksi dan perbaiki goresan, robekan
faceEnhancementbooleantrueTerapkan tahap peningkatan wajah
fidelitynumber (0-1)0.7Kekuatan peningkatan wajah (makin tinggi = makin konservatif)
denoisebooleantrueTerapkan tahap denoising
denoiseStrengthnumber (0-100)25Kekuatan denoising
colorizebooleanfalseWarnai setelah restorasi
colorizeStrengthnumber (0-100)85Intensitas pewarnaan

Foto Paspor

Rute alat: passport-photo
Model: landmark wajah MediaPipe + penghapusan latar belakang BiRefNet

Alur kerja dua fase: analisis (deteksi wajah + hapus latar belakang) lalu hasilkan (crop, ubah ukuran, tile). Mendukung 37+ negara di 6 kawasan.

Fase 1: Analisis

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

Menerima berkas gambar (multipart). Mengembalikan data landmark wajah, pratinjau base64, dan dimensi gambar.

Fase 2: Hasilkan

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

Menerima body JSON berisi hasil Fase 1 ditambah pengaturan pembuatan:

ParameterTipeDefaultDeskripsi
jobIdstring(wajib)Job ID dari Fase 1
filenamestring(wajib)Nama berkas asli dari Fase 1
countryCodestring(wajib)Kode negara ISO (mis., US, GB, IN)
documentTypestring"passport"Tipe dokumen
bgColorstring"#FFFFFF"Hex warna latar belakang
printLayoutstring"none"Tata letak cetak: none, 4x6, a4, letter
maxFileSizeKbnumber0Ukuran berkas maks dalam KB (0 = tanpa batas)
dpinumber (72-1200)300DPI keluaran
customWidthMmnumber-Lebar kustom dalam mm (menimpa spesifikasi negara)
customHeightMmnumber-Tinggi kustom dalam mm (menimpa spesifikasi negara)
zoomnumber (0.5-3)1Faktor zoom
adjustXnumber0Penyesuaian posisi horizontal
adjustYnumber0Penyesuaian posisi vertikal
landmarksobject(wajib)Landmark dari Fase 1
imageWidthnumber(wajib)Lebar gambar dari Fase 1
imageHeightnumber(wajib)Tinggi gambar dari Fase 1

Penghapusan Objek (Inpainting)

Rute alat: erase-object
Model: LaMa via ONNX Runtime

Mask dikirim sebagai bagian berkas kedua (fieldname mask), bukan sebagai base64. Piksel putih dalam mask menandai area yang akan dihapus. Pengaturan format dan quality dikirim sebagai field form tingkat atas.

ParameterTipeDefaultDeskripsi
filefile(wajib)Gambar sumber (multipart)
maskfile(wajib)Gambar mask (multipart, fieldname mask, putih = hapus)
formatstring"auto"Format keluaran: auto, png, jpg, jpeg, webp, tiff, gif, avif, heic, heif, jxl
qualityinteger (1-100)95Kualitas keluaran

Dipercepat dengan CUDA saat GPU NVIDIA tersedia.

AI Canvas Expand

Rute alat: ai-canvas-expand
Model: outpainting berbasis LaMa

Memperluas kanvas gambar ke segala arah dan mengisi area baru dengan konten yang dihasilkan AI yang cocok dengan gambar yang ada.

ParameterTipeDefaultDeskripsi
extendTopinteger0Piksel untuk diperluas di atas
extendRightinteger0Piksel untuk diperluas di kanan
extendBottominteger0Piksel untuk diperluas di bawah
extendLeftinteger0Piksel untuk diperluas di kiri
tier"fast" | "balanced" | "high""balanced"Tingkat kualitas
formatstring"auto"Format keluaran: auto, png, jpg, jpeg, webp, tiff, gif, avif, heic, heif, jxl
qualityinteger (1-100)95Kualitas keluaran

Setidaknya satu arah perluasan harus lebih besar dari 0.

Smart Crop

Rute alat: smart-crop
Model: deteksi wajah MediaPipe (hanya mode wajah)

ParameterTipeDefaultDeskripsi
modestring"subject"Strategi crop: subject, face, trim
strategy"attention" | "entropy""attention"Strategi untuk mode subjek
widthinteger-Lebar keluaran
heightinteger-Tinggi keluaran
paddinginteger (0-50)0Persentase padding di sekitar subjek
facePresetstring"head-shoulders"Pembingkaian preset saat mode=face
sensitivitynumber (0-1)0.5Ambang deteksi wajah
thresholdinteger (0-255)30Ambang deteksi latar belakang (mode trim)
padToSquarebooleanfalseIsi hasil yang di-trim menjadi persegi
padColorstring"#ffffff"Warna latar belakang untuk padding persegi
targetSizeinteger-Ukuran target untuk keluaran ber-padding (piksel)
qualityinteger (1-100)-Kualitas keluaran

Nilai mode lawas attention dan content diterima dan dipetakan masing-masing ke subject dan trim.

Preset wajah:

PresetTerbaik untuk
closeupHeadshot
head-shouldersFoto profil
upper-bodyLinkedIn / formal
half-bodySeluruh tubuh bagian atas

Transkripsi Audio

Rute alat: transcribe-audio
Model: faster-whisper

Mengubah ucapan menjadi teks. Mendukung format keluaran teks polos, SRT, dan VTT.

ParameterTipeDefaultDeskripsi
languagestring"auto"Bahasa: auto, en, de, fr, es, zh, ja, ko, id, th, vi
outputFormat"txt" | "srt" | "vtt""txt"Format keluaran

Subtitle Otomatis

Rute alat: auto-subtitles
Model: faster-whisper (mengekstrak audio dari video, lalu mentranskripsi)

Menghasilkan berkas subtitle dari trek audio sebuah video.

ParameterTipeDefaultDeskripsi
languagestring"auto"Bahasa: auto, en, de, fr, es, zh, ja, ko, id, th, vi
format"srt" | "vtt""srt"Format subtitle keluaran

Perbaikan Transparansi PNG

Rute alat: transparency-fixer
Model: BiRefNet HR-matting (resolusi 2048x2048)

Memperbaiki PNG "transparan palsu" di mana latar belakang telah dihapus tetapi meninggalkan fringing, halo, atau artefak semi-transparan. Menggunakan model matting resolusi tinggi BiRefNet untuk menghasilkan kanal alpha yang bersih, lalu menerapkan pemrosesan defringe yang dapat dikonfigurasi untuk menghilangkan kontaminasi warna di sepanjang tepi.

Rantai fallback OOM: Jika BiRefNet HR-matting melampaui memori yang tersedia, alat secara otomatis beralih ke birefnet-general, lalu ke u2net.

ParameterTipeDefaultDeskripsi
defringenumber (0-100)30Kekuatan defringe tepi untuk menghilangkan kontaminasi warna
outputFormat"png" | "webp""png"Format gambar keluaran
removeWatermarkbooleanfalseTerapkan pra-pemrosesan penghapusan watermark (filter median)
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"}'

Alat dengan Kemampuan AI Opsional

Alat berikut bukan alat sidecar Python tetapi memakai fitur AI saat opsi tertentu diaktifkan.

Peningkatan Gambar

Rute alat: image-enhancement
Mesin: Berbasis analisis (histogram dan statistik Sharp)

Menganalisis gambar dan menerapkan koreksi otomatis untuk eksposur, kontras, white balance, saturasi, ketajaman, dan derau. Mendukung mode spesifik-adegan.

ParameterTipeDefaultDeskripsi
mode"auto" | "portrait" | "landscape" | "low-light" | "food" | "document""auto"Mode adegan untuk menyetel koreksi
intensitynumber (0-100)50Kekuatan koreksi keseluruhan
corrections.exposurebooleantrueTerapkan koreksi eksposur
corrections.contrastbooleantrueTerapkan koreksi kontras
corrections.whiteBalancebooleantrueTerapkan koreksi white balance
corrections.saturationbooleantrueTerapkan koreksi saturasi
corrections.sharpnessbooleantrueTerapkan koreksi ketajaman
corrections.denoisebooleantrueTerapkan denoising
deepEnhancebooleanfalseAktifkan penghapusan derau AI via SCUNet (memerlukan bundel upscale-enhance)

Endpoint analisis tambahan tersedia di POST /api/v1/tools/image/image-enhancement/analyze yang mengembalikan koreksi yang terdeteksi tanpa menerapkannya.

Ubah Ukuran Sadar-Konten (Seam Carving)

Rute alat: content-aware-resize
Mesin: biner Go caire (bukan Python - tidak ada manfaat GPU)

Mengubah ukuran gambar secara cerdas dengan menghapus seam berenergi rendah, mempertahankan konten penting.

ParameterTipeDefaultDeskripsi
widthnumber-Lebar target
heightnumber-Tinggi target
protectFacesbooleanfalseLindungi wilayah wajah yang terdeteksi (memerlukan bundel face-detection)
blurRadiusnumber (0-20)4Pra-blur untuk perhitungan energi
sobelThresholdnumber (1-20)2Ambang sensitivitas tepi
squarebooleanfalsePaksa keluaran persegi