본문으로 건너뛰기

나노바나나 프로 seed 고정: 같은 이미지와 캐릭터 일관성을 지키는 방법

같은 그림을 다시 써야 한다면 seed보다 승인 원본을 먼저 보관하세요. 새 장면의 얼굴과 스타일을 맞출 때는 기준 이미지가 출발점입니다. Google의 일반 seed 필드와 제공업체별 조건을 구분하고, 요청 준비·결과 저장·고정 후처리를 직접 적용할 수 있습니다.

LaoZhang AI Team게시8 분 소요
목차
승인 원본을 보관하는 작업과 참조 이미지로 새 장면을 만드는 작업을 구분한 카페 진행자 일러스트

나노바나나 프로(Nano Banana Pro)로 만든 썸네일이 마음에 들었는데 다음 장에서 얼굴이 바뀌었다면, 먼저 필요한 결과를 구분해야 합니다. 같은 이미지를 다시 게시하는 일은 승인한 원본 파일을 보관하면 해결됩니다. 같은 캐릭터를 다른 장면에 등장시키는 일은 기준 이미지를 넣고 유지할 것과 바꿀 것을 나누어 요청하는 작업입니다. seed 하나가 두 작업을 모두 보장하지는 않습니다.

그렇다고 “나노바나나 프로에는 seed가 전혀 없다”고 단정하는 것도 정확하지 않습니다. Google의 일반 GenerationConfig에는 정수 seed가 있고, 문서에는 모델마다 설정 가능한 매개변수가 다르다고 명시되어 있습니다. 이 필드가 있다는 사실만으로 특정 Pro 호출의 수용 여부나 동일 픽셀을 보장할 수는 없습니다. Google GenerateContent 설정 문서

아래 설명은 2026년 10월 7일 문서 기준입니다. 현재 Gemini API의 Pro 이미지 모델 ID는 gemini-3-pro-image입니다. 예전 gemini-3-pro-image-preview는 2026년 6월 25일 종료됐으므로 새 구현에 그대로 넣지 마세요. 현재 모델 정보, 모델 종료 일정

원하는 결과에 따라 먼저 고르세요

필요한 결과먼저 할 일완료됐다고 판단할 기준
승인한 그림을 다른 글에도 똑같이 사용원본 파일을 복사하고 해시 기록복사본의 파일 해시가 원본과 같음
같은 진행자가 다른 장소에 등장승인 원본을 참조하고 얼굴·의상·화풍을 유지하도록 지정정해 둔 얼굴·의상 기준으로 후보를 사람이 선택
얼굴은 두고 제목·색상·여백만 변경원본에 로컬 이미지 처리를 적용같은 입력과 처리 환경에서 같은 구성의 파일 생성
seed 값으로 후보를 관리선택한 API의 모델별 seed 계약을 확인요청 기록에 seed와 모델·옵션이 함께 남음
생성 과정까지 직접 통제환경을 고정할 수 있는 자체 처리 체계 검토통제 범위 안에서 반복 결과를 검증

썸네일 10장에 같은 인물이 필요하다고 해서 매번 인물부터 다시 생성할 필요는 없습니다. 제목과 배경색만 다르면 승인한 인물 이미지를 재사용하는 쪽이 맞습니다. 자세나 조명이 달라져야 할 때에만 참조 이미지를 사용한 생성·편집으로 넘어가세요. 이렇게 나누면 이미지가 달라질 원인과 불필요한 생성 횟수를 함께 줄일 수 있습니다.

seed는 어디에서 설정하는지부터 확인해야 합니다

seed는 생성 과정에 쓰는 난수의 시작값입니다. 동일한 숫자를 넣더라도 모델, 입력 이미지, 프롬프트, 설정이 바뀌면 같은 결과를 기대하는 조건 자체가 달라집니다. Google의 일반 생성 매개변수 설명은 같은 seed로 반복 요청할 때 같은 응답을 만들도록 노력하지만, 결정적인 출력을 보장하지 않는다고 설명합니다. temperature를 낮추는 것도 파일이나 픽셀의 동일성을 보장하는 계약은 아닙니다. Google의 seed 설명

인터페이스별로 확인할 내용은 다릅니다.

