작성자 주: Nano Banana Pro/2에서 이미지 생성에 실패하시나요? 이번 글에서는 구글의 2단계 보안 필터링 아키텍처가 거부하는 8가지 범주(NSFW, 워터마크 제거, 유명 IP, 미성년자 등)를 분석하고, 오류 판별 방법과 클라이언트 제품에서의 처리 방안을 정리해 드립니다.
Nano Banana Pro 또는 Nano Banana 2를 사용하여 이미지 생성 API를 호출할 때, 상태 코드는 200으로 반환되지만 이미지 데이터가 없거나, "I'm unable to assist with that"이라는 텍스트 응답을 받는 경우가 있습니다. 이는 API 중계 서비스의 문제가 아니라 구글의 콘텐츠 보안 정책이 작동하고 있기 때문입니다.
2026년 1월 23일부터 구글은 이미지 생성 보안 정책을 대폭 강화했습니다. 2월 27일 Nano Banana 2 출시 이후에는 보안 메커니즘이 한층 더 업그레이드되어 유명 인물, 금융 정보 조작, 인물 의상/얼굴 교체, 은밀한 성적 암시 등이 포함된 콘텐츠에 대한 차단이 추가되었습니다. 이 글에서는 이미지 생성 실패의 모든 원인과 대응 방안을 상세히 설명합니다.
핵심 가치: 이 글을 읽고 나면 Nano Banana Pro/2의 이미지 생성 실패 근본 원인을 이해하고, 8가지 실패 유형을 판별하는 방법과 클라이언트 제품에서 이러한 오류를 우아하게 처리하는 방법을 배우게 됩니다.

