guides

画像モデレーション:公開前にユーザーのアップロードを確認する方法

PoYo Team
2 min read
Share:

Poyoの無料画像モデレーションAPIを使用すると、プロフィール写真、コミュニティ画像、商品アップロードを評価し、公開方法を決定する前に確認できます。Omni Moderationでは、1枚の画像だけを確認することも、同じリクエストにキャプションを含めることもできます。

まずPlaygroundで独自のサンプルを使い、カテゴリーフラグとスコアを確認します。次に、Poyoのタスク追跡と任意の完了コールバックを使用して、その結果をアプリケーションの公開ルールやレビュー用ツールに接続します。

このガイドでは、対応している画像カテゴリー、アップロードの準備方法、送信から公開または追加レビューまでの明確な流れを構築する方法を説明します。まず1つのアップロード箇所にこのプロセスを適用し、チームが経験を積むにつれて対象を広げることができます。

画像モデレーションがプロダクトで行うべきこと

まず、画像が表示される場所と、それを見る人を明確にします。

アバターはすべてのコメントの横に表示される可能性があります。コミュニティ写真は公開フィードに表示されることがあります。商品画像は、視覚的な安全性以外のチェックも必要な商品リストの横に表示される場合があります。それぞれの表示場所では、公開前に異なるルールや異なる慎重さが求められる可能性があります。

たとえば、商品はディスカッション内では非グラフィックな歴史的画像を許可しても、プロフィール写真としては拒否する場合があります。画像自体は変わっていません。変わったのは、その配置場所とプロダクトのルールです。

3つの結果について何が起こるべきかを書き出します。画像がルールを満たす場合、意味が不明確な場合、明確にルールに違反する場合です。さらに、評価を利用できない場合の4つ目の結果も定義します。処理エラーを、黙って承認として解釈してはいけません。

Omni Moderationが画像でチェックする内容

Poyoでは、性的コンテンツ、暴力、自傷に関する6つの画像リスクカテゴリーを無料で利用できます。各リクエストでは1つのHTTPS画像URLを受け付け、キャプションを追加すると、画像とともに提供されたテキストも評価できます。

カテゴリーシグナルが示す内容
sexual性的コンテンツ
violence暴力
violence/graphicグラフィックな暴力
self-harm自傷コンテンツ
self-harm/intent自傷の意図を示す内容
self-harm/instructions自傷に関する指示

category_applied_input_typesを使用すると、結果が画像、提供されたテキスト、またはその両方に適用されるかを確認できます。テキスト入力は、ヘイト、ハラスメント、不正行為に関する指示、sexual/minorsなどを含む13カテゴリーに対応しています。これらのテキスト専用カテゴリーは提供されたテキストを評価するもので、画像チェックではありません。画像のみのリクエストで、未対応カテゴリーのスコアが0で入力タイプのリストが空の場合、そのカテゴリーは評価されていないことを意味します。

画像内に埋め込まれた単語に依存するルールについては、適切なテキスト抽出処理を追加し、抽出されたテキストを確認してください。商品品質、透かし、個人情報、禁止商品のルールについても、それぞれ独自のチェックが必要です。動画やアニメーションのアップロードには別途フレーム選択ワークフローが必要で、音声には別の処理が必要です。選択したフレームを確認しても、動画全体やそのサウンドトラックが評価されるわけではありません。

Omni Moderationは専用のCSAM検出器ではなく、sexual/minorsはテキストのみをサポートします。既知または疑わしいCSAMをOpenAIのModeration APIに送信しないでください。公式の児童安全ガイダンスに従ってください。

Poyo APIドキュメントでは、対応している入力とレスポンスフィールドについて説明しています。この対応範囲を利用して、各アップロード箇所に必要なチェックを選択してください。

レビューをリクエストする前にアップロードを準備する

アプリケーションには、モデレーションサービスが取得できる画像リソースが必要です。ユーザーのデバイス上にあるphoto.jpgのようなファイル名だけでは不十分で、画像を表示するウェブページが必ずしも画像URLであるとは限りません。

レビューが保留中の新しいアップロードは、公開フィードの外に置いてください。このステージング領域は、既存のストレージシステムの一部として構成できます。アクセス制御を適用し、サービスがストレージアカウント全体を公開することなく特定のファイルを取得できる、対応した配信方法を選択してください。

その方法で一時的なHTTPS URLを使用する場合は、キューに入った処理や再試行に十分な時間を確保してください。URLにセッション認証情報を含めず、広くアクセス可能なログに非公開画像へのリンクを記録することも避けてください。

