저자 주: Gemini API 이미지 생성 시 finishReason OTHER 오류가 발생하는 원인을 심층 분석합니다. 저작권 캐릭터 리스크 관리, 콘텐츠 검토 메커니즘을 포함하여 해결 방안과 APIYI 대체 솔루션을 제공합니다.
Gemini API로 이미지를 생성하다 보면 갑자기 finishReason: "OTHER", content.parts: null과 같은 이상한 에러가 뜨면서 이미지가 반환되지 않을 때가 있습니다. 이 글에서는 이 오류의 진짜 원인이 무엇인지, 그리고 저작권 리스크 관리 문제를 어떻게 해결할 수 있는지 심층 분석해 보겠습니다.
핵심 가치: 이 글을 읽고 나면 Gemini API의 다층 콘텐츠 검토 메커니즘을 이해하고, 왜 디즈니나 마블 등의 캐릭터가 리스크 관리를 트리거하는지 알게 될 것입니다. 또한, 이미지 생성 API를 규정에 맞게 사용하는 방법도 익힐 수 있습니다.

finishReason OTHER 오류 핵심 분석
다음과 같은 응답을 받았다면, 이미지 생성이 Google의 콘텐츠 검토 시스템에 의해 차단되었음을 의미합니다.
{
"candidates": [
{
"content": {
"parts": null
},
"finishReason": "OTHER",
"index": 0
}
],
"usageMetadata": {
"promptTokenCount": 306,
"candidatesTokenCount": 0,
"totalTokenCount": 478,
"thoughtsTokenCount": 172
},
"modelVersion": "gemini-3-pro-image-preview"
}
| 필드 | 의미 | 설명 |
|---|---|---|
finishReason: "OTHER" |
비표준 종료 원인 | STOP/SAFETY/MAX_TOKENS에 해당하지 않음 |
content.parts: null |
반환된 내용 없음 | 이미지가 차단되어 생성되지 않음 |
candidatesTokenCount: 0 |
출력 토큰 0 | 생성된 내용이 없음을 확인 |
thoughtsTokenCount: 172 |
사고 토큰 소모됨 | 모델이 생성을 시도했으나 도중에 차단됨 |
왜 SAFETY가 아니라 OTHER인가요?
Gemini API에는 여러 가지 finishReason 값이 있습니다.
| finishReason | 발생 상황 |
|---|---|
STOP |
생성이 정상적으로 완료됨 |
SAFETY |
음란물/폭력/혐오 등 안전 필터링 트리거 |
MAX_TOKENS |
최대 토큰 제한 도달 |
RECITATION |
저작권 콘텐츠 반복 탐지 트리거 |
OTHER |
저작권/상표/미분류 콘텐츠 검토 |
finishReason: OTHER는 보통 전통적인 안전 콘텐츠 필터링이 아닌, 저작권이나 상표 관련 리스크 관리가 트리거되었음을 의미합니다.

