Search K
เอกสารอ้างอิงเอนจิน AI
แพ็กเกจ @snapotter/ai เชื่อมโยง Node.js เข้ากับ Python sidecar แบบถาวร สำหรับการดำเนินการ ML ทั้งหมด กระบวนการ dispatcher จะคงอยู่ระหว่างคำขอเพื่อประสิทธิภาพการเริ่มต้นแบบ warm-start ที่รวดเร็ว NVIDIA CUDA จะถูกตรวจจับโดยอัตโนมัติเมื่อเริ่มต้นและใช้งานเมื่อพร้อมใช้งาน มิฉะนั้นเครื่องมือ AI จะทำงานบน CPU
การเร่งความเร็ว iGPU ของ Intel/AMD ผ่าน VA-API, Quick Sync หรือ OpenCL ยังไม่รองรับสำหรับการอนุมาน AI ในปัจจุบัน การแมป /dev/dri เข้าไปในคอนเทนเนอร์ไม่ได้เร่งความเร็วเครื่องมือ Python sidecar เหล่านี้ เว้นแต่จะมี NVIDIA GPU ที่รองรับ CUDA พร้อมใช้งาน
เครื่องมือ AI แบบ Python sidecar จำนวน 19 รายการครอบคลุมสี่โมดาลิตี (ภาพ เสียง วิดีโอ เอกสาร) พร้อมด้วยเครื่องมืออีก 2 รายการที่มีความสามารถ AI เสริม โมเดลทั้งหมดทำงานในเครื่อง ไม่ต้องใช้อินเทอร์เน็ตหลังจากดาวน์โหลดโมเดลครั้งแรก
สถาปัตยกรรม
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)โปรไฟล์ dispatcher แบบ "docs" ที่แยกต่างหากจะแทนที่รายการอนุญาต AI ด้วยสคริปต์ประมวลผลเอกสาร (doc_pagecount, doc_health, doc_flatten, doc_redact, doc_text, doc_to_word, doc_metadata, doc_html_pdf) และข้ามการอิมพอร์ต ML ขนาดใหญ่
เวลาหมดเวลา: ค่าเริ่มต้น 300 วินาที OCR และการลบพื้นหลัง BiRefNet ได้ 600 วินาที
ชุดฟีเจอร์ (Feature Bundles)
โมเดล AI ถูกจัดแพ็กเกจตามชุด dependency ที่ใช้ร่วมกัน ไม่ใช่หนึ่งไฟล์เก็บถาวรต่อหนึ่งเครื่องมือ ชุดฟีเจอร์หนึ่งชุดสามารถเปิดใช้งานเครื่องมือได้หลายรายการเมื่อเครื่องมือเหล่านั้นใช้ตระกูลโมเดล, Python wheel หรือไลบรารีเนทีฟเดียวกัน วิธีนี้ทำให้ Docker image สำหรับรีลีสมีขนาดเล็กลงและหลีกเลี่ยงการเก็บสำเนาซ้ำของโมเดล background matting, การตรวจจับใบหน้า, OCR, การกู้คืน และโมเดลเสียงพูดเดียวกัน
Docker image มาพร้อมกับแอปพลิเคชันบวกกับรันไทม์ทั่วไป ไฟล์เก็บถาวรของโมเดลขนาดใหญ่จะถูกดาวน์โหลดตามความต้องการลงในโวลุ่ม /data/ai แบบถาวร แล้วนำกลับมาใช้ซ้ำโดยทุกเครื่องมือที่ต้องการ หากติดตั้งชุดฟีเจอร์แล้วเนื่องจากมีเครื่องมืออื่นต้องการใช้ การเปิดใช้งานเครื่องมือใหม่ที่ต้องพึ่งพาชุดนั้นจะไม่ดาวน์โหลดชุดฟีเจอร์นั้นซ้ำอีก
เครื่องมือ AI แต่ละรายการต้องมีชุดฟีเจอร์ตั้งแต่หนึ่งชุดขึ้นไปก่อนจึงจะทำงานได้ UI ของผู้ดูแลระบบติดตั้งตามเครื่องมือผ่าน POST /api/v1/admin/tools/:toolId/features/install ซึ่งจะแยกรายการชุดฟีเจอร์ทั้งหมด ข้ามชุดที่ติดตั้งแล้ว และจัดคิวเฉพาะการดาวน์โหลดที่ขาดหายไปเท่านั้น ตัวอย่างเช่น การเปิดใช้งาน Passport Photo บนอินสแตนซ์ใหม่จะจัดคิว background-removal และ face-detection แต่การเปิดใช้งานหลังจากติดตั้ง Background Removal แล้วจะจัดคิวเฉพาะ face-detection เท่านั้น
| ชุดฟีเจอร์ | ขนาด | กลุ่ม dependency ที่ใช้ร่วมกัน | เครื่องมือที่ใช้ |
|---|---|---|---|
background-removal | 4-5 GB | rembg / BiRefNet background matting | remove-background, passport-photo, transparency-fixer, background-replace, blur-background |
face-detection | 200-300 MB | การตรวจจับใบหน้าและจุดสังเกต MediaPipe | blur-faces, red-eye-removal, smart-crop |
object-eraser-colorize | 1-2 GB | LaMa inpainting/outpainting และ DDColor | erase-object, colorize, ai-canvas-expand |
upscale-enhance | 5-6 GB | RealESRGAN, GFPGAN / CodeFormer, denoising | upscale, enhance-faces, noise-removal |
photo-restoration | 4-5 GB | ไปป์ไลน์ซ่อมรอยขีดข่วนและกู้คืน | restore-photo |
ocr | 5-6 GB | สแตก PaddleOCR / Tesseract OCR | ocr, ocr-pdf |
transcription | ~600 MB | โมเดลแปลงเสียงเป็นข้อความ faster-whisper | transcribe-audio, auto-subtitles |
เครื่องมือที่มี dependency ข้ามชุดฟีเจอร์:
| เครื่องมือ | ชุดฟีเจอร์ที่ต้องใช้ | เหตุผล |
|---|---|---|
passport-photo | background-removal, face-detection | ลบพื้นหลัง แล้วใช้จุดสังเกตใบหน้าจัดกรอบการครอปให้เป็นไปตามกฎของรูปหนังสือเดินทางและรูปบัตรประจำตัว |
enhance-faces | upscale-enhance, face-detection | ตรวจจับใบหน้าก่อนรันการปรับปรุงด้วย GFPGAN หรือ CodeFormer บนบริเวณใบหน้าที่เลือก |
เครื่องมือจะพร้อมใช้งานเฉพาะเมื่อติดตั้งชุดฟีเจอร์ที่จำเป็นครบทุกชุดแล้ว การติดตั้งบางส่วนถือว่าใช้ได้และจัดการแบบเพิ่มทีละส่วน ชุดที่ติดตั้งแล้วจะถูกนำกลับมาใช้ซ้ำ ชุดที่ขาดหายไปจะแสดงเป็นการดาวน์โหลด และการติดตั้งที่จัดคิวไว้จะทำงานทีละรายการเพื่อไม่ให้มีการแก้ไขสภาพแวดล้อม Python ที่ใช้ร่วมกันพร้อมกัน
การลบพื้นหลัง
เส้นทางเครื่องมือ: remove-background
โมเดล: rembg พร้อม BiRefNet (ค่าเริ่มต้น) หรือรุ่นย่อย U2-Net
| พารามิเตอร์ | ประเภท | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
model | string | - | รุ่นย่อยของโมเดล (การแทนที่แบบเสริม) |
backgroundType | string | "transparent" | หนึ่งใน: transparent, color, gradient, blur, image |
backgroundColor | string | - | สีเลขฐานสิบหกสำหรับพื้นหลังสีทึบ |
gradientColor1 | string | - | สีไล่ระดับสีแรก |
gradientColor2 | string | - | สีไล่ระดับสีที่สอง |
gradientAngle | number | - | มุมไล่ระดับสีเป็นองศา |
blurEnabled | boolean | - | เปิดใช้งานเอฟเฟกต์เบลอพื้นหลัง |
blurIntensity | number (0-100) | - | ความเข้มของการเบลอ |
shadowEnabled | boolean | - | เปิดใช้งานเงาตกกระทบบนวัตถุ |
shadowOpacity | number (0-100) | - | ความทึบของเงา |
outputFormat | string | - | รูปแบบเอาต์พุต: png, webp หรือ avif |
edgeRefine | integer (0-3) | - | ระดับการปรับแต่งขอบ |
decontaminate | boolean | - | ลบสีที่ซึมออกจากขอบ |
แทนที่พื้นหลัง
เส้นทางเครื่องมือ: background-replace
โมเดล: rembg / BiRefNet (ใช้ร่วมกับ remove-background)
ลบพื้นหลังและแทนที่ด้วยสีทึบหรือสีไล่ระดับ
| พารามิเตอร์ | ประเภท | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
backgroundType | "color" | "gradient" | "color" | โหมดพื้นหลัง |
color | string | "#ffffff" | สีเลขฐานสิบหกของพื้นหลัง (เมื่อ backgroundType เป็น color) |
gradientColor1 | string | - | สีเลขฐานสิบหกไล่ระดับสีแรก |
gradientColor2 | string | - | สีเลขฐานสิบหกไล่ระดับสีที่สอง |
gradientAngle | integer (0-360) | 180 | มุมไล่ระดับสีเป็นองศา |
feather | integer (0-20) | 0 | รัศมีการเกลี่ยขอบ |
format | "png" | "webp" | "png" | รูปแบบเอาต์พุต |
เบลอพื้นหลัง
เส้นทางเครื่องมือ: blur-background
โมเดล: rembg / BiRefNet (ใช้ร่วมกับ remove-background)
เบลอพื้นหลังในขณะที่ยังคงความคมชัดของวัตถุ
| พารามิเตอร์ | ประเภท | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
intensity | integer (1-100) | 50 | ความเข้มของการเบลอ |
feather | integer (0-20) | 0 | รัศมีการเกลี่ยขอบ |
format | "png" | "webp" | "png" | รูปแบบเอาต์พุต |
การขยายภาพ
เส้นทางเครื่องมือ: upscale
โมเดล: RealESRGAN (พร้อม Lanczos สำรองเมื่อไม่พร้อมใช้งาน)
| พารามิเตอร์ | ประเภท | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
scale | number | 2 | ตัวคูณการขยาย |
model | string | "auto" | รุ่นย่อยของโมเดล |
faceEnhance | boolean | false | ใช้รอบการปรับปรุงใบหน้า GFPGAN |
denoise | number | 0 | ความแรงในการลดสัญญาณรบกวน |
format | string | "auto" | การแทนที่รูปแบบเอาต์พุต |
quality | number | 95 | คุณภาพเอาต์พุต (1-100) |
OCR / การแยกข้อความ
เส้นทางเครื่องมือ: ocr
โมเดล: Tesseract (เร็ว), PaddleOCR PP-OCRv5 (สมดุล), PaddleOCR-VL 1.5 (ดีที่สุด)
| พารามิเตอร์ | ประเภท | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
quality | "fast" | "balanced" | "best" | "balanced" | ระดับการประมวลผล |
language | string | "auto" | ภาษา: auto, en, de, fr, es, zh, ja, ko |
enhance | boolean | true | ประมวลผลภาพล่วงหน้าเพื่อเพิ่มความแม่นยำของ OCR |
engine | string | - | เลิกใช้แล้ว แมป tesseract เป็น fast, paddleocr เป็น balanced |
ส่งคืนผลลัพธ์ที่มีโครงสร้างพร้อมกล่องขอบเขต คะแนนความเชื่อมั่น และบล็อกข้อความที่แยกออกมา
PDF OCR
เส้นทางเครื่องมือ: ocr-pdf
โมเดล: ระบบระดับเดียวกับ OCR ภาพ
แยกข้อความจากเอกสาร PDF ที่สแกนโดยใช้ OCR ที่ขับเคลื่อนด้วย AI ทีละหน้า
| พารามิเตอร์ | ประเภท | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
quality | "fast" | "balanced" | "best" | "balanced" | ระดับการประมวลผล |
language | string | "auto" | ภาษา: auto, en, de, fr, es, zh, ja, ko |
pages | string | "all" | การเลือกหน้า: "all", "1-3", "1,3,5" |
เบลอใบหน้า / PII
เส้นทางเครื่องมือ: blur-faces
โมเดล: การตรวจจับใบหน้า MediaPipe
| พารามิเตอร์ | ประเภท | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
blurRadius | number (1-100) | 30 | รัศมีการเบลอแบบเกาส์เซียน |
sensitivity | number (0-1) | 0.5 | เกณฑ์ความเชื่อมั่นในการตรวจจับ |
การปรับปรุงใบหน้า
เส้นทางเครื่องมือ: enhance-faces
โมเดล: GFPGAN, CodeFormer
| พารามิเตอร์ | ประเภท | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
model | "auto" | "gfpgan" | "codeformer" | "auto" | โมเดลการปรับปรุง |
strength | number (0-1) | 0.8 | ความแรงของการปรับปรุง |
sensitivity | number (0-1) | 0.5 | เกณฑ์การตรวจจับใบหน้า |
onlyCenterFace | boolean | false | ปรับปรุงเฉพาะใบหน้าที่อยู่กึ่งกลางที่สุด |
การลงสีด้วย AI
เส้นทางเครื่องมือ: colorize
โมเดล: DDColor (พร้อม OpenCV DNN สำรอง)
แปลงภาพถ่ายขาวดำหรือโทนสีเทาเป็นภาพสีเต็มรูปแบบ
| พารามิเตอร์ | ประเภท | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
intensity | number (0-1) | 1.0 | ความแรงของความอิ่มตัวของสี |
model | "auto" | "ddcolor" | "opencv" | "auto" | รุ่นย่อยของโมเดล |
การลบสัญญาณรบกวน
เส้นทางเครื่องมือ: noise-removal
โมเดล: SCUNet (ไปป์ไลน์ลดสัญญาณรบกวนแบบหลายระดับ)
| พารามิเตอร์ | ประเภท | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
tier | "quick" | "balanced" | "quality" | "maximum" | "balanced" | ระดับการประมวลผล |
strength | number (0-100) | 50 | ความแรงในการลดสัญญาณรบกวน |
detailPreservation | number (0-100) | 50 | จำนวนรายละเอียดที่จะเก็บรักษา ยิ่งสูงยิ่งเก็บพื้นผิวไว้มาก |
colorNoise | number (0-100) | 30 | ความแรงในการลดสัญญาณรบกวนสี |
format | string | "original" | รูปแบบเอาต์พุต: original, png, jpeg, webp, avif, jxl |
quality | number (1-100) | 90 | คุณภาพการเข้ารหัสเอาต์พุต |
การลบตาแดง
เส้นทางเครื่องมือ: red-eye-removal
ตรวจจับจุดสังเกตใบหน้า ระบุตำแหน่งบริเวณดวงตา และแก้ไขการอิ่มตัวเกินของช่องสีแดง
| พารามิเตอร์ | ประเภท | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
sensitivity | number (0-100) | 50 | เกณฑ์การตรวจจับพิกเซลสีแดง |
strength | number (0-100) | 70 | ความแรงในการแก้ไข |
format | string | - | การแทนที่รูปแบบเอาต์พุต (เสริม) |
quality | number (1-100) | 90 | คุณภาพเอาต์พุต |
การกู้คืนภาพถ่าย
เส้นทางเครื่องมือ: restore-photo
ไปป์ไลน์หลายขั้นตอนสำหรับภาพถ่ายเก่าหรือเสียหาย: การตรวจจับและซ่อมรอยขีดข่วน/รอยฉีก การปรับปรุงใบหน้า การลดสัญญาณรบกวน และการลงสีเสริม
| พารามิเตอร์ | ประเภท | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
scratchRemoval | boolean | true | ตรวจจับและซ่อมรอยขีดข่วน รอยฉีก |
faceEnhancement | boolean | true | ใช้รอบการปรับปรุงใบหน้า |
fidelity | number (0-1) | 0.7 | ความแรงในการปรับปรุงใบหน้า (สูงกว่า = อนุรักษ์นิยมมากกว่า) |
denoise | boolean | true | ใช้รอบการลดสัญญาณรบกวน |
denoiseStrength | number (0-100) | 25 | ความแรงในการลดสัญญาณรบกวน |
colorize | boolean | false | ลงสีหลังการกู้คืน |
colorizeStrength | number (0-100) | 85 | ความเข้มของการลงสี |
รูปถ่ายหนังสือเดินทาง
เส้นทางเครื่องมือ: passport-photo
โมเดล: จุดสังเกตใบหน้า MediaPipe + การลบพื้นหลัง BiRefNet
เวิร์กโฟลว์สองเฟส: วิเคราะห์ (ตรวจจับใบหน้า + ลบพื้นหลัง) จากนั้นสร้าง (ครอป ปรับขนาด เรียงเป็นแผ่น) รองรับกว่า 37 ประเทศใน 6 ภูมิภาค
เฟส 1: วิเคราะห์
POST /api/v1/tools/image/passport-photo/analyze
รับไฟล์ภาพ (multipart) ส่งคืนข้อมูลจุดสังเกตใบหน้า ตัวอย่างแบบ base64 และขนาดของภาพ
เฟส 2: สร้าง
POST /api/v1/tools/image/passport-photo/generate
รับ JSON body ที่มีผลลัพธ์จากเฟส 1 พร้อมด้วยการตั้งค่าการสร้าง:
| พารามิเตอร์ | ประเภท | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
jobId | string | (จำเป็น) | Job ID จากเฟส 1 |
filename | string | (จำเป็น) | ชื่อไฟล์ต้นฉบับจากเฟส 1 |
countryCode | string | (จำเป็น) | รหัสประเทศ ISO (เช่น US, GB, IN) |
documentType | string | "passport" | ประเภทเอกสาร |
bgColor | string | "#FFFFFF" | สีเลขฐานสิบหกของพื้นหลัง |
printLayout | string | "none" | เลย์เอาต์การพิมพ์: none, 4x6, a4, letter |
maxFileSizeKb | number | 0 | ขนาดไฟล์สูงสุดเป็น KB (0 = ไม่จำกัด) |
dpi | number (72-1200) | 300 | DPI เอาต์พุต |
customWidthMm | number | - | ความกว้างกำหนดเองเป็นมิลลิเมตร (แทนที่ข้อกำหนดของประเทศ) |
customHeightMm | number | - | ความสูงกำหนดเองเป็นมิลลิเมตร (แทนที่ข้อกำหนดของประเทศ) |
zoom | number (0.5-3) | 1 | ตัวคูณการซูม |
adjustX | number | 0 | การปรับตำแหน่งแนวนอน |
adjustY | number | 0 | การปรับตำแหน่งแนวตั้ง |
landmarks | object | (จำเป็น) | จุดสังเกตจากเฟส 1 |
imageWidth | number | (จำเป็น) | ความกว้างของภาพจากเฟส 1 |
imageHeight | number | (จำเป็น) | ความสูงของภาพจากเฟส 1 |
การลบวัตถุ (Inpainting)
เส้นทางเครื่องมือ: erase-object
โมเดล: LaMa ผ่าน ONNX Runtime
มาสก์จะถูกส่งเป็น ส่วนไฟล์ที่สอง (fieldname mask) ไม่ใช่แบบ base64 พิกเซลสีขาวในมาสก์บ่งชี้บริเวณที่จะลบ การตั้งค่า format และ quality จะถูกส่งเป็นฟิลด์ฟอร์มระดับบนสุด
| พารามิเตอร์ | ประเภท | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
file | file | (จำเป็น) | ภาพต้นฉบับ (multipart) |
mask | file | (จำเป็น) | ภาพมาสก์ (multipart, fieldname mask, สีขาว = ลบ) |
format | string | "auto" | รูปแบบเอาต์พุต: auto, png, jpg, jpeg, webp, tiff, gif, avif, heic, heif, jxl |
quality | integer (1-100) | 95 | คุณภาพเอาต์พุต |
เร่งความเร็วด้วย CUDA เมื่อมี NVIDIA GPU พร้อมใช้งาน
AI Canvas Expand
เส้นทางเครื่องมือ: ai-canvas-expand
โมเดล: outpainting ที่ใช้ LaMa
ขยายพื้นที่แคนวาสของภาพในทิศทางใดก็ได้ และเติมบริเวณใหม่ด้วยเนื้อหาที่สร้างโดย AI ให้เข้ากับภาพที่มีอยู่
| พารามิเตอร์ | ประเภท | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
extendTop | integer | 0 | จำนวนพิกเซลที่จะขยายด้านบน |
extendRight | integer | 0 | จำนวนพิกเซลที่จะขยายด้านขวา |
extendBottom | integer | 0 | จำนวนพิกเซลที่จะขยายด้านล่าง |
extendLeft | integer | 0 | จำนวนพิกเซลที่จะขยายด้านซ้าย |
tier | "fast" | "balanced" | "high" | "balanced" | ระดับคุณภาพ |
format | string | "auto" | รูปแบบเอาต์พุต: auto, png, jpg, jpeg, webp, tiff, gif, avif, heic, heif, jxl |
quality | integer (1-100) | 95 | คุณภาพเอาต์พุต |
อย่างน้อยหนึ่งทิศทางในการขยายต้องมากกว่า 0
Smart Crop
เส้นทางเครื่องมือ: smart-crop
โมเดล: การตรวจจับใบหน้า MediaPipe (โหมดใบหน้าเท่านั้น)
| พารามิเตอร์ | ประเภท | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
mode | string | "subject" | กลยุทธ์การครอป: subject, face, trim |
strategy | "attention" | "entropy" | "attention" | กลยุทธ์สำหรับโหมดวัตถุ |
width | integer | - | ความกว้างเอาต์พุต |
height | integer | - | ความสูงเอาต์พุต |
padding | integer (0-50) | 0 | เปอร์เซ็นต์ระยะขอบรอบวัตถุ |
facePreset | string | "head-shoulders" | การจัดกรอบสำเร็จรูปเมื่อ mode=face |
sensitivity | number (0-1) | 0.5 | เกณฑ์การตรวจจับใบหน้า |
threshold | integer (0-255) | 30 | เกณฑ์การตรวจจับพื้นหลัง (โหมด trim) |
padToSquare | boolean | false | เพิ่มระยะขอบผลลัพธ์ที่ตัดแล้วให้เป็นสี่เหลี่ยมจัตุรัส |
padColor | string | "#ffffff" | สีพื้นหลังสำหรับการเพิ่มระยะขอบแบบสี่เหลี่ยมจัตุรัส |
targetSize | integer | - | ขนาดเป้าหมายสำหรับเอาต์พุตที่เพิ่มระยะขอบ (พิกเซล) |
quality | integer (1-100) | - | คุณภาพเอาต์พุต |
ค่า mode แบบเดิม attention และ content ยังคงรับได้และแมปไปเป็น subject และ trim ตามลำดับ
การจัดกรอบใบหน้าสำเร็จรูป:
| สำเร็จรูป | เหมาะสำหรับ |
|---|---|
closeup | ภาพศีรษะ |
head-shoulders | ภาพโปรไฟล์ |
upper-body | LinkedIn / ทางการ |
half-body | ครึ่งตัวบนเต็มตัว |
ถอดเสียงเป็นข้อความ
เส้นทางเครื่องมือ: transcribe-audio
โมเดล: faster-whisper
แปลงเสียงพูดเป็นข้อความ รองรับรูปแบบเอาต์พุตข้อความธรรมดา, SRT และ VTT
| พารามิเตอร์ | ประเภท | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
language | string | "auto" | ภาษา: auto, en, de, fr, es, zh, ja, ko, id, th, vi |
outputFormat | "txt" | "srt" | "vtt" | "txt" | รูปแบบเอาต์พุต |
คำบรรยายอัตโนมัติ
เส้นทางเครื่องมือ: auto-subtitles
โมเดล: faster-whisper (แยกเสียงจากวิดีโอ แล้วถอดเสียงเป็นข้อความ)
สร้างไฟล์คำบรรยายจากแทร็กเสียงของวิดีโอ
| พารามิเตอร์ | ประเภท | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
language | string | "auto" | ภาษา: auto, en, de, fr, es, zh, ja, ko, id, th, vi |
format | "srt" | "vtt" | "srt" | รูปแบบคำบรรยายเอาต์พุต |
เครื่องมือแก้ไขความโปร่งใส PNG
เส้นทางเครื่องมือ: transparency-fixer
โมเดล: BiRefNet HR-matting (ความละเอียด 2048x2048)
แก้ไขไฟล์ PNG แบบ "โปร่งใสปลอม" ที่พื้นหลังถูกลบออกไปแล้วแต่ทิ้งขอบซ่อน, รัศมีเงา หรือสิ่งแปลกปลอมกึ่งโปร่งใสไว้ ใช้โมเดล matting ความละเอียดสูงของ BiRefNet เพื่อสร้างช่องอัลฟาที่สะอาด แล้วใช้การประมวลผล defringe ที่กำหนดค่าได้เพื่อลบการปนเปื้อนของสีตามขอบ
สายสำรองกรณี OOM: หาก BiRefNet HR-matting ใช้หน่วยความจำเกินที่มี เครื่องมือจะถอยกลับไปใช้ birefnet-general โดยอัตโนมัติ จากนั้นไปที่ u2net
| พารามิเตอร์ | ประเภท | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
defringe | number (0-100) | 30 | ความแรงของ defringe ขอบเพื่อลบการปนเปื้อนของสี |
outputFormat | "png" | "webp" | "png" | รูปแบบภาพเอาต์พุต |
removeWatermark | boolean | false | ใช้การประมวลผลล่วงหน้าเพื่อลบลายน้ำ (median filter) |
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"}'เครื่องมือที่มีความสามารถ AI เสริม
เครื่องมือต่อไปนี้ไม่ใช่เครื่องมือ Python sidecar แต่ใช้ฟีเจอร์ AI เมื่อเปิดใช้งานตัวเลือกบางอย่าง
การปรับปรุงภาพ
เส้นทางเครื่องมือ: image-enhancement
เอนจิน: อิงการวิเคราะห์ (ฮิสโทแกรมและสถิติของ Sharp)
วิเคราะห์ภาพและใช้การแก้ไขอัตโนมัติสำหรับการเปิดรับแสง คอนทราสต์ สมดุลแสงขาว ความอิ่มตัวของสี ความคมชัด และสัญญาณรบกวน รองรับโหมดเฉพาะฉาก
| พารามิเตอร์ | ประเภท | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
mode | "auto" | "portrait" | "landscape" | "low-light" | "food" | "document" | "auto" | โหมดฉากสำหรับการปรับจูนการแก้ไข |
intensity | number (0-100) | 50 | ความแรงในการแก้ไขโดยรวม |
corrections.exposure | boolean | true | ใช้การแก้ไขการเปิดรับแสง |
corrections.contrast | boolean | true | ใช้การแก้ไขคอนทราสต์ |
corrections.whiteBalance | boolean | true | ใช้การแก้ไขสมดุลแสงขาว |
corrections.saturation | boolean | true | ใช้การแก้ไขความอิ่มตัวของสี |
corrections.sharpness | boolean | true | ใช้การแก้ไขความคมชัด |
corrections.denoise | boolean | true | ใช้การลดสัญญาณรบกวน |
deepEnhance | boolean | false | เปิดใช้งานการลบสัญญาณรบกวนด้วย AI ผ่าน SCUNet (ต้องใช้ชุดฟีเจอร์ upscale-enhance) |
มีปลายทางการวิเคราะห์เพิ่มเติมที่ POST /api/v1/tools/image/image-enhancement/analyze ซึ่งส่งคืนการแก้ไขที่ตรวจพบโดยไม่นำมาใช้จริง
การปรับขนาดตามเนื้อหา (Seam Carving)
เส้นทางเครื่องมือ: content-aware-resize
เอนจิน: ไบนารี Go caire (ไม่ใช่ Python จึงไม่ได้ประโยชน์จาก GPU)
ปรับขนาดภาพอย่างชาญฉลาดด้วยการลบ seam ที่มีพลังงานต่ำ โดยรักษาเนื้อหาสำคัญไว้
| พารามิเตอร์ | ประเภท | ค่าเริ่มต้น | คำอธิบาย |
|---|---|---|---|
width | number | - | ความกว้างเป้าหมาย |
height | number | - | ความสูงเป้าหมาย |
protectFaces | boolean | false | ปกป้องบริเวณใบหน้าที่ตรวจพบ (ต้องใช้ชุดฟีเจอร์ face-detection) |
blurRadius | number (0-20) | 4 | การเบลอล่วงหน้าสำหรับการคำนวณพลังงาน |
sobelThreshold | number (1-20) | 2 | เกณฑ์ความไวของขอบ |
square | boolean | false | บังคับเอาต์พุตเป็นสี่เหลี่ยมจัตุรัส |