이용하는 방식문서에서 확인할 수 있는 내용적용할 때의 판단
Google generateContent일반 generationConfig.seed가 존재하며 모델별 설정 제한이 있음실제로 쓰는 모델·엔드포인트의 지원 조건을 추가 확인
Ideogram의 Nano Banana Pro API해당 API가 seed 범위를 0–2,147,483,647로 명시그 제공업체의 계약에 따라 후보·요청을 기록
Runware의 Google Nano Banana Pro해당 모델 문서에 정수 seed 범위 0–2,147,483,647가 있음다른 서비스의 필드 위치나 의미를 그대로 가져오지 않음
웹앱이나 채팅 화면사용 중인 서비스가 공개하는 옵션과 도움말이 기준입력란이 없는 seed를 프롬프트에 적는 것만으로 API 설정이 전달됐다고 판단하지 않음

제공업체의 seed 설명은 그 업체가 제공하는 인터페이스의 문서입니다. Google 직접 호출에서 같은 필드가 수용됐다는 증거나, 내부에서 어떤 방식으로 처리되는지를 보여 주는 자료는 아닙니다. 선택 전에 Ideogram 해당 API와 Runware 해당 모델 문서를 각각 확인하세요. 이 글에서는 이 API들의 실제 생성 결과나 결제 내역을 시험하지 않았습니다.

Google의 ImageConfig에 seed가 보이지 않는다고 일반 API 전체에 seed가 없다고 해석해서도 안 됩니다. ImageConfig는 종횡비와 이미지 크기를 담는 하위 설정이고, 일반 seed 필드는 GenerationConfig에 있습니다. 아래의 요청 준비 예제도 두 설정을 구분합니다. ImageConfig 정의

캐릭터가 바뀔 때는 승인 원본을 기준으로 다시 시작하세요

기준 이미지의 얼굴과 의상은 유지하고 창가와 머그잔 등 장면을 변경하는 작업 예시

유지할 특징과 바꿀 장면을 나눈 개념 그림입니다. 실제 API 결과 비교가 아닙니다.

카페 채널의 진행자를 예로 들어 보겠습니다. 승인 이미지의 인물은 둥근 안경과 라임색 앞치마를 착용하고 있습니다. 다음 썸네일에서는 같은 인물이 창가에서 머그잔을 들어야 합니다. 이때 “같은 사람으로 만들어 줘”만 적기보다 다음처럼 구체적으로 요청하세요.

첨부한 이미지는 이 채널에서 승인한 진행자의 기준 이미지입니다.

유지할 것:
- 얼굴 윤곽, 눈과 코의 형태, 둥근 안경
- 머리 모양과 머리색, 라임색 앞치마
- 부드러운 일러스트 화풍과 인물의 비율

바꿀 것:
- 진행자를 카페 창가로 이동
- 오른손에 흰 머그잔을 들고 정면을 바라보는 자세
- 왼쪽에 제목을 넣을 여백 확보, 가로 16:9 구성

새 인물을 만들지 말고 첨부한 진행자를 새 장면에 배치하세요.
이미지 안에는 제목이나 문구를 넣지 마세요.

이 요청은 얼굴 동일성을 보장하는 비밀번호가 아닙니다. 입력과 선택 기준을 분명히 만드는 작업 지시입니다. 실제 제작은 다음 순서로 진행합니다.

  1. 승인한 원본을 따로 저장합니다. 얼굴이 작게 보이거나 가려진 이미지를 유일한 기준으로 쓰지 않는 편이 좋습니다.
  2. 기준 이미지를 첨부하고 위와 같이 유지·변경 범위를 적습니다. 여러 참조를 쓰면 “첫 번째는 얼굴, 두 번째는 의상”처럼 역할을 구분합니다.
  3. 결과에서 안경 모양, 얼굴 윤곽, 머리색, 앞치마를 확인합니다. 표정이나 자세가 자연스러워도 기준 인물과 다르면 채택하지 않습니다.
  4. 승인 후보를 저장하고 제목 등 편집 요소를 별도로 붙입니다. 승인 원본과 최종 게시 파일을 모두 남깁니다.
  5. 후속 편집이 길어져 얼굴이 변하면 마지막 결과를 계속 이어 붙이는 대신 최초 승인 원본으로 돌아갑니다. 새 대화에서도 원본과 필요한 작업 지시를 다시 첨부합니다.

