收藏本站,收获最前沿的人工智能与编程资讯!!

Spring AI 使用​ Stability AI 图像生成

技术文档 9℃ 0

Spring AI 支持 Stability AI 的文本生成图像模型。

前提条件

你需要在 Stability AI 上创建 API 密钥以访问其 AI 模型。请参考官方入门文档获取你的 API 密钥。

Spring AI 项目定义了一个名为 spring.ai.stabilityai.api-key 的配置属性,你需要将其设置为从 Stability AI 获取的 API 密钥值。

你可以在 application.properties 文件中设置该配置属性:

spring.ai.stabilityai.api-key=<your-stabilityai-api-key>

为了在处理 API 密钥等敏感信息时提升安全性,你可以使用 Spring 表达式语言(SpEL)引用自定义环境变量:

# In application.yml
spring:
  ai:
    stabilityai:
      api-key: ${STABILITYAI_API_KEY}
# In your environment or .env file
export STABILITYAI_API_KEY=<your-stabilityai-api-key>

你也可以在应用程序代码中以编程方式设置该配置:

// Retrieve API key from a secure source or environment variable
String apiKey = System.getenv("STABILITYAI_API_KEY");

自动配置

Spring AI 自动配置、启动器模块的工件名称发生了重大变更。更多信息请参考升级说明。

Spring AI 为 Stability AI 图像生成客户端提供了 Spring Boot 自动配置。如需启用该功能,请在项目的 Maven pom.xml 文件中添加以下依赖:

<dependency>
    <groupId>org.springframework.ai</groupId>
    <artifactId>spring-ai-starter-model-stability-ai</artifactId>
</dependency>

或在 Gradle build.gradle 构建文件中添加:

dependencies {
    implementation 'org.springframework.ai:spring-ai-starter-model-stability-ai'
}

请参考依赖管理章节,将 Spring AI BOM 添加到你的构建文件中。

图像生成配置属性

配置前缀 spring.ai.stabilityai 用于配置连接 Stability AI 的相关属性。

配置属性描述默认值
spring.ai.stabilityai.base-url连接的 URL 地址api.stability.ai/v1
spring.ai.stabilityai.api-keyAPI 密钥-

图像自动配置的启用与禁用现在通过顶级前缀 spring.ai.model.image 进行配置。

启用配置:spring.ai.model.image=stabilityai(默认已启用)

禁用配置:spring.ai.model.image=none(或任何不等于 stabilityai 的值)

该变更用于支持多模型的配置管理。

配置前缀 spring.ai.stabilityai.image 用于配置 Stability AI 的 ImageModel 实现类。

配置属性描述默认值
spring.ai.stabilityai.image.enabled (已移除,不再生效)启用 Stability AI 图像模型true
spring.ai.model.image启用 Stability AI 图像模型stabilityai
spring.ai.stabilityai.image.base-url可选配置,覆盖 spring.ai.openai.base-url,指定专属的 URL 地址https://api.stability.ai/v1
spring.ai.stabilityai.image.api-key可选配置,覆盖 spring.ai.openai.api-key,指定专属的 API 密钥-
spring.ai.stabilityai.image.option.n生成图像的数量,取值范围 1-101
spring.ai.stabilityai.image.option.modelStability AI 中使用的引擎/模型,该模型作为路径参数传入 URLstable-diffusion-v1-6
spring.ai.stabilityai.image.option.width生成图像的宽度(像素),步长需能被 64 整除,受引擎专属维度校验限制512
spring.ai.stabilityai.image.option.height生成图像的高度(像素),步长需能被 64 整除,受引擎专属维度校验限制512
spring.ai.stabilityai.image.option.responseFormat生成图像的返回格式,取值为 "application/json" 或 "image/png"-
spring.ai.stabilityai.image.option.cfg_scale扩散过程遵循提示文本的严格程度,取值范围 0-357
spring.ai.stabilityai.image.option.clip_guidance_preset传入风格预设,引导图像模型生成指定风格,风格预设列表可能变更NONE
spring.ai.stabilityai.image.option.sampler扩散过程使用的采样器,省略该值时将自动选择合适的采样器-
spring.ai.stabilityai.image.option.seed随机噪声种子,省略或设为 0 表示随机种子,有效范围 0-42949672950
spring.ai.stabilityai.image.option.steps扩散步骤运行次数,有效范围 10-5030
spring.ai.stabilityai.image.option.style_preset传入风格预设,引导图像模型生成指定风格,风格预设列表可能变更-

运行时选项

StabilityAiImageOptions.java 提供了模型配置项,例如使用的模型、风格、尺寸等。

启动时,可以通过 StabilityAiImageModel(StabilityAiApi stabilityAiApi, StabilityAiImageOptions options) 构造方法配置默认选项。或者使用前文介绍的 spring.ai.openai.image.options.* 配置属性。

运行时,你可以在 ImagePrompt 调用中添加新的请求专属选项,覆盖默认配置。例如,覆盖 Stability AI 专属的生成质量和图像数量等选项,可参考以下代码示例:

ImageResponse response = stabilityaiImageModel.call(
        new ImagePrompt("A light cream colored mini golden doodle",
        StabilityAiImageOptions.builder()
                .stylePreset("cinematic")
                .N(4)
                .height(1024)
                .width(1024).build())

);

除了模型专属的 StabilityAiImageOptions,你还可以使用通过 ImageOptionsBuilder#builder() 创建的通用 ImageOptions 实例。

相关推荐