/** * @license * Copyright 2025 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import { ImagenImageFormat } from '../../requests/imagen-image-format'; /** * Parameters for configuring an {@link ImagenModel}. * * @deprecated All Imagen models are deprecated and will shut down as * early as June 2026. As a replacement, you can * {@link https://firebase.google.com/docs/ai-logic/imagen-models-migration | * migrate your apps to use Gemini Image models (the "Nano Banana" models)}. * * @public */ export interface ImagenModelParams { /** * The Imagen model to use for generating images. * For example: `imagen-3.0-generate-002`. * * Only Imagen 3 models (named `imagen-3.0-*`) are supported. * * See {@link https://firebase.google.com/docs/vertex-ai/models | model versions} * for a full list of supported Imagen 3 models. */ model: string; /** * Configuration options for generating images with Imagen. */ generationConfig?: ImagenGenerationConfig; /** * Safety settings for filtering potentially inappropriate content. */ safetySettings?: ImagenSafetySettings; } /** * Configuration options for generating images with Imagen. * * See the {@link http://firebase.google.com/docs/vertex-ai/generate-images-imagen | documentation} for * more details. * * @deprecated All Imagen models are deprecated and will shut down as * early as June 2026. As a replacement, you can * {@link https://firebase.google.com/docs/ai-logic/imagen-models-migration | * migrate your apps to use Gemini Image models (the "Nano Banana" models)}. * * @public */ export interface ImagenGenerationConfig { /** * A description of what should be omitted from the generated images. * * Support for negative prompts depends on the Imagen model. * * See the {@link http://firebase.google.com/docs/vertex-ai/model-parameters#imagen | documentation} for more details. * * This is no longer supported in the Gemini Developer API ({@link GoogleAIBackend}) in versions * greater than `imagen-3.0-generate-002`. */ negativePrompt?: string; /** * The number of images to generate. The default value is 1. * * The number of sample images that may be generated in each request depends on the model * (typically up to 4); see the sampleCount * documentation for more details. */ numberOfImages?: number; /** * The aspect ratio of the generated images. The default value is square 1:1. * Supported aspect ratios depend on the Imagen model, see {@link (ImagenAspectRatio:type)} * for more details. */ aspectRatio?: ImagenAspectRatio; /** * The image format of the generated images. The default is PNG. * * See {@link ImagenImageFormat} for more details. */ imageFormat?: ImagenImageFormat; /** * Whether to add an invisible watermark to generated images. * * If set to `true`, an invisible SynthID watermark is embedded in generated images to indicate * that they are AI generated. If set to `false`, watermarking will be disabled. * * For Imagen 3 models, the default value is `true`; see the addWatermark * documentation for more details. * * When using the Gemini Developer API ({@link GoogleAIBackend}), this will default to true, * and cannot be turned off. */ addWatermark?: boolean; } /** * A filter level controlling how aggressively to filter sensitive content. * * Text prompts provided as inputs and images (generated or uploaded) through Imagen on Vertex AI * are assessed against a list of safety filters, which include 'harmful categories' (for example, * `violence`, `sexual`, `derogatory`, and `toxic`). This filter level controls how aggressively to * filter out potentially harmful content from responses. See the {@link http://firebase.google.com/docs/vertex-ai/generate-images | documentation } * and the {@link https://cloud.google.com/vertex-ai/generative-ai/docs/image/responsible-ai-imagen#safety-filters | Responsible AI and usage guidelines} * for more details. * * @deprecated All Imagen models are deprecated and will shut down as * early as June 2026. As a replacement, you can * {@link https://firebase.google.com/docs/ai-logic/imagen-models-migration | * migrate your apps to use Gemini Image models (the "Nano Banana" models)}. * * @public */ export declare const ImagenSafetyFilterLevel: { /** * The most aggressive filtering level; most strict blocking. */ readonly BLOCK_LOW_AND_ABOVE: "block_low_and_above"; /** * Blocks some sensitive prompts and responses. */ readonly BLOCK_MEDIUM_AND_ABOVE: "block_medium_and_above"; /** * Blocks few sensitive prompts and responses. */ readonly BLOCK_ONLY_HIGH: "block_only_high"; /** * The least aggressive filtering level; blocks very few sensitive prompts and responses. * * Access to this feature is restricted and may require your case to be reviewed and approved by * Cloud support. */ readonly BLOCK_NONE: "block_none"; }; /** * A filter level controlling how aggressively to filter sensitive content. * * Text prompts provided as inputs and images (generated or uploaded) through Imagen on Vertex AI * are assessed against a list of safety filters, which include 'harmful categories' (for example, * `violence`, `sexual`, `derogatory`, and `toxic`). This filter level controls how aggressively to * filter out potentially harmful content from responses. See the {@link http://firebase.google.com/docs/vertex-ai/generate-images | documentation } * and the {@link https://cloud.google.com/vertex-ai/generative-ai/docs/image/responsible-ai-imagen#safety-filters | Responsible AI and usage guidelines} * for more details. * * @deprecated All Imagen models are deprecated and will shut down as * early as June 2026. As a replacement, you can * {@link https://firebase.google.com/docs/ai-logic/imagen-models-migration | * migrate your apps to use Gemini Image models (the "Nano Banana" models)}. * * @public */ export type ImagenSafetyFilterLevel = (typeof ImagenSafetyFilterLevel)[keyof typeof ImagenSafetyFilterLevel]; /** * A filter level controlling whether generation of images containing people or faces is allowed. * * See the personGeneration * documentation for more details. * * @deprecated All Imagen models are deprecated and will shut down as * early as June 2026. As a replacement, you can * {@link https://firebase.google.com/docs/ai-logic/imagen-models-migration | * migrate your apps to use Gemini Image models (the "Nano Banana" models)}. * * @public */ export declare const ImagenPersonFilterLevel: { /** * Disallow generation of images containing people or faces; images of people are filtered out. */ readonly BLOCK_ALL: "dont_allow"; /** * Allow generation of images containing adults only; images of children are filtered out. * * Generation of images containing people or faces may require your use case to be * reviewed and approved by Cloud support; see the {@link https://cloud.google.com/vertex-ai/generative-ai/docs/image/responsible-ai-imagen#person-face-gen | Responsible AI and usage guidelines} * for more details. */ readonly ALLOW_ADULT: "allow_adult"; /** * Allow generation of images containing adults only; images of children are filtered out. * * Generation of images containing people or faces may require your use case to be * reviewed and approved by Cloud support; see the {@link https://cloud.google.com/vertex-ai/generative-ai/docs/image/responsible-ai-imagen#person-face-gen | Responsible AI and usage guidelines} * for more details. */ readonly ALLOW_ALL: "allow_all"; }; /** * A filter level controlling whether generation of images containing people or faces is allowed. * * See the personGeneration * documentation for more details. * * @deprecated All Imagen models are deprecated and will shut down as * early as June 2026. As a replacement, you can * {@link https://firebase.google.com/docs/ai-logic/imagen-models-migration | * migrate your apps to use Gemini Image models (the "Nano Banana" models)}. * * @public */ export type ImagenPersonFilterLevel = (typeof ImagenPersonFilterLevel)[keyof typeof ImagenPersonFilterLevel]; /** * Settings for controlling the aggressiveness of filtering out sensitive content. * * See the {@link http://firebase.google.com/docs/vertex-ai/generate-images | documentation } * for more details. * * @deprecated All Imagen models are deprecated and will shut down as * early as June 2026. As a replacement, you can * {@link https://firebase.google.com/docs/ai-logic/imagen-models-migration | * migrate your apps to use Gemini Image models (the "Nano Banana" models)}. * * @public */ export interface ImagenSafetySettings { /** * A filter level controlling how aggressive to filter out sensitive content from generated * images. */ safetyFilterLevel?: ImagenSafetyFilterLevel; /** * A filter level controlling whether generation of images containing people or faces is allowed. */ personFilterLevel?: ImagenPersonFilterLevel; } /** * Aspect ratios for Imagen images. * * To specify an aspect ratio for generated images, set the `aspectRatio` property in your * {@link ImagenGenerationConfig}. * * See the {@link http://firebase.google.com/docs/vertex-ai/generate-images | documentation } * for more details and examples of the supported aspect ratios. * * @deprecated All Imagen models are deprecated and will shut down as * early as June 2026. As a replacement, you can * {@link https://firebase.google.com/docs/ai-logic/imagen-models-migration | * migrate your apps to use Gemini Image models (the "Nano Banana" models)}. * * @public */ export declare const ImagenAspectRatio: { /** * Square (1:1) aspect ratio. */ readonly SQUARE: "1:1"; /** * Landscape (3:4) aspect ratio. */ readonly LANDSCAPE_3x4: "3:4"; /** * Portrait (4:3) aspect ratio. */ readonly PORTRAIT_4x3: "4:3"; /** * Landscape (16:9) aspect ratio. */ readonly LANDSCAPE_16x9: "16:9"; /** * Portrait (9:16) aspect ratio. */ readonly PORTRAIT_9x16: "9:16"; }; /** * Aspect ratios for Imagen images. * * To specify an aspect ratio for generated images, set the `aspectRatio` property in your * {@link ImagenGenerationConfig}. * * See the {@link http://firebase.google.com/docs/vertex-ai/generate-images | documentation } * for more details and examples of the supported aspect ratios. * * @deprecated All Imagen models are deprecated and will shut down as * early as June 2026. As a replacement, you can * {@link https://firebase.google.com/docs/ai-logic/imagen-models-migration | * migrate your apps to use Gemini Image models (the "Nano Banana" models)}. * * @public */ export type ImagenAspectRatio = (typeof ImagenAspectRatio)[keyof typeof ImagenAspectRatio];