|

画像生成で451 image_safetyが返る:ブロックされているのは生成画像であり、APIキー認証の失敗ではない(3ステップの切り分け+5組のドキュメント再テスト結果の解説)

画像生成で451 image_safetyが返る:ブロックされているのは生成画像であり、APIキー認証の失敗ではない(3ステップの切り分け+5組のドキュメント再テスト結果の解説)

著者注:画像APIが HTTP 451 とエラーコード image_safety を返した場合、フィルタリングされたのは生成画像であり、APIキーが認証に失敗したわけではありません。本記事では、APIYIのドキュメントの説明と再検証に基づき、401や429との違い、変更すべき点、避けるべき再試行方法を解説します。

画像APIを呼び出したとき、突然 HTTP 451 が返り、error.code が image_safety になった。そんなとき、多くの人はまず、APIキーが無効になった、残高が足りない、あるいはプロンプトに不適切な表現が含まれているのではないかと考えます。そして、APIキーを変えたり、チャージしたり、何度も再試行したりしますが、結果は同じです。ここでお伝えしたいのは、451 image_safety は生成された画像を対象にしたフィルタリングで、審査は画像の生成後に行われるということです。そのため、アカウントではなく、画像の描写内容を見直す必要があります。

これは一般的な「コンテンツ安全性の解説」ではありません。以下の内容は、APIYIのドキュメントにある451の説明と、そこで公開されている匿名化済みの再検証結果に基づいています。新たなテストデータは追加していません。

この記事でわかること:451と401、429の違いを1分で見分け、「プロンプトの変更は一度に1つだけ」という方法で、リクエストから画像を再生成できるようになります。

image-api-451-image-safety-generated-image-filtered-ja-image-0


画像生成で 451 image_safety が返されたときの要点

まず、特に重要なポイントを確認しましょう。いずれもエラーメッセージとドキュメントの説明に基づいており、推測する必要はありません。

要点 説明 役立つポイント
審査対象は出力画像 message には「The generated image was filtered by the safety policy」とあります APIキーや残高を疑う必要はありません
生成後の審査 インターフェースは画像を生成してから出力画像を安全審査し、審査に通らなければ画像を返さない場合があります 「プロンプトに問題がなさそうなのに」ブロックされる理由がわかります
入力が違反しているとは限らない 生成後の審査に通らなかったからといって、プロンプトや参照画像に明確な違反表現が含まれているとは限りません 大幅に単語を削除したり、参照画像を変更したりする必要はありません
画面の内容を調整する 否定文を追加するより、服装や構図などの画面要素を具体的に記述するほうが効果的です 目的に沿って調整でき、遠回りを減らせます
同じ内容で再試行しない 同じ組み合わせで連続して失敗した場合、再試行しても再び 451 になる可能性が高いです 時間と呼び出しコストを節約できます

まずエラーコードを確認:451 image_safety と 401、429 の違い

エラーが返されたら、最初にステータスコードと error.code を確認しましょう。いきなりコードを変更する必要はありません。以下は APIYI のドキュメントに記載されている 451 の説明です(apiyi.com のドキュメントセンターにある FAQ と更新情報にも掲載されています)。レスポンスは HTTP 451、error.code は image_safety、message は The generated image was filtered by the safety policy. です。キーワードは generated image で、「すでに生成された画像」が安全ポリシーによってフィルタリングされたことを意味します。

これは認証やレート制限とはまったく異なる問題です。401 は通常、リクエストがモデルに到達する前に認証に失敗したことを示します。429 はリクエスト頻度が高すぎる、またはチャネルが混雑していることを示します。残高関連のエラーは課金に関するものです。これら3つは、いずれも「何を描いたか」とは関係ありません。一方、451 は「何を描いたか」に直接関係します。

エラー 主な意味 発生段階 適切な対処 同じ内容で再試行してよいか
HTTP 451 image_safety 生成画像が出力側の安全審査に通らなかった 画像生成後 画面の説明を変更し、1つずつ要素を切り分けて確認する いいえ。同じ組み合わせで連続して失敗した場合、同じ内容で再試行しない
HTTP 401 APIキーが無効、または正しく渡されていない リクエストの入口 APIキーとリクエストヘッダーを確認する いいえ。APIキーが誤っている場合、再試行しても意味がありません
HTTP 429 レート制限、またはチャネルの混雑 リクエストの入口、またはキュー処理中 待機時間を段階的に延ばして再試行し、必要に応じてチャネルを変更する はい。バックオフ戦略に従って再試行する
残高関連のエラー 利用枠が不足している 課金確認 チャージするか、利用枠を調整する いいえ

特に注意したいのは、451 と 401 に同じ再試行ロジックを適用できないことです。401 なら APIキーの設定を修正し、451 ならプロンプトを変更します。どちらも「失敗したら3回再試行」という共通処理に入れると、原因の切り分けがかえって難しくなります。