반대로 직전 결과에서 특정 소품이나 배치만 조금 바꾸려면 그 결과를 다음 편집의 입력으로 쓰는 편이 편리합니다. 중요한 것은 모든 후속 결과를 자동으로 새 기준으로 삼지 않는 것입니다. 최초 기준 이미지와 단계별 승인본을 분리해 두면 어느 단계에서 달라졌는지 비교하기 쉽습니다.

Google은 Pro의 참조 이미지 입력을 최대 14장으로 설명하며, 표에는 사물 참조 최대 6장, 캐릭터 참조 최대 5장, 스타일 참조 최대 3장이라는 용도별 항목이 있습니다. 이는 출력에 정확히 그 수만큼 사람이나 물건이 나온다는 뜻이 아닙니다. 필요한 특징을 보여 주는 참조부터 넣으세요. 참조 수가 많다는 이유만으로 일관성이 더 좋아진다고 단정할 근거도 없습니다. Google 참조 이미지 안내

API용 요청 준비와 결과 저장을 분리하는 예제

API에서는 프롬프트만 보관하지 말고 기준 이미지의 해시, 모델 ID, 종횡비, 크기, 사용한 seed까지 기록하세요. 그래야 동일한 조건의 요청인지 확인할 수 있습니다. 아래 프로그램은 로컬에서 요청 JSON을 만들고, 이미 저장된 GenerateContent 응답 JSON에서 최종 이미지를 꺼내는 도구입니다. 네트워크 요청, 인증, 과금은 수행하지 않습니다.

Python 3만 필요합니다. approved.png는 본인이 사용할 수 있는 승인 원본, scene.txt는 위와 같은 작업 지시입니다. 입력은 PNG·JPEG·WebP만 받도록 제한했습니다. 다음 코드를 scene_files.py로 저장하세요.

python
import argparse
import base64
import hashlib
import json
from pathlib import Path

MODEL = "gemini-3-pro-image"
MIME = {".png": "image/png", ".jpg": "image/jpeg",
        ".jpeg": "image/jpeg", ".webp": "image/webp"}
EXT = {"image/png": ".png", "image/jpeg": ".jpg",
       "image/webp": ".webp"}

def digest(data):
    return hashlib.sha256(data).hexdigest()

def build(args):
    reference = Path(args.reference)
    mime = MIME.get(reference.suffix.lower())
    if mime is None:
        raise ValueError("PNG, JPEG, WebP 입력만 허용합니다.")
    raw = reference.read_bytes()
    prompt = Path(args.prompt).read_text(encoding="utf-8").strip()
    if not raw or not prompt:
        raise ValueError("참조 파일과 작업 지시는 비어 있으면 안 됩니다.")
    config = {"responseModalities": ["TEXT", "IMAGE"],
              "imageConfig": {"aspectRatio": "16:9", "imageSize": "2K"}}
    if args.seed is not None:
        config["seed"] = args.seed
    request = {
        "contents": [{"role": "user", "parts": [
            {"text": prompt},
            {"inlineData": {"mimeType": mime,
                            "data": base64.b64encode(raw).decode("ascii")}}
        ]}],
        "generationConfig": config
    }
    out = Path(args.output)
    out.mkdir(parents=True, exist_ok=False)
    body = json.dumps(request, ensure_ascii=False, indent=2).encode("utf-8")
    (out / "request.json").write_bytes(body)
    record = {"model": MODEL, "reference_sha256": digest(raw),
              "request_sha256": digest(body), "seed": args.seed,
              "aspect_ratio": "16:9", "image_size": "2K"}
    (out / "record.json").write_text(
        json.dumps(record, ensure_ascii=False, indent=2), encoding="utf-8")
    print("요청 준비 완료:", out)

def extract(args):
    response = json.loads(Path(args.response).read_text(encoding="utf-8"))
    images = []
    for candidate in response.get("candidates", []):
        for part in candidate.get("content", {}).get("parts", []):
            if part.get("thought"):
                continue
            inline = part.get("inlineData", {})
            mime = inline.get("mimeType")
            if mime in EXT and inline.get("data"):
                raw = base64.b64decode(inline["data"], validate=True)
                if raw:
                    images.append((raw, EXT[mime]))
    if not images:
        raise ValueError("최종 이미지가 없습니다. 응답의 오류·종료 이유를 확인하세요.")
    out = Path(args.output)
    out.mkdir(parents=True, exist_ok=False)
    records = []
    for number, (raw, ext) in enumerate(images, start=1):
        name = f"candidate-{number:02d}{ext}"
        (out / name).write_bytes(raw)
        records.append({"file": name, "sha256": digest(raw)})
    (out / "files.json").write_text(
        json.dumps(records, indent=2), encoding="utf-8")
    print("저장한 최종 이미지:", len(records))

