跳到主要内容
版本:2.0.1

Google GenAI 图像

QWen 3.8 中英对照 Google GenAI Google GenAI Image

Gemini 2.5 Flash Image Model 和 Gemini 3.1 Flash Image Model 通过 Gemini Developer API 或 Vertex AI 使用 Google 的图像模型提供图像生成功能。

它们以主流价格提供低延迟的高画质图像生成及对话式编辑。

它是 Gemini 3 Pro Image Model 的高性能对应模型,专为高速和大批量的开发者使用场景进行了优化。

此实现提供两种身份验证模式:

  • Gemini 开发者 API:使用 API 密钥进行快速原型开发和开发工作
  • Vertex AI:使用 Google Cloud 凭据进行生产环境部署,并支持企业级功能

先决条件​

选择以下身份验证方法之一:

选项 1:Gemini 开发者 API(API 密钥)​

  • 从 Google AI Studio 获取 API 密钥

  • 将 API 密钥设置为环境变量或配置在应用程序属性中

选项 2:Vertex AI(Google Cloud)​

  • 安装适用于您的操作系统的 gcloud CLI。

  • 运行以下命令进行身份验证。将 PROJECT_ID 替换为您的 Google Cloud 项目 ID,将 ACCOUNT 替换为您的 Google Cloud 用户名。

gcloud config set project <PROJECT_ID> &&
gcloud auth application-default login <ACCOUNT>

添加 Repositories 和 BOM​

Spring AI 工件已发布在 Maven Central 和 Spring Snapshot 仓库中。请参见 Artifact Repositories 章节,以将这些仓库添加到你的构建系统中。

为便于依赖管理,Spring AI 提供了 BOM(物料清单),以确保整个项目中使用统一版本的 Spring AI。请参考 Dependency Management 章节,将 Spring AI BOM 添加到你的构建系统中。

自动配置​

备注

Spring AI 自动配置和 starter 模块的 artifact 名称发生了重大变化。更多信息请参阅升级说明。

Spring AI 为 Google GenAI 图像模型提供了 Spring Boot 自动配置。要启用该功能,请将以下依赖项添加到项目的 Maven pom.xml 文件中:

<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-starter-model-google-genai-image</artifactId>
</dependency>

或添加到你的 Gradle build.gradle 构建文件中。

dependencies {
implementation 'org.springframework.ai:spring-ai-starter-model-google-genai-image'
}
提示

请参阅 依赖管理 部分,将 Spring AI BOM 添加到您的构建文件中。

Image generation Properties​

连接属性​

前缀 spring.ai.google.genai.image 用作属性前缀,用于连接 Google GenAI 图像生成 API。

备注

连接属性与 Google GenAI 聊天模块共享。如果同时使用聊天和图像功能,只需使用 spring.ai.google.genai 前缀(用于聊天)或 spring.ai.google.genai.image 前缀(用于图像)之一配置一次连接即可。

属性描述默认值
spring.ai.google.genai.image.api-keyGemini Developer API 的 API key。如果提供,客户端将使用 Gemini Developer API 而不是 Vertex AI。-
spring.ai.google.genai.image.project-idGoogle Cloud Platform 项目 ID(在 Vertex AI 模式下为必填项)-
spring.ai.google.genai.image.locationGoogle Cloud 区域(在 Vertex AI 模式下为必填项)-
spring.ai.google.genai.image.credentials-uri指向 Google Cloud 凭据的 URI。如果提供,将用于创建 GoogleCredentials 实例以进行身份验证。-
备注

自动配置(auto-configurations)的启用和禁用现在通过前缀为 spring.ai.model.image 的顶级属性进行配置。

如需启用,请设置 spring.ai.model.image=google-genai(默认已启用)。

如需禁用,请设置 spring.ai.model.image=none(或任何不匹配 google-genai 的值)。

此更改旨在允许配置多个模型。

图像生成属性​

前缀 spring.ai.google.genai.image 是用于配置 Google GenAI 图像模型实现的属性前缀。

属性描述默认值
spring.ai.model.image启用 Google GenAI API 模型。google-genai
spring.ai.google.genai.image.n生成图像的数量。必须在 1 到 4 之间。-
spring.ai.google.genai.image.model要使用的 Google GenAI 模型。支持的模型包括 gemini-2.5-flash-image、gemini-3-pro-image 和 gemini-3.1-flash-image-
spring.ai.google.genai.image.aspect-ratio生成图像的宽高比。支持的值为 1:1、3:4、4:3、9:16 和 16:91:1
spring.ai.google.genai.image.seed图像生成的随机种子。当 add-watermark 设置为 true 时,此项不可用。-
spring.ai.google.genai.image.safety-filter-level安全过滤的级别。支持的值为 BLOCK_LOW_AND_ABOVE、BLOCK_MEDIUM_AND_ABOVE、BLOCK_ONLY_HIGH 和 BLOCK_NONE。-
spring.ai.google.genai.image.person-generation允许模型生成人物。支持的值为 DONT_ALLOW、ALLOW_ADULT 和 ALLOW_ALL。-
spring.ai.google.genai.image.output-mime-type生成图像的 MIME 类型。-
spring.ai.google.genai.image.output-compression-quality生成图像的压缩质量(仅适用于 image/jpeg)。-
spring.ai.google.genai.image.labels用户指定的用于跟踪计费使用的标签。-
spring.ai.google.genai.image.image-size生成图像最大维度的尺寸。支持的尺寸为 1K 和 2K。-
spring.ai.google.genai.image.temperature控制 Token 选择的随机性程度。较低的值产生较为确定的响应,较高的值产生更多样或更有创意的结果。-
spring.ai.google.genai.image.top-p从高概率到低概率选择 Token,直到它们的概率之和等于该值。-
spring.ai.google.genai.image.top-k在每个 Token 选择步骤中,采样概率最高的 top-k 个 Token。-
spring.ai.google.genai.image.max-output-tokens响应中可生成的最大 Token 数。-