451 image_safety が画像生成後に発生する理由

ドキュメントでは、この仕組みを「後段審査」、または「出力側審査」と呼んでいます。処理の流れはシンプルです。リクエストの認証が通ると、モデルがプロンプトと参照画像に基づいて画像を生成します。その後、システムが生成した画像を安全性の観点からチェックし、基準を満たさない場合は画像を返さず、451を返します。

そのため、「プロンプトにセンシティブな単語が一つもないのに、ブロックされた」ということも起こり得ます。原因は特定の単語ではなく、複数の条件が組み合わさった結果、モデルが実際に生成した画像がフィルターに引っかかったことにあります。この点を理解すると、調査の方針は「禁止語を探す」ことから「最終的な画像をコントロールする」ことへと変わります。

image-api-451-image-safety-generated-image-filtered-ja-image-1


451 image_safety ドキュメント再テストの解説

APIYIのドキュメントでは、匿名化された再テスト結果が公開されています。使用モデルは gpt-image-2.5-sunburst-vip です。人物の参照画像を使い、顔のクローズアップと全身の正面・側面・背面のビューを含む、白背景の人物設定画を生成するケースです。以下のデータはすべてドキュメントに掲載された再テスト結果であり、ここではその内容を解説します。

ドキュメントの再テスト条件 結果 所要時間 説明
元のプロンプト + 元の参照画像 3/3 失敗 81.8–95.9 秒 ベースライン。安定して 451 が発生
同じ参照画像を使い、中性的な普段着の半身像に変更 1/1 成功 35.7 秒 全身の多視点を取り除くと成功
元のプロンプトを使い、参照画像を外してテキストから画像生成のエンドポイントに変更 1/1 成功 29.1 秒 参照画像の人物の特徴がなくなると成功
「服をきちんと着用し、不透明で、性的に強調しない」を追加しただけ 1/1 失敗、引き続き 451 216.8 秒 否定文では効果なし
成人であることを明記し、ハイネックの長袖、長ズボン、スニーカーを指定 3/3 成功 65.1–238.6 秒 服装を具体的に肯定表現で指定すると安定して成功

ドキュメントの再テストから見る 451 image_safety の発生パターン

この再テストで特に注目したいのは、2番目と3番目の条件です。「参照画像にある人物の特徴」と「全身の多視点」のどちらか一方を取り除くと、画像を生成できています。この結果から、ドキュメントでは「参照画像の人物の特徴と全身の多視点が組み合わさったとき、生成画像がフィルターにかかった」という解釈がより妥当だとしています。

一方で、ここから導けない結論も明確に示されています。参照画像が規約違反だとは言えませんし、特定の単語がトリガーになったとも断定できません。これは重要な点です。451 が表示されると、参照画像を変えたり、プロンプトから多くの語句を削ったりする開発者は少なくありません。しかし、その結果、本当に必要な画像の情報まで失われてしまうことがあります。

否定文だけでは 451 image_safety を解消しにくい理由

4番目の条件では、「服をきちんと着用し、不透明で、性的に強調しない」と追加しましたが、それでも 451 が発生しました。一方、5番目の条件では、成人であることを明記し、ハイネックの長袖、長ズボン、スニーカーと具体的に指定したところ、3回すべて成功しました。

理由はシンプルです。否定文は「何を描かないか」を伝えるだけで、「何を描くか」は指定していません。そのため、最終的な画像は依然として不確定です。肯定的な表現でトップス、ボトムス、靴を具体的に指定すれば、生成結果をより制御しやすくなり、出力側の審査にも通りやすくなります。

所要時間について、ドキュメントでは、あくまで参考情報として扱い、審査がどの段階で行われたかを判断する材料にしないよう注意を促しています。再テストでは、成功したケースと失敗したケースの所要時間に重なりがあります。そのため、「X秒を超えたら審査でブロックされた」といった判定ロジックは避けてください。

image-api-451-image-safety-generated-image-filtered-ja-image-2

比較に関する説明:上の表と比較図のデータは、いずれもAPIYIのドキュメントに掲載された再テスト結果です。元の内容は apiyi.com のドキュメントセンターにある「画像出力の安全性審査 FAQ」で確認できるため、ご自身のエラーと照らし合わせる際に役立ちます。


画像生成で 451 image_safety が返された場合の簡単な確認方法

モデル ID を再確認する:呼び出している gpt-image のモデルを確認

451 が返されたことを確認したら、次にモデル ID を確認します。ドキュメントでの再テストには gpt-image-2.5-sunburst-vip を使用しています。呼び出している gpt-image シリーズのモデルや各モデル名については、APIYI のモデル一覧を確認してください。apiyi.com のコンソールからもモデル一覧を確認できます。

モデル ID を確認する目的は2つあります。1つ目は、調査中にモデルを変更しないことです。モデルを変えると、どの要因が影響したのか判断できなくなります。2つ目は、「モデル名の入力ミス」を審査の問題と誤認しないことです。モデル名が間違っている場合は、通常、別のエラーが返され、image_safety にはなりません。

451 image_safety の調査時に固定するリクエストパラメータ

この記事では長いコードは掲載せず、調査時に固定する必要があるパラメータだけを紹介します。APIはOpenAI互換形式です。base_urlにはhttps://api.apiyi.com/v1を設定し、SDKのapi_keyを自分のAPIキーに置き換えてください。

パラメータ 設定例 調査時に変更してよいか
base_url https://api.apiyi.com/v1 変更しない
model APIYIのモデル一覧を参照。ドキュメントの再テストで使用したモデルはgpt-image-2.5-sunburst-vip 変更しない
エンドポイント 画像編集(参照画像あり)またはテキストから画像生成 参照画像の影響を個別にテストする場合を除き、変更しない
参照画像 元の参照画像 変更しない
サイズ、生成数などのパラメータ 元の値を維持 変更しない
prompt 元のプロンプト 一度に変更するのは1つの変数だけ

コードでは、451用の分岐を個別に設けることをおすすめします。レスポンスのステータスコードとerror.codeを確認し、451かつimage_safetyの場合は、そのときのプロンプトを記録して自動再試行を停止し、手動またはルールに基づく書き換えのフローに切り替えます。401はAPIキーの確認、429はバックオフ再試行の分岐に進め、それぞれの処理を混同しないようにします。

451 image_safety の単一変数による調査手順

ドキュメントに記載された調査方法は、次のように整理できます。

  1. ほかの条件を固定する:モデル、エンドポイント、参照画像、各パラメータはすべてそのままにし、プロンプトだけを変更します。
  2. 一度に変更するのは1つの変数だけ:たとえば服装だけ、または視点の数だけを変更します。一度に3か所変更しないでください。
  3. 否定表現を肯定的な描写に置き換える:トップス、ボトムス、靴を「ハイネックの長袖、長ズボン、スニーカー」のように具体的に記述します。必要に応じて「成人」と明記します。
  4. 2~3回再テストする:1回成功しても安定しているとは限りません。ドキュメントの再テストでは、安定した組み合わせは3回中3回成功しています。
  5. 同じ組み合わせで連続して失敗したら、再試行を停止する:ベースラインの組み合わせで3回中3回失敗する場合、同じ条件で再試行しても意味がありません。
  6. 原因を特定する必要がある場合は、組み合わせを分けてテストする:「全身の複数視点をなくす」ケースと「参照画像をなくす」ケースをそれぞれテストし、どの組み合わせがフィルターに引っかかるのかを確認します。

🚀 クイックスタート:まずはクリーンな環境で再現・検証したい場合、APIYI apiyi.comで無料のテスト枠を取得するのがおすすめです。同じAPIキーを使い、モデルとパラメータを固定して単一変数の比較テストを行い、検証が完了してから本番環境に組み込んでください。

451 image_safety のプロンプト書き換え例

ドキュメントに沿って再テストする際の書き換え方を紹介します。実際の業務に合わせて調整してください。

書き換えの方向性 効果の低い書き方 おすすめの書き方
服装 露出を避ける、服を着ている ハイネックの長袖トップス、長ズボン、スニーカー
人物 モデルが1人 成人であることを明記する
構図 顔のアップと全身の正面・側面・背面を一度に出す まず上半身の画像を生成するか、構図を分けて段階的に生成する
スタイル セクシーにしない 中性的な普段着、自然な立ち姿

書き換えのポイントは、曖昧さをできるだけなくすことです。描写が具体的であるほど、モデルが自由に補う部分が減り、生成画像がフィルタリングされる可能性も下がります。

image-api-451-image-safety-generated-image-filtered-ja-image-3


よくある質問(FAQ)

Q1: 451 image_safety とは何ですか?

画像の生成自体は完了していますが、出力画像が安全性審査を通過しなかったことを示します。そのため、インターフェースは画像を返さず、HTTP 451と`error.code`が`image_safety`のエラーを返します。これは生成後に行われる審査で、「出力側の審査」とも呼ばれます。

Q2: 451 image_safety と 401 の違いは何ですか?両方とも再試行すればよいですか?

401はリクエストの受け付け時に発生し、APIキーが有効かどうかに関係します。一方、451は画像の生成後に発生し、画像の内容に関係します。両者に同じ再試行ロジックを使うことはできません。401の場合はAPIキーの設定を修正し、451の場合は画像の説明を変更してください。同じ内容で再試行しても、どちらも解決しません。

Q3: 451 image_safety と 429 はどう見分ければよいですか?