if __name__ == "__main__":
    parser = argparse.ArgumentParser()
    commands = parser.add_subparsers(dest="command", required=True)
    prep = commands.add_parser("build")
    prep.add_argument("reference")
    prep.add_argument("prompt")
    prep.add_argument("output")
    prep.add_argument("--seed", type=int)
    prep.set_defaults(action=build)
    save = commands.add_parser("extract")
    save.add_argument("response")
    save.add_argument("output")
    save.set_defaults(action=extract)
    args = parser.parse_args()
    args.action(args)

먼저 seed 없이 기본 요청을 준비합니다. 출력 폴더는 기존 폴더와 겹치지 않게 정하세요.

bash
python3 scene_files.py build approved.png scene.txt cafe-window

결과는 cafe-window/request.json과 record.json입니다. 이 JSON의 대상은 Google generateContent의 models/gemini-3-pro-image:generateContent입니다. generationConfig, inlineData, mimeType는 해당 REST 형식입니다. 새 Interactions API의 generation_config나 response_format과 섞으면 안 됩니다. 필드 정의는 GenerateContent API에서 확인할 수 있습니다.

--seed 73109를 추가하면 일반 설정 위치에 seed를 넣습니다. 이 옵션은 요청 준비 기능일 뿐 Pro가 이 조합을 수용했다는 증명이 아닙니다. 사용하는 인터페이스에서 해당 모델의 지원을 확인한 경우에만 넣으세요. Ideogram이나 Runware로 보낼 때는 이 Google용 JSON을 그대로 보내지 말고 그 업체의 요청 형식으로 새로 구성해야 합니다.

인증된 자체 호출 절차로 얻은 응답을 response.json에 저장했다면 다음 명령으로 후보를 꺼냅니다. 위 프로그램 자체는 호출을 하지 않습니다.

bash
python3 scene_files.py extract response.json cafe-candidates

완료 기준은 후보 파일과 files.json이 생기고 저장된 파일의 해시가 기록되는 것입니다. 이미지가 없으면 성공 메시지 대신 오류로 멈춥니다. JSON 오류, 빈 응답, 이미지가 없는 응답을 무조건 재시도하기보다 해당 호출의 오류와 종료 이유를 먼저 확인하세요. 해시는 저장 무결성 확인용이며 이미지 파일이 정상 디코딩되는지나 인물이 닮았는지는 별도 확인해야 합니다.

Pro는 사고 과정에서 중간 이미지를 만들 수 있으므로 결과 저장 시 thought가 표시된 부분을 건너뜁니다. 이 예제는 후보와 이미지 부분을 모두 순회하며 “응답에 이미지가 정확히 한 장 있다”는 가정을 하지 않습니다. Google 이미지 생성 안내, Part 응답 정의

이 코드는 가상 응답을 사용해 중간 이미지 제외, 여러 최종 이미지 저장, 빈 응답·잘못된 Base64 처리와 기존 폴더 덮어쓰기 방지를 로컬에서 확인했습니다. 이는 파일 처리 검증입니다. Pro의 seed 수용 여부, 실제 이미지 일관성, 응답 시간이나 비용을 측정한 결과는 아닙니다.

제목만 바꿀 때는 고정된 로컬 편집으로 마무리하세요

승인 원본을 보관하고 고정된 편집 설정으로 서로 다른 제목 카드를 만드는 과정

원본 보관과 제목 편집을 분리한 가상 작업 예시입니다.

이미 승인한 얼굴에 제목만 추가해야 한다면 생성 요청을 다시 보낼 이유가 적습니다. 다음 예제는 원본을 가로 16:9로 맞추고 아래쪽에 고정된 제목 영역을 붙입니다. 구도에 따라 인물이 잘릴 수 있으므로 기준 이미지를 처음 고를 때부터 제목 여백과 중앙 위치를 함께 확인하세요.

Python 3과 Pillow가 필요하며, 한국어 글꼴 파일을 직접 지정해야 합니다. card.py로 저장한 뒤 승인 원본과 사용할 글꼴을 입력하세요. 예제에 글꼴 파일 자체는 포함되어 있지 않습니다.

