title: "Nano Banana Pro/2 出図失敗?Googleの二層安全フィルタリングを徹底解説"
description: "Nano Banana Pro/2で画像生成が失敗する原因を徹底解剖。Googleの二層安全フィルタリング(NSFW、著作権、未成年者保護など)の仕組みと、開発者がC端製品でエラーを適切に処理する方法を解説します。"
作者注:Nano Banana Pro/2 で画像生成に失敗していませんか?本記事では、Google の二層安全フィルタリングアーキテクチャにおける 8 つの拒否カテゴリ(NSFW、透かし除去、著名な IP、未成年者など)を解析します。エラー判定方法や、C 端製品での処理案も併せて紹介します。
Nano Banana Pro または Nano Banana 2 を使用して画像生成 API を呼び出す際、ステータスコード 200 が返されるものの画像データが含まれていない、あるいは「I'm unable to assist with that」というテキストメッセージが返される状況に遭遇したことはありませんか?これは API 中継サービスの問題ではなく、Google のコンテンツ安全ポリシーが適用されているためです。
2026 年 1 月 23 日以降、Google は画像生成に関する安全ポリシーを大幅に強化しました。2 月 27 日の Nano Banana 2 リリース後、安全メカニズムはさらにアップグレードされ、著名人、金融情報の改ざん、人物の着せ替え/顔交換、性的な暗示 などを含むコンテンツのブロックが追加されました。本記事では、画像生成に失敗するすべての原因と対応策を網羅的に解説します。
核心的価値: 本記事を読むことで、Nano Banana Pro/2 で画像生成が失敗する根本的なメカニズムを理解し、8 つの失敗カテゴリの判定方法を習得し、C 端製品でこれらのエラーをスマートに処理する方法を学べます。

Nano Banana Pro/2 画像生成失敗の判定方法
Error: Gemini did not return edited image data のようなメッセージが表示された際、失敗の原因をどのように特定すればよいでしょうか?Googleが提示する3つの主要指標を、優先度順に解説します。
| 優先度 | 判定指標 | 失敗の特徴 | 説明 |
|---|---|---|---|
| 最高 | candidatesTokenCount |
0 になる | 完全拒否。コンテンツが生成されませんでした |
| 次高 | finishReason |
IMAGE_SAFETY / PROHIBITED_CONTENT / OTHER | 生成プロセス中にブロックされました |
| 重要 | API テキスト応答 | 画像ではなくテキストが返る(Token < 1000) | モデルが拒否理由をテキストで「説明」しています |
Nano Banana Pro/2 画像生成失敗の典型的な2つのパターン
パターン1: candidatesTokenCount = 0
API応答内の usageMetadata.candidatesTokenCount が 0 の場合、モデルが生成を完全に拒否しています。このとき finishReason は通常 IMAGE_SAFETY または PROHIBITED_CONTENT となり、レスポンスボディの content.parts は null になります。
パターン2: 画像ではなくテキストが返される
API応答内の candidatesTokenCount が 0 ではないものの 1000 未満の場合、モデルは画像データではなくテキストを返しています。よくある返答例は以下の通りです:
- 「I'm unable to assist with that request」(そのリクエストには対応できません)
- 「我无法协助完成这个工作」(その作業を完了させることはできません)
- 「I cannot modify images of real people」(実在の人物の画像を加工することはできません)
これら2つのケースに共通するのは、ステータスコードが 200 であるという点です。これはリクエスト自体は正常に送信されており、APIYIが透過プロキシとしてGoogleの応答をそのまま転送していることを示しています。問題はGoogle側のコンテンツ安全ポリシーにあります。
🎯 開発者へのアドバイス: C向け製品を開発されている場合、コード内でこれらの失敗パターンを検知し、技術的なエラーをユーザーフレンドリーなメッセージに変換することが必須です。APIYIでは詳細なエラーハンドリングガイドを提供しています:
xinqikeji.feishu.cn/wiki/Rslqw724YiBwlokHmRLcMVKHnRf
Nano Banana Pro/2 画像生成失敗の8つの安全カテゴリ

