Files
SnapOtter/apps/docs/ja/api/ai.md
T
SnapOtterandGitHub 991c981529 fix: make OCR portable and reliable across AMD64 and ARM64 (#519)
* fix: make OCR portable and reliable

* fix: harden OCR installation portability

* fix: pin OCR partials across downloads

* fix: make OCR execution reliably asynchronous

* fix: harden OCR portability and docs routes

* fix: preserve decoder and docs safeguards
2026-07-15 03:34:24 +08:00

33 KiB
Raw Blame History

description, i18n_output_hash, i18n_source_hash, i18n_provenance
description i18n_output_hash i18n_source_hash i18n_provenance
すべてのローカル ML ツールを網羅した AI エンジンリファレンス。背景除去、アップスケーリング、OCR、顔検出、写真復元など。 aabfa7bf38f2 aa9a56cdddc7 human

AI エンジンリファレンス

@snapotter/ai パッケージは、ローカルの ML 操作のためにネイティブ ツールと Python ランタイムを調整します。 ほとんどの ML ツールは、高速ウォーム スタートのために永続的な Python sidecar を使用します。 OCR は意図的に分離されています。 fast はネイティブ Tesseract バイナリを呼び出します。 一方、balanced および best は、/data/ai/v3 の下でアクティブで不変の RapidOCR 世代に固定された専用の永続 JSONL dispatcher を使用します。 各リクエストは generation lease を保持します。 アップグレード中、SnapOtter はアクティブ化する前に候補に対して smoke test を実行し、新しい dispatcher にアトミックに切り替えてから、garbage collection の前に古い世代を排出します。

NVIDIA CUDA は自動検出され、それをサポートするランタイムによって使用されます。 OCR はすべてのホストで CPU を使用します。 NVIDIA GPU を搭載したシステムを含む、 このツールの CUDA とドライバーの結合を回避します。

VA-API、Quick Sync、OpenCL を介した Intel/AMD の iGPU アクセラレーションは、現時点では AI 推論に対応していません。/dev/dri をコンテナにマッピングしても、CUDA 対応の NVIDIA GPU が利用できない限り、これらの Python サイドカーツールは高速化されません。

4 つのモダリティ(画像、音声、動画、ドキュメント)にわたる 19 個の Python サイドカー AI ツールに加え、AI 機能をオプションで備えた 2 個のツールがあります。すべてのモデルはローカルで動作します。初回のモデルダウンロード後はインターネットは不要です。

::: info 韓国語 OCR の互換性 高速 OCR は autoendeesfrzhja に対応しますが、韓国語 (ko) には対応しません。韓国語には高精度 OCR パックと balanced または best が必要です。パックは公式 Linux amd64/arm64 コンテナで動作し、NVIDIA ホストでも OCR は CPU 上で実行されます。非対応システムでは明示的な互換性エラーを返し、暗黙に fast へ切り替えません。韓国語で fast または旧 tesseract エイリアスを指定すると、キュー投入前に FEATURE_INCOMPATIBLEfast-korean-unsupported で拒否されます。 :::

アーキテクチャ

Node.js Tool Route
      |
      v
 @snapotter/ai bridge.ts
      | (stdin/stdout JSON + stderr progress events)
      v
 +-- Native Tesseract + Ghostscript (fast image/PDF OCR)
 |
 +-- Isolated OCR runtime (persistent JSONL dispatcher)
 |     `-- RapidOCR + ONNX Runtime CPU + pinned PP-OCR models
 |
 `-- Python dispatcher (persistent process, "ai" profile)
      |
      |-- remove_bg.py        (rembg / BiRefNet)
      |-- upscale.py          (RealESRGAN)
      |-- inpaint.py          (LaMa ONNX)
      |-- outpaint.py         (LaMa canvas expansion)
      |-- 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)

別の「docs」ディスパッチャープロファイルは、AI 許可リストをドキュメント処理スクリプト(doc_pagecountdoc_healthdoc_flattendoc_redactdoc_textdoc_to_worddoc_metadatadoc_html_pdf)に置き換え、重い ML インポートをスキップします。

タイムアウト: デフォルトは 300 秒。OCR と BiRefNet 背景除去は 600 秒です。

フィーチャーバンドル

AI モデルは、ツールごとに 1 つのアーカイブとしてではなく、共有される依存関係スタックによってパッケージ化されています。フィーチャーバンドルは、同じモデルファミリー、Python ホイール、またはネイティブライブラリを使用するツールをまとめて有効化できます。これにより、リリース用の Docker イメージが小さく保たれ、同じ背景マッティング、顔検出、OCR、復元、音声モデルの重複コピーの保存を避けられます。