コンテンツ評価に送信する前に、アップロードを検証してください。想定されたファイル形式であり、デコード可能であることを確認し、アプリケーションとプロバイダーに適したファイルサイズと画像寸法の制限を適用します。これらはアップロードチェックであり、モデレーションスコアによってファイルの技術的な安全性が検証されるわけではありません。

安定したコンテンツIDとバージョンを記録してください。タスクIDをそのバージョンに関連付けることで、レビュー中にユーザーが置き換えた画像を結果が誤って承認することを防ぎます。

実践的なアップロードから公開までのワークフロー

状態と責任が明確であれば、大規模なモデレーションチームがなくてもシンプルなプロセスで運用できます。

段階起こることユーザーに表示される内容
アップロード済みファイルを保存し、コンテンツバージョンを割り当てるアップロードを受信しました
レビュー保留中画像を送信し、タスクIDを記録するレビューを待っています
評価完了タスクのステータス、対応カテゴリー、スコアを確認するプロダクトの判断が下されるまでレビューが続きます
承認済みプロダクトルールを適用し、画像を表示可能にする公開済み
人によるレビュー画像を保留し、レビュアーを割り当てる判断を待っています
拒否または処理不能ルールまたは技術的な問題を説明し、適切な次のステップを提示する編集、再試行、または異議申し立てを行うための理由

Poyoは、これらの段階をつなぐカテゴリー評価とタスク結果を提供します。タスクIDまたは完了コールバックを使用して、アプリケーション内の対応するアップロードを更新し、ルールに基づいて公開するか、レビュアーのために保留するか、変更を依頼します。これらの処理は、既存の公開システムとレビュー用ツールで実行します。

ユーザー向けメッセージは具体的にしてください。「あなたの写真はレビュー待ちです」は、処理が完了していない間に役立ちます。「このアップロードを処理できませんでした。もう一度お試しください」は、技術的な問題を説明します。実際のコンテンツ判断がそのメッセージを裏付けていない限り、どちらも「あなたの画像はルールに違反しています」に置き換えるべきではありません。

Poyoを通じて画像を送信する

コードを書いたりAPIキーを手動で作成したりせずに、Omni Moderation Playgroundで画像をテストできます。サインインし、画像のみをチェックしたい場合はテキストをクリアし、画像を1枚追加してRunを選択します。最初に表示される記録済みのサンプルではなく、新しいタスク結果を使用してください。

統合では、Poyo APIキーを使用してサーバーから送信します。

curl -X POST https://api.poyo.ai/api/generate/submit \
  -H "Authorization: Bearer YOUR_POYO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "omni-moderation-latest",
    "input": {
      "image_urls": ["https://your-image-host.example/upload.jpg"]
    }
  }'

サンプルのドメインを、画像ファイルを指すアクセス可能なHTTPS URLに置き換えてください。ローカルファイルを使ってコードなしで試す場合は、Playgroundから画像をアップロードしてください。APIリクエストでは、ホストされたURLをinput.image_urlsに指定します。

キャプションを含めるには、input内に"prompt": "The caption being reviewed"を追加します。投稿に複数の画像がある場合は、それぞれ別のタスクとして送信し、どの結果がどの画像に対応するかを記録してください。1枚の画像を承認したからといって、残りも自動的に承認してはいけません。

送信するとtask_idが返されます。次の方法でステータスを取得します。

curl https://api.poyo.ai/api/generate/status/YOUR_TASK_ID \
  -H "Authorization: Bearer YOUR_POYO_API_KEY"

タスクはnot_startedで開始され、非同期で実行され、finishedまたはfailedで終了します。完了したタスクについては、data.output.resultsの下にある結果を確認してください。

送信時にトップレベルのcallback_urlを指定することもできます。コールバック本文は外側のラッパーを除いたステータスデータオブジェクトなので、結果はoutput.resultsの下にあります。Poyo Webhookガイドを使用してコールバックを検証し、ハンドラーが同じ配信を繰り返し受信しても対応できるようにしてください。

評価を判断に変える

まず、その表示場所に関係する各カテゴリーについて、平易な言葉でルールを定めます。次に、モデルのシグナルがそのルールの適用に役立つかを評価します。

ポリシーに明確に違反する画像は、適切なチェックの後に拒否できます。許容可能な画像は、必要なすべてのチェックが完了すれば公開できます。判断が曖昧なケースは、タイマーが切れたからといって無理に判断を下すのではなく、レビュー中のままにしてください。

高いスコアは、対応するカテゴリーを詳しく確認する理由になります。しかし、それはポリシー違反である確率を保証するものではありません。画像がアート作品、医療イラスト、ニュース写真、または一般的なユーザー写真のいずれであるかによって、解釈が異なる場合があります。