示例控制器​

创建 新的 Spring Boot 项目,并将 spring-ai-starter-model-google-genai-image 添加到你的 pom(或 gradle)依赖中。

在 src/main/resources 目录下添加 application.properties 文件,以启用并配置 Google GenAI 图像模型:

使用 Gemini Developer API(API Key)​

spring.ai.google.genai.image.api-key=YOUR_API_KEY
spring.ai.google.genai.image.model=gemini-2.5-flash-image

使用 Vertex AI​

spring.ai.google.genai.image.project-id=YOUR_PROJECT_ID
spring.ai.google.genai.image.location=YOUR_PROJECT_LOCATION
spring.ai.google.genai.image.model=gemini-2.5-flash-image

这将创建一个 GoogleGenAiImageModel 实现,您可以将其注入到类中。下面是一个简单的 @Controller 类示例,它使用图像模型进行图像生成。

@RestController
public class ImageController {

private final ImageModel imageModel;

@Autowired
public ImageController(ImageModel imageModel) {
this.imageModel = imageModel;
}

@GetMapping("/ai/image")
public Map generate(@RequestParam(value = "message", defaultValue = "A painting of a sunset over a mountain") String message) {
ImagePrompt imagePrompt = new ImagePrompt(message);
ImageResponse imageResponse = this.imageModel.call(imagePrompt);
return Map.of("images", imageResponse);
}
}

手动配置​

GoogleGenAiImageModel 实现了 ImageModel 接口。

在项目的 Maven pom.xml 文件中添加 spring-ai-google-genai-image 依赖:

<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-google-genai-image</artifactId>
</dependency>

或添加至您的 Gradle build.gradle 构建文件。

dependencies {
implementation 'org.springframework.ai:spring-ai-google-genai-image'
}
提示

请参阅 依赖管理 章节,以便在构建文件中添加 Spring AI BOM。

接下来,创建一个 GoogleGenAiImageModel 并用于图片:

使用 API 密钥​

GoogleGenAiImageConnectionDetails connectionDetails =
GoogleGenAiImageConnectionDetails.builder()
.apiKey(System.getenv("GOOGLE_API_KEY"))
.build();

GoogleGenAiImageOptions options = GoogleGenAiImageOptions.builder()
.model(GoogleGenAiImageOptions.DEFAULT_MODEL_NAME)
.build();

var imageModel = new GoogleGenAiImageModel(connectionDetails, options);

ImageResponse imageResponse = imageModel
.call(new ImagePrompt("A painting of a sunset over a mountain"));

使用 Vertex AI​

GoogleGenAiImageConnectionDetails connectionDetails =
GoogleGenAiImageConnectionDetails.builder()
.projectId(System.getenv("GOOGLE_CLOUD_PROJECT"))
.location(System.getenv("GOOGLE_CLOUD_LOCATION"))
.build();

GoogleGenAiImageOptions options = GoogleGenAiImageOptions.builder()
.model(GoogleGenAiImageOptions.DEFAULT_MODEL_NAME)
.build();

var imageModel = new GoogleGenAiImageModel(connectionDetails, options);

ImageResponse imageResponse = imageModel
.call(new ImagePrompt("A painting of a sunset over a mountain"));

安全过滤器级别​

Google GenAI 图像 API 支持不同的过滤级别用于安全过滤:

  • BLOCK_LOW_AND_ABOVE:当检测到低、中或高概率的不安全内容时拦截

  • BLOCK_MEDIUM_AND_ABOVE:当检测到中或高概率的不安全内容时拦截

  • BLOCK_ONLY_HIGH:当检测到高概率的不安全内容时拦截

  • BLOCK_NONE:无论不安全内容的概率如何,始终展示

  • SAFETY_FILTER_LEVEL_UNSPECIFIED:未指定阈值,使用默认阈值进行拦截

人物生成​

Google GenAI 图像 API 允许模型生成不同级别的人物图像:

  • DONT_ALLOW: 禁止生成人物图像

  • ALLOW_ADULT: 生成成人图像,但不包括儿童

  • ALLOW_ALL: 生成包含成人和儿童的图像

  • PERSON_GENERATION_UNSPECIFIED: 未指定阈值,使用默认阈值生成人物图像