본문으로 건너뛰기

Gemini(제미나이) 이미지 생성 오류: 앱 원인 6가지와 API 오류 코드표

Gemini 앱에서 이미지가 안 나오면 로그인·만 18세 편집 조건·한도·정책 거절을 확인하세요. API 오류는 429·5xx만 백오프로 재시도하고 400·402·403은 고친 뒤 보냅니다.

LaoZhang AI Team게시업데이트 8 분 소요
목차
Gemini 앱 이미지 문제와 API 응답 오류를 먼저 분리하는 진단 표지

제미나이(Gemini) 이미지 생성 오류는 어디서 쓰느냐에 따라 확인할 것이 완전히 다릅니다.

  • Gemini 앱(웹·모바일)에서 이미지가 안 나온다면 대부분 계정 조건이나 한도, 정책 거절입니다. 로그인 상태, 사진 편집의 만 18세 조건, 직장·학교 계정 여부, 사용 한도, 요청 내용, 일시 오류를 순서대로 확인하면 됩니다. 아래 앱 점검표에 증상별 다음 단계가 있습니다.
  • API 응답에 오류 코드가 찍혔다면 먼저 다시 보내도 되는 오류인지 가립니다. Google 문서 기준으로 429, 408, 5xx는 지수 백오프로 재시도하고, 400·402·403은 요청이나 키, 결제를 고치기 전에는 다시 보내도 같은 결과가 나옵니다. 아래 오류 코드표에서 코드별 조치를 확인하세요.

2026년 10월 5일 기준 현행 이미지 모델은 gemini-3.1-flash-image(Nano Banana 2), gemini-3-pro-image(Nano Banana Pro), gemini-3.1-flash-lite-image(Nano Banana 2 Lite)입니다. 이전에 쓰던 -preview 모델 ID나 gemini-2.5-flash-image를 그대로 호출하고 있다면 그것부터 원인입니다.

Gemini 앱에서 이미지가 안 나올 때 확인할 6가지

Gemini 앱의 이미지 생성과 편집에는 Google 고객센터에 적힌 이용 조건이 있습니다. 증상에 맞는 줄을 찾아 다음 단계만 하면 됩니다.

증상원인다음 단계
이미지 메뉴가 없거나 요청이 글로만 답해짐로그인하지 않았거나, 앱이 지원하지 않는 언어·국가Google 계정으로 로그인하고 지원 언어로 요청
새 이미지는 되는데 올린 사진 편집만 안 됨개인 계정은 만 18세 이상만 편집 가능(생성은 만 13세 또는 국가별 기준 연령 이상)계정 생년월일 확인, 해당하지 않으면 편집 기능은 사용 불가
회사·학교 계정에서만 안 됨직장·학교 계정은 약관과 제한이 개인 계정과 다를 수 있음관리자에게 Gemini 이미지 기능 허용 여부 문의, 또는 개인 계정 사용
잘 되다가 갑자기 안 됨사용 한도 도달. 5시간마다 회복되고 주간 상한이 있음한도 회복 후 다시 시도, 자주 막히면 Google AI 요금제 검토
특정 요청만 계속 거절됨동의 없는 실존 인물 이미지, 성적·폭력적 장면 등 정책 위반 가능성요청 자체를 내 사진, 허락받은 사진, 가상 인물로 바꾸기
"문제가 발생했습니다", 생성 중 멈춤일시 오류나 서비스 혼잡새 채팅에서 다시 시도, 시간을 두고 재시도

사용 한도는 Google이 "하루 몇 장"으로 공개하지 않습니다. Gemini 앱 한도 안내에 따르면 요금제가 없으면 기본 한도, Google AI Plus는 2배, Google AI Pro는 4배, Google AI Ultra는 Pro의 5배 또는 20배이며, 모두 5시간마다 회복되다가 주간 한도에 닿으면 멈춥니다. Nano Banana 2 이미지 한도를 다 쓰면 요금제 사용자의 "Pro로 다시 만들기"도 함께 막힙니다.

