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

Smart Crop

被写体認識、顔認識、またはトリムベースのスマートな切り抜きです。Sharpのattention/entropy戦略とAI顔検出を用いて、賢くフレーミングします。

API Endpoint

POST /api/v1/tools/image/smart-crop

処理: 非同期(202を返し、/api/v1/jobs/{jobId}/progressをSSEでポーリングしてステータスを取得)

モデルバンドル: face-detection(200〜300 MB)- faceモードでのみ必要

Parameters

ParameterTypeRequiredDefaultDescription
filefileYes-画像ファイル(multipart)
modestringNo"subject"切り抜きモード: subject, face, trim。(従来値のattentioncontentはそれぞれsubjecttrimに対応します)
strategystringNo"attention"subjectモードの戦略: attentionまたはentropy
widthintegerNo-目標の幅(ピクセル)
heightintegerNo-目標の高さ(ピクセル)
paddingintegerNo0被写体周囲の余白の割合(0〜50)
facePresetstringNo"head-shoulders"顔フレーミングのプリセット: closeup, head-shoulders, upper-body, half-body
sensitivitynumberNo0.5顔検出の感度(0〜1)
thresholdintegerNo30トリムモードでの背景検出のしきい値(0〜255)
padToSquarebooleanNofalseトリム結果を正方形にパディングします
padColorstringNo"#ffffff"パディングの背景色
targetSizeintegerNo-パディング済み出力の目標サイズ(ピクセル)
qualityintegerNo-出力品質(1〜100)

Example Request

bash
curl -X POST http://localhost:1349/api/v1/tools/image/smart-crop \
  -F "[email protected]" \
  -F 'settings={"mode":"face","width":1080,"height":1080,"facePreset":"head-shoulders"}'

Response

Initial Response (202 Accepted)

json
{
  "jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "async": true
}

Progress (SSE at /api/v1/jobs/{jobId}/progress)

event: progress
data: {"phase":"processing","percent":50}

Final Result (via SSE)

json
{
  "phase": "complete",
  "percent": 100,
  "result": {
    "jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "downloadUrl": "/api/v1/download/{jobId}/portrait_smartcrop.jpg",
    "originalSize": 500000,
    "processedSize": 320000
  }
}

Modes

Subject Mode

Sharpのattentionまたはentropy戦略を用いて、視覚的に最も興味深い領域を見つけ、その周囲を切り抜きます。

Face Mode

AIで顔を検出し、指定したfacePresetを用いて検出された顔の周囲を切り抜きます。顔が検出されない場合はsubjectモード(attention戦略)にフォールバックします。

Trim Mode

画像から均一な余白/背景を取り除きます。オプションで、指定した背景色と目標サイズで結果を正方形にパディングします。

Notes

  • このツールはexecutionHint: "long"を指定したcreateToolRouteファクトリを使用するため、SSE進捗とともに202を返します。
  • faceモードにはface-detectionモデルバンドル(200〜300 MB)が必要です。
  • subjectモードとtrimモードはAIモデルバンドルなしで動作します。
  • facePresetは、検出された顔をどれだけタイトにフレーミングするかを決定します。closeupが最もタイトで、half-bodyが最も広くなります。
  • 幅/高さが指定されない場合、デフォルトは1080x1080です。