python
import argparse
from pathlib import Path
from PIL import Image, ImageDraw, ImageFont, ImageOps

parser = argparse.ArgumentParser()
parser.add_argument("source")
parser.add_argument("font")
parser.add_argument("title")
parser.add_argument("output")
args = parser.parse_args()
output = Path(args.output)
if output.exists():
    raise FileExistsError("출력 파일이 이미 있습니다.")
with Image.open(args.source) as image:
    frame = ImageOps.fit(
        ImageOps.exif_transpose(image).convert("RGB"), (1600, 900),
        method=Image.Resampling.LANCZOS, centering=(0.5, 0.5))
font = ImageFont.truetype(args.font, 64)
draw = ImageDraw.Draw(frame)
box = draw.textbbox((0, 0), args.title, font=font)
if box[2] - box[0] > 1480:
    raise ValueError("제목이 너무 깁니다. 문구를 줄이세요.")
draw.rectangle((0, 720, 1600, 900), fill="#163A33")
draw.text((60 - box[0], 778 - box[1]), args.title,
          font=font, fill="#FFFFFF")
frame.save(output, format="PNG", optimize=False)
print(output)
bash
python3 card.py approved.png ./fonts/NotoSansKR-Regular.ttf "오늘의 커피" coffee-card.png

코드는 입력 경로·출력 크기·자르기 위치·글꼴·색·텍스트 위치를 모두 명시합니다. 원본, 글꼴 파일, Python·Pillow 버전을 같이 보관하면 같은 편집을 다시 적용하기 쉽습니다. 다른 버전이나 환경에서도 파일 바이트까지 반드시 같다고 보장하지는 않습니다. 이 글에서는 가상 픽셀 이미지로 고정 크기와 반복 저장 결과를 확인했으며 실제 Pro 출력으로 비교하지 않았습니다.

이미지 생성 자체를 직접 관리하는 환경에서도 같은 원칙이 필요합니다. seed 외에 모델 파일과 설정, 실행 환경, 연산 방식까지 통제해야 합니다. PyTorch 역시 버전·플랫폼·CPU와 GPU 사이의 완전한 재현성을 보장하지 않는다고 명시합니다. Google의 클라우드 모델 내부를 사용자가 이 방식으로 고정할 수 있다는 뜻은 아닙니다. PyTorch 재현성 문서

비용은 생성한 장수가 아니라 채택한 장수로 계산하세요

같은 캐릭터 후보를 여러 번 만들어 고르는 방식에서는 출력 한 장의 단가와 게시 가능한 이미지 한 장의 비용이 다릅니다. Google Standard의 Pro 이미지 출력 요금은 1K·2K 한 장 약 0.134달러, 4K 한 장 0.24달러입니다. 입력과 텍스트·사고 출력 비용은 별도입니다. API 무료 등급은 제공되지 않습니다. Google Pro 요금표

예를 들어 2K 후보를 4장 생성하고 1장을 채택했다면, 요금표에 제시된 이미지 토큰 1,120개와 100만 토큰당 120달러를 사용한 출력 부분 계산은 4 × 1,120 × 120 ÷ 1,000,000 = 0.5376달러입니다. 이것은 입력·사고 비용을 제외한 가정 예시이며 실제 청구액이나 채택률 측정이 아닙니다.

작업 기록에는 생성 장수와 승인 장수를 따로 남기세요. 고정된 제목 편집으로 해결할 수 있는 장면을 매번 생성하면 채택 후보를 다시 고르는 과정까지 늘어납니다. 가격이나 다른 모델의 사용 경로를 비교할 때는 나노바나나 2.1 가격·사용법을 다음 작업으로 참고할 수 있습니다. 새 모델을 선택해도 Pro에서 얻은 seed나 기준 이미지의 결과가 그대로 이어진다는 보장은 없습니다.

자주 묻는 질문

seed 번호를 프롬프트에 적으면 고정되나요?

그 문장만으로 API의 seed 설정이 전달됐다고 볼 수 없습니다. 서비스가 별도의 입력란이나 요청 필드를 제공하는지 확인하세요. Google 일반 API에서는 generationConfig.seed라는 구조화된 필드가 있지만, 모든 모델이 모든 설정을 허용하는 것은 아닙니다. Google 설정 정의

같은 seed인데 얼굴이 다른 이유는 무엇인가요?