정책 거절은 표현을 바꿔 통과시킬 대상이 아닙니다. Google 생성형 AI 금지 사용 정책은 안전 필터를 피하려는 시도 자체를 금지 행위로 정하고 있고, Gemini 앱은 위반이 반복되면 생성형 AI 사용이나 계정을 제한할 수 있다고 안내합니다. 사람 이미지가 왜 거절되는지는 제미나이(Gemini) 사람 이미지 생성 안 되는 이유에서, 앱에서 이미지가 멈추거나 사라지는 증상은 Gemini에서 Nano Banana가 안 될 때: 이미지 오류 12가지 해결 분기에서 더 자세히 다룹니다. "Something went wrong (5)"처럼 번호가 붙은 앱 오류는 Nano Banana Pro 오류 5 원인 구분과 대처를 참고하세요.

Gemini API 오류 코드표: 400·402·403·404·429와 5xx

Google의 "API errors" 문서는 오류마다 code(snake_case 문자열)와 HTTP 상태를 함께 돌려준다고 설명합니다. 애플리케이션에서는 메시지 문장이 아니라 이 코드로 분기하는 것이 안전합니다. 아래 표는 2026년 10월 5일 기준 이 문서와 문제 해결 가이드를 묶은 것입니다.

코드HTTP의미조치재시도
invalid_request400요청 형식이 잘못됐거나 파라미터 값이 틀림API 참조와 요청 본문 대조아니요, 고친 뒤
parameter_unknown400모르는 파라미터가 들어 있음해당 파라미터 삭제아니요, 고친 뒤
failed_precondition400전제 조건 미충족(예: 결제 비활성)프로젝트 결제 상태·계정 조건 확인아니요
authentication401API 키가 없거나 무효·만료키 확인, 필요하면 새로 발급아니요
payment_required402선불(Prepay) 크레딧 잔액 소진크레딧 충전 또는 자동 충전 켜기아니요, 충전 전에는 계속 실패
permission_denied403키에 해당 리소스 권한이 없음키 권한과 프로젝트 접근 확인아니요
model_not_found404모델 이름이 없음(종료된 ID 포함)현행 모델 ID로 교체아니요
rate_limit_exceeded429분·초 단위 요청 또는 토큰 한도 초과지수 백오프 후 재시도, 요청 속도 낮추기예
quota_exceeded429일일 할당량 소진할당량 초기화까지 대기 또는 증액 요청즉시 재시도는 무의미
api_error500서버 내부 오류재시도, 계속되면 지원 문의예
service_unavailable503서비스 과부하 또는 중단지수 백오프 후 재시도예
deadline_exceeded504제한 시간 안에 끝나지 않음클라이언트 타임아웃을 늘리거나 서버 기본값 사용예, 설정 조정 후

표의 코드 이름은 Interactions API 기준입니다. generateContent를 쓰면 같은 상황이 HTTP 상태와 RESOURCE_EXHAUSTED(429), INVALID_ARGUMENT(400) 같은 상태 이름으로 돌아오고, 차단이나 이미지 누락은 응답 안의 finishReason으로 나타납니다. 표에 없는 코드는 Google 문서에 따라 HTTP 상태 이름의 snake_case 형태로 내려옵니다.

키 자체가 막힌 경우도 있습니다. Google 문제 해결 가이드에 따르면 공개적으로 노출된 것으로 확인된 키는 Gemini API에서 차단되고, Your API key was reported as leaked. Please use another API key.라는 메시지가 돌아옵니다. 이때는 Google AI Studio에서 키 상태를 확인하고 새 키를 발급해야 합니다.

이미지가 차단되거나 비어 있을 때: image_safety·image_other·no_image

HTTP 오류 없이 요청이 끝났는데 이미지가 없다면 차단 코드나 생성 오류 코드를 봐야 합니다. Google은 차단 코드를 받으면 "입력을 수정해 다시 보내라"고 안내하지만, 여기서 수정은 요청 내용 자체를 정책에 맞게 바꾸는 것을 뜻합니다.

