앱에 맞춤 이미지를 추가하면 사용자 환경을 크게 개선하고 맞춤설정하며 사용자 참여도를 높일 수 있습니다. 이 게시물에서는 현재 프리뷰 버전인 특화된 Imagen 편집 기능과 컨텍스트 또는 대화형 이미지 생성을 위해 설계된 Gemini 2.5 Flash Image (일명 'Nano Banana')의 정식 버전이라는 Firebase AI Logic을 사용한 이미지 생성을 위한 두 가지 새로운 기능을 살펴봅니다.
Firebase AI Logic을 통해 생성된 이미지로 사용자 참여도 높이기
이미지 생성 모델을 사용하여 맞춤 사용자 프로필 아바타를 만들거나 맞춤설정된 시각적 애셋을 주요 화면 흐름에 직접 통합할 수 있습니다.
예를 들어 Imagen은 새로운 편집 기능을 제공합니다 (개발자 프리뷰). 이제 마스크를 그리고 인페인팅을 활용하여 마스크된 영역 내에서 픽셀을 생성할 수 있습니다. 또한 아웃페인팅을 사용하여 마스크 외부에서 픽셀을 생성할 수 있습니다.
Imagen은 인페인팅을 지원하므로 이미지의 일부만 생성할 수 있습니다.
또는 Gemini 2.5 Flash Image (일명 Nano Banana)는 확장된 세계 지식과 Gemini 모델의 추론 기능을 사용하여 컨텍스트와 관련된 이미지를 생성할 수 있습니다. 이는 사용자의 현재 인앱 환경에 맞는 동적 일러스트레이션을 만드는 데 적합합니다.
Gemini 2.5 Flash Image를 사용하여 앱과 컨텍스트가 관련된 동적 삽화를 만드세요.
마지막으로 대화형으로 반복적으로 이미지를 수정하는 기능을 사용하면 사용자가 자연어를 사용하여 사진을 수정할 수 있습니다.
Gemini 2.5 Flash Image를 사용하여 자연어로 사진을 수정하세요.
애플리케이션에 AI를 통합하기 시작할 때는 AI 안전에 관해 알아보는 것이 중요합니다. 특히 애플리케이션의 보안 위험을 평가하고, 안전 위험을 완화하기 위한 조정을 고려하고, 사용 사례에 적합한 안전 테스트를 실행하고, 사용자 의견을 수집하고, 콘텐츠를 모니터링하는 것이 중요합니다.
Imagen 또는 Gemini: 선택은 여러분의 몫입니다
Gemini 2.5 Flash Image ("Nano Banana")와 Imagen의 차이점은 기본 초점과 고급 기능에 있습니다. 더 큰 Gemini 제품군의 이미지 모델인 Gemini 2.5 Flash Image는 대화형 이미지 수정에 탁월하며, 여러 반복에서 컨텍스트와 주제 일관성을 유지하고, '세계 지식 및 추론'을 활용하여 컨텍스트와 관련된 시각적 요소를 만들거나 긴 텍스트 시퀀스 내에 정확한 시각적 요소를 삽입합니다.
Imagen은 Google의 특화된 이미지 생성 모델로, 더 큰 창의적 제어를 위해 설계되었으며, 매우 사실적인 출력, 예술적 세부정보, 특정 스타일을 전문으로 하며, 생성된 이미지의 가로세로 비율 또는 형식을 지정하기 위한 명시적 제어를 제공합니다.
| Gemini 2.5 Flash Images (Nano Banana 🍌) | Imagen |
🌎 컨텍스트와 관련된 이미지를 위한 세계 지식 및 추론 💬 컨텍스트를 유지하면서 대화형으로 이미지 수정 📖 긴 텍스트 시퀀스 내에 정확한 시각적 요소 삽입 | 📐 생성된 이미지의 가로세로 비율 또는 형식 지정
🖌️인페인팅 및 아웃페인팅을 위한 마스크 기반 수정 지원
🎚️ 생성된 이미지의 세부정보 (품질, 예술적 세부정보, 특정 스타일)를 더 세부적으로 제어 |
앱에서 이러한 기능을 사용하는 방법을 알아보겠습니다.
Imagen을 사용한 인페인팅
몇 개월 전 Google은 Imagen의 새로운 편집 기능을 출시했습니다. Imagen은 이제 이미지 생성을 위한 프로덕션에 사용할 수 있지만 편집 기능은 아직 개발자 프리뷰 버전입니다.
Imagen 편집 기능에는 마스크 기반 이미지 수정 기능인 인페인팅 및 아웃페인팅이 포함됩니다. 이 새로운 기능을 사용하면 사용자가 전체 사진을 다시 생성하지 않고도 이미지의 특정 영역을 수정할 수 있습니다. 즉, 이미지의 가장 좋은 부분을 보존하고 변경하려는 부분만 변경할 수 있습니다.
Imagen 편집 기능을 사용하여 이미지에서 정확한 타겟 변경을 하고 나머지 이미지 무결성을 보장하세요.
이러한 변경사항은 원본 이미지의 핵심 요소와 전반적인 무결성을 유지하면서 마스크의 영역만 수정하는 방식으로 이루어집니다.
Imagen으로 인페인팅을 구현하려면 먼저 편집 기능을 지원하는 특정 Imagen 모델인 imagen-3.0-capability-001을 초기화합니다.
// Copyright 2025 Google LLC.
// SPDX-License-Identifier: Apache-2.0
val editingModel =
Firebase.ai(backend = GenerativeBackend.vertexAI()).imagenModel(
"imagen-3.0-capability-001",
generationConfig = ImagenGenerationConfig(
numberOfImages = 1,
aspectRatio = ImagenAspectRatio.SQUARE_1x1,
imageFormat = ImagenImageFormat.jpeg(compressionQuality = 75),
),
)여기에서 인페인팅 함수를 정의합니다.
// Copyright 2025 Google LLC.
// SPDX-License-Identifier: Apache-2.0
val prompt = "remove the pancakes and make it an omelet instead"
suspend fun inpaintImageWithMask(sourceImage: Bitmap, maskImage: Bitmap, prompt: String, editSteps: Int = 50): Bitmap {
val imageResponse = editingModel.editImage(
referenceImages = listOf(
ImagenRawImage(sourceImage.toImagenInlineImage()),
ImagenRawMask(maskImage.toImagenInlineImage()),
),
prompt = prompt,
config = ImagenEditingConfig(
editMode = ImagenEditMode.INPAINT_INSERTION,
editSteps = editSteps,
),
)
return imageResponse.images.first().asBitmap()
}수정할 sourceImage, maskImage, 프롬프트, 실행할 수정 단계 수를 모두 제공합니다.
Android AI 샘플 카탈로그의 Imagen 수정 샘플에서 실제로 확인할 수 있습니다.
또한 Imagen은 모델이 마스크 외부의 픽셀을 생성할 수 있도록 하는 아웃페인팅 을 지원합니다. Imagen의 이미지 맞춤설정 기능을 사용하여 사진의 스타일을 변경하거나 사진의 주제를 업데이트할 수도 있습니다. 자세한 내용은 Android 개발자 문서를 참고하세요.
Gemini 2.5 Flash Image를 사용한 대화형 이미지 생성
Gemini 2.5 Flash Image로 이미지를 수정하는 한 가지 방법은 모델의 멀티턴 채팅 기능을 사용하는 것입니다.
먼저 모델을 초기화합니다.
// Copyright 2025 Google LLC.
// SPDX-License-Identifier: Apache-2.0
val model = Firebase.ai(backend = GenerativeBackend.googleAI()).generativeModel(
modelName = "gemini-2.5-flash-image",
// Configure the model to respond with text and images (required)
generationConfig = generationConfig {
responseModalities = listOf(ResponseModality.TEXT,
ResponseModality.IMAGE)
}
)
위에서 설명한 마스크 기반 Imagen 방법과 유사한 결과를 얻으려면 chat API를 활용하여 Gemini 2.5 Flash Image와의 대화를 시작할 수 있습니다.
// Copyright 2025 Google LLC.
// SPDX-License-Identifier: Apache-2.0
// Initialize the chat
val chat = model.startChat()
// Load a bitmap
val source = ImageDecoder.createSource(context.contentResolver, uri)
val bitmap = ImageDecoder.decodeBitmap(source)
// Create the initial prompt instructing the model to edit the image
val prompt = content {
image(bitmap)
text("remove the pancakes and add an omelet")
}
// To generate an initial response, send a user message with the image and text prompt
var response = chat.sendMessage(prompt)
// Inspect the returned image
var generatedImageAsBitmap = response
.candidates.first().content.parts.filterIsInstance<ImagePart>().firstOrNull()?.image
// Follow up requests do not need to specify the image again
response = chat.sendMessage("Now, center the omelet in the pan")
generatedImageAsBitmap = response
.candidates.first().content.parts.filterIsInstance<ImagePart>().firstOrNull()?.image
Android AI 샘플 카탈로그의 Gemini 이미지 채팅 샘플에서 실제로 확인할 수 있으며 Android 문서에서 자세히 알아볼 수 있습니다.
결론
Imagen과 Gemini 2.5 Flash Image는 모두 강력한 기능을 제공하므로 특정 사용 사례에 따라 앱을 맞춤설정하고 사용자 참여도를 높이는 데 적합한 이미지 생성 모델을 선택할 수 있습니다.
계속 읽기
-
2026년 4월 17일2026년 4월 17일
제품 소식
혁신적인 AI 기능을 앱에 구현하려는 Android 개발자라면 최근에 출시된 강력한 새로운 업데이트를 확인해 보세요.
Thomas Ezan • 전문 길이: 3분
-
제품 소식
오늘 Google은 저렴한 비용으로 속도에 중점을 두고 설계된 최첨단 인텔리전스인 Gemini 3 Flash를 출시하여 Gemini 3 모델 제품군을 확장합니다.
Thomas Ezan • 전문 길이: 2분
-
제품 소식
증강 오버레이부터 완전 몰입형 환경까지, Android XR 생태계는 빠르게 확장되고 있으며, 삼성 갤럭시 XR은 이미 오늘부터 구매할 수 있습니다.
Stevan Silva, Vinny DaSilva • 전문 길이: 3분
소식 받아보기
Android 개발 관련 최신 정보를 이메일로 받아 보세요. 매주