Imagen을 사용하여 이미지 생성

Imagen은 Google의 고품질 이미지 생성 모델로, 텍스트 프롬프트에서 사실적이고 고품질 이미지를 생성할 수 있습니다. 생성된 모든 이미지에는 SynthID 워터마크가 포함됩니다. 사용 가능한 Imagen 모델 변형에 대해 자세히 알아보려면 모델 버전 섹션을 참고하세요.

Nano Banana로 마이그레이션

Imagen 모델은 지원 중단되었으며 2026년 8월 17일에 종료될 예정입니다. 이미지 생성 요구사항에 따라 Nano Banana로 이전하는 것이 좋습니다.

마이그레이션에는 다음 변경사항이 포함됩니다.

  • 모델 이름: Imagen 모델 이름 대신 gemini-2.5-flash-image를 사용합니다.
  • 메서드: client.models.generate_images 대신 client.models.generate_content를 사용합니다.
  • 응답 처리: Nano Banana는 특정 이미지 응답 객체 대신 이미지 데이터를 포함할 수 있는 콘텐츠 부분을 반환합니다.

자세한 내용과 예시는 이미지 생성 가이드를 참고하세요.

Imagen 모델을 사용하여 이미지 생성

다음은 Imagen 모델로 이미지를 생성하는 방법을 보여주는 예시입니다.

Python

from google import genai
from google.genai import types
from PIL import Image
from io import BytesIO

client = genai.Client()

response = client.models.generate_images(
    model='imagen-4.0-generate-001',
    prompt='Robot holding a red skateboard',
    config=types.GenerateImagesConfig(
        number_of_images= 4,
    )
)
for generated_image in response.generated_images:
  generated_image.image.show()

자바스크립트

import { GoogleGenAI } from "@google/genai";
import * as fs from "node:fs";

async function main() {

  const ai = new GoogleGenAI({});

  const response = await ai.models.generateImages({
    model: 'imagen-4.0-generate-001',
    prompt: 'Robot holding a red skateboard',
    config: {
      numberOfImages: 4,
    },
  });

  let idx = 1;
  for (const generatedImage of response.generatedImages) {
    let imgBytes = generatedImage.image.imageBytes;
    const buffer = Buffer.from(imgBytes, "base64");
    fs.writeFileSync(`imagen-${idx}.png`, buffer);
    idx++;
  }
}

main();

Go

package main

import (
  "context"
  "fmt"
  "os"
  "google.golang.org/genai"
)

func main() {

  ctx := context.Background()
  client, err := genai.NewClient(ctx, nil)
  if err != nil {
      log.Fatal(err)
  }

  config := &genai.GenerateImagesConfig{
      NumberOfImages: 4,
  }

  response, _ := client.Models.GenerateImages(
      ctx,
      "imagen-4.0-generate-001",
      "Robot holding a red skateboard",
      config,
  )

  for n, image := range response.GeneratedImages {
      fname := fmt.Sprintf("imagen-%d.png", n)
          _ = os.WriteFile(fname, image.Image.ImageBytes, 0644)
  }
}

REST

curl -X POST \
    "https://generativelanguage.googleapis.com/v1beta/models/imagen-4.0-generate-001:predict" \
    -H "x-goog-api-key: $GEMINI_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
        "instances": [
          {
            "prompt": "Robot holding a red skateboard"
          }
        ],
        "parameters": {
          "sampleCount": 4
        }
      }'
빨간색 스케이트보드를 들고 있는 로봇의 AI 생성 이미지
빨간색 스케이트보드를 들고 있는 로봇의 AI 생성 이미지

Imagen 구성

Imagen은 현재 영어로 된 프롬프트와 다음 매개변수만 지원합니다.

  • numberOfImages: 생성할 이미지 수입니다 (1~4, 포함). 기본값은 4입니다.
  • imageSize: 생성된 이미지의 크기입니다. Standard 및 Ultra 모델에서만 지원됩니다. 지원되는 값은 1K2K입니다. 기본값은 1K입니다.
  • aspectRatio: 생성된 이미지의 가로세로 비율을 변경합니다. 지원되는 값은 "1:1", "3:4", "4:3", "9:16", "16:9"입니다. 기본값은 "1:1"입니다.
  • personGeneration: 모델이 사람 이미지를 생성하도록 허용합니다. 다음 값이 지원됩니다.

    • "dont_allow": 사람 이미지 생성을 차단합니다.
    • "allow_adult": 성인 이미지를 생성하고 어린이 이미지는 생성하지 않습니다. 이는 기본값입니다.
    • "allow_all": 성인과 어린이가 포함된 이미지를 생성합니다.

Imagen 프롬프트 가이드

Imagen 가이드의 이 섹션에서는 텍스트 이미지 변환 프롬프트를 수정하면 다른 결과를 얻을 수 있는 방법을 설명하고 만들 수 있는 이미지의 예를 제공합니다.

프롬프트 작성 기본사항

좋은 프롬프트는 설명적이고 명확하며 의미 있는 키워드와 수정자를 사용합니다. 주제, 컨텍스트, 스타일을 먼저 생각해 보세요.

주제, 컨텍스트, 스타일이 강조되는 프롬프트
이미지 텍스트: 초고층 빌딩(컨텍스트 및 배경)으로 둘러싸인 현대식 아파트 건물(주제)의 스케치(스타일)입니다.
  1. 주제: 프롬프트에서 가장 먼저 고려해야 할 사항은 주제 즉 이미지가 필요한 사물, 사람, 동물 또는 풍경입니다.

  2. 컨텍스트 및 배경: 마찬가지로 주제가 배치될 배경 또는 컨텍스트도 중요합니다. 다양한 배경에 주제를 배치해 보세요. 예를 들어 흰색 배경, 실외 또는 실내 환경의 스튜디오가 있습니다.

  3. 스타일: 마지막으로 원하는 이미지의 스타일을 추가합니다. 스타일은 일반적(회화, 사진, 스케치)이거나 매우 구체적(파스텔 회화, 목탄 드로잉, 아이소메트릭 3D)일 수 있습니다. 스타일을 결합할 수도 있습니다.

프롬프트의 첫 번째 버전을 작성한 후 원하는 이미지가 나올 때까지 세부정보를 추가하여 프롬프트를 수정합니다. 반복이 중요합니다. 먼저 핵심 아이디어를 설정하고 생성된 이미지가 비전에 가까워질 때까지 핵심 아이디어를 미세 조정하고 확장합니다.

실사 샘플 이미지 1
프롬프트: 봄에 호수 옆 공원
실사 샘플 이미지 2
프롬프트: 봄에 호수 옆 공원, 호수 너머로 지는 태양, 골든아워
실사 샘플 이미지 3
프롬프트: 봄에 호수 옆 공원, 호수 너머로 지는 태양, 골든아워, 붉은 야생화