Interactions 코드generateContent 값의미다음 단계
image_safetyfinishReason: IMAGE_SAFETY생성된 이미지가 안전 정책에 걸림요청 내용을 정책에 맞게 변경
image_prohibited_contentfinishReason: IMAGE_PROHIBITED_CONTENT금지 콘텐츠로 판단같은 의도를 다른 표현으로 반복하지 말고 요청 자체를 변경
image_recitationfinishReason: IMAGE_RECITATION저작권·재현 제한기존 작품을 그대로 재현하는 요청 피하기
image_otherfinishReason: IMAGE_OTHER원인이 공개되지 않은 차단프롬프트와 참조 이미지를 나눠서 어느 쪽이 걸리는지 확인
no_imagefinishReason: NO_IMAGE이미지를 만들지 못함응답의 텍스트 부분과 요청 설정 확인
missing_thought_signatureMISSING_THOUGHT_SIGNATURE 또는 400여러 턴 편집에서 이전 응답의 사고 서명이 빠짐이전 모델 응답을 수정 없이 그대로 다시 전달

프롬프트 단계에서 막히면 후보(candidate) 없이 promptFeedback.blockReason(SAFETY, OTHER, PROHIBITED_CONTENT 등)만 돌아옵니다. Google 안전 설정 문서에 따르면 현행 Gemini 모델의 조절 가능한 안전 필터는 기본값이 이미 꺼짐(Off)입니다. 따라서 safetySettings를 BLOCK_NONE으로 바꿔도 IMAGE_SAFETY나 PROHIBITED_CONTENT 결과가 풀리지 않는다고 보는 것이 맞습니다. 아동 안전 같은 핵심 보호 장치는 설정과 무관하게 항상 적용됩니다.