独自にラベル付けしたサンプルを使用して、振り分けのしきい値を決定してください。不必要に保留された許容可能な画像だけでなく、ワークフローで見逃された禁止画像も確認します。しきい値を変更する場合は、自動処理を拡大する前に、以前のポリシーと結果を比較してください。

判断を説明するのに十分な情報を記録してください。コンテンツバージョン、タスクID、カテゴリーシグナル、適用したルール、必要に応じてレビュアーの判断、判断時刻を含めます。この記録には保持期間とアクセス制御を設定し、すべての元画像を無期限に保存することは避けてください。

障害、編集、異議申し立てへの対応

画像を取得できない。 URLが画像そのものを指していること、有効な状態を保っていること、ユーザーセッションなしでアクセス可能であることを確認してください。技術的な問題を解決する間、アップロードを保留してください。

ページが待機を停止した時点でもリクエストが実行中である。 タスクIDを保持し、そのステータスを確認してください。すぐに重複送信すると、同じバージョンを2つのタスクがレビューすることになる可能性があります。処理が利用できない状態が続く場合に備えて、回数を制限した再試行と定義済みのフォールバックを使用してください。

ユーザーがファイルを置き換える、またはキャプションを変更する。 変更を新しいレビュー対象バージョンとして扱ってください。以前の承認によって新しいコンテンツを承認してはいけません。関連する入力を再チェックし、古いバージョンに対する遅れて届いたコールバックが新しいバージョンを公開できないようにしてください。

ユーザーが判断に異議を申し立てる。 人がコンテンツと適用されたルールを評価できるだけの十分なコンテキストを備えた異議申し立ての経路を用意してください。異議申し立てが認められた場合は、公開状態を更新し、監査可能な訂正を残してください。

投稿に複数の画像が含まれている。 公開ルールを明確にしてください。たとえば、必要なすべての画像タスクが完了するまで待つ、またはレビューが必要な画像をユーザーが削除できるようにします。1つの成功結果を投稿全体のレビュー結果として解釈しないでください。

よくある質問

画像モデレーションとは何ですか?

画像モデレーションとは、プラットフォームのコンテンツルールに照らして画像を確認するプロセスです。自動チェックと人による判断を組み合わせて、アップロードを公開するか、レビューのために保留するか、拒否するかを決定できます。

Poyoでは画像モデレーションを無料で利用できますか?

PoyoのOmni Moderation画像呼び出しはクレジットを消費しません。Playgroundで対応する画像評価をテストし、その後、モデレーションの1回ごとの料金なしでアプリケーションから利用できます。画像の保存、配信、人によるレビューにかかる費用は別途計画してください。無料アクセスガイドでは、この違いを説明しています。

画像とキャプションを一緒にレビューできますか?

はい。同じリクエストに、1つのHTTPS画像URLを指定するinput.image_urlsと、キャプションを指定するinput.promptの両方を追加します。Playgroundでは、画像とテキストを一緒に指定します。category_applied_input_typesを確認すると、どのシグナルが提供されたテキスト、画像、またはその両方に適用されるかを確認できます。

どのような画像リスクをチェックできますか?

Omni Moderationは、性的コンテンツ、暴力、グラフィックな暴力、自傷、自傷の意図、自傷に関する指示を含む6つの画像カテゴリーに対応しています。Poyoはカテゴリーごとのフラグとスコアを返すため、独自のルールに従ってアップロードを振り分けることができます。上記の機能セクションでは、入力の対応範囲とその他の要件に必要な追加処理について説明しています。

完了した画像結果を受け取るにはどうすればよいですか?

返されたPoyoタスクIDを保存してステータスを照会するか、完了通知用のcallback_urlを指定してください。ステータスレスポンスではdata.output.resultsを、コールバックではoutput.resultsを確認してください。結果をアップロードされた画像バージョンと照合し、その後、アプリケーションで公開するか、既存のレビューツールに送ります。

コードなしで画像モデレーションをテストするにはどうすればよいですか?

Poyo Playgroundにサインインし、画像を1枚追加し、必要に応じてキャプションを入力してRunを選択します。画像のみをテストする場合は、テキストフィールドをクリアしてください。新しく完了したタスクを確認し、自動公開ルールを設定する前に、許可される代表的なサンプルを試してください。

Poyo Playgroundで画像を1枚試し、その結果をチームが説明できる公開ルールに接続してください。AIモデレーション入門ではレスポンスフィールドについて、UGCモデレーションガイドではより広範なチームプロセスについて説明しています。

Share: