Google은 2026년 10월 6일 Nano Banana 2.1을 출시했으며, gemini-nano-banana-2.1으로 Gemini API를 통해 이미 호출할 수 있습니다. 이는 더 나은 시각적 품질, 마스크 스타일 편집 및 턴 간 더 강력한 캐릭터 일관성을 제공하는 Nano Banana 2 (Gemini 3.1 Flash Image)의 업데이트 버전입니다. 또한, 공유하는 모든 해상도에서 Nano Banana 2보다 이미지당 비용이 절반입니다.
이 가이드는 빈 터미널에서 저장된 이미지까지의 과정을 안내하며, 종횡비, 2K 및 4K 출력, 편집, 멀티턴 변경, 참조 이미지, 검색 접지 및 비용을 다룹니다. 아래의 모든 요청은 Apidog에 저장하고 다시 재생하여 2.1과 현재 사용하는 모델을 비교할 수 있습니다.
배경 지식이 먼저 필요하신가요? 변경된 내용과 Google이 아직 게시하지 않은 내용에 대해 Nano Banana 2.1이란 무엇인가를 읽어보세요.
필요한 것
| 항목 | 값 |
|---|---|
| 기본 URL | https://generativelanguage.googleapis.com/v1beta |
| 인증 헤더 | x-goog-api-key: $GEMINI_API_KEY |
| 모델 ID | gemini-nano-banana-2.1 |
| 엔드포인트 | POST /v1beta/interactions |
| 해상도 | 1K (기본값), 2K, 4K |
| 입력 | 텍스트, 이미지 (최대 14개 참조), 동영상 |
| Python SDK | pip install google-genai |
| JavaScript SDK | npm install @google/genai |
모든 예제는 Google의 2.1 이미지 생성 문서에서 사용하는 Interactions API를 사용합니다.
1단계: Gemini API 키 받기
- Google AI Studio를 열고 로그인합니다.
- Get API key로 이동하여 Google Cloud 프로젝트에서 키를 생성합니다.
- 해당 프로젝트에 대해 결제를 활성화합니다. Google의 가격 책정 페이지에는 Nano Banana 2.1의 무료 등급이 "사용 불가"로 표시되어 있으므로 API 호출에는 유료 프로젝트가 필요합니다.
- 키를 내보냅니다.
export GEMINI_API_KEY="your-key-here"
Google은 2.1을 AI Studio 플레이그라운드에 연결하여 프롬프트 테스트에 유용하지만, 무료 계정이 거기서 얼마나 생성할 수 있는지에 대해서는 게시하지 않았습니다. Nano Banana 2.1을 무료로 사용하는 방법에 대한 가이드에서 해당 방법을 다루고, Gemini API 키 받기에서 키 설정에 대해 더 자세히 설명합니다.
2단계: 첫 이미지 생성
curl
curl -s -X POST "https://generativelanguage.googleapis.com/v1beta/interactions" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-nano-banana-2.1",
"input": [
{"type": "text", "text": "Create a picture of a nano banana dish in a fancy restaurant with a Gemini theme"}
]
}'
응답은 JSON입니다. 이미지는 이미지 콘텐츠 블록 내에 base64 데이터로 도착하므로, 이를 디코딩하려면 SDK(또는 스크립트)가 필요합니다.
Python
from google import genai
import base64
client = genai.Client() # reads GEMINI_API_KEY
interaction = client.interactions.create(
model="gemini-nano-banana-2.1",
input="Create a picture of a nano banana dish in a fancy restaurant with a Gemini theme",
)
with open("generated_image.png", "wb") as f:
f.write(base64.b64decode(interaction.output_image.data))
interaction.output_image는 마지막으로 생성된 이미지 블록을 반환합니다. data 필드는 base64이므로, 파일을 쓰기 전에 디코딩해야 합니다.
JavaScript
import { GoogleGenAI } from "@google/genai";
import * as fs from "node:fs";
const ai = new GoogleGenAI({});
const interaction = await ai.interactions.create({
model: "gemini-nano-banana-2.1",
input: "Create a picture of a nano banana dish in a fancy restaurant with a Gemini theme",
});
const image = interaction.output_image;
if (image) {
fs.writeFileSync("nano-banana.png", Buffer.from(image.data, "base64"));
}
Gemini 3 이미지 모델은 그리기 전에 생각합니다. 모델은 구도를 계획하는 동안 최대 두 개의 중간 "생각 이미지"를 생성할 수 있습니다. 이에 대해서는 요금이 부과되지 않으며, API에서 생각 기능을 끌 수 없습니다.
3단계: 종횡비, 해상도 및 이미지 전용 출력 설정
response_format을 사용하여 출력을 제어합니다. "type": "image"를 설정하면 이미지만 반환하고 대화 텍스트는 제외되어 응답 크기를 줄이고 파싱을 단순화합니다.
interaction = client.interactions.create(
model="gemini-nano-banana-2.1",
input="A product shot of a matte black coffee grinder on a marble counter",
response_format={
"type": "image",
"mime_type": "image/png",
"aspect_ratio": "16:9",
"image_size": "2K",
},
)
알아두어야 할 사항:
image_size는1K,2K,4K를 허용합니다. 대문자K를 사용하세요.2k와 같은 소문자 값은 거부됩니다.- 2.1에는 512px 계층이 없습니다. 그 계층은 Nano Banana 2에 속합니다.
- 지원되는 종횡비는
1:1,2:3,3:2,3:4,4:3,4:5,5:4,9:16,16:9,21:9이며, 극단적인1:4,4:1,1:8,8:1도 포함됩니다. 2K 해상도의 16:9 이미지는 2752x1536이고, 4K 해상도에서는 5504x3072입니다. - 텍스트와 이미지를 모두 원한다면 목록을 전달하세요:
response_format=[{"type": "text"}, {"type": "image"}].
4단계: 기존 이미지 편집
이미지를 base64 image 블록으로 텍스트 지침과 함께 보냅니다.
with open("living_room.png", "rb") as f:
image_b64 = base64.b64encode(f.read()).decode("utf-8")
interaction = client.interactions.create(
model="gemini-nano-banana-2.1",
input=[
{"type": "text", "text": "Using the provided image of a living room, change only the blue sofa to be a vintage, brown leather chesterfield sofa. Keep the rest of the room, including the pillows on the sofa and the lighting, unchanged."},
{"type": "image", "data": image_b64, "mime_type": "image/png"},
],
)
마스크 파일 없이 마스크 스타일 인페인팅
별도의 마스크 업로드는 없습니다. 마스크를 단어로 정의합니다. Google의 템플릿:
제공된 이미지를 사용하여 [특정 요소]만 [새 요소/설명]으로 변경합니다. 이미지의 나머지 모든 부분은 원래 스타일, 조명 및 구성을 유지하여 정확히 동일하게 유지합니다.
하나의 요소를 지정하고, 교체할 내용을 구체적으로 설명하며, 고정되어야 할 것을 다시 언급합니다. "소파를 더 좋게 만들어라"와 같은 모호한 프롬프트는 모델이 전체 방을 다시 그리도록 유도합니다.
5단계: 멀티턴 편집으로 반복
멀티턴은 이미지를 개선하기 위한 Google의 권장 방법입니다. 이전 상호작용의 id를 previous_interaction_id로 전달하고 원하는 변경 사항만 보냅니다.
interaction_2 = client.interactions.create(
model="gemini-nano-banana-2.1",
input="Update this infographic to be in Spanish. Do not change any other elements of the image.",
previous_interaction_id=interaction.id,
response_format={"type": "image", "mime_type": "image/png", "aspect_ratio": "16:9", "image_size": "2K"},
)
REST에서는 동일한 필드가 본문에 들어갑니다: "previous_interaction_id": "<PREVIOUS_INTERACTION_ID>". 여기서 2.1의 향상된 멀티턴 캐릭터 일관성이 중요합니다. 캐릭터나 제품은 여러 번의 편집 라운드에 걸쳐 인식 가능하게 유지되어야 합니다.
6단계: 최대 14개의 참조 이미지 결합
input 목록에 더 많은 image 블록을 추가합니다. 2.1의 경우 Google은 최대 10개의 고화질 개체 이미지와 최대 4개의 캐릭터 이미지를 합쳐 총 14개까지 문서화합니다.
interaction = client.interactions.create(
model="gemini-nano-banana-2.1",
input=[
{"type": "text", "text": "An office group photo of these people, they are making funny faces."},
{"type": "image", "data": person_1_b64, "mime_type": "image/png"},
{"type": "image", "data": person_2_b64, "mime_type": "image/png"},
{"type": "image", "data": person_3_b64, "mime_type": "image/png"},
],
response_format={"type": "image", "aspect_ratio": "5:4", "image_size": "2K"},
)
참조 이미지는 입력 토큰이며, 2.1 입력 비용은 Nano Banana 2보다 3배 더 비쌉니다. 참조를 많이 사용하는 워크플로우는 가격 격차를 좁히므로 전환하기 전에 측정해야 합니다.
7단계: Google 검색으로 이미지 접지
날씨 차트나 최근 이벤트와 같이 현재 사실에 의존하는 이미지의 경우 검색 도구를 추가합니다.
interaction = client.interactions.create(
model="gemini-nano-banana-2.1",
input="A detailed painting of a Timareta butterfly resting on a flower",
tools=[{"type": "google_search", "search_types": ["web_search", "image_search"]}],
)
{"type": "google_search"}만으로는 웹 검색을 제공합니다. image_search를 추가하면 모델이 웹 이미지를 시각적 컨텍스트로 사용할 수 있으며, 이는 2.1과 Nano Banana 2만 지원합니다. 접지는 검색에서 실제 사람 이미지를 사용할 수 없습니다. 접지된 결과를 사용자에게 표시하는 경우, Google은 google_search_result 단계에서 반환된 search_suggestions를 표시하도록 요구합니다.
8단계: Apidog에서 테스트하기
스크립트는 생성에 좋습니다. 프롬프트, 키 및 모델이 여전히 작동하는지 확인하는 데는 저장된 요청이 더 빠릅니다. Apidog에서:
- 환경을 생성하고 키가 포함된 변수
GEMINI_API_KEY를 추가합니다. - 요청을 생성합니다:
POST https://generativelanguage.googleapis.com/v1beta/interactions. - 헤더
x-goog-api-key: {{GEMINI_API_KEY}}를 추가합니다. model,input및response_format이 포함된 JSON 본문을 붙여넣은 다음 보내기(Send)를 클릭합니다.- 두 가지 어설션이 포함된 응답 후 스크립트를 추가합니다:
pm.test("status is 200", () => {
pm.response.to.have.status(200);
});
pm.test("response contains an image block", () => {
const steps = pm.response.json().steps || [];
const hasImage = steps.some(s =>
s.type === "model_output" &&
(s.content || []).some(c => c.type === "image" && c.data)
);
pm.expect(hasImage).to.be.true;
});
- 요청을 복제하고
model을gemini-3.1-flash-image로 변경합니다. 동일한 프롬프트로 둘 다 보냅니다.
이제 Nano Banana 2에 대한 2.1의 측면 비교를 각 실행에 대한 상태, 시간 및 응답 크기와 함께 확인할 수 있습니다. 더 광범위한 기능 비교는 Nano Banana 2.1 vs Nano Banana 2 vs Pro를 참조하세요.
비용
2026년 10월 7일 Google의 가격 책정 페이지 기준 유료 등급:
| 모델 | 입력 / 1M | 1K 이미지 | 2K 이미지 | 4K 이미지 | 배치 1K |
|---|---|---|---|---|---|
| Nano Banana 2.1 | $1.50 | $0.0336 | $0.0504 | $0.0756 | $0.0168 |
| Nano Banana 2 | $0.50 | $0.067 | $0.101 | $0.151 | $0.034 |
| Nano Banana Pro | $2.00 | $0.134 | $0.134 | $0.24 | $0.067 |
2.1의 이미지 출력은 1M 토큰당 $30입니다. 1K 이미지는 1,120토큰, 2K는 1,680토큰, 4K는 2,520토큰이며, 여기서 이미지당 가격이 나옵니다. 텍스트 및 생각 출력은 1M당 $7.50입니다. 검색 접지에는 Gemini 3.x 모델에서 공유되는 월 5,000건의 무료 요청이 포함되며, 그 후에는 1,000건당 $14가 부과됩니다.
예제: 짧은 텍스트 프롬프트(각각 약 100개의 입력 토큰)에서 2K 해상도의 제품 이미지 1,000개 생성.
- 출력: 1,000 x $0.0504 = $50.40
- 입력: 100,000 토큰 x $1.50 / 1M = $0.15
- 총계: 약 $50.55, 여기에 생각 텍스트 토큰이 추가될 수 있음
Nano Banana 2에서 동일한 작업은 약 $101의 비용이 듭니다. 배치 API를 통해 2.1의 2K 가격은 $0.0252로 떨어지므로, 기다릴 수 있다면 출력 비용은 $25.20으로 줄어듭니다. 배치 작업은 최대 24시간의 처리 시간과 더 높은 속도 제한을 교환합니다. Nano Banana 2 가격에 대한 자세한 내용은 Nano Banana 2 API 가격 분석에서 확인할 수 있습니다.
일반적인 오류
다음은 일반적인 Gemini API 동작이며, 2.1 전용 오류는 문서화되어 있지 않습니다:
| 오류 | 가능한 원인 | 해결책 |
|---|---|---|
400 INVALID_ARGUMENT |
소문자 image_size, 지원되지 않는 비율, 잘못된 input |
2k 대신 2K 사용; 비율 목록 확인 |
403 PERMISSION_DENIED |
잘못된 키 또는 결제가 없는 프로젝트 | 키를 확인하고 결제 활성화 |
404 NOT_FOUND |
모델 ID 오타 | gemini-nano-banana-2.1을 정확히 사용 |
429 RESOURCE_EXHAUSTED |
속도 제한 도달 | 잠시 기다렸다가 다시 시도하거나 배치 사용 |
500 / 503 |
일시적인 서버 문제 | 지수적 백오프(exponential backoff)로 다시 시도 |
| 200이지만 이미지 없음 | 프롬프트 차단 또는 텍스트 전용 답변 | "type": "image"로 설정하고 문구 변경 |
자주 묻는 질문
Nano Banana 2.1 API에 무료 등급이 있나요? 아니요. Google은 API 무료 등급을 "사용 불가"로 표시합니다. AI Studio 플레이그라운드는 2.1에 연결되지만, Google은 이에 대한 무료 한도를 게시하지 않았습니다.
2.1이 Nano Banana 2의 드롭인 대체품인가요? 대부분 그렇습니다. 모델 ID를 gemini-nano-banana-2.1으로 교체하세요. 512px 계층은 사라지고, 입력 토큰 비용이 더 비싸므로 참조가 많은 편집은 비용 확인이 필요합니다.
생성된 이미지에 워터마크가 있나요? 예. 모든 출력에는 SynthID 워터마크가 포함됩니다.
동영상에서 이미지를 생성할 수 있나요? 예. 2.1은 텍스트 프롬프트와 함께 YouTube URL과 같은 video 입력 블록을 허용합니다.
이전 Nano Banana 2 API 가이드가 여전히 적용되나요? 개념은 그렇습니다. 이전 모델에 대한 Nano Banana 2 API 가이드를 참조하세요.
요약
Nano Banana 2.1은 Nano Banana 2의 이미지당 가격의 절반으로 더 나은 이미지를 약속하며, 동일한 Interactions API 형태를 유지합니다. 결제 가능한 키를 얻고, 이미지 하나를 생성한 다음, 상태 및 이미지 어설션과 함께 Apidog에 요청을 저장하세요. 이를 이전 모델 ID로 복제하면 2.1이 귀하의 프롬프트에 전환할 가치가 있는지 오후 안에 알 수 있을 것입니다.