429はレート制限またはチャンネルの混雑を示します。バックオフして再試行すれば通常は回復し、必要に応じてチャンネルを切り替えることもできます。一方、451はコンテンツがフィルタリングされたことを示します。同じ組み合わせでは、再試行しても失敗し続けます。`error.code`を確認すれば見分けられます。`image_safety`の場合は、コンテンツの問題として対処してください。

Q4: 451 image_safety が返された場合、参照画像に問題があるということですか?

そのように判断することはできません。この記事での再テストでは、同じ参照画像でも、日常的で中立的な服装の上半身像に変更すると画像を生成できました。この記事では、参照画像自体に問題があるというより、「参照画像の人物の特徴と全身の複数視点を組み合わせた結果、生成画像がフィルタリングされた」という見方がより妥当だと結論づけています。また、特定の単語がトリガーになったと断定することもできません。

Q5: 使用している gpt-image のモデルを確認し、451を再現するにはどうすればよいですか?

次の手順をおすすめします。

1. APIYI(apiyi.com)に登録し、APIキーと無料テスト枠を取得する
2. モデル一覧で、gpt-imageシリーズの正確なモデルIDを確認する
3. `base_url`を`https://api.apiyi.com/v1`に設定し、モデルとパラメーターを固定したうえで、この記事の手順に沿って一度に1つの変数を検証する

Q6: 処理時間から、リクエストが審査でブロックされたかどうかを判断できますか?

おすすめしません。この記事でも、処理時間はあくまで参考情報であり、それだけで審査が行われた段階を断定することはできないと説明しています。再テストでは成功時と失敗時の処理時間が重なっていたため、処理時間のしきい値を使って判定すると誤判定につながりやすくなります。

Q7: プロンプトを変更して一度成功すれば、そのまま本番環境に導入できますか?

まだ不十分です。この記事では、2〜3回の回帰テストを推奨しています。一度成功しただけでは、安定しているとはいえません。再テストで安定していた組み合わせは3回中3回成功でした。同じ基準で検証してから本番環境に導入してください。


451 image_safety の重要ポイント

  • 審査対象:451 image_safety は生成された画像をフィルタリングするもので、Keyを対象にしているわけではありません。
  • まずエラーコードを確認:451、401、429はそれぞれコンテンツ、認証、レート制限に関するエラーで、対処方法も異なります。
  • リトライ方法を混同しない:401ならKeyを修正し、429ならバックオフして再試行、451なら画面の説明を変更します。
  • 一度に変えるのは1つだけ:モデル、エンドポイント、参照画像、パラメーターを固定し、毎回プロンプトの一部だけを変更します。
  • 肯定的な描写が効果的:上着、ボトムス、靴を具体的に記述するほうが、否定文を追加するより確実です。
  • 回帰テストを実施:書き換えた後に2~3回テストし、安定して成功することを確認してから本番環境に反映します。
  • すぐに試す方法:モデルIDはAPIYIのモデル一覧で確認し、無料利用枠を使って比較検証しましょう。

まとめ

画像生成で451 image_safety が返された場合の重要ポイントは、次のとおりです。

  1. エラーの性質:これは出力側の審査で、生成画像がブロックされています。Key、残高、レート制限とは関係ありません。
  2. エラーを切り分ける:ステータスコードと error.code に基づいて451を401、429と区別し、同じリトライ処理にまとめないようにします。
  3. 対処方法:ほかの変数を固定し、否定文ではなく、服装や構図を具体的かつ肯定的に描写します。その後、2~3回回帰テストを行います。

451が発生しても、すぐにKeyを変更する必要はありません。まずは、画像の描写をより具体的な表現に変えてみてください。APIYI apiyi.comを利用し、同じKeyとモデルを固定したまま1つの要素だけを変えて比較すれば、安定して画像を生成できる表現をすばやく見つけられます。


📚 参考資料

  1. APIYI FAQ:画像出力の安全性審査: 451 image_safety の定義とトラブルシューティング
  2. リンク: docs.apiyi.com/faq/image-output-safety-review.md
  3. 説明:レスポンスの形式、生成後の審査に関する説明、変数を1つずつ変更して原因を調べる方法を掲載しています。

  4. APIYI 最新情報:画像出力の安全性審査(2026-11): ドキュメントの再検証記録

  5. リンク: docs.apiyi.com/live/2026-11/image-output-safety-review.md
  6. 説明:gpt-image-2.5-sunburst-vip を使った匿名化済みの再検証と、結論の適用範囲を掲載しています。

著者: APIYI 技術チーム
技術的なお問い合わせ: APIYI(apiyi.com)のトップページからお気軽にお問い合わせください。画像関連APIのエラーコードについては、docs.apiyi.com のドキュメントセンターもご覧いただけます。

関連記事

類似投稿