下表详细列出 8 大出图失败类别及其特征:
| カテゴリ | トリガーとなる内容 | エラー識別子 | 追加時期 | 回避可能性 |
|---|---|---|---|---|
| 1. NSFW | ポルノ、暴力、残虐 | IMAGE_SAFETY | 従来 | 不可 |
| 2. 透かし削除 | 著作権透かしの除去 | MALFORMED_FUNCTION_CALL | 従来 | 不可 |
| 3. 有名IP | ディズニー、マーベル等の著作権キャラ | IMAGE_SAFETY | 1月強化 | 不可 |
| 4. 未成年者 | 子供に関する機微な内容 | CSAM 保護 | 従来 | 不可 (ゼロトレランス) |
| 5. 有名人物 | 有名人、政治家の写真 | テキスト拒否 | 2月27日 | 不可 |
| 6. 着せ替え/顔交換 | 服装や顔の変更 | blockReason OTHER | 2月27日 | 不可 |
| 7. 金融改ざん | 注文書や請求書データの改ざん | blockReason OTHER | 2月27日 | 不可 |
| 8. 暗示的表現 | 露骨ではないが暗示的な内容 | IMAGE_SAFETY | 2月27日 | 一部調整可能 |
Nano Banana Pro/2 安全ポリシーに関する特記事項
透かし削除のブロック: これは非常に特殊なカテゴリです。ユーザーが画像から透かしの削除をリクエストすると、Googleは通常の IMAGE_SAFETY エラーではなく MALFORMED_FUNCTION_CALL を返します。これは技術的なバグではなく、Googleのコンテンツ安全ポリシーによる能動的な介入です。これは著作権者の利益を保護するための設計です。
アニメスタイルはトリガーされやすい: 同じプロンプトでも、写実的なスタイルでは通過するのに、アニメスタイルではブロックされることがあります。これはアニメスタイルの方が著作権IP検出メカニズムに引っかかりやすいためです。
Googleによる過剰なフィルタリングの認識: Googleは公式に、画像生成の安全フィルタリングが「意図していたよりもはるかに慎重になった(became way more cautious than we intended)」と認めています。そのため、「犬」や「シリアルのボウル」といった完全に無害なプロンプトであっても、ブロックされる可能性があります。
🎯 透明性について: APIYIは透過プロキシとして、Googleの応答をそのまま転送しています。ステータスコード200で生成に失敗した場合、それはGoogle側からのフィードバックです。APIYIとしてもお客様の生成成功を強く望んでいますが、安全ポリシーはGoogleによって制御されており、プラットフォーム側で介入することはできません。
Nano Banana Pro/2 画像生成失敗時のエラー処理スキーム
C向け製品を開発中のエンジニアにとって、画像生成失敗時の適切なハンドリングは非常に重要です。以下に推奨される処理フローをまとめました。
Nano Banana Pro/2 エラー検出の優先順位
def check_generation_result(response):
"""
Nano Banana Pro/2 の画像生成が成功したかを判定
優先順位: candidatesTokenCount > finishReason > テキスト応答
"""
usage = response.get("usageMetadata", {})
candidates = response.get("candidates", [{}])
candidate = candidates[0] if candidates else {}
# 最優先: candidatesTokenCount = 0
if usage.get("candidatesTokenCount", 0) == 0:
return {"success": False, "reason": "content_rejected"}
# 次優先: finishReason のチェック
finish_reason = candidate.get("finishReason", "")
if finish_reason in ["IMAGE_SAFETY", "PROHIBITED_CONTENT"]:
return {"success": False, "reason": "safety_filter"}
# 重要: 画像ではなくテキストが返されていないかチェック
parts = candidate.get("content", {}).get("parts", [])
has_image = any("inlineData" in p for p in (parts or []))
if not has_image and usage.get("candidatesTokenCount", 0) < 1000:
return {"success": False, "reason": "text_response"}
return {"success": True}
Nano Banana Pro/2 C向けユーザーフレンドリーな提示テンプレート
| エラータイプ | 推奨メッセージ | 推奨アクション |
|---|---|---|
| コンテンツ不適合 | 「現在のコンテンツはプラットフォームの安全基準を満たしていません。説明を調整して再試行してください」 | プロンプトの修正 |
| 機能非対応 | 「このタイプの画像編集操作には現在対応していません」 | 別の操作を試す |
| 範囲外コンテンツ | 「現在の説明には保護対象のコンテンツが含まれています。オリジナルの説明を使用して再試行してください」 | 著作権物の回避 |
| 技術的問題 | 「生成中に一時的な問題が発生しました。しばらくしてから再試行してください」 | 時間を置いて再試行 |
C向けエラー処理の完全なコード例を表示
# エラーメッセージのマッピング
ERROR_MESSAGES = {
"content_rejected": {
"title": "コンテンツが安全審査を通過しませんでした",
"message": "現在のコンテンツはプラットフォームの安全基準を満たしていません。説明を調整して再試行してください",
"suggestion": "ヒント: 有名人、著作権キャラクター、機密性の高い内容を避けてください"
},
"safety_filter": {
"title": "安全フィルターが作動しました",
"message": "画像生成が安全ポリシーによりブロックされました",
"suggestion": "ヒント: プロンプトを修正し、より一般的な説明を使用してください"
},
"text_response": {
"title": "生成失敗",
"message": "AIが要求通りに画像を生成できませんでした",
"suggestion": "ヒント: 説明を簡略化するか、テーマを変更して再試行してください"
},
"watermark": {
"title": "現在非対応の機能です",
"message": "ウォーターマークの削除には現在対応していません",
"suggestion": "ヒント: 他の画像編集機能を使用してください"
}
}
🎯 ベストプラクティス: C向けユーザーに対して「不明なエラー」と表示するのは避けましょう。分類できないエラーが発生した場合でも、ユーザーに寄り添った代替案を提示してください。完全なエラー処理ガイドはAPIYIのドキュメントを参照してください:
xinqikeji.feishu.cn/wiki/Rslqw724YiBwlokHmRLcMVKHnRf
Nano Banana Pro/2 安全ポリシーのタイムラインと対応アドバイス