Docker イメージには、アプリケーションと共通ランタイムが同梱されています。大きなモデルアーカイブはオンデマンドで永続的な /data/ai ボリュームにダウンロードされ、それを必要とするすべてのツールで再利用されます。別のツールがすでに必要としたためにバンドルがインストール済みの場合、新たに依存するツールを有効化してもそのバンドルは再ダウンロードされません。

ほとんどの AI ツールは、実行する前に 1 つ以上の機能バンドルを必要とします。 管理 UI は、POST /api/v1/admin/tools/:toolId/features/install を介してツールによってこれらをインストールします。これにより、完全なバンドル リストが解決され、すでにインストールされているバンドルがスキップされ、不足しているダウンロードのみがキューに入れられます。 たとえば、新しいインスタンス キュー background-removal および face-detection でパスポート写真を有効にすると、 バックグラウンド削除がすでにインストールされている後に有効にすると、face-detection のみがキューに追加されます。 OCR は例外です。 fast パックは必要ありません。 UI または POST /api/v1/admin/features/ocr/install を通じて、オプションの正確なランタイムをインストールします。

バンドル サイズ 共有依存関係グループ 使用するツール
background-removal 4-5 GB rembg / BiRefNet 背景マッティング 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 インペインティング/アウトペインティングと DDColor erase-object, colorize, ai-canvas-expand
upscale-enhance 5-6 GB RealESRGAN、GFPGAN / CodeFormer、ノイズ除去 upscale, enhance-faces, noise-removal
photo-restoration 4-5 GB 傷の修復と復元パイプライン restore-photo
ocr ~208-234 MiB ダウンロード / ~409-488 MiB インストール済み オプションの RapidOCR 3.9.1、ONNX Runtime 1.20.1、および固定された PP-OCR モデル ocr、ocr-pdf (balanced および best のみ)
transcription ~600 MB faster-whisper 音声認識モデル transcribe-audio, auto-subtitles

複数バンドルにまたがる依存関係を持つツール:

ツール 必要なバンドル 理由
passport-photo background-removal, face-detection 背景を除去した後、顔のランドマークを使って、パスポートや ID 写真の規則に合わせてクロップを構図します。
enhance-faces upscale-enhance, face-detection 選択した顔の領域で GFPGAN または CodeFormer による補正を実行する前に、顔を検出します。

ツールは、OCR を除き、必要なバンドルがすべてインストールされている場合にのみ使用できます。その組み込みの fast 層は、オプションの OCR パックがなくても引き続き使用できます。 部分インストールは有効であり、段階的に処理されます。インストールされたバンドルは再利用され、不足しているバンドルはダウンロードとして表示され、キューに入れられたインストールは一度に 1 つずつ実行されるため、共有 Python 環境は同時に変更されません。

正確な OCR ランタイム インストール

正確な OCR パックは、公式 Linux amd64 または Linux arm64 コンテナー用のプラットフォーム固有のランタイムです。 amd64 ビルドは Python 3.12 を使用します。 arm64 ビルドは Python 3.11 を使用します。 どちらのビルドも ONNX Runtime の CPUExecutionProvider を介して RapidOCR を実行するため、同じパックが CPU のみおよび NVIDIA Docker ホストで動作します。 正確なランタイムには、少なくとも 4 GiB の有効メモリ (構成されたコンテナーの cgroup 制限、それ以外の場合はホスト メモリ) が必要です。 署名された互換性の最小値を下回るシステムは、ダウンロード前に拒否されます。 この要件は、組み込みの Fast OCR には適用されません。 Bare-metal ビルドは、libc および Python ABI を安全に推論できないため拒否されます。 ホストが Tesseract および Ghostscript を提供する場合、高速 OCR は引き続き利用可能です。

オプションのアーティファクトは、アーキテクチャに応じて、圧縮すると約 208 ~ 234 MiB、抽出すると約 409 ~ 488 MiB になります。 署名付きインデックスは、インストーラーによって強制された正確な圧縮バイト数と抽出バイト数をバインドします。 組み込みの Tesseract は、約 25 の MiB を公式イメージに追加し、/data/ai 内のファイルは必要ありません。

オンライン インストールでは、署名付きリリース インデックスと、現在のプラットフォームの正確なコンテンツ アドレス指定されたアーティファクトが取得されます。 SnapOtter は、新しい世代をアトミックにアクティブ化する前に、Ed25519 インデックス署名、アーティファクト サイズ、SHA-256 ダイジェスト、モデル ダイジェスト、パス、ファイル モード、およびステージングされた smoke test を検証します。 インストールが失敗すると、以前の正常な世代がアクティブなままになります。

エアギャップ インストールの場合は、index および archive という名前のマルチパート フィールドを使用して、リリースの ocr-runtime-index.json と一致する OCR ランタイム アーカイブの両方を POST /api/v1/admin/features/import にアップロードします。 オフライン インポートでは、オンライン インストールと同じ署名、ハッシュ、抽出、互換性、およびスモーク テスト チェックが適用されます。 信頼された署名付きインデックスのないアーカイブは拒否されます。


背景除去

ツールルート: remove-background
モデル: BiRefNet(デフォルト)または U2-Net バリアントを用いた rembg

パラメータ デフォルト 説明
model string - モデルバリアント(任意の上書き)
backgroundType string "transparent" 次のいずれか: transparent, color, gradient, blur, image
backgroundColor string - 単色背景の 16 進カラー
gradientColor1 string - グラデーションの 1 色目
gradientColor2 string - グラデーションの 2 色目
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 / BiRefNetremove-background と共有)

背景を除去し、単色またはグラデーションに置き換えます。

パラメータ デフォルト 説明
backgroundType "color" | "gradient" "color" 背景モード
color string "#ffffff" 背景の 16 進カラー(backgroundTypecolor の場合)
gradientColor1 string - グラデーションの 1 色目(16 進)
gradientColor2 string - グラデーションの 2 色目(16 進)
gradientAngle integer (0-360) 180 グラデーションの角度(度)
feather integer (0-20) 0 エッジのぼかし半径
format "png" | "webp" "png" 出力形式

背景をぼかす

ツールルート: blur-background
モデル: rembg / BiRefNetremove-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 (fast); RapidOCR と PP-OCRv6 小型モデル (balanced)。調整されたバリアント スコアリングを備えた PP-OCRv6 中モデル (best)

パラメータ デフォルト 説明
quality "fast" | "balanced" | "best" 動的 qualityengine を省略すると、SnapOtter は bestbalancedfast の順で利用可能な最上位の層を選びます。韓国語では fast を選択せず、best、次に balanced を使用し、どちらもなければ高精度ランタイムのインストールまたは互換性エラーを返します。
language string "auto" 言語: auto, en, de, fr, es, zh, ja, ko
enhance ブール値 ティアに依存 局所的なコントラストを改善します。高速ではそれを直接適用します。正確な階層は、調整されたスコアによって OCR が向上した場合にのみバリアントを保持します。デフォルトで最良の状態
engine - 非推奨の互換性エイリアス。 tesseractfast にマップし、従来の paddleocr 値を balanced にマップします。 PaddlePaddle はロードされません

抽出されたテキストと来歴メタデータを返します: エンジン、要求された品質と実際の品質、デバイス、プロバイダー、劣化状態、警告、および該当する場合は正確なランタイム/モデルのバージョン。 明示的な品質要求が別の層にフォー​​ルバックすることはありません。 balanced または best が使用できない場合、API は、fast をサイレントに実行する代わりに、FEATURE_NOT_INSTALLED または FEATURE_INCOMPATIBLE を返します。

PDF OCR

ツールルート: ocr-pdf
モデル: 画像 OCR と同じティアシステム

AI ベースの OCR を使用して、スキャンされた PDF ドキュメントからページごとにテキストを抽出します。

パラメータ デフォルト 説明
quality "fast" | "balanced" | "best" 動的 qualityengine を省略すると、SnapOtter は bestbalancedfast の順で利用可能な最上位の層を選びます。韓国語では fast を選択せず、best、次に balanced を使用し、どちらもなければ高精度ランタイムのインストールまたは互換性エラーを返します。
language string "auto" 言語: auto, en, de, fr, es, zh, ja, ko
pages string "all" ページ選択: "all", "1-3", "1,3,5"
enhance ブール値 ティアに依存 局所的なコントラストを改善します。高速ではそれを直接適用します。正確な階層は、調整されたスコアによって OCR が向上した場合にのみバリアントを保持します。デフォルトで最良の状態
engine - 非推奨の互換性エイリアス。 tesseractfast にマップし、従来の paddleocr 値を balanced にマップします。 PaddlePaddle はロードされません

同じダウングレードなしルールが PDF OCR にも適用されます。 PDF ページは認識前にラスタライズされ、1 つのリクエストで最大 50 ページを選択できます。

顔 / 個人情報のぼかし

ツールルート: 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
モデル: DDColorOpenCV 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 背景除去

2 フェーズのワークフロー: 分析(顔を検出 + 背景を除去)してから生成(クロップ、リサイズ、タイル配置)します。6 地域にわたる 37 か国以上に対応しています。

フェーズ 1: 分析

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

画像ファイル(マルチパート)を受け付けます。顔のランドマークデータ、base64 のプレビュー、画像の寸法を返します。

フェーズ 2: 生成

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

フェーズ 1 の結果に加えて生成設定を含む JSON ボディを受け付けます:

パラメータ デフォルト 説明
jobId string (必須) フェーズ 1 のジョブ ID
filename string (必須) フェーズ 1 の元のファイル名
countryCode string (必須) ISO 国コード(例: US, GB, IN
documentType string "passport" ドキュメントの種類
bgColor string "#FFFFFF" 背景色の 16 進
printLayout string "none" 印刷レイアウト: none, 4x6, a4, letter
maxFileSizeKb number 0 最大ファイルサイズ(KB、0 = 制限なし)
dpi number (72-1200) 300 出力 DPI
customWidthMm number - カスタム幅(mm、国別仕様を上書き)
customHeightMm number - カスタム高さ(mm、国別仕様を上書き)
zoom number (0.5-3) 1 ズーム倍率
adjustX number 0 水平方向の位置調整
adjustY number 0 垂直方向の位置調整
landmarks object (必須) フェーズ 1 のランドマーク
imageWidth number (必須) フェーズ 1 の画像幅
imageHeight number (必須) フェーズ 1 の画像高さ

オブジェクト消去(インペインティング)

ツールルート: erase-object
モデル: ONNX Runtime を介した LaMa

マスクは base64 ではなく、2 つ目のファイルパート(フィールド名 mask)として送信されます。マスク内の白いピクセルが消去する領域を示します。formatquality の設定はトップレベルのフォームフィールドとして送信されます。

パラメータ デフォルト 説明
file file (必須) ソース画像(マルチパート)
mask file (必須) マスク画像(マルチパート、フィールド名 mask、白 = 消去)
format string "auto" 出力形式: auto, png, jpg, jpeg, webp, tiff, gif, avif, heic, heif, jxl
quality integer (1-100) 95 出力品質

NVIDIA GPU が利用可能な場合は CUDA で高速化されます。

AI キャンバス拡張

ツールルート: ai-canvas-expand
モデル: 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 出力品質

少なくとも 1 つの拡張方向が 0 より大きくなければなりません。

スマートクロップ

ツールルート: smart-crop
モデル: MediaPipe 顔検出(face モードのみ)

パラメータ デフォルト 説明
mode string "subject" クロップ戦略: subject, face, trim
strategy "attention" | "entropy" "attention" subject モードの戦略
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) - 出力品質

レガシーの modeattentioncontent は受け付けられ、それぞれ subjecttrim にマッピングされます。

顔プリセット:

プリセット 最適な用途
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 マッティング(2048x2048 解像度)

背景が除去されたものの、フリンジ、ハロー、半透明のアーティファクトが残った「見せかけの透過」PNG を修正します。BiRefNet の高解像度マッティングモデルを使用してクリーンなアルファチャンネルを生成し、その後、設定可能なデフリンジ処理を適用してエッジに沿った色の混入を除去します。

OOM フォールバックチェーン: BiRefNet HR マッティングが利用可能なメモリを超過した場合、ツールは自動的に birefnet-general にフォールバックし、さらに u2net にフォールバックします。

パラメータ デフォルト 説明
defringe number (0-100) 30 色の混入を除去するエッジデフリンジの強度
outputFormat "png" | "webp" "png" 出力画像形式
removeWatermark boolean false ウォーターマーク除去の前処理(メディアンフィルター)を適用
curl -X POST http://localhost:1349/api/v1/tools/image/transparency-fixer \
  -H "Authorization: Bearer <token>" \
  -F "file=@fake-transparent.png" \
  -F 'settings={"defringe":30,"outputFormat":"png"}'

AI 機能をオプションで備えたツール

以下のツールは Python サイドカーツールではありませんが、特定のオプションが有効な場合に 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 SCUNet による AI ノイズ除去を有効化(upscale-enhance バンドルが必要)

適用せずに検出された補正内容を返す追加の解析エンドポイントが POST /api/v1/tools/image/image-enhancement/analyze で利用できます。

コンテンツを考慮したリサイズ(シームカービング)

ツールルート: content-aware-resize
エンジン: Go の caire バイナリ(Python ではないため GPU の恩恵なし)

低エネルギーのシームを除去することで画像をインテリジェントにリサイズし、重要なコンテンツを保持します。

パラメータ デフォルト 説明
width number - 目標幅
height number - 目標高さ
protectFaces boolean false 検出された顔の領域を保護(face-detection バンドルが必要)
blurRadius number (0-20) 4 エネルギー計算のための事前ぼかし
sobelThreshold number (1-20) 2 エッジ感度のしきい値
square boolean false 正方形出力を強制