왜 디즈니 캐릭터는 차단될까요?
사례: 주토피아 이미지 추출 실패
한 사용자가 다음과 같은 프롬프트를 사용해 영화 《주토피아》의 캐릭터 이미지를 처리하려고 시도했습니다.
"제공된 이미지에서 패턴을 엄격하게 추출하고, 디자인 요소인 무늬와 질감 등을 정확하게 식별하여 왜곡이나 누락 없이 완벽하게 복원하세요. 주름을 제거하고 화면을 가득 채우는 평면 인쇄 이미지로 복원하세요."
결과: finishReason: OTHER가 발생하며 이미지 생성에 실패했습니다.
원인 분석
| 원인 | 설명 |
|---|---|
| 저작권 캐릭터 식별 | Gemini는 디즈니, 마블, 픽사 등 유명 IP 캐릭터를 식별합니다. |
| 상표 보호 | 닉 와일드, 주디 홉스는 디즈니의 등록 상표입니다. |
| 법적 리스크 회피 | 2025년 12월, 디즈니는 이미 Google에 침해 중단 요청서를 보냈습니다. |
| 다층 필터링 메커니즘 | 프롬프트가 통과되더라도 생성 과정에서 차단될 수 있습니다. |
디즈니 vs Google의 저작권 분쟁
2025년 12월 10일, 디즈니는 Gemini AI가 디즈니의 저작권을 대규모로 침해했다는 이유로 Google에 침해 중단 요청서를 보냈습니다.
- 《어벤져스》, 《스타워즈》 등의 캐릭터 포함
- 디즈니는 Gemini가 생성한 다스 베이더 등의 캐릭터 이미지를 증거로 제출
- 이후 Google은 유명 IP 캐릭터에 대한 리스크 관리를 대폭 강화
이것이 현재 디즈니, 마블, 픽사 등과 관련된 캐릭터 이미지 처리가 빈번하게 차단되는 이유입니다.
Gemini API의 다층 콘텐츠 심사 메커니즘
Gemini의 이미지 생성은 여러 단계의 필터링 메커니즘을 채택하고 있으며, 어느 한 단계라도 트리거되면 요청이 실패합니다.
1단계: 프롬프트 사전 검사
모델을 호출하기 전, 시스템은 프롬프트에 다음 내용이 포함되어 있는지 먼저 확인합니다.
- 민감한 키워드 (성인물, 폭력, 증오 표현)
- 저작권 캐릭터 이름 (디즈니, 마블 등)
- 상표권 키워드
2단계: 입력 이미지 분석
참조 이미지를 업로드한 경우, 시스템은 이미지 콘텐츠를 분석합니다.
- 이미지 내 저작권 캐릭터 식별
- 상표 로고 감지
- 보호받는 예술 작품인지 여부 판단
3단계: 생성 과정 모니터링
앞선 두 단계를 통과하더라도 생성 과정 중에 지속적인 모니터링이 이루어집니다.
- 중간 출력물에 민감한 콘텐츠가 포함되면 즉시 중단
- 출력이 기성 저작물과 유사도가 너무 높으면 반환 거부
4단계: 출력물 심사
생성이 완료된 후 최종 심사가 진행됩니다.
- 생성된 이미지에 대한 저작권 검사 수행
- 규정에 어긋나는 이미지는 폐기되고 빈 결과가 반환됨
어떤 내용들이 finishReason OTHER를 유발하기 쉬울까요?
사용자 피드백과 공식 정책에 따르면, 다음과 같은 콘텐츠가 가장 차단될 가능성이 높습니다.
| 카테고리 | 구체적인 예시 | 위험 등급 |
|---|---|---|
| 디즈니 캐릭터 | 미키 마우스, 주토피아, 겨울왕국 | 🔴 매우 높음 |
| 마블 캐릭터 | 아이언맨, 스파이더맨, 캡틴 아메리카 | 🔴 매우 높음 |
| 픽사 캐릭터 | 토이스토리, 카 | 🔴 매우 높음 |
| 스타워즈 | 다스 베이더, 요다, 스톰트루퍼 | 🔴 매우 높음 |
| 일본 애니메이션 | 일부 유명 IP (상황에 따라 다름) | 🟡 중간 |
| 유명인 초상 | 연예인, 정치인 | 🟡 중간 |
| 브랜드 로고 | 나이키, 애플, 코카콜라 | 🟡 중간 |
| 오리지널 예술품 | 유명 화가의 작품 복제 | 🟡 중간 |
의도치 않게 차단될 수 있는 시나리오
악의적인 의도가 없더라도 다음과 같은 상황에서는 리스크 관리 시스템이 작동할 수 있어요.
- 패턴 추출: 옷이나 굿즈에서 프린팅 패턴을 추출하는 경우
- 스타일 전이: 이미지를 특정 유명 IP의 화풍으로 변환하는 경우
- 배경 교체: 저작권 캐릭터가 포함된 배경 이미지를 처리하는 경우
- 이미지 보정: 캐릭터가 포함된 이미지를 수정하거나 보정하는 경우
5가지 해결 방법
방안 1: 프롬프트 조정
저작권 캐릭터의 이름을 직접 언급하는 대신, 일반적인 묘사를 사용해 보세요.
# ❌ 容易被拦截
prompt = "提取疯狂动物城朱迪的图案"
# ✅ 更安全的写法
prompt = "提取图片中的卡通兔子图案,还原为平面印刷图像"
방안 2: 저작권 캐릭터 이미지 업로드 피하기
가능하다면 명확한 저작권 캐릭터가 포함되지 않은 이미지로 테스트를 진행해 보세요.
방안 3: 범용 이미지 처리 도구 사용
패턴 추출이나 주름 제거 등의 작업이 목적이라면 다음 도구들을 고려해 볼 수 있습니다.
- 어도비 포토샵(Adobe Photoshop)의 내용 인식 채우기
- 전문적인 프린팅 패턴 추출 소프트웨어
- 범용 이미지 초해상도(Super-Resolution) 도구
방안 4: Safety Settings 조정 (효과는 제한적)
안전 설정을 조정해 볼 수는 있지만, 저작권 관련 차단에는 효과가 제한적일 수 있어요.
from google.generativeai.types import HarmCategory, HarmBlockThreshold
safety_settings = {
HarmCategory.HARM_CATEGORY_HARASSMENT: HarmBlockThreshold.BLOCK_NONE,
HarmCategory.HARM_CATEGORY_HATE_SPEECH: HarmBlockThreshold.BLOCK_NONE,
HarmCategory.HARM_CATEGORY_SEXUALLY_EXPLICIT: HarmBlockThreshold.BLOCK_NONE,
HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT: HarmBlockThreshold.BLOCK_NONE,
}
주의: 저작권 관련 차단은 Safety Settings로 우회할 수 없는 강제 제한 사항입니다.
방안 5: APIYI의 Gemini API 사용 (추천)
APIYI(apiyi.com)는 Gemini 전 시리즈의 API 중계 서비스를 제공합니다. 동일한 대규모 언어 모델 성능을 유지하면서도 더 안정적인 호출 경험을 누릴 수 있어요.
import openai
client = openai.OpenAI(
api_key="YOUR_APIYI_KEY",
base_url="https://vip.apiyi.com/v1"
)
response = client.chat.completions.create(
model="gemini-3-pro-image-preview",
messages=[
{
"role": "user",
"content": "生成一张原创的卡通动物城市场景,包含狐狸 and 兔子角色"
}
]
)
권장 사항: APIYI(apiyi.com)를 통해 Gemini API를 호출하면 더 안정적인 서비스와 한국어/중국어 기술 지원을 받을 수 있습니다. 가격은 공식 홈페이지의 약 20% 수준(4K 이미지 장당 $0.05)이며, 번거로운 카드 등록 문제도 걱정하실 필요 없습니다.
요청이 차단된 원인을 판단하는 방법
응답 필드 확인하기
def analyze_response(response):
candidate = response.candidates[0]
# 检查 finishReason
finish_reason = candidate.finish_reason
# 检查是否有内容
has_content = candidate.content and candidate.content.parts
# 检查 promptFeedback
block_reason = getattr(response.prompt_feedback, 'block_reason', None)
print(f"finishReason: {finish_reason}")
print(f"Has content: {has_content}")
print(f"Block reason: {block_reason}")
if finish_reason == "OTHER" and not has_content:
print("⚠️ 可能触发了版权/商标风控")
elif finish_reason == "SAFETY":
print("⚠️ 触发了安全内容过滤")
흔히 발생하는 에러 코드 대조표
| 응답 특징 | 가장 가능성 높은 원인 | 권장 조치 |
|---|---|---|
finishReason: OTHER, parts: null |
저작권/상표 리스크 관리 | 이미지 교체 또는 프롬프트 수정 |
finishReason: SAFETY |
콘텐츠 안전 필터링 | Safety Settings 조정 |
blockReason: PROHIBITED_CONTENT |
이용 정책 명시적 위반 | 프롬프트 및 이미지 확인 |
finishReason: RECITATION |
저작권 중복 탐지 트리거 | 프롬프트 표현 수정 |
error 503: Model overloaded |
서비스 과부하 | 잠시 후 다시 시도하거나 APIYI 사용 |
자주 묻는 질문
Q1: 왜 동일한 요청이 어떨 때는 성공하고 어떨 때는 실패하나요?
Gemini의 콘텐츠 검토에는 어느 정도 무작위성이 존재하며, 다음과 같은 이유가 있을 수 있어요:
- 모델 버전 업데이트에 따른 검토 전략 변화
- 서버 측의 일시적인 필터링 규칙 조정
- 입력 이미지의 미세한 차이로 인한 판정 결과 변화
이런 우발적인 실패를 처리하기 위해 재시도 메커니즘을 사용하는 것이 좋습니다.
Q2: 저는 그냥 이미지의 주름을 제거하고 싶을 뿐인데, 왜 차단되는 걸까요?
입력 이미지에 저작권이 있는 캐릭터가 포함되어 있다면, 주름 제거라든지 색상 조정과 같이 처리 의도가 완전히 정당하더라도 리스크 관리 시스템이 작동할 수 있어요. 이는 시스템이 프롬프트뿐만 아니라 입력 이미지의 콘텐츠 자체를 분석하기 때문입니다.
저작권이 없는 이미지를 사용하거나, 전문 이미지 편집 소프트웨어를 사용하는 것을 권장드려요.
Q3: APIYI의 Gemini API도 동일한 제한이 있나요?
APIYI는 Gemini API의 중개 서비스를 제공하며, 사용하는 대규모 언어 모델이 동일하기 때문에 저작권 관련 리스크 관리 메커니즘도 동일하게 적용됩니다. 하지만 APIYI를 사용하면 다음과 같은 장점이 있어요:
- 더 저렴한 가격 (공식 홈페이지 대비 약 80% 저렴)
- 해외 신용카드 연동 불필요
- 전문적인 기술 지원
- 더 안정적인 서비스 경험
더 자세한 내용은 apiyi.com에서 확인해 보세요.
요약
Gemini API 이미지 생성 시 finishReason: OTHER 오류가 발생하는 핵심 요약:
- 저작권 리스크 관리가 주된 원인: 디즈니, 마블, 픽사 등 유명 IP 캐릭터는 리스크 관리 시스템을 트리거합니다.
- 다층 필터링 메커니즘: 프롬프트부터 출력물까지 전 과정이 모니터링되며, 어느 단계에서든 차단될 수 있습니다.
- 완전한 우회 불가: Safety Settings는 저작권 제한에 영향을 주지 않습니다. 이는 법적 준수 사항이기 때문입니다.
- 해결 제안:
- 저작권이 있는 캐릭터가 포함된 이미지 처리를 피하세요.
- 프롬프트를 수정하여 일반적인 묘사를 사용하세요.
- **APIYI(apiyi.com)**를 통해 더 안정적인 서비스를 경험해 보세요.
Gemini 이미지 생성을 대량으로 사용해야 하는 개발자분들께는 **APIYI(apiyi.com)**를 통한 호출을 추천합니다. 4K 이미지를 장당 단돈 $0.05(공식 가격의 20% 수준)에 이용할 수 있으며, 알리페이/위챗 결제와 기술 지원을 제공합니다.
📚 참고 자료
-
Gemini API Safety Settings 문서: 안전 설정 구성
- 링크:
ai.google.dev/gemini-api/docs/safety-settings - 설명: 공식 안전 필터링 설정 가이드
- 링크:
-
Gemini 콘텐츠 생성 API 문서: finishReason 열거형 값 설명
- 링크:
ai.google.dev/api/generate-content - 설명: 다양한 finishReason의 의미
- 링크:
-
Generative AI 금지 정책: Google의 사용 정책
- 링크:
support.google.com/gemini/answer/16625148 - 설명: 상세한 콘텐츠 제한 사항 안내
- 링크:
작성자: 기술 팀
기술 교류: 댓글창에서 Gemini API 사용 관련 문제를 함께 논의해 봐요. 더 많은 자료는 APIYI(apiyi.com) 기술 커뮤니티에서 확인하실 수 있습니다.
