diff --git a/firebase-vertexai/api.txt b/firebase-vertexai/api.txt index abfbf6572d4..01a7204ac73 100644 --- a/firebase-vertexai/api.txt +++ b/firebase-vertexai/api.txt @@ -428,6 +428,11 @@ package com.google.firebase.vertexai.type { public static final class ImagenGenerationConfig.Builder { ctor public ImagenGenerationConfig.Builder(); method public com.google.firebase.vertexai.type.ImagenGenerationConfig build(); + method public com.google.firebase.vertexai.type.ImagenGenerationConfig.Builder setAddWatermark(boolean addWatermark); + method public com.google.firebase.vertexai.type.ImagenGenerationConfig.Builder setAspectRatio(com.google.firebase.vertexai.type.ImagenAspectRatio aspectRatio); + method public com.google.firebase.vertexai.type.ImagenGenerationConfig.Builder setImageFormat(com.google.firebase.vertexai.type.ImagenImageFormat imageFormat); + method public com.google.firebase.vertexai.type.ImagenGenerationConfig.Builder setNegativePrompt(String negativePrompt); + method public com.google.firebase.vertexai.type.ImagenGenerationConfig.Builder setNumberOfImages(int numberOfImages); field public Boolean? addWatermark; field public com.google.firebase.vertexai.type.ImagenAspectRatio? aspectRatio; field public com.google.firebase.vertexai.type.ImagenImageFormat? imageFormat; @@ -441,6 +446,7 @@ package com.google.firebase.vertexai.type { public final class ImagenGenerationConfigKt { method @com.google.firebase.vertexai.type.PublicPreviewAPI public static com.google.firebase.vertexai.type.ImagenGenerationConfig imagenGenerationConfig(kotlin.jvm.functions.Function1 init); + method public static void xx(); } @com.google.firebase.vertexai.type.PublicPreviewAPI public final class ImagenGenerationResponse { @@ -453,6 +459,8 @@ package com.google.firebase.vertexai.type { @com.google.firebase.vertexai.type.PublicPreviewAPI public final class ImagenImageFormat { method public Integer? getCompressionQuality(); method public String getMimeType(); + method public static com.google.firebase.vertexai.type.ImagenImageFormat jpeg(Integer? compressionQuality = null); + method public static com.google.firebase.vertexai.type.ImagenImageFormat png(); property public final Integer? compressionQuality; property public final String mimeType; field public static final com.google.firebase.vertexai.type.ImagenImageFormat.Companion Companion; diff --git a/firebase-vertexai/src/main/kotlin/com/google/firebase/vertexai/type/ImagenGenerationConfig.kt b/firebase-vertexai/src/main/kotlin/com/google/firebase/vertexai/type/ImagenGenerationConfig.kt index bbf795f4d40..7f5b935bd1f 100644 --- a/firebase-vertexai/src/main/kotlin/com/google/firebase/vertexai/type/ImagenGenerationConfig.kt +++ b/firebase-vertexai/src/main/kotlin/com/google/firebase/vertexai/type/ImagenGenerationConfig.kt @@ -26,6 +26,8 @@ package com.google.firebase.vertexai.type * @param imageFormat The file format/compression of the generated images. * @param addWatermark Adds an invisible watermark to mark the image as AI generated. */ +import kotlin.jvm.JvmField + @PublicPreviewAPI public class ImagenGenerationConfig( public val negativePrompt: String? = null, @@ -39,13 +41,6 @@ public class ImagenGenerationConfig( * * This is mainly intended for Java interop. For Kotlin, use [imagenGenerationConfig] for a more * idiomatic experience. - * - * @property negativePrompt See [ImagenGenerationConfig.negativePrompt]. - * @property numberOfImages See [ImagenGenerationConfig.numberOfImages]. - * @property aspectRatio See [ImagenGenerationConfig.aspectRatio]. - * @property imageFormat See [ImagenGenerationConfig.imageFormat] - * @property addWatermark See [ImagenGenerationConfig.addWatermark] - * @see [imagenGenerationConfig] */ public class Builder { @JvmField public var negativePrompt: String? = null @@ -54,6 +49,31 @@ public class ImagenGenerationConfig( @JvmField public var imageFormat: ImagenImageFormat? = null @JvmField public var addWatermark: Boolean? = null + /** See [ImagenGenerationConfig.negativePrompt]. */ + public fun setNegativePrompt(negativePrompt: String): Builder = apply { + this.negativePrompt = negativePrompt + } + + /** See [ImagenGenerationConfig.numberOfImages]. */ + public fun setNumberOfImages(numberOfImages: Int): Builder = apply { + this.numberOfImages = numberOfImages + } + + /** See [ImagenGenerationConfig.aspectRatio]. */ + public fun setAspectRatio(aspectRatio: ImagenAspectRatio): Builder = apply { + this.aspectRatio = aspectRatio + } + + /** See [ImagenGenerationConfig.imageFormat]. */ + public fun setImageFormat(imageFormat: ImagenImageFormat): Builder = apply { + this.imageFormat = imageFormat + } + + /** See [ImagenGenerationConfig.addWatermark]. */ + public fun setAddWatermark(addWatermark: Boolean): Builder = apply { + this.addWatermark = addWatermark + } + /** * Alternative casing for [ImagenGenerationConfig.Builder]: * ``` @@ -97,3 +117,14 @@ public fun imagenGenerationConfig( builder.init() return builder.build() } + +@OptIn(PublicPreviewAPI::class) +public fun xx() { + imagenGenerationConfig { + negativePrompt = "People, black and white, painting" + numberOfImages = 1 + aspectRatio = ImagenAspectRatio.SQUARE_1x1 + imageFormat = ImagenImageFormat.png() + addWatermark = false + } +} diff --git a/firebase-vertexai/src/main/kotlin/com/google/firebase/vertexai/type/ImagenImageFormat.kt b/firebase-vertexai/src/main/kotlin/com/google/firebase/vertexai/type/ImagenImageFormat.kt index 41c85e98a7a..5a44ddc3964 100644 --- a/firebase-vertexai/src/main/kotlin/com/google/firebase/vertexai/type/ImagenImageFormat.kt +++ b/firebase-vertexai/src/main/kotlin/com/google/firebase/vertexai/type/ImagenImageFormat.kt @@ -41,11 +41,13 @@ 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. */ + @JvmStatic public fun jpeg(compressionQuality: Int? = null): ImagenImageFormat { return ImagenImageFormat("image/jpeg", compressionQuality) } /** An [ImagenImageFormat] representing a PNG image */ + @JvmStatic public fun png(): ImagenImageFormat { return ImagenImageFormat("image/png", null) }