seed만 같고 참조 파일·프롬프트·모델·옵션이 달랐을 수 있습니다. 먼저 요청 기록을 비교하고, 모두 같아도 출력의 동일성을 보장하는지 별도로 확인해야 합니다. Google의 일반 seed 설명은 반복 결과를 최대한 맞추려는 동작이며 결정적인 출력 보장은 아닙니다. 얼굴 유지가 목적이라면 승인 원본을 다시 참조하고 후보를 기준에 맞춰 선택하세요. Google seed 조건

같은 파일인지와 같은 그림인지는 어떻게 구분하나요?

파일 해시가 같으면 같은 바이트입니다. 해시가 달라도 압축이나 메타데이터만 달라 디코딩한 픽셀이 같을 수 있습니다. 픽셀이 달라도 사람 눈에는 같은 캐릭터로 보일 수 있습니다. 원본 보관에는 파일 해시, 얼굴·스타일 유지에는 별도의 시각적 선택 기준을 사용하세요.

예전 Imagen seed 예제를 대신 쓰면 되나요?

현재 사용 가능한 모델인지 먼저 확인해야 합니다. Google Gemini API의 Imagen 모델은 2026년 8월 17일 종료됐고, Vertex의 Imagen 4 모델 페이지에는 2026년 6월 30일 중단이 명시되어 있습니다. 서비스별 날짜가 다릅니다. 과거 seed 예제가 남아 있다는 이유로 현재 Pro의 대체 경로로 선택하면 안 됩니다. Gemini API 종료 일정, Vertex Imagen 4 상태

승인한 그림을 잃어버렸다면 seed로 복구할 수 있나요?

같은 그림의 복구를 보장할 수는 없습니다. 우선 서비스의 생성 기록이나 직접 저장한 파일을 확인하세요. 원본이 없으면 남아 있는 참조와 요청 기록으로 비슷한 후보를 만들 수는 있지만, 같은 파일을 되찾는 작업과는 다릅니다. 다음부터는 승인 원본, 편집본, 참조 파일과 요청 기록을 한 작업 폴더에 함께 보관하세요.

참고 자료10

이 글이 링크한 외부 페이지를 본문에 나온 순서대로 정리했습니다. 마지막 업데이트: 2026년 10월 7일.

  1. 1.Google GenerateContent 설정 문서ai.google.dev/api/generate-content
  2. 2.현재 모델 정보ai.google.dev/gemini-api/docs/models/gemini-3-pro-image
  3. 3.모델 종료 일정ai.google.dev/gemini-api/docs/deprecations
  4. 4.Google의 seed 설명docs.cloud.google.com/gemini-enterprise-agent-platform/models/capabilities/content-generation-parameters
  5. 5.Ideogram 해당 APIdeveloper.ideogram.ai/api-reference/images/generate/nano-banana-pro
  6. 6.Runware 해당 모델 문서runware.ai/docs/models/google-nano-banana-pro
  7. 7.Google 참조 이미지 안내ai.google.dev/gemini-api/docs/image-generation
  8. 8.PyTorch 재현성 문서docs.pytorch.org/docs/2.14/notes/randomness.html
  9. 9.Google Pro 요금표ai.google.dev/gemini-api/docs/pricing
  10. 10.Vertex Imagen 4 상태docs.cloud.google.com/vertex-ai/generative-ai/docs/models/imagen/4-0-generate
Imagen 4에서 Nano Banana로 이전할 때 API 경로와 전환 절차를 구분하는 기존 설명도
AI 이미지 생성

Imagen 4 종료 후 Nano Banana로 API를 옮기는 방법

Gemini Developer API의 현재 대체 모델은 Nano Banana 2.1입니다. Firebase에서는 지원 표를 별도로 확인하고, 모델 ID뿐 아니라 요청 설정과 이미지 저장 처리까지 옮겨야 합니다.

11 분
503 과부하에서 백오프와 시도·시간 예산을 정하고 실제 이미지와 보류 상태를 확인하는 안내
AI 이미지 생성

Nano Banana 2 503 ‘Model is Overloaded’ 오류 해결: 재시도와 중단 기준

503 과부하 오류가 확인되면 지수 백오프와 지터를 적용하되, 시도 횟수와 총 대기 예산을 제한해야 합니다. 현재 Nano Banana 2 모델로 이미지를 생성하거나 편집하고, 이미지가 실제로 반환됐는지 확인하는 Python 예제를 제공합니다.

8 분