Nano Banana Pro/2 画像生成失敗時のエンジニア向け対応戦略
戦略1: プロンプトの最適化
- 有名人の名前や著作権キャラクター名を直接使用しない
- 具体的なIPの代わりに一般的な説明を使用する(例:「アイアンマン」ではなく「鎧を着た戦士」)
- アニメ調よりも写実的なスタイルの方が著作権チェックに引っかかりにくい
- 画像編集リクエストでは、顔交換や衣装変更などの操作を避ける
戦略2: エラー処理の徹底
candidatesTokenCount→finishReason→ テキスト応答の順で優先的に検出する- エラータイプごとにユーザーフレンドリーなメッセージを用意する
- デバッグ用に元の応答データを保持しておく
- ユーザーに「不明なエラー」と表示しない
戦略3: コストの保証
- APIYI (apiyi.com) のSLA「画像生成失敗補償プラン」を活用する
- 月間利用額が$1000以上の場合、失敗した生成分をクレジットで補填
- 失敗したリクエストのコストを確実に回収する
🎯 C向け製品開発者へ: APIYIの完全なエラー処理ガイド(
xinqikeji.feishu.cn/wiki/Rslqw724YiBwlokHmRLcMVKHnRf)を強く推奨します。コードの実装例、キーワードのインテリジェント識別ロジック、フロントエンドの表示案、テストケースなどが網羅されています。
よくある質問
Q1: 同じプロンプトでも、画像が生成できる時とできない時があるのはなぜですか?
Googleの安全フィルターには確率的な要素が含まれています。同じプロンプトであっても、タイミングや使用するAPIキーによって結果が異なる場合があります。これは、特に「境界線上のコンテンツ」において、安全モデル自体に一定のランダム性があるためです。プロンプトで繰り返し失敗する場合は、記述方法を変更することをお勧めします。
Q2: ステータスコードが200なのに画像が表示されません。APIYIの問題ですか?
いいえ、違います。APIYIは透過的なプロキシとして、Googleのレスポンスを直接転送しています。ステータスコード200はリクエスト自体は正常であることを示していますが、Googleのコンテンツ安全ポリシーによって画像生成がブロックされています。レスポンス内の finishReason や candidatesTokenCount を確認することで、具体的な原因を特定できます。APIYIとしても、お客様には問題なく画像生成を行っていただきたいと考えております。
Q3: 画像生成に失敗した場合でも料金は発生しますか?
はい、Google側でクォータ(割り当て)が消費されます。しかし、APIYI(apiyi.com)では、SLAに基づく「画像生成失敗時の補填プラン」を提供しています。月間1,000ドル以上ご利用のユーザー様は、失敗したリクエスト分の費用(失敗回数 × $0.05 / 割引係数)を申請により補填可能です。これは、市場においてこのような保証を提供する唯一のプラットフォームです。
まとめ
Nano Banana Pro/2 での画像生成失敗に関する重要なポイント:
- 二層の安全アーキテクチャ: Layer 1はAPIパラメータで調整可能ですが、Layer 2(IMAGE_SAFETY、blockReason OTHERなど)はGoogleサーバー側で強制的に実行されるため、回避は不可能です。
- 8つの拒否カテゴリ: NSFW、透かし除去、著名なIP、未成年者(従来の4項目)に加え、著名人、着せ替え・顔の入れ替え、金融改ざん、隠れた暗示(Nano Banana 2で追加された4項目)が対象です。
- 透過的プロキシメカニズム: APIYIはGoogleのレスポンスを直接転送します。ステータスコード200で画像がない場合は、プラットフォームの問題ではなく、Googleの安全ポリシーによるブロックです。
Googleの安全ポリシーは2026年に入り継続的に強化されており、1月23日から3月にかけて3度のアップデートが行われました。エンドユーザー向け製品の開発者にとって、エラーハンドリングとユーザーへの適切な通知を整備することが急務となっています。
Nano Banana Pro/2への接続には、ぜひAPIYI(apiyi.com)をご利用ください。1回あたり$0.05という低価格に加え、画像生成失敗時のSLA補填制度により、最も強力な画像生成モデルを最小限のコストで安心してご利用いただけます。
📚 参考資料
-
APIYI エラーハンドリングガイド: Gemini 3 Pro Image Preview API エラーハンドリングのベストプラクティス
- リンク:
xinqikeji.feishu.cn/wiki/Rslqw724YiBwlokHmRLcMVKHnRf - 説明: エラー判定の完全なフロー、コード例、エンドユーザー向けプロンプト文案テンプレート
- リンク:
-
Google AI 安全設定ドキュメント: 公式の安全フィルター設定に関する説明
- リンク:
ai.google.dev/gemini-api/docs/safety-settings - 説明: レイヤー1で設定可能な安全フィルターのパラメータとオプション
- リンク:
-
Google 生成 AI API ドキュメント: 公式エラーコードの説明
- リンク:
ai.google.dev/api/generate-content - 説明: finishReason、blockReason などのフィールドの完全な定義
- リンク:
-
Google Cloud 安全フィルタードキュメント: Vertex AI 安全設定
- リンク:
docs.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters - 説明: エンタープライズレベルの安全フィルターにおける多層アーキテクチャの説明
- リンク:
著者: APIYI 技術チーム
技術交流: Nano Banana Pro/2 で画像生成に失敗した事例があれば、ぜひコメント欄で共有してください。その他の資料については、APIYI のドキュメントセンター(docs.apiyi.com)をご覧ください。
