참조 이미지를 사용한 Gemini 이미지 생성
Gemini는 프롬프트뿐만 아니라 사용자가 제공한 이미지로도 이미지를 생성할 수 있습니다. 이를 통해 여러 이미지에서 하나의 캐릭터를 일관되게 유지하거나, 실제 제품 스크린샷을 생성된 장면 안에 렌더링할 수 있습니다 (가상의 제품 대신).
모델별 제한
2026년 9월 19일 기준 Gemini API 이미지 생성 문서에서 가져왔습니다. 모델 이름과 제한은 변경됩니다; 이에 의존하기 전에 현재 페이지를 다시 읽으십시오.
총 최대 14개의 참조 이미지, 카테고리별 하위 제한은 공유 풀이 아닌 별도 할당입니다:
| 모델 | objects | characters | style |
|---|---|---|---|
gemini-3.1-flash-image | 10 | 4 | 3 |
gemini-3-pro-image | 6 | 5 | - |
gemini-3.1-flash-lite-image | 14 | - | - |
따라서 제품 스크린샷과 캐릭터 초상화는 예산을 두고 경쟁하지 않습니다. 하나의 이미지에 여러 화면과 여러 사람을 담을 수 있습니다.
카테고리는 추론되며, 선언되지 않습니다. AI SDK와 게이트웨이를 통해 구분되지 않는 file 파트를 보냅니다; 어떤 필드도 "이것은 캐릭터입니다"라고 말하지 않습니다. 14를 실제 상한선으로 간주하고 그 아래에 머무르십시오. 카테고리 제한은 모델이 할 수 있는 것을 설명할 뿐, 당신이 주장할 수 있는 것이 아닙니다. 실제로는 두 개의 화면과 두 명의 사람이면 충분합니다.
호출 방법
Vercel AI 게이트웨이를 통해 이미지 모델은 언어 모델처럼 동작했습니다: 텍스트 API에 files에 있는 그림으로 응답했으며, 전용 이미지 API는 이를 거부했습니다. 자신의 공급자 경로가 이를 어떻게 노출하는지 확인하십시오.
const result = await generateText({
model,
prompt: [{ role: 'user', content: [
...references.map((r) => ({ type: 'file', mediaType: r.mediaType, data: r.bytes })),
{ type: 'text', text: prompt }, // 이미지 먼저, 그 다음 명령
]}],
providerOptions: { google: {
responseModalities: ['IMAGE'],
imageConfig: { aspectRatio: '4:5', imageSize: '2K' },
}},
});
const file = result.files.find((f) => f.mediaType.startsWith('image/'));
화면 비율: 1:1 3:2 2:3 3:4 4:3 4:5 5:4 9:16 16:9 21:9. 크기: 512px 1K 2K 4K.
함정
1. 참조 이미지가 첨부된 경우 "워터마크 없음"이라고 작성하지 마십시오. Gemini는 이를 제공된 이미지에서 워터마크를 제거하라는 요청으로 읽고 전체 호출을 거부하는 것으로 보입니다. 2026년 9월 측정, 프롬프트 꼬리말당 두 번 실행, 두 개의 참조 이미지 첨부:
| 프롬프트 꼬리말 | 결과 |
|---|---|
| "절대 일러스트레이션이 아닌, 3D 렌더링..." | 이미지, 이미지 |
| "사람, 얼굴, 손... 모두 환영합니다." | 이미지, 이미지 |
| "다른 회사의 로고 없음." | 이미지, 이미지 |
| "워터마크 없음." | 콘텐츠 필터, 콘텐츠 필터 |
워터마크 단어만이 문제를 일으켰습니다. 다른 이미지 도구에서 복사한 네거티브 프롬프트 관례(많은 경우 watermark, over-saturated, stock-image로 끝남)는 모든 호출을 조용히 망가뜨릴 수 있습니다.
2. 거부는 불안정한 모델처럼 보입니다. finishReason: 'content-filter', 파일 0개, 빈 문자열을 반환했습니다. 오류 메시지가 result.text를 출력하면 아무것도 보이지 않고 API가 신뢰할 수 없다고 결론을 내립니다. 항상 finishReason을 기록하십시오.
3. 빈 응답을 버리기 전에 재시도하십시오. 모델은 때때로 일반적인 이유로 아무것도 반환하지 않습니다. 시도 횟수를 소진한 후에만 예외를 던지고, 오류에 finishReason을 포함시키십시오.
4. 제공된 화면에 무엇이 있는지 설명하지 마십시오. 스크린샷은 이미 거기에 있습니다; 내용에 대한 단어는 그림과 충돌하여 혼합 결과를 만듭니다. 그것을 담는 장면(테이블, 조명, 손)만 설명하십시오.
5. 모델은 다시 그리며, 붙여넣지 않습니다. 참조 화면의 작은 텍스트는 미묘하게 왜곡되어 그럴듯하지만 잘못된 이름과 레이블로 돌아올 수 있습니다. 썸네일 크기에서는 괜찮지만 독자가 확대해서 볼 내용에는 적합하지 않습니다. 출력을 신뢰하지 말고 확인하십시오.
6. 참조 이미지가 출력의 합성 성격을 덜어주지 않습니다. 실제 스크린샷과 실제 초상화로 만든 이미지라도 여전히 AI 생성입니다. 생성된 이미지 사용에 적용되는 라벨링 또는 공개 규칙을 따르십시오; 참조 이미지가 면제된다고 가정하지 말고 자신에게 적용되는 사항을 확인하십시오.
참조 이미지 파이프라인 체크리스트
- 참조 파트는 텍스트 파트보다 먼저 옵니다.
- 14개 미만의 참조 이미지; 이상적으로는 4개 이하.
- 프롬프트는 장면을 설명하고, 제공된 화면의 내용을 설명하지 않습니다.
- 프롬프트에 워터마크 관련 단어가 없습니다.
finishReason이 기록되고 빈 결과는 재시도됩니다.- 게시 전에 출력에서 왜곡된 작은 텍스트를 검사합니다.