From ca208269a2b04d713b6e37b2b6f910057ab50468 Mon Sep 17 00:00:00 2001 From: Vinay Guthal Date: Fri, 27 Mar 2026 13:49:03 -0400 Subject: [PATCH 1/8] deprecate image --- .../com/google/firebase/ai/ImagenModel.kt | 20 +++++++ .../com/google/firebase/ai/common/Request.kt | 14 +++++ .../firebase/ai/java/ImagenModelFutures.kt | 40 ++++++++++++- .../firebase/ai/type/ImagenAspectRatio.kt | 8 ++- .../firebase/ai/type/ImagenControlConfig.kt | 7 +++ .../firebase/ai/type/ImagenControlType.kt | 8 ++- .../google/firebase/ai/type/ImagenEditMode.kt | 8 ++- .../firebase/ai/type/ImagenEditingConfig.kt | 4 ++ .../google/firebase/ai/type/ImagenGCSImage.kt | 4 ++ .../ai/type/ImagenGenerationConfig.kt | 56 +++++++++++++++++-- .../ai/type/ImagenGenerationResponse.kt | 18 ++++++ .../firebase/ai/type/ImagenImageFormat.kt | 16 +++++- .../firebase/ai/type/ImagenImagePlacement.kt | 8 +++ .../firebase/ai/type/ImagenInlineImage.kt | 15 +++++ .../firebase/ai/type/ImagenMaskConfig.kt | 7 +++ .../google/firebase/ai/type/ImagenMaskMode.kt | 7 +++ .../ai/type/ImagenPersonFilterLevel.kt | 8 ++- .../firebase/ai/type/ImagenReferenceImage.kt | 52 ++++++++++++++++- .../ai/type/ImagenSafetyFilterLevel.kt | 8 ++- .../firebase/ai/type/ImagenSafetySettings.kt | 4 ++ .../firebase/ai/type/ImagenStyleConfig.kt | 7 +++ .../firebase/ai/type/ImagenSubjectConfig.kt | 7 +++ .../ai/type/ImagenSubjectReferenceType.kt | 8 ++- 23 files changed, 319 insertions(+), 15 deletions(-) diff --git a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/ImagenModel.kt b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/ImagenModel.kt index c562ea0233b..b902e4f76bc 100644 --- a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/ImagenModel.kt +++ b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/ImagenModel.kt @@ -44,6 +44,10 @@ import com.google.firebase.auth.internal.InternalAuthProvider * * See the documentation for a list of * [supported models](https://firebase.google.com/docs/ai-logic/models). + * + * @deprecated **Deprecation Notice:** All Imagen models are deprecated and will shut down as early + * as June 2026. As a replacement, you can + * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ public class ImagenModel internal constructor( @@ -86,6 +90,10 @@ internal constructor( * Generates an image, returning the result directly to the caller. * * @param prompt The input(s) given to the model as a prompt. + * + * @deprecated **Deprecation Notice:** All Imagen models are deprecated and will shut down as + * early as June 2026. As a replacement, you can + * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ public suspend fun generateImages(prompt: String): ImagenGenerationResponse = try { @@ -104,6 +112,10 @@ internal constructor( * @param referenceImages the image inputs given to the model as a prompt * @param prompt the text input given to the model as a prompt * @param config the editing configuration settings + * + * @deprecated **Deprecation Notice:** All Imagen models are deprecated and will shut down as + * early as June 2026. As a replacement, you can + * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ @PublicPreviewAPI public suspend fun editImage( @@ -129,6 +141,10 @@ internal constructor( * @param prompt the text input given to the model as a prompt * @param mask the mask which defines where in the image can be painted by Imagen. * @param config the editing configuration settings, it should include an [ImagenEditMode] + * + * @deprecated **Deprecation Notice:** All Imagen models are deprecated and will shut down as + * early as June 2026. As a replacement, you can + * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ @PublicPreviewAPI public suspend fun inpaintImage( @@ -154,6 +170,10 @@ internal constructor( * insufficient * @param config the editing configuration settings * @see [ImagenMaskReference.generateMaskAndPadForOutpainting] + * + * @deprecated **Deprecation Notice:** All Imagen models are deprecated and will shut down as + * early as June 2026. As a replacement, you can + * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ @PublicPreviewAPI public suspend fun outpaintImage( diff --git a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/common/Request.kt b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/common/Request.kt index e3a4afcb56c..27102e3a0a3 100644 --- a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/common/Request.kt +++ b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/common/Request.kt @@ -91,12 +91,26 @@ internal data class GenerateImageRequest( val instances: List, val parameters: ImagenParameters, ) : Request { + /** + * Represents a prompt for Imagen + * + * @deprecated **Deprecation Notice:** All Imagen models are deprecated and will shut down as + * early as June 2026. As a replacement, you can + * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) + */ @Serializable internal data class ImagenPrompt( val prompt: String?, val referenceImages: List? ) + /** + * Represents parameters for Imagen + * + * @deprecated **Deprecation Notice:** All Imagen models are deprecated and will shut down as + * early as June 2026. As a replacement, you can + * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) + */ @Serializable internal data class ImagenParameters( val sampleCount: Int, diff --git a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/java/ImagenModelFutures.kt b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/java/ImagenModelFutures.kt index 2f0299da406..55ccf13c911 100644 --- a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/java/ImagenModelFutures.kt +++ b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/java/ImagenModelFutures.kt @@ -33,6 +33,10 @@ import com.google.firebase.ai.type.PublicPreviewAPI * Wrapper class providing Java compatible methods for [ImagenModel]. * * @see [ImagenModel] + * + * @deprecated **Deprecation Notice:** All Imagen models are deprecated and will shut down as early + * as June 2026. As a replacement, you can + * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ @PublicPreviewAPI public abstract class ImagenModelFutures internal constructor() { @@ -40,6 +44,10 @@ public abstract class ImagenModelFutures internal constructor() { * Generates an image, returning the result directly to the caller. * * @param prompt The main text prompt from which the image is generated. + * + * @deprecated **Deprecation Notice:** All Imagen models are deprecated and will shut down as + * early as June 2026. As a replacement, you can + * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ public abstract fun generateImages( prompt: String, @@ -52,6 +60,10 @@ public abstract class ImagenModelFutures internal constructor() { * @param prompt the text input given to the model as a prompt * @param referenceImages the image inputs given to the model as a prompt * @param config the editing configuration settings + * + * @deprecated **Deprecation Notice:** All Imagen models are deprecated and will shut down as + * early as June 2026. As a replacement, you can + * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ public abstract fun editImage( referenceImages: List, @@ -65,6 +77,10 @@ public abstract class ImagenModelFutures internal constructor() { * * @param prompt the text input given to the model as a prompt * @param referenceImages the image inputs given to the model as a prompt + * + * @deprecated **Deprecation Notice:** All Imagen models are deprecated and will shut down as + * early as June 2026. As a replacement, you can + * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ public abstract fun editImage( referenceImages: List, @@ -78,6 +94,10 @@ public abstract class ImagenModelFutures internal constructor() { * @param prompt the text input given to the model as a prompt * @param mask the mask which defines where in the image can be painted by imagen. * @param config the editing configuration settings, it should include an [ImagenEditMode] + * + * @deprecated **Deprecation Notice:** All Imagen models are deprecated and will shut down as + * early as June 2026. As a replacement, you can + * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ public abstract fun inpaintImage( image: ImagenInlineImage, @@ -99,6 +119,10 @@ public abstract class ImagenModelFutures internal constructor() { * insufficient * @param config the editing configuration settings * @see [ImagenMaskReference.generateMaskAndPadForOutpainting] + * + * @deprecated **Deprecation Notice:** All Imagen models are deprecated and will shut down as + * early as June 2026. As a replacement, you can + * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ public abstract fun outpaintImage( image: ImagenInlineImage, @@ -108,7 +132,13 @@ public abstract class ImagenModelFutures internal constructor() { config: ImagenEditingConfig? = null, ): ListenableFuture> - /** Returns the [ImagenModel] object wrapped by this object. */ + /** + * Returns the [ImagenModel] object wrapped by this object. + * + * @deprecated **Deprecation Notice:** All Imagen models are deprecated and will shut down as + * early as June 2026. As a replacement, you can + * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) + */ public abstract fun getImageModel(): ImagenModel private class FuturesImpl(private val model: ImagenModel) : ImagenModelFutures() { @@ -154,7 +184,13 @@ public abstract class ImagenModelFutures internal constructor() { public companion object { - /** @return a [ImagenModelFutures] created around the provided [ImagenModel] */ + /** + * @return a [ImagenModelFutures] created around the provided [ImagenModel] + * + * @deprecated **Deprecation Notice:** All Imagen models are deprecated and will shut down as + * early as June 2026. As a replacement, you can + * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) + */ @JvmStatic public fun from(model: ImagenModel): ImagenModelFutures = FuturesImpl(model) } } diff --git a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenAspectRatio.kt b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenAspectRatio.kt index a5d5e22fca3..d2d2ac64ba3 100644 --- a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenAspectRatio.kt +++ b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenAspectRatio.kt @@ -16,7 +16,13 @@ package com.google.firebase.ai.type -/** Represents the aspect ratio that the generated image should conform to. */ +/** + * Represents the aspect ratio that the generated image should conform to. + * + * @deprecated **Deprecation Notice:** All Imagen models are deprecated and will shut down as early + * as June 2026. As a replacement, you can + * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) + */ public class ImagenAspectRatio private constructor(internal val internalVal: String) { public companion object { /** A square image, useful for icons, profile pictures, etc. */ diff --git a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenControlConfig.kt b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenControlConfig.kt index c6f3b01af6c..8c5ed812816 100644 --- a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenControlConfig.kt +++ b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenControlConfig.kt @@ -17,6 +17,13 @@ package com.google.firebase.ai.type import kotlinx.serialization.Serializable +/** + * Represents the control configuration for Imagen + * + * @deprecated **Deprecation Notice:** All Imagen models are deprecated and will shut down as early + * as June 2026. As a replacement, you can + * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) + */ internal class ImagenControlConfig( internal val controlType: ImagenControlType, internal val enableComputation: Boolean? = null, diff --git a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenControlType.kt b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenControlType.kt index 6d0bf1a98ab..939d7004a14 100644 --- a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenControlType.kt +++ b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenControlType.kt @@ -15,7 +15,13 @@ */ package com.google.firebase.ai.type -/** Represents a control type for controlled Imagen generation/editing */ +/** + * Represents a control type for controlled Imagen generation/editing + * + * @deprecated **Deprecation Notice:** All Imagen models are deprecated and will shut down as early + * as June 2026. As a replacement, you can + * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) + */ public class ImagenControlType internal constructor(internal val value: String) { public companion object { diff --git a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenEditMode.kt b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenEditMode.kt index 6be2b44baab..609fa5b136e 100644 --- a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenEditMode.kt +++ b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenEditMode.kt @@ -15,7 +15,13 @@ */ package com.google.firebase.ai.type -/** Represents the edit mode for Imagen */ +/** + * Represents the edit mode for Imagen + * + * @deprecated **Deprecation Notice:** All Imagen models are deprecated and will shut down as early + * as June 2026. As a replacement, you can + * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) + */ public class ImagenEditMode private constructor(internal val value: String) { public companion object { diff --git a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenEditingConfig.kt b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenEditingConfig.kt index 60e54261c1e..122236ad95b 100644 --- a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenEditingConfig.kt +++ b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenEditingConfig.kt @@ -21,6 +21,10 @@ import kotlinx.serialization.Serializable * Contains the editing settings which are not specific to a reference image * @param editMode holds the editing mode if the request is for inpainting or outpainting * @param editSteps the number of intermediate steps to include in the editing process + * + * @deprecated **Deprecation Notice:** All Imagen models are deprecated and will shut down as early + * as June 2026. As a replacement, you can + * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ @PublicPreviewAPI public class ImagenEditingConfig( diff --git a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenGCSImage.kt b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenGCSImage.kt index 79ed3fa186b..352ab4b803d 100644 --- a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenGCSImage.kt +++ b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenGCSImage.kt @@ -21,6 +21,10 @@ package com.google.firebase.ai.type * * @param gcsUri Contains the `gs://` URI for the image. * @param mimeType Contains the MIME type of the image (for example, `"image/png"`). + * + * @deprecated **Deprecation Notice:** All Imagen models are deprecated and will shut down as early + * as June 2026. As a replacement, you can + * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ internal class ImagenGCSImage internal constructor(public val gcsUri: String, public val mimeType: String) {} diff --git a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenGenerationConfig.kt b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenGenerationConfig.kt index 1b4407a12a6..00572434db4 100644 --- a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenGenerationConfig.kt +++ b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenGenerationConfig.kt @@ -25,6 +25,10 @@ package com.google.firebase.ai.type * @param aspectRatio The aspect ratio of the generated images. * @param imageFormat The file format/compression of the generated images. * @param addWatermark Adds an invisible watermark to mark the image as AI generated. + * + * @deprecated **Deprecation Notice:** All Imagen models are deprecated and will shut down as early + * as June 2026. As a replacement, you can + * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ import kotlin.jvm.JvmField @@ -40,6 +44,10 @@ public class ImagenGenerationConfig( * * This is mainly intended for Java interop. For Kotlin, use [imagenGenerationConfig] for a more * idiomatic experience. + * + * @deprecated **Deprecation Notice:** All Imagen models are deprecated and will shut down as + * early as June 2026. As a replacement, you can + * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ public class Builder { @JvmField public var negativePrompt: String? = null @@ -48,27 +56,57 @@ public class ImagenGenerationConfig( @JvmField public var imageFormat: ImagenImageFormat? = null @JvmField public var addWatermark: Boolean? = null - /** See [ImagenGenerationConfig.negativePrompt]. */ + /** + * See [ImagenGenerationConfig.negativePrompt]. + * + * @deprecated **Deprecation Notice:** All Imagen models are deprecated and will shut down as + * early as June 2026. As a replacement, you can + * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) + */ public fun setNegativePrompt(negativePrompt: String): Builder = apply { this.negativePrompt = negativePrompt } - /** See [ImagenGenerationConfig.numberOfImages]. */ + /** + * See [ImagenGenerationConfig.numberOfImages]. + * + * @deprecated **Deprecation Notice:** All Imagen models are deprecated and will shut down as + * early as June 2026. As a replacement, you can + * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) + */ public fun setNumberOfImages(numberOfImages: Int): Builder = apply { this.numberOfImages = numberOfImages } - /** See [ImagenGenerationConfig.aspectRatio]. */ + /** + * See [ImagenGenerationConfig.aspectRatio]. + * + * @deprecated **Deprecation Notice:** All Imagen models are deprecated and will shut down as + * early as June 2026. As a replacement, you can + * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) + */ public fun setAspectRatio(aspectRatio: ImagenAspectRatio): Builder = apply { this.aspectRatio = aspectRatio } - /** See [ImagenGenerationConfig.imageFormat]. */ + /** + * See [ImagenGenerationConfig.imageFormat]. + * + * @deprecated **Deprecation Notice:** All Imagen models are deprecated and will shut down as + * early as June 2026. As a replacement, you can + * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) + */ public fun setImageFormat(imageFormat: ImagenImageFormat): Builder = apply { this.imageFormat = imageFormat } - /** See [ImagenGenerationConfig.addWatermark]. */ + /** + * See [ImagenGenerationConfig.addWatermark]. + * + * @deprecated **Deprecation Notice:** All Imagen models are deprecated and will shut down as + * early as June 2026. As a replacement, you can + * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) + */ public fun setAddWatermark(addWatermark: Boolean): Builder = apply { this.addWatermark = addWatermark } @@ -78,6 +116,10 @@ public class ImagenGenerationConfig( * ``` * val config = GenerationConfig.builder() * ``` + * + * @deprecated **Deprecation Notice:** All Imagen models are deprecated and will shut down as + * early as June 2026. As a replacement, you can + * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ public fun build(): ImagenGenerationConfig = ImagenGenerationConfig( @@ -107,6 +149,10 @@ public class ImagenGenerationConfig( * addWatermark = false * } * ``` + * + * @deprecated **Deprecation Notice:** All Imagen models are deprecated and will shut down as early + * as June 2026. As a replacement, you can + * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ public fun imagenGenerationConfig( init: ImagenGenerationConfig.Builder.() -> Unit diff --git a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenGenerationResponse.kt b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenGenerationResponse.kt index f8956eafab2..cc2b8f5aadb 100644 --- a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenGenerationResponse.kt +++ b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenGenerationResponse.kt @@ -26,6 +26,10 @@ import kotlinx.serialization.Serializable * @param images contains the generated images * @param filteredReason if fewer images were generated than were requested, this field will contain * the reason they were filtered out. + * + * @deprecated **Deprecation Notice:** All Imagen models are deprecated and will shut down as early + * as June 2026. As a replacement, you can + * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ public class ImagenGenerationResponse internal constructor(public val images: List, public val filteredReason: String?) { @@ -45,6 +49,13 @@ internal constructor(public val images: List, public val filteredReason: Stri ) } + /** + * Represents an image response from Imagen + * + * @deprecated **Deprecation Notice:** All Imagen models are deprecated and will shut down as + * early as June 2026. As a replacement, you can + * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) + */ @Serializable internal data class ImagenImageResponse( val bytesBase64Encoded: String? = null, @@ -59,6 +70,13 @@ internal constructor(public val images: List, public val filteredReason: Stri internal fun toPublicGCS() = ImagenGCSImage(gcsUri!!, mimeType!!) } + /** + * Represents safety attributes for Imagen + * + * @deprecated **Deprecation Notice:** All Imagen models are deprecated and will shut down as + * early as June 2026. As a replacement, you can + * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) + */ @Serializable internal data class ImagenSafetyAttributes( val categories: List? = null, diff --git a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenImageFormat.kt b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenImageFormat.kt index f9bfc40575c..223d6ba697d 100644 --- a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenImageFormat.kt +++ b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenImageFormat.kt @@ -25,6 +25,10 @@ import kotlinx.serialization.Serializable * @param compressionQuality an int (1-100) representing the quality of the image; a lower number * means the image is permitted to be lower quality to reduce size. This parameter is not relevant * for every MIME type. + * + * @deprecated **Deprecation Notice:** All Imagen models are deprecated and will shut down as early + * as June 2026. As a replacement, you can + * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ public class ImagenImageFormat private constructor(public val mimeType: String, public val compressionQuality: Int?) { @@ -39,13 +43,23 @@ private constructor(public val mimeType: String, public val compressionQuality: * * @param compressionQuality an int (1-100) representing the quality of the image; a lower * number means the image is permitted to be lower quality to reduce size. + * + * @deprecated **Deprecation Notice:** All Imagen models are deprecated and will shut down as + * early as June 2026. As a replacement, you can + * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ @JvmStatic public fun jpeg(compressionQuality: Int? = null): ImagenImageFormat { return ImagenImageFormat("image/jpeg", compressionQuality) } - /** An [ImagenImageFormat] representing a PNG image */ + /** + * An [ImagenImageFormat] representing a PNG image + * + * @deprecated **Deprecation Notice:** All Imagen models are deprecated and will shut down as + * early as June 2026. As a replacement, you can + * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) + */ @JvmStatic public fun png(): ImagenImageFormat { return ImagenImageFormat("image/png", null) diff --git a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenImagePlacement.kt b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenImagePlacement.kt index db003a15344..feac880f07a 100644 --- a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenImagePlacement.kt +++ b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenImagePlacement.kt @@ -18,6 +18,10 @@ package com.google.firebase.ai.type /** * Represents where the placement of an image is within a new, larger image, usually in the context * of an outpainting request. + * + * @deprecated **Deprecation Notice:** All Imagen models are deprecated and will shut down as early + * as June 2026. As a replacement, you can + * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ public class ImagenImagePlacement private constructor(public val x: Int? = null, public val y: Int? = null) { @@ -72,6 +76,10 @@ private constructor(public val x: Int? = null, public val y: Int? = null) { * coordinates represent the location of the top left corner of the original image. * @param x the x coordinate of the top left corner of the original image * @param y the y coordinate of the top left corner of the original image + * + * @deprecated **Deprecation Notice:** All Imagen models are deprecated and will shut down as + * early as June 2026. As a replacement, you can + * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ @JvmStatic public fun fromCoordinate(x: Int, y: Int): ImagenImagePlacement { diff --git a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenInlineImage.kt b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenInlineImage.kt index ccf084d6aa7..a386de8bc1c 100644 --- a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenInlineImage.kt +++ b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenInlineImage.kt @@ -28,6 +28,10 @@ import kotlinx.serialization.Serializable * @property data The raw image bytes in JPEG or PNG format, as specified by [mimeType]. * @property mimeType The IANA standard MIME type of the image data; either `"image/png"` or * `"image/jpeg"`; to request a different format, see [ImagenGenerationConfig.imageFormat]. + * + * @deprecated **Deprecation Notice:** All Imagen models are deprecated and will shut down as early + * as June 2026. As a replacement, you can + * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ public class ImagenInlineImage internal constructor( @@ -37,6 +41,10 @@ internal constructor( /** * Returns the image as an Android OS native [Bitmap] so that it can be saved or sent to the UI. + * + * @deprecated **Deprecation Notice:** All Imagen models are deprecated and will shut down as + * early as June 2026. As a replacement, you can + * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ public fun asBitmap(): Bitmap { return BitmapFactory.decodeByteArray(data, 0, data.size) @@ -50,6 +58,13 @@ internal constructor( } } +/** + * Helper method to convert an Android bitmap to an Imagen inline data image. + * + * @deprecated **Deprecation Notice:** All Imagen models are deprecated and will shut down as early + * as June 2026. As a replacement, you can + * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) + */ @PublicPreviewAPI public fun Bitmap.toImagenInlineImage(): ImagenInlineImage { val byteArrayOutputStream = ByteArrayOutputStream() diff --git a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenMaskConfig.kt b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenMaskConfig.kt index 64a9a4376e3..b6e252aee30 100644 --- a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenMaskConfig.kt +++ b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenMaskConfig.kt @@ -17,6 +17,13 @@ package com.google.firebase.ai.type import kotlinx.serialization.Serializable +/** + * Represents the mask configuration for Imagen + * + * @deprecated **Deprecation Notice:** All Imagen models are deprecated and will shut down as early + * as June 2026. As a replacement, you can + * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) + */ internal class ImagenMaskConfig( internal val maskType: ImagenMaskMode, internal val dilation: Double? = null, diff --git a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenMaskMode.kt b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenMaskMode.kt index b83a20381e2..c58abdfb4ac 100644 --- a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenMaskMode.kt +++ b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenMaskMode.kt @@ -15,6 +15,13 @@ */ package com.google.firebase.ai.type +/** + * Represents the mask mode for Imagen + * + * @deprecated **Deprecation Notice:** All Imagen models are deprecated and will shut down as early + * as June 2026. As a replacement, you can + * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) + */ internal class ImagenMaskMode private constructor(internal val value: String) { companion object { val USER_PROVIDED: ImagenMaskMode = ImagenMaskMode("MASK_MODE_USER_PROVIDED") diff --git a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenPersonFilterLevel.kt b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenPersonFilterLevel.kt index baecec0cfb4..f6dd4b37bd0 100644 --- a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenPersonFilterLevel.kt +++ b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenPersonFilterLevel.kt @@ -16,7 +16,13 @@ package com.google.firebase.ai.type -/** A filter used to prevent images from containing depictions of children or people. */ +/** + * A filter used to prevent images from containing depictions of children or people. + * + * @deprecated **Deprecation Notice:** All Imagen models are deprecated and will shut down as early + * as June 2026. As a replacement, you can + * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) + */ public class ImagenPersonFilterLevel private constructor(internal val internalVal: String) { public companion object { /** diff --git a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenReferenceImage.kt b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenReferenceImage.kt index 59eb927e687..123bd60e387 100644 --- a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenReferenceImage.kt +++ b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenReferenceImage.kt @@ -23,7 +23,13 @@ import android.graphics.Rect import com.google.firebase.ai.common.GenerateImageRequest import kotlinx.serialization.Serializable -/** Represents an reference image for an Imagen editing request */ +/** + * Represents an reference image for an Imagen editing request + * + * @deprecated **Deprecation Notice:** All Imagen models are deprecated and will shut down as early + * as June 2026. As a replacement, you can + * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) + */ @PublicPreviewAPI public abstract class ImagenReferenceImage internal constructor( @@ -85,6 +91,10 @@ internal constructor( * the generated referenced image * @param superpixelRuler if type is [ImagenControlType.COLOR_SUPERPIXEL] and [enableComputation] is * true, this will control the superpixel smoothness factor for the generated referenced image + * + * @deprecated **Deprecation Notice:** All Imagen models are deprecated and will shut down as early + * as June 2026. As a replacement, you can + * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ @PublicPreviewAPI public class ImagenControlReference( @@ -105,6 +115,10 @@ public class ImagenControlReference( /** * Represents a mask for Imagen editing. This image (generated or provided) should contain only * black and white pixels, with black representing parts of the image which should not change. + * + * @deprecated **Deprecation Notice:** All Imagen models are deprecated and will shut down as early + * as June 2026. As a replacement, you can + * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ @PublicPreviewAPI public abstract class ImagenMaskReference @@ -124,6 +138,10 @@ internal constructor(maskConfig: ImagenMaskConfig, image: ImagenInlineImage? = n * @param newDimensions the new dimensions for outpainting. These new dimensions *must* be more * than the original image. * @param newPosition the placement of the original image within the new outpainted image. + * + * @deprecated **Deprecation Notice:** All Imagen models are deprecated and will shut down as + * early as June 2026. As a replacement, you can + * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ @JvmOverloads @JvmStatic @@ -147,6 +165,10 @@ internal constructor(maskConfig: ImagenMaskConfig, image: ImagenInlineImage? = n * than the original image. * @param newPosition the placement of the original image within the new outpainted image. * @param dilation the dilation for the outpainting mask. See: [ImagenRawMask]. + * + * @deprecated **Deprecation Notice:** All Imagen models are deprecated and will shut down as + * early as June 2026. As a replacement, you can + * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ @JvmStatic public fun generateMaskAndPadForOutpainting( @@ -214,6 +236,10 @@ internal constructor(maskConfig: ImagenMaskConfig, image: ImagenInlineImage? = n * white, and the foreground black * @param dilation the amount to dilate the mask. This can help smooth the borders of an edit and * make it seem more convincing. For example, `0.05` will dilate the mask 5%. + * + * @deprecated **Deprecation Notice:** All Imagen models are deprecated and will shut down as early + * as June 2026. As a replacement, you can + * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ @PublicPreviewAPI public class ImagenBackgroundMask(dilation: Double? = null) : @@ -224,6 +250,10 @@ public class ImagenBackgroundMask(dilation: Double? = null) : * black, and the foreground white * @param dilation the amount to dilate the mask. This can help smooth the borders of an edit and * make it seem more convincing. For example, `0.05` will dilate the mask 5%. + * + * @deprecated **Deprecation Notice:** All Imagen models are deprecated and will shut down as early + * as June 2026. As a replacement, you can + * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ @PublicPreviewAPI public class ImagenForegroundMask(dilation: Double? = null) : @@ -236,6 +266,10 @@ public class ImagenForegroundMask(dilation: Double? = null) : * @param mask the mask image * @param dilation the amount to dilate the mask. This can help smooth the borders of an edit and * make it seem more convincing. For example, `0.05` will dilate the mask 5%. + * + * @deprecated **Deprecation Notice:** All Imagen models are deprecated and will shut down as early + * as June 2026. As a replacement, you can + * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ @PublicPreviewAPI public class ImagenRawMask(mask: ImagenInlineImage, dilation: Double? = null) : @@ -252,6 +286,10 @@ public class ImagenRawMask(mask: ImagenInlineImage, dilation: Double? = null) : * in the Vertex AI documentation. * @param dilation the amount to dilate the mask. This can help smooth the borders of an edit and * make it seem more convincing. For example, `0.05` will dilate the mask 5%. + * + * @deprecated **Deprecation Notice:** All Imagen models are deprecated and will shut down as early + * as June 2026. As a replacement, you can + * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ @PublicPreviewAPI public class ImagenSemanticMask(classes: List, dilation: Double? = null) : @@ -260,6 +298,10 @@ public class ImagenSemanticMask(classes: List, dilation: Double? = null) : /** * Represents a base image for Imagen editing * @param image the image + * + * @deprecated **Deprecation Notice:** All Imagen models are deprecated and will shut down as early + * as June 2026. As a replacement, you can + * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ @PublicPreviewAPI public class ImagenRawImage(image: ImagenInlineImage) : ImagenReferenceImage(image = image) {} @@ -269,6 +311,10 @@ public class ImagenRawImage(image: ImagenInlineImage) : ImagenReferenceImage(ima * @param image the image representing the style you want to transfer to your original images * @param referenceId the reference ID you can use to reference this style in your prompt * @param description the description you can use to reference this style in your prompt + * + * @deprecated **Deprecation Notice:** All Imagen models are deprecated and will shut down as early + * as June 2026. As a replacement, you can + * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ @PublicPreviewAPI public class ImagenStyleReference( @@ -288,6 +334,10 @@ public class ImagenStyleReference( * @param referenceId the reference ID you can use to reference this subject in your prompt * @param description the description you can use to reference this subject in your prompt * @param subjectType the type of the subject + * + * @deprecated **Deprecation Notice:** All Imagen models are deprecated and will shut down as early + * as June 2026. As a replacement, you can + * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ @PublicPreviewAPI public class ImagenSubjectReference( diff --git a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenSafetyFilterLevel.kt b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenSafetyFilterLevel.kt index 6ac34e96fd3..fa1c3dfe0cd 100644 --- a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenSafetyFilterLevel.kt +++ b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenSafetyFilterLevel.kt @@ -16,7 +16,13 @@ package com.google.firebase.ai.type -/** Used for safety filtering. */ +/** + * Used for safety filtering. + * + * @deprecated **Deprecation Notice:** All Imagen models are deprecated and will shut down as early + * as June 2026. As a replacement, you can + * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) + */ public class ImagenSafetyFilterLevel private constructor(internal val internalVal: String) { public companion object { /** Strongest filtering level, most strict blocking. */ diff --git a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenSafetySettings.kt b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenSafetySettings.kt index fe13234321f..89e0eea3bd0 100644 --- a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenSafetySettings.kt +++ b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenSafetySettings.kt @@ -21,6 +21,10 @@ package com.google.firebase.ai.type * * @param safetyFilterLevel Used to filter unsafe content. * @param personFilterLevel Used to filter images containing people. + * + * @deprecated **Deprecation Notice:** All Imagen models are deprecated and will shut down as early + * as June 2026. As a replacement, you can + * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ public class ImagenSafetySettings( internal val safetyFilterLevel: ImagenSafetyFilterLevel, diff --git a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenStyleConfig.kt b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenStyleConfig.kt index 222f9b3f5a3..dbcb3d75936 100644 --- a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenStyleConfig.kt +++ b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenStyleConfig.kt @@ -17,6 +17,13 @@ package com.google.firebase.ai.type import kotlinx.serialization.Serializable +/** + * Represents the style configuration for Imagen + * + * @deprecated **Deprecation Notice:** All Imagen models are deprecated and will shut down as early + * as June 2026. As a replacement, you can + * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) + */ internal class ImagenStyleConfig(val description: String?) { fun toInternal(): Internal { diff --git a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenSubjectConfig.kt b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenSubjectConfig.kt index 603a580a25e..de2dbfd9024 100644 --- a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenSubjectConfig.kt +++ b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenSubjectConfig.kt @@ -17,6 +17,13 @@ package com.google.firebase.ai.type import kotlinx.serialization.Serializable +/** + * Represents the subject configuration for Imagen + * + * @deprecated **Deprecation Notice:** All Imagen models are deprecated and will shut down as early + * as June 2026. As a replacement, you can + * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) + */ internal class ImagenSubjectConfig( val description: String?, val type: ImagenSubjectReferenceType?, diff --git a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenSubjectReferenceType.kt b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenSubjectReferenceType.kt index dfe77f9adf5..26d0cdc87b0 100644 --- a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenSubjectReferenceType.kt +++ b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenSubjectReferenceType.kt @@ -15,7 +15,13 @@ */ package com.google.firebase.ai.type -/** Represents a type for a subject reference, specifying how it should be interpreted. */ +/** + * Represents a type for a subject reference, specifying how it should be interpreted. + * + * @deprecated **Deprecation Notice:** All Imagen models are deprecated and will shut down as early + * as June 2026. As a replacement, you can + * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) + */ public class ImagenSubjectReferenceType private constructor(internal val value: String) { public companion object { From 1a1b3b991c377e8e1ac024a944bfbeeaac7a1b54 Mon Sep 17 00:00:00 2001 From: Vinay Guthal Date: Fri, 27 Mar 2026 13:55:31 -0400 Subject: [PATCH 2/8] update change log --- ai-logic/firebase-ai/CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ai-logic/firebase-ai/CHANGELOG.md b/ai-logic/firebase-ai/CHANGELOG.md index ad7be4a8513..b83124bbce5 100644 --- a/ai-logic/firebase-ai/CHANGELOG.md +++ b/ai-logic/firebase-ai/CHANGELOG.md @@ -1,5 +1,7 @@ # Unreleased +- [deprecated] All Imagen models are deprecated and will shut down as early as June 2026. + As a replacement, you can migrate [your apps to use Gemini Image models (the "Nano Banana" models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration). - [feature] Added support for Chat interactions using server prompt templates (#7986) - [fixed] Fixed an issue causing network timeouts to throw the incorrect exception type, instead of `RequestTimeoutException` (#7966) From 26145f45a3899f365c79bcffd1fceb877fca312f Mon Sep 17 00:00:00 2001 From: Vinay Guthal Date: Fri, 27 Mar 2026 14:47:39 -0400 Subject: [PATCH 3/8] address comments --- .../com/google/firebase/ai/common/Request.kt | 13 +++++-------- .../firebase/ai/type/ImagenGenerationResponse.kt | 16 ++-------------- .../google/firebase/ai/type/ImagenMaskConfig.kt | 8 +------- .../google/firebase/ai/type/ImagenMaskMode.kt | 8 +------- .../google/firebase/ai/type/ImagenStyleConfig.kt | 8 +------- .../firebase/ai/type/ImagenSubjectConfig.kt | 8 +------- 6 files changed, 11 insertions(+), 50 deletions(-) diff --git a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/common/Request.kt b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/common/Request.kt index 27102e3a0a3..d35748dd3ad 100644 --- a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/common/Request.kt +++ b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/common/Request.kt @@ -92,11 +92,10 @@ internal data class GenerateImageRequest( val parameters: ImagenParameters, ) : Request { /** - * Represents a prompt for Imagen + * Represents an Imagen prompt. * - * @deprecated **Deprecation Notice:** All Imagen models are deprecated and will shut down as - * early as June 2026. As a replacement, you can - * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) + * @param prompt the text prompt + * @param referenceImages the list of reference images */ @Serializable internal data class ImagenPrompt( @@ -105,11 +104,9 @@ internal data class GenerateImageRequest( ) /** - * Represents parameters for Imagen + * Represents Imagen parameters. * - * @deprecated **Deprecation Notice:** All Imagen models are deprecated and will shut down as - * early as June 2026. As a replacement, you can - * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) + * @param sampleCount the number of samples to generate */ @Serializable internal data class ImagenParameters( diff --git a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenGenerationResponse.kt b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenGenerationResponse.kt index cc2b8f5aadb..544bd1876a9 100644 --- a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenGenerationResponse.kt +++ b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenGenerationResponse.kt @@ -49,13 +49,7 @@ internal constructor(public val images: List, public val filteredReason: Stri ) } - /** - * Represents an image response from Imagen - * - * @deprecated **Deprecation Notice:** All Imagen models are deprecated and will shut down as - * early as June 2026. As a replacement, you can - * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) - */ + /** Represents an image response from Imagen */ @Serializable internal data class ImagenImageResponse( val bytesBase64Encoded: String? = null, @@ -70,13 +64,7 @@ internal constructor(public val images: List, public val filteredReason: Stri internal fun toPublicGCS() = ImagenGCSImage(gcsUri!!, mimeType!!) } - /** - * Represents safety attributes for Imagen - * - * @deprecated **Deprecation Notice:** All Imagen models are deprecated and will shut down as - * early as June 2026. As a replacement, you can - * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) - */ + /** Represents safety attributes for Imagen */ @Serializable internal data class ImagenSafetyAttributes( val categories: List? = null, diff --git a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenMaskConfig.kt b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenMaskConfig.kt index b6e252aee30..d46dbd37f4b 100644 --- a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenMaskConfig.kt +++ b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenMaskConfig.kt @@ -17,13 +17,7 @@ package com.google.firebase.ai.type import kotlinx.serialization.Serializable -/** - * Represents the mask configuration for Imagen - * - * @deprecated **Deprecation Notice:** All Imagen models are deprecated and will shut down as early - * as June 2026. As a replacement, you can - * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) - */ +/** Represents the mask configuration for Imagen */ internal class ImagenMaskConfig( internal val maskType: ImagenMaskMode, internal val dilation: Double? = null, diff --git a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenMaskMode.kt b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenMaskMode.kt index c58abdfb4ac..e86c6a07862 100644 --- a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenMaskMode.kt +++ b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenMaskMode.kt @@ -15,13 +15,7 @@ */ package com.google.firebase.ai.type -/** - * Represents the mask mode for Imagen - * - * @deprecated **Deprecation Notice:** All Imagen models are deprecated and will shut down as early - * as June 2026. As a replacement, you can - * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) - */ +/** Represents the mask mode for Imagen */ internal class ImagenMaskMode private constructor(internal val value: String) { companion object { val USER_PROVIDED: ImagenMaskMode = ImagenMaskMode("MASK_MODE_USER_PROVIDED") diff --git a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenStyleConfig.kt b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenStyleConfig.kt index dbcb3d75936..69626d03c50 100644 --- a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenStyleConfig.kt +++ b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenStyleConfig.kt @@ -17,13 +17,7 @@ package com.google.firebase.ai.type import kotlinx.serialization.Serializable -/** - * Represents the style configuration for Imagen - * - * @deprecated **Deprecation Notice:** All Imagen models are deprecated and will shut down as early - * as June 2026. As a replacement, you can - * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) - */ +/** Represents the style configuration for Imagen */ internal class ImagenStyleConfig(val description: String?) { fun toInternal(): Internal { diff --git a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenSubjectConfig.kt b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenSubjectConfig.kt index de2dbfd9024..cd7f3e01460 100644 --- a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenSubjectConfig.kt +++ b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenSubjectConfig.kt @@ -17,13 +17,7 @@ package com.google.firebase.ai.type import kotlinx.serialization.Serializable -/** - * Represents the subject configuration for Imagen - * - * @deprecated **Deprecation Notice:** All Imagen models are deprecated and will shut down as early - * as June 2026. As a replacement, you can - * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) - */ +/** Represents the subject configuration for Imagen */ internal class ImagenSubjectConfig( val description: String?, val type: ImagenSubjectReferenceType?, From ee783246cf5996b431a0975cedf4975df55e0ea8 Mon Sep 17 00:00:00 2001 From: Vinay Guthal Date: Fri, 27 Mar 2026 14:54:39 -0400 Subject: [PATCH 4/8] update --- .../com/google/firebase/ai/type/ImagenControlConfig.kt | 8 +------- .../kotlin/com/google/firebase/ai/type/ImagenGCSImage.kt | 4 ---- 2 files changed, 1 insertion(+), 11 deletions(-) diff --git a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenControlConfig.kt b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenControlConfig.kt index 8c5ed812816..5a3d349d755 100644 --- a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenControlConfig.kt +++ b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenControlConfig.kt @@ -17,13 +17,7 @@ package com.google.firebase.ai.type import kotlinx.serialization.Serializable -/** - * Represents the control configuration for Imagen - * - * @deprecated **Deprecation Notice:** All Imagen models are deprecated and will shut down as early - * as June 2026. As a replacement, you can - * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) - */ +/** Represents the control configuration for Imagen */ internal class ImagenControlConfig( internal val controlType: ImagenControlType, internal val enableComputation: Boolean? = null, diff --git a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenGCSImage.kt b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenGCSImage.kt index 352ab4b803d..79ed3fa186b 100644 --- a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenGCSImage.kt +++ b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenGCSImage.kt @@ -21,10 +21,6 @@ package com.google.firebase.ai.type * * @param gcsUri Contains the `gs://` URI for the image. * @param mimeType Contains the MIME type of the image (for example, `"image/png"`). - * - * @deprecated **Deprecation Notice:** All Imagen models are deprecated and will shut down as early - * as June 2026. As a replacement, you can - * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ internal class ImagenGCSImage internal constructor(public val gcsUri: String, public val mimeType: String) {} From b4b4cc0b0f949aaa04750e17a932c63909547ea6 Mon Sep 17 00:00:00 2001 From: Vinay Guthal Date: Mon, 30 Mar 2026 13:41:12 -0400 Subject: [PATCH 5/8] update --- ai-logic/firebase-ai/CHANGELOG.md | 4 ++-- .../kotlin/com/google/firebase/ai/type/ImagenControlConfig.kt | 1 - .../com/google/firebase/ai/type/ImagenGenerationResponse.kt | 2 -- .../kotlin/com/google/firebase/ai/type/ImagenMaskConfig.kt | 1 - .../main/kotlin/com/google/firebase/ai/type/ImagenMaskMode.kt | 1 - .../kotlin/com/google/firebase/ai/type/ImagenStyleConfig.kt | 1 - .../kotlin/com/google/firebase/ai/type/ImagenSubjectConfig.kt | 1 - 7 files changed, 2 insertions(+), 9 deletions(-) diff --git a/ai-logic/firebase-ai/CHANGELOG.md b/ai-logic/firebase-ai/CHANGELOG.md index b83124bbce5..cb69d77093c 100644 --- a/ai-logic/firebase-ai/CHANGELOG.md +++ b/ai-logic/firebase-ai/CHANGELOG.md @@ -1,11 +1,11 @@ # Unreleased - [deprecated] All Imagen models are deprecated and will shut down as early as June 2026. - As a replacement, you can migrate [your apps to use Gemini Image models (the "Nano Banana" models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration). + As a replacement, you can [migrate your apps to use Gemini Image models (the "Nano Banana" models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration). - [feature] Added support for Chat interactions using server prompt templates (#7986) - [fixed] Fixed an issue causing network timeouts to throw the incorrect exception type, instead of `RequestTimeoutException` (#7966) -- [fixed] Fixed missing `toString()` implemenation for `InferenceSource` (#7970) +- [fixed] Fixed missing `toString()` implementation for `InferenceSource` (#7970) - [fixed] Fixed an issue causing the SDK to throw an exception if an unknown message was received from the LiveAPI model, instead of ignoring it (#7975) diff --git a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenControlConfig.kt b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenControlConfig.kt index 5a3d349d755..c6f3b01af6c 100644 --- a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenControlConfig.kt +++ b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenControlConfig.kt @@ -17,7 +17,6 @@ package com.google.firebase.ai.type import kotlinx.serialization.Serializable -/** Represents the control configuration for Imagen */ internal class ImagenControlConfig( internal val controlType: ImagenControlType, internal val enableComputation: Boolean? = null, diff --git a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenGenerationResponse.kt b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenGenerationResponse.kt index 544bd1876a9..276a774aeaf 100644 --- a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenGenerationResponse.kt +++ b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenGenerationResponse.kt @@ -49,7 +49,6 @@ internal constructor(public val images: List, public val filteredReason: Stri ) } - /** Represents an image response from Imagen */ @Serializable internal data class ImagenImageResponse( val bytesBase64Encoded: String? = null, @@ -64,7 +63,6 @@ internal constructor(public val images: List, public val filteredReason: Stri internal fun toPublicGCS() = ImagenGCSImage(gcsUri!!, mimeType!!) } - /** Represents safety attributes for Imagen */ @Serializable internal data class ImagenSafetyAttributes( val categories: List? = null, diff --git a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenMaskConfig.kt b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenMaskConfig.kt index d46dbd37f4b..64a9a4376e3 100644 --- a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenMaskConfig.kt +++ b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenMaskConfig.kt @@ -17,7 +17,6 @@ package com.google.firebase.ai.type import kotlinx.serialization.Serializable -/** Represents the mask configuration for Imagen */ internal class ImagenMaskConfig( internal val maskType: ImagenMaskMode, internal val dilation: Double? = null, diff --git a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenMaskMode.kt b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenMaskMode.kt index e86c6a07862..b83a20381e2 100644 --- a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenMaskMode.kt +++ b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenMaskMode.kt @@ -15,7 +15,6 @@ */ package com.google.firebase.ai.type -/** Represents the mask mode for Imagen */ internal class ImagenMaskMode private constructor(internal val value: String) { companion object { val USER_PROVIDED: ImagenMaskMode = ImagenMaskMode("MASK_MODE_USER_PROVIDED") diff --git a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenStyleConfig.kt b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenStyleConfig.kt index 69626d03c50..222f9b3f5a3 100644 --- a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenStyleConfig.kt +++ b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenStyleConfig.kt @@ -17,7 +17,6 @@ package com.google.firebase.ai.type import kotlinx.serialization.Serializable -/** Represents the style configuration for Imagen */ internal class ImagenStyleConfig(val description: String?) { fun toInternal(): Internal { diff --git a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenSubjectConfig.kt b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenSubjectConfig.kt index cd7f3e01460..603a580a25e 100644 --- a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenSubjectConfig.kt +++ b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenSubjectConfig.kt @@ -17,7 +17,6 @@ package com.google.firebase.ai.type import kotlinx.serialization.Serializable -/** Represents the subject configuration for Imagen */ internal class ImagenSubjectConfig( val description: String?, val type: ImagenSubjectReferenceType?, From 51d9e7293fc504cf857c0456041f3f948b945c08 Mon Sep 17 00:00:00 2001 From: Vinay Guthal Date: Mon, 30 Mar 2026 13:43:02 -0400 Subject: [PATCH 6/8] address comments --- .../kotlin/com/google/firebase/ai/common/Request.kt | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/common/Request.kt b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/common/Request.kt index d35748dd3ad..16181a81301 100644 --- a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/common/Request.kt +++ b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/common/Request.kt @@ -91,23 +91,13 @@ internal data class GenerateImageRequest( val instances: List, val parameters: ImagenParameters, ) : Request { - /** - * Represents an Imagen prompt. - * - * @param prompt the text prompt - * @param referenceImages the list of reference images - */ + @Serializable internal data class ImagenPrompt( val prompt: String?, val referenceImages: List? ) - /** - * Represents Imagen parameters. - * - * @param sampleCount the number of samples to generate - */ @Serializable internal data class ImagenParameters( val sampleCount: Int, From 047732b79f9ec5f629e9948876a220c23288b0c4 Mon Sep 17 00:00:00 2001 From: Vinay Guthal Date: Mon, 30 Mar 2026 13:44:04 -0400 Subject: [PATCH 7/8] small fix --- .../src/main/kotlin/com/google/firebase/ai/common/Request.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/common/Request.kt b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/common/Request.kt index 16181a81301..e3a4afcb56c 100644 --- a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/common/Request.kt +++ b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/common/Request.kt @@ -91,7 +91,6 @@ internal data class GenerateImageRequest( val instances: List, val parameters: ImagenParameters, ) : Request { - @Serializable internal data class ImagenPrompt( val prompt: String?, From 891a8143ab64c46d0e5f77b963f497ae4a130039 Mon Sep 17 00:00:00 2001 From: Vinay Guthal Date: Tue, 31 Mar 2026 13:42:24 -0400 Subject: [PATCH 8/8] update --- .../kotlin/com/google/firebase/ai/ImagenModel.kt | 5 +++++ .../google/firebase/ai/java/ImagenModelFutures.kt | 12 ++++++++++-- .../com/google/firebase/ai/type/ImagenAspectRatio.kt | 1 + .../com/google/firebase/ai/type/ImagenControlType.kt | 1 + .../com/google/firebase/ai/type/ImagenEditMode.kt | 1 + .../google/firebase/ai/type/ImagenEditingConfig.kt | 1 + .../firebase/ai/type/ImagenGenerationConfig.kt | 9 +++++++++ .../firebase/ai/type/ImagenGenerationResponse.kt | 1 + .../com/google/firebase/ai/type/ImagenImageFormat.kt | 3 +++ .../google/firebase/ai/type/ImagenImagePlacement.kt | 2 ++ .../com/google/firebase/ai/type/ImagenInlineImage.kt | 3 +++ .../firebase/ai/type/ImagenPersonFilterLevel.kt | 1 + .../google/firebase/ai/type/ImagenReferenceImage.kt | 12 ++++++++++++ .../firebase/ai/type/ImagenSafetyFilterLevel.kt | 1 + .../firebase/ai/type/ImagenSubjectReferenceType.kt | 1 + 15 files changed, 52 insertions(+), 2 deletions(-) diff --git a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/ImagenModel.kt b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/ImagenModel.kt index b902e4f76bc..d16a528fb49 100644 --- a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/ImagenModel.kt +++ b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/ImagenModel.kt @@ -49,6 +49,7 @@ import com.google.firebase.auth.internal.InternalAuthProvider * as June 2026. As a replacement, you can * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ +@Deprecated("All Imagen models are deprecated.") public class ImagenModel internal constructor( private val modelName: String, @@ -95,6 +96,7 @@ internal constructor( * early as June 2026. As a replacement, you can * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ + @Deprecated("All Imagen models are deprecated.") public suspend fun generateImages(prompt: String): ImagenGenerationResponse = try { controller @@ -117,6 +119,7 @@ internal constructor( * early as June 2026. As a replacement, you can * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ + @Deprecated("All Imagen models are deprecated.") @PublicPreviewAPI public suspend fun editImage( referenceImages: List, @@ -146,6 +149,7 @@ internal constructor( * early as June 2026. As a replacement, you can * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ + @Deprecated("All Imagen models are deprecated.") @PublicPreviewAPI public suspend fun inpaintImage( image: ImagenInlineImage, @@ -175,6 +179,7 @@ internal constructor( * early as June 2026. As a replacement, you can * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ + @Deprecated("All Imagen models are deprecated.") @PublicPreviewAPI public suspend fun outpaintImage( image: ImagenInlineImage, diff --git a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/java/ImagenModelFutures.kt b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/java/ImagenModelFutures.kt index 55ccf13c911..ccbc7b8d8f2 100644 --- a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/java/ImagenModelFutures.kt +++ b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/java/ImagenModelFutures.kt @@ -38,6 +38,7 @@ import com.google.firebase.ai.type.PublicPreviewAPI * as June 2026. As a replacement, you can * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ +@Deprecated("All Imagen models are deprecated.") @PublicPreviewAPI public abstract class ImagenModelFutures internal constructor() { /** @@ -49,6 +50,7 @@ public abstract class ImagenModelFutures internal constructor() { * early as June 2026. As a replacement, you can * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ + @Deprecated("All Imagen models are deprecated.") public abstract fun generateImages( prompt: String, ): ListenableFuture> @@ -65,6 +67,7 @@ public abstract class ImagenModelFutures internal constructor() { * early as June 2026. As a replacement, you can * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ + @Deprecated("All Imagen models are deprecated.") public abstract fun editImage( referenceImages: List, prompt: String, @@ -82,6 +85,7 @@ public abstract class ImagenModelFutures internal constructor() { * early as June 2026. As a replacement, you can * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ + @Deprecated("All Imagen models are deprecated.") public abstract fun editImage( referenceImages: List, prompt: String, @@ -99,6 +103,7 @@ public abstract class ImagenModelFutures internal constructor() { * early as June 2026. As a replacement, you can * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ + @Deprecated("All Imagen models are deprecated.") public abstract fun inpaintImage( image: ImagenInlineImage, prompt: String, @@ -124,6 +129,7 @@ public abstract class ImagenModelFutures internal constructor() { * early as June 2026. As a replacement, you can * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ + @Deprecated("All Imagen models are deprecated.") public abstract fun outpaintImage( image: ImagenInlineImage, newDimensions: Dimensions, @@ -139,7 +145,7 @@ public abstract class ImagenModelFutures internal constructor() { * early as June 2026. As a replacement, you can * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ - public abstract fun getImageModel(): ImagenModel + @Deprecated("All Imagen models are deprecated.") public abstract fun getImageModel(): ImagenModel private class FuturesImpl(private val model: ImagenModel) : ImagenModelFutures() { override fun generateImages( @@ -191,6 +197,8 @@ public abstract class ImagenModelFutures internal constructor() { * early as June 2026. As a replacement, you can * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ - @JvmStatic public fun from(model: ImagenModel): ImagenModelFutures = FuturesImpl(model) + @Deprecated("All Imagen models are deprecated.") + @JvmStatic + public fun from(model: ImagenModel): ImagenModelFutures = FuturesImpl(model) } } diff --git a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenAspectRatio.kt b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenAspectRatio.kt index d2d2ac64ba3..f67896a11c8 100644 --- a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenAspectRatio.kt +++ b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenAspectRatio.kt @@ -23,6 +23,7 @@ package com.google.firebase.ai.type * as June 2026. As a replacement, you can * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ +@Deprecated("All Imagen models are deprecated.") public class ImagenAspectRatio private constructor(internal val internalVal: String) { public companion object { /** A square image, useful for icons, profile pictures, etc. */ diff --git a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenControlType.kt b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenControlType.kt index 939d7004a14..a770e6e84ff 100644 --- a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenControlType.kt +++ b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenControlType.kt @@ -22,6 +22,7 @@ package com.google.firebase.ai.type * as June 2026. As a replacement, you can * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ +@Deprecated("All Imagen models are deprecated.") public class ImagenControlType internal constructor(internal val value: String) { public companion object { diff --git a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenEditMode.kt b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenEditMode.kt index 609fa5b136e..b80ab24565d 100644 --- a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenEditMode.kt +++ b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenEditMode.kt @@ -22,6 +22,7 @@ package com.google.firebase.ai.type * as June 2026. As a replacement, you can * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ +@Deprecated("All Imagen models are deprecated.") public class ImagenEditMode private constructor(internal val value: String) { public companion object { diff --git a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenEditingConfig.kt b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenEditingConfig.kt index 122236ad95b..eeb35ea4c54 100644 --- a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenEditingConfig.kt +++ b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenEditingConfig.kt @@ -26,6 +26,7 @@ import kotlinx.serialization.Serializable * as June 2026. As a replacement, you can * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ +@Deprecated("All Imagen models are deprecated.") @PublicPreviewAPI public class ImagenEditingConfig( internal val editMode: ImagenEditMode? = null, diff --git a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenGenerationConfig.kt b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenGenerationConfig.kt index 00572434db4..db00a0ed383 100644 --- a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenGenerationConfig.kt +++ b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenGenerationConfig.kt @@ -32,6 +32,7 @@ package com.google.firebase.ai.type */ import kotlin.jvm.JvmField +@Deprecated("All Imagen models are deprecated.") public class ImagenGenerationConfig( public val negativePrompt: String? = null, public val numberOfImages: Int? = 1, @@ -49,6 +50,7 @@ public class ImagenGenerationConfig( * early as June 2026. As a replacement, you can * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ + @Deprecated("All Imagen models are deprecated.") public class Builder { @JvmField public var negativePrompt: String? = null @JvmField public var numberOfImages: Int? = 1 @@ -63,6 +65,7 @@ public class ImagenGenerationConfig( * early as June 2026. As a replacement, you can * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ + @Deprecated("All Imagen models are deprecated.") public fun setNegativePrompt(negativePrompt: String): Builder = apply { this.negativePrompt = negativePrompt } @@ -74,6 +77,7 @@ public class ImagenGenerationConfig( * early as June 2026. As a replacement, you can * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ + @Deprecated("All Imagen models are deprecated.") public fun setNumberOfImages(numberOfImages: Int): Builder = apply { this.numberOfImages = numberOfImages } @@ -85,6 +89,7 @@ public class ImagenGenerationConfig( * early as June 2026. As a replacement, you can * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ + @Deprecated("All Imagen models are deprecated.") public fun setAspectRatio(aspectRatio: ImagenAspectRatio): Builder = apply { this.aspectRatio = aspectRatio } @@ -96,6 +101,7 @@ public class ImagenGenerationConfig( * early as June 2026. As a replacement, you can * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ + @Deprecated("All Imagen models are deprecated.") public fun setImageFormat(imageFormat: ImagenImageFormat): Builder = apply { this.imageFormat = imageFormat } @@ -107,6 +113,7 @@ public class ImagenGenerationConfig( * early as June 2026. As a replacement, you can * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ + @Deprecated("All Imagen models are deprecated.") public fun setAddWatermark(addWatermark: Boolean): Builder = apply { this.addWatermark = addWatermark } @@ -121,6 +128,7 @@ public class ImagenGenerationConfig( * early as June 2026. As a replacement, you can * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ + @Deprecated("All Imagen models are deprecated.") public fun build(): ImagenGenerationConfig = ImagenGenerationConfig( negativePrompt = negativePrompt, @@ -154,6 +162,7 @@ public class ImagenGenerationConfig( * as June 2026. As a replacement, you can * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ +@Deprecated("All Imagen models are deprecated.") public fun imagenGenerationConfig( init: ImagenGenerationConfig.Builder.() -> Unit ): ImagenGenerationConfig { diff --git a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenGenerationResponse.kt b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenGenerationResponse.kt index 276a774aeaf..4dbd9c19972 100644 --- a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenGenerationResponse.kt +++ b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenGenerationResponse.kt @@ -31,6 +31,7 @@ import kotlinx.serialization.Serializable * as June 2026. As a replacement, you can * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ +@Deprecated("All Imagen models are deprecated.") public class ImagenGenerationResponse internal constructor(public val images: List, public val filteredReason: String?) { diff --git a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenImageFormat.kt b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenImageFormat.kt index 223d6ba697d..250c4b56b3b 100644 --- a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenImageFormat.kt +++ b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenImageFormat.kt @@ -30,6 +30,7 @@ import kotlinx.serialization.Serializable * as June 2026. As a replacement, you can * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ +@Deprecated("All Imagen models are deprecated.") public class ImagenImageFormat private constructor(public val mimeType: String, public val compressionQuality: Int?) { @@ -48,6 +49,7 @@ private constructor(public val mimeType: String, public val compressionQuality: * early as June 2026. As a replacement, you can * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ + @Deprecated("All Imagen models are deprecated.") @JvmStatic public fun jpeg(compressionQuality: Int? = null): ImagenImageFormat { return ImagenImageFormat("image/jpeg", compressionQuality) @@ -60,6 +62,7 @@ private constructor(public val mimeType: String, public val compressionQuality: * early as June 2026. As a replacement, you can * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ + @Deprecated("All Imagen models are deprecated.") @JvmStatic public fun png(): ImagenImageFormat { return ImagenImageFormat("image/png", null) diff --git a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenImagePlacement.kt b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenImagePlacement.kt index feac880f07a..65d373743b3 100644 --- a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenImagePlacement.kt +++ b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenImagePlacement.kt @@ -23,6 +23,7 @@ package com.google.firebase.ai.type * as June 2026. As a replacement, you can * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ +@Deprecated("All Imagen models are deprecated.") public class ImagenImagePlacement private constructor(public val x: Int? = null, public val y: Int? = null) { @@ -81,6 +82,7 @@ private constructor(public val x: Int? = null, public val y: Int? = null) { * early as June 2026. As a replacement, you can * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ + @Deprecated("All Imagen models are deprecated.") @JvmStatic public fun fromCoordinate(x: Int, y: Int): ImagenImagePlacement { return ImagenImagePlacement(x, y) diff --git a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenInlineImage.kt b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenInlineImage.kt index a386de8bc1c..bc751c83474 100644 --- a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenInlineImage.kt +++ b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenInlineImage.kt @@ -33,6 +33,7 @@ import kotlinx.serialization.Serializable * as June 2026. As a replacement, you can * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ +@Deprecated("All Imagen models are deprecated.") public class ImagenInlineImage internal constructor( public val data: ByteArray, @@ -46,6 +47,7 @@ internal constructor( * early as June 2026. As a replacement, you can * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ + @Deprecated("All Imagen models are deprecated.") public fun asBitmap(): Bitmap { return BitmapFactory.decodeByteArray(data, 0, data.size) } @@ -65,6 +67,7 @@ internal constructor( * as June 2026. As a replacement, you can * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ +@Deprecated("All Imagen models are deprecated.") @PublicPreviewAPI public fun Bitmap.toImagenInlineImage(): ImagenInlineImage { val byteArrayOutputStream = ByteArrayOutputStream() diff --git a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenPersonFilterLevel.kt b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenPersonFilterLevel.kt index f6dd4b37bd0..122dbd247e5 100644 --- a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenPersonFilterLevel.kt +++ b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenPersonFilterLevel.kt @@ -23,6 +23,7 @@ package com.google.firebase.ai.type * as June 2026. As a replacement, you can * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ +@Deprecated("All Imagen models are deprecated.") public class ImagenPersonFilterLevel private constructor(internal val internalVal: String) { public companion object { /** diff --git a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenReferenceImage.kt b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenReferenceImage.kt index 123bd60e387..1bbd64c47e6 100644 --- a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenReferenceImage.kt +++ b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenReferenceImage.kt @@ -30,6 +30,7 @@ import kotlinx.serialization.Serializable * as June 2026. As a replacement, you can * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ +@Deprecated("All Imagen models are deprecated.") @PublicPreviewAPI public abstract class ImagenReferenceImage internal constructor( @@ -96,6 +97,7 @@ internal constructor( * as June 2026. As a replacement, you can * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ +@Deprecated("All Imagen models are deprecated.") @PublicPreviewAPI public class ImagenControlReference( type: ImagenControlType, @@ -120,6 +122,7 @@ public class ImagenControlReference( * as June 2026. As a replacement, you can * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ +@Deprecated("All Imagen models are deprecated.") @PublicPreviewAPI public abstract class ImagenMaskReference internal constructor(maskConfig: ImagenMaskConfig, image: ImagenInlineImage? = null) : @@ -143,6 +146,7 @@ internal constructor(maskConfig: ImagenMaskConfig, image: ImagenInlineImage? = n * early as June 2026. As a replacement, you can * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ + @Deprecated("All Imagen models are deprecated.") @JvmOverloads @JvmStatic public fun generateMaskAndPadForOutpainting( @@ -170,6 +174,7 @@ internal constructor(maskConfig: ImagenMaskConfig, image: ImagenInlineImage? = n * early as June 2026. As a replacement, you can * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ + @Deprecated("All Imagen models are deprecated.") @JvmStatic public fun generateMaskAndPadForOutpainting( image: ImagenInlineImage, @@ -241,6 +246,7 @@ internal constructor(maskConfig: ImagenMaskConfig, image: ImagenInlineImage? = n * as June 2026. As a replacement, you can * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ +@Deprecated("All Imagen models are deprecated.") @PublicPreviewAPI public class ImagenBackgroundMask(dilation: Double? = null) : ImagenMaskReference(maskConfig = ImagenMaskConfig(ImagenMaskMode.BACKGROUND, dilation)) {} @@ -255,6 +261,7 @@ public class ImagenBackgroundMask(dilation: Double? = null) : * as June 2026. As a replacement, you can * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ +@Deprecated("All Imagen models are deprecated.") @PublicPreviewAPI public class ImagenForegroundMask(dilation: Double? = null) : ImagenMaskReference(maskConfig = ImagenMaskConfig(ImagenMaskMode.FOREGROUND, dilation)) {} @@ -271,6 +278,7 @@ public class ImagenForegroundMask(dilation: Double? = null) : * as June 2026. As a replacement, you can * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ +@Deprecated("All Imagen models are deprecated.") @PublicPreviewAPI public class ImagenRawMask(mask: ImagenInlineImage, dilation: Double? = null) : ImagenMaskReference( @@ -291,6 +299,7 @@ public class ImagenRawMask(mask: ImagenInlineImage, dilation: Double? = null) : * as June 2026. As a replacement, you can * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ +@Deprecated("All Imagen models are deprecated.") @PublicPreviewAPI public class ImagenSemanticMask(classes: List, dilation: Double? = null) : ImagenMaskReference(maskConfig = ImagenMaskConfig(ImagenMaskMode.SEMANTIC, dilation, classes)) {} @@ -303,6 +312,7 @@ public class ImagenSemanticMask(classes: List, dilation: Double? = null) : * as June 2026. As a replacement, you can * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ +@Deprecated("All Imagen models are deprecated.") @PublicPreviewAPI public class ImagenRawImage(image: ImagenInlineImage) : ImagenReferenceImage(image = image) {} @@ -316,6 +326,7 @@ public class ImagenRawImage(image: ImagenInlineImage) : ImagenReferenceImage(ima * as June 2026. As a replacement, you can * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ +@Deprecated("All Imagen models are deprecated.") @PublicPreviewAPI public class ImagenStyleReference( image: ImagenInlineImage, @@ -339,6 +350,7 @@ public class ImagenStyleReference( * as June 2026. As a replacement, you can * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ +@Deprecated("All Imagen models are deprecated.") @PublicPreviewAPI public class ImagenSubjectReference( image: ImagenInlineImage, diff --git a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenSafetyFilterLevel.kt b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenSafetyFilterLevel.kt index fa1c3dfe0cd..39ee932c3dd 100644 --- a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenSafetyFilterLevel.kt +++ b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenSafetyFilterLevel.kt @@ -23,6 +23,7 @@ package com.google.firebase.ai.type * as June 2026. As a replacement, you can * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ +@Deprecated("All Imagen models are deprecated.") public class ImagenSafetyFilterLevel private constructor(internal val internalVal: String) { public companion object { /** Strongest filtering level, most strict blocking. */ diff --git a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenSubjectReferenceType.kt b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenSubjectReferenceType.kt index 26d0cdc87b0..b8b54f03f73 100644 --- a/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenSubjectReferenceType.kt +++ b/ai-logic/firebase-ai/src/main/kotlin/com/google/firebase/ai/type/ImagenSubjectReferenceType.kt @@ -22,6 +22,7 @@ package com.google.firebase.ai.type * as June 2026. As a replacement, you can * [migrate your apps to use Gemini Image models (the 'Nano Banana' models)](https://firebase.google.com/docs/ai-logic/imagen-models-migration) */ +@Deprecated("All Imagen models are deprecated.") public class ImagenSubjectReferenceType private constructor(internal val value: String) { public companion object {