missing_thought_signature는 이전 턴에서 만든 이미지를 다음 턴에서 다시 편집할 때 주로 나옵니다. 공식 SDK의 채팅 객체를 쓰거나 이전 응답 전체를 그대로 붙이면 SDK가 서명을 처리하고, Interactions API에서는 previous_interaction_id로 이어 가면 서버가 관리합니다. 서드파티 SDK가 이전 이미지를 서명 없이 다시 보내 Image part is missing a thought_signature라는 400 오류가 난 사례도 있습니다(Vercel AI SDK 이슈 #12988, ai 6.0.114에서 수정).

차단 코드별 세부 대응은 다음 문서에 정리돼 있습니다.

400·404를 줄이는 파라미터 점검: 모델 ID, 대문자 K, /v1beta

재시도로 풀리지 않는 400과 404는 대부분 요청 값 문제입니다. 다음 다섯 가지를 확인하면 상당수가 걸러집니다.

  1. 모델 ID가 현행인지. gemini-3-pro-image-preview와 gemini-3.1-flash-image-preview는 2026년 6월 25일, gemini-2.5-flash-image는 2026년 10월 2일에 종료됐습니다. Imagen 4 계열도 2026년 8월 17일에 Gemini API에서 종료됐고 대체 모델은 gemini-3.1-flash-image입니다. 종료된 ID는 model_not_found(404)로 돌아옵니다.
  2. 이미지 크기를 대문자 K로 썼는지. Google 이미지 생성 가이드에 따르면 "1K", "2K", "4K"처럼 대문자를 써야 하고 "1k"는 거부됩니다. Nano Banana 2 Lite는 1K만 지원합니다. generateContent에서는 generationConfig.imageConfig.imageSize와 aspectRatio로 지정합니다.
  3. REST 경로가 /v1beta인지. generateContent 엔드포인트는 https://generativelanguage.googleapis.com/v1beta/models/{모델}:generateContent입니다. Google은 베타 기능이 /v1beta에서만 제공된다고 안내합니다.
  4. 파라미터 범위. candidate count는 1~8, temperature와 topP는 0.0~1.0입니다. Gemini 3.x 모델은 temperature 등을 기본값으로 두라는 것이 Google의 권고입니다.
  5. 프로젝트가 유료 등급인지. 현행 이미지 모델은 모두 무료 티어에서 이미지 출력이 "사용 불가"입니다. 무료 프로젝트에서 이미지 요청을 보내면 할당량 0으로 막히고, 오류에 free_tier_requests와 limit: 0이 보이는 경우가 많습니다. 결제를 연결했는데도 같은 오류가 나면 Gemini API 유료인데 free_tier_requests limit 0에서 프로젝트와 결제 상태를 확인하세요.

402는 결제 쪽 문제입니다. Google 결제 문서에 따르면 2026년 3월 23일 이후 새 사용자는 선불(Prepay)이 기본이고 최소 $5를 충전해야 유료 등급이 됩니다. 잔액이 $0이 되면 요청이 402로 실패하므로, 재시도 대신 충전이나 자동 충전을 켜야 합니다. Google Cloud의 $300 무료 체험 크레딧은 Gemini API 비용에 쓸 수 없습니다.

429 오류: 분당 한도, 일일 할당량, 지출 한도 구분

429는 같은 숫자라도 원인이 셋으로 갈리고, 원인에 따라 기다려야 할 시간이 다릅니다.

  • 분·초 단위 한도(rate_limit_exceeded): 요청 수, 토큰 수, 이미지 모델 전용인 분당 이미지 수(IPM) 가운데 하나를 넘은 경우입니다. 지수 백오프로 몇 초~몇십 초 뒤 다시 보내면 대개 풀립니다.
  • 일일 할당량(quota_exceeded): 일일 요청 한도(RPD)를 다 쓴 경우입니다. 미국 태평양 시간 자정에 초기화되므로 한국 시간으로는 서머타임 기간에 오후 4시, 그 외에는 오후 5시입니다. 그 전까지 백오프 재시도는 소용이 없습니다.
  • 지출 기반 한도: 최근 10분 동안의 지출이 등급별 상한(Tier 1 $10, Tier 2 $50, Tier 3 $200)을 넘으면 429 RESOURCE_EXHAUSTED가 납니다. Tier 1 기준 $10을 Nano Banana Pro 1K·2K 표준 가격 $0.134로 나누면 10분에 약 74장입니다. 결제 이력과 계정 상태에 따라 적용 여부가 다릅니다.

한도는 API 키가 아니라 프로젝트 단위로 적용되므로, 같은 프로젝트에서 키를 여러 개 만들어도 한도는 늘지 않습니다. 현행 이미지 모델별 RPM·IPM 수치는 Google 문서에 표로 실려 있지 않고 Google AI Studio에서 프로젝트별로 확인해야 합니다.

분당 429, 일일 할당량과 10분 지출 한도의 서로 다른 대응

429를 더 깊이 다루는 문서는 다음과 같습니다.

재시도 규칙과 Python 처리 예시: 429·5xx만 백오프

Google 문제 해결 가이드의 재시도 원칙은 네 가지입니다.

  1. 일시적 오류(429, 408, 5xx)만 재시도하고 400·402·403은 재시도하지 않습니다.
  2. 첫 재시도 전 1초 정도 기다리고 2초, 4초, 8초처럼 늘립니다.
  3. 모든 클라이언트가 같은 순간에 몰리지 않도록 대기 시간에 무작위 지터를 더합니다.
  4. 최대 재시도 횟수를 정해 무한 반복을 막습니다.

같은 가이드는 Python SDK가 일시적 오류를 기본적으로 최대 4번, 약 1초에서 시작해 최대 60초 간격으로 자동 재시도한다고 설명합니다. 그런데 2026년 10월 5일 기준 최신판인 google-genai 2.28.0에서 429만 돌려주는 모의 서버로 확인하면, 옵션 없이 만든 genai.Client()는 요청을 1번만 보내고 바로 오류를 냅니다. 이는 client.models.generate_content 기준이며, 같은 버전의 client.interactions.create는 기본값으로 429를 스스로 재시도했습니다(같은 테스트에서 약 3초 동안 4번). HttpRetryOptions()를 넣었을 때 비로소 처음 요청을 포함해 5번(재시도 4번) 보내고, 이때 기본값이 Google 설명과 같은 1초 시작, 최대 60초, 대상 상태 코드 408·429·500·502·503·504입니다. 자동 재시도를 기대한다면 옵션을 명시하고, 그 위에 직접 만든 재시도 루프를 또 감싸면 요청 수가 곱절로 늘어난다는 점도 기억해 두세요.

python
from google import genai
from google.genai import errors, types

# retry_options를 넣어야 408·429·5xx 자동 재시도가 켜집니다(기본값: 최대 4번, 1초에서 시작해 최대 60초).
client = genai.Client(
    http_options=types.HttpOptions(retry_options=types.HttpRetryOptions())
)

FIX_FIRST = {400, 401, 402, 403, 404}  # 다시 보내도 같은 결과인 오류

def generate_image(prompt: str) -> bytes:
    try:
        resp = client.models.generate_content(
            model="gemini-3.1-flash-image",
            contents=prompt,
            config=types.GenerateContentConfig(
                image_config=types.ImageConfig(image_size="1K"),  # 대문자 K
            ),
        )
    except errors.APIError as e:
        if e.code in FIX_FIRST:
            raise RuntimeError(f"요청·키·결제를 먼저 고치세요: {e.code} {e.status} {e.message}") from e
        raise  # 429·5xx가 재시도 후에도 남음: 작업을 큐에 되돌리고 나중에 처리

    if resp.prompt_feedback and resp.prompt_feedback.block_reason:
        raise RuntimeError(f"프롬프트 단계 차단: {resp.prompt_feedback.block_reason}")
    cand = resp.candidates[0] if resp.candidates else None
    parts = cand.content.parts if cand and cand.content and cand.content.parts else []
    for part in parts:
        if part.inline_data and part.inline_data.data:
            return part.inline_data.data
    raise RuntimeError(f"이미지 없음: finish_reason={cand.finish_reason if cand else None}")

이 코드는 google-genai 2.28.0에서 Google API 대신 정해진 응답을 돌려주는 모의 서버로 분기만 확인한 예시입니다. 정상 이미지 응답은 바이트를 반환하고, IMAGE_SAFETY와 프롬프트 차단은 이유를 담은 예외로, 402는 재시도 없이 1번 만에, 503은 5번 요청한 뒤 오류로 끝났습니다. 실제 이미지 생성 여부와 비용은 프로젝트의 결제 상태와 한도에 따라 달라집니다.

요청·키·결제 오류를 먼저 수정하고 일시 오류만 재시도하는 이미지 API 처리 원칙

제미나이 이미지 생성 오류 자주 묻는 질문

제미나이 이미지 생성 "오류 13"은 무슨 뜻인가요?

Google 고객센터에는 Gemini 앱 오류 번호별 의미가 공개되어 있지 않습니다. 번호만 보고 원인을 단정하기보다 앱 점검표 순서대로 로그인 상태, 계정 종류, 사용 한도를 확인하고, 새 채팅에서 다시 시도해 보세요. 같은 요청에서만 반복된다면 요청 내용이 정책에 걸리는지도 살펴봐야 합니다.

제미나이 이미지 생성 제한은 하루 몇 장인가요?

Google은 Gemini 앱의 이미지 장수를 공개하지 않습니다. 사용량은 연산량 기준이며 5시간마다 회복되고 주간 한도가 있습니다. 요금제가 없으면 기본 한도이고 Google AI Plus 2배, Pro 4배, Ultra는 Pro의 5배 또는 20배입니다.

제미나이가 자꾸 이미지를 멋대로 생성할 때는 어떻게 하나요?

대화 중 "그려 줘", "보여 줘" 같은 표현이 이미지 요청으로 읽힐 수 있습니다. 글로만 답을 원하면 "이미지 없이 글로만 답해 줘"라고 요청에 명시하는 방법이 가장 간단합니다.

Gemini API 무료 티어로 이미지를 만들 수 없나요?

만들 수 없습니다. 2026년 10월 5일 기준 Google 가격표에서 현행 이미지 모델은 모두 무료 티어의 이미지 출력이 "사용 불가"입니다. 결제를 연결하고 최소 $5를 선불 충전한 유료 프로젝트가 필요하며, 무료 프로젝트에서 보낸 이미지 요청은 할당량 0인 429로 돌아옵니다.