Nano Banana Pro/2 이미지 생성 실패의 핵심 판별 방법
Error: Gemini did not return edited image data와 같은 메시지가 나타날 때, 실패 원인을 어떻게 파악해야 할까요? 구글이 제시한 3가지 핵심 지표를 우선순위별로 정리해 드립니다.
| 우선순위 | 판별 지표 | 실패 특징 | 설명 |
|---|---|---|---|
| 최고 | candidatesTokenCount |
0과 같음 | 즉시 거부, 생성된 콘텐츠 없음 |
| 차상위 | finishReason |
IMAGE_SAFETY / PROHIBITED_CONTENT / OTHER | 생성 과정 중 차단됨 |
| 중요 | API 텍스트 응답 | 이미지 대신 텍스트 반환, 토큰 < 1000 | 모델이 거부 사유를 텍스트로 '설명' |
Nano Banana Pro/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」(실제 인물의 이미지는 수정할 수 없습니다)
이 두 상황의 공통점은 상태 코드가 200이라는 점입니다. 이는 요청 자체는 정상적이며, APIYI가 투명한 중계 서비스로서 구글의 응답을 그대로 전달했음을 의미합니다. 문제는 구글의 콘텐츠 안전 정책에 있습니다.
🎯 개발 가이드: 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 안전 정책 관련 특별 안내
워터마크 제거 차단: 이는 비교적 특수한 카테고리입니다. 사용자가 이미지 내 워터마크 제거를 요청하면 구글은 일반적인 IMAGE_SAFETY 오류 대신 MALFORMED_FUNCTION_CALL을 반환합니다. 이는 기술적 버그가 아니라 구글 콘텐츠 안전 정책의 능동적인 개입입니다. 이는 저작권자의 권리를 보호하기 위한 설계입니다.
애니메이션 스타일의 높은 차단율: 동일한 프롬프트라도 실사 스타일에서는 통과되지만, 애니메이션 스타일에서는 차단되는 경우가 있습니다. 이는 애니메이션 스타일이 저작권 IP 감지 메커니즘을 더 쉽게 트리거하기 때문입니다.
구글의 과도한 검열 인정: 구글은 공식적으로 이미지 생성 안전 필터가 「의도했던 것보다 훨씬 더 신중해졌다(became way more cautious than we intended)」고 밝혔습니다. 심지어 「a dog」(강아지)나 「a bowl of cereal」(시리얼 한 그릇)처럼 완전히 무해한 프롬프트조차 차단될 수 있습니다.
🎯 투명성 안내: APIYI는 투명한 중계 서비스로서 구글의 응답을 그대로 전달합니다. 상태 코드 200인데 이미지 생성이 실패했다면, 이는 구글 측의 피드백입니다. APIYI 역시 고객의 성공적인 이미지 생성을 바라지만, 안전 정책은 구글이 제어하므로 플랫폼에서 개입할 수 없음을 양해 부탁드립니다.
Nano Banana Pro/2 이미지 생성 실패에 대한 오류 처리 방안
C-Side 제품을 개발 중인 개발자에게 이미지 생성 실패를 올바르게 처리하는 것은 매우 중요합니다. 다음은 권장되는 처리 프로세스입니다.
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-Side 사용자 친화적 안내 문구 템플릿
| 오류 유형 | 권장 안내 문구 | 제안 조치 |
|---|---|---|
| 콘텐츠 부적합 | 「현재 콘텐츠가 플랫폼 보안 정책에 맞지 않습니다. 설명을 수정 후 다시 시도해 주세요.」 | 프롬프트 수정 |
| 기능 미지원 | 「현재 해당 유형의 이미지 수정 작업은 지원하지 않습니다.」 | 다른 작업 시도 |
| 범위 초과 | 「현재 설명은 보호되는 콘텐츠 유형을 포함하고 있습니다. 독창적인 설명으로 다시 시도해 주세요.」 | 저작권 콘텐츠 회피 |
| 기술적 문제 | 「생성 중 일시적인 문제가 발생했습니다. 잠시 후 다시 시도해 주세요.」 | 재시도 대기 |
전체 C-Side 오류 처리 코드 예시 보기
# 오류 메시지 매핑
ERROR_MESSAGES = {
"content_rejected": {
"title": "콘텐츠 보안 심사 미통과",
"message": "현재 콘텐츠가 플랫폼 보안 정책에 맞지 않습니다. 설명을 수정 후 다시 시도해 주세요.",
"suggestion": "제안: 유명인, 저작권 캐릭터, 민감한 콘텐츠 포함 지양"
},
"safety_filter": {
"title": "보안 필터 작동",
"message": "이미지 생성이 보안 정책에 의해 차단되었습니다.",
"suggestion": "제안: 프롬프트를 수정하여 더 일반적인 설명 사용"
},
"text_response": {
"title": "생성 실패",
"message": "AI가 요청대로 이미지를 생성할 수 없습니다.",
"suggestion": "제안: 설명을 간소화하거나 주제를 변경 후 다시 시도"
},
"watermark": {
"title": "기능 미지원",
"message": "현재 워터마크 제거 작업은 지원하지 않습니다.",
"suggestion": "제안: 다른 이미지 편집 기능 사용"
}
}
🎯 모범 사례: C-Side 사용자에게 절대 '알 수 없는 오류'를 그대로 노출하지 마세요. 분류할 수 없는 오류가 발생하더라도 사용자에게 친절한 안내를 제공해야 합니다. 전체 오류 처리 가이드는 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-Side 제품 개발자: APIYI의 전체 오류 처리 가이드를 꼭 읽어보세요.
xinqikeji.feishu.cn/wiki/Rslqw724YiBwlokHmRLcMVKHnRf에서 전체 코드 구현 예시, 키워드 지능형 식별 로직, 프론트엔드 표시 방안 및 테스트 케이스를 확인할 수 있습니다.
자주 묻는 질문 (FAQ)
Q1: 같은 프롬프트를 사용해도 왜 어떤 때는 이미지가 생성되고, 어떤 때는 안 되나요?
구글의 보안 필터링에는 확률적인 요소가 포함되어 있습니다. 동일한 프롬프트라도 시간대나 사용하는 API 키에 따라 결과가 달라질 수 있죠. 이는 보안 모델 자체가 특히 '경계선상의 콘텐츠'를 처리할 때 어느 정도 무작위성을 띠기 때문입니다. 만약 프롬프트가 반복적으로 실패한다면, 묘사 방식을 조금 수정해 보시는 것을 추천합니다.
Q2: 상태 코드는 200인데 이미지가 없어요. APIYI 문제인가요?
아닙니다. APIYI는 투명한 중계 서비스로서 구글의 응답을 그대로 전달할 뿐입니다. 상태 코드 200은 요청 자체는 정상적으로 전달되었음을 의미하지만, 구글의 콘텐츠 보안 정책이 이미지 생성을 차단한 경우입니다. 응답 데이터 내의 finishReason과 candidatesTokenCount를 확인해 보시면 구체적인 이유를 알 수 있습니다. 물론 APIYI도 고객님들이 성공적으로 이미지를 생성하시길 항상 바라고 있습니다.
Q3: 이미지 생성에 실패해도 비용이 차감되나요?
네, 구글 측에서 할당량을 차감합니다. 하지만 APIYI(apiyi.com)는 업계 최초로 SLA 이미지 생성 실패 보상 프로그램을 도입했습니다. 월 $1,000 이상 사용하시는 고객분들은 실패한 요청에 대해 비용을 보전받으실 수 있습니다(실패 건수 × $0.05 / 할인 계수). 현재 시장에서 이러한 보장 정책을 제공하는 곳은 APIYI가 유일합니다.
요약
Nano Banana Pro/2 이미지 생성 실패와 관련된 핵심 포인트는 다음과 같습니다:
- 2단계 보안 아키텍처: Layer 1은 API 파라미터로 조절 가능하지만, Layer 2(IMAGE_SAFETY, blockReason OTHER 등)는 구글 서버 측에서 강제로 적용되는 정책이라 우회가 불가능합니다.
- 8대 거부 카테고리: 기존의 4가지(NSFW, 워터마크 제거, 유명 IP, 미성년자)에 더해, Nano Banana 2에서 추가된 4가지(유명 인물, 의상/얼굴 교체, 금융 위조, 암시적 표현)가 포함됩니다.
- 투명한 중계 메커니즘: APIYI는 구글의 응답을 그대로 전달합니다. 상태 코드 200인데 이미지가 없다면 구글의 보안 정책에 의한 차단이며, 플랫폼의 문제가 아닙니다.
구글의 보안 정책은 2026년 1월 23일부터 3월까지 세 차례 연속으로 강화되는 등 지속적으로 엄격해지고 있습니다. C-end 제품 개발자분들께서는 오류 처리 및 사용자 안내 문구를 더욱 세심하게 보완하는 것이 급선무입니다.
APIYI(apiyi.com)를 통해 Nano Banana Pro/2를 이용해 보세요. 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 - 설명: Layer 1에서 구성 가능한 안전 필터 매개변수 및 옵션
- 링크:
-
Google 생성형 콘텐츠 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 문서 센터에서 확인하실 수 있습니다.
