此版本仍在开发中,尚未被视为稳定版。如需最新的快照版本,请使用 Spring AI 1.1.3spring-doc.cadn.net.cn

StabilityAI 图像生成

Spring AI 支持 Stability AI 的 文本生成图像模型spring-doc.cadn.net.cn

前置条件

您需要创建一个 Stability AI 的 API 密钥才能访问其 AI 模型。请按照他们的 入门文档 获取您的 API 密钥。spring-doc.cadn.net.cn

Spring AI 项目定义了一个名为 spring.ai.stabilityai.api-key 的配置属性,您应将其设置为从 Stability AI 获取的 API Key 的值。spring-doc.cadn.net.cn

您可以在您的application.properties文件中设置此配置属性:spring-doc.cadn.net.cn

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

处理敏感信息(如API密钥)时,为了增强安全性,您可以使用Spring表达式语言(SpEL)引用自定义环境变量:spring-doc.cadn.net.cn

# 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>

您也可以在应用程序代码中通过编程方式设置此配置:spring-doc.cadn.net.cn

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

Auto-configuration

Spring AI自动配置和starter模块的artifact名称有了重大变化。 请参阅升级说明获取更多信息。spring-doc.cadn.net.cn

Spring AI 为 Stability AI 图像生成客户端提供 Spring Boot 自动配置。 要启用它,请将以下依赖项添加到项目的 Maven pom.xml 文件中:spring-doc.cadn.net.cn

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

请将以下内容添加到您的Gradle build.gradle 构建文件中。spring-doc.cadn.net.cn

dependencies {
    implementation 'org.springframework.ai:spring-ai-starter-model-stability-ai'
}
请参阅依赖管理部分,将Spring AI BOM添加到您的构建文件中。

图像生成属性

前缀 spring.ai.stabilityai 用作属性前缀,让您能够连接到 Stability AI。spring-doc.cadn.net.cn

<property> </property> <description> </description> 默认

spring.ai.stabilityai.base-urlspring-doc.cadn.net.cn

连接的URLspring-doc.cadn.net.cn

api.stability.ai/v1spring-doc.cadn.net.cn

spring.ai.stabilityai.api-keyspring-doc.cadn.net.cn

API密钥spring-doc.cadn.net.cn

-spring-doc.cadn.net.cn

图像自动配置的启用和禁用现在通过前缀为 spring.ai.model.image 的顶层属性进行配置。spring-doc.cadn.net.cn

要启用,请设置 spring.ai.model.image=stabilityai(默认已启用)spring-doc.cadn.net.cn

要禁用,请设置 spring.ai.model.image=none(或任何不与 stabilityai 匹配的值)spring-doc.cadn.net.cn

此更改是为了允许配置多个模型。spring-doc.cadn.net.cn

前缀 spring.ai.stabilityai.image 是属性前缀,允许您为 Stability AI 配置 ImageModel 实现。spring-doc.cadn.net.cn

<property> </property> <description> </description> 默认

spring.ai.stabilityai.image.enabled(已移除且不再生效)spring-doc.cadn.net.cn

启用 Stability AI 图像模型。spring-doc.cadn.net.cn

truespring-doc.cadn.net.cn

spring.ai.model.imagespring-doc.cadn.net.cn

启用 Stability AI 图像模型。spring-doc.cadn.net.cn

stabilityaispring-doc.cadn.net.cn

spring.ai.stabilityai.image.base-urlspring-doc.cadn.net.cn

可选配置用于覆盖 spring.ai.openai.base-url,以提供特定的 URLspring-doc.cadn.net.cn

https://api.stability.ai/v1spring-doc.cadn.net.cn

spring.ai.stabilityai.image.api-keyspring-doc.cadn.net.cn

可选地覆盖 spring.ai.openai.api-key 以提供特定的 API 密钥spring-doc.cadn.net.cn

-spring-doc.cadn.net.cn

spring.ai.stabilityai.image.option.nspring-doc.cadn.net.cn

要生成的图像数量。必须在 1 到 10 之间。spring-doc.cadn.net.cn

1spring-doc.cadn.net.cn

spring.ai.stabilityai.image.option.modelspring-doc.cadn.net.cn

Stability AI 中使用的引擎/模型。该模型作为路径参数传递在 URL 中。spring-doc.cadn.net.cn

stable-diffusion-v1-6spring-doc.cadn.net.cn

spring.ai.stabilityai.image.option.widthspring-doc.cadn.net.cn

生成图像的宽度(以像素为单位),必须是 64 的倍数。具体维度验证取决于引擎。spring-doc.cadn.net.cn

512spring-doc.cadn.net.cn

spring.ai.stabilityai.image.option.heightspring-doc.cadn.net.cn

要生成的图像高度(以像素为单位),必须是 64 的倍数。具体维度验证取决于引擎。spring-doc.cadn.net.cn

512spring-doc.cadn.net.cn

spring.ai.stabilityai.image.option.responseFormatspring-doc.cadn.net.cn

生成图像的返回格式。必须为 "application/json" 或 "image/png"。spring-doc.cadn.net.cn

-spring-doc.cadn.net.cn

spring.ai.stabilityai.image.option.cfg_scalespring-doc.cadn.net.cn

扩散过程对提示文本的遵循严格程度。范围:0 到 35。spring-doc.cadn.net.cn

7spring-doc.cadn.net.cn

spring.ai.stabilityai.image.option.clip_guidance_presetspring-doc.cadn.net.cn

传入一个风格预设,以引导图像模型朝向特定风格。此风格预设列表可能会发生变化。spring-doc.cadn.net.cn

NONEspring-doc.cadn.net.cn

spring.ai.stabilityai.image.option.samplerspring-doc.cadn.net.cn

选择用于扩散过程的采样器。如果省略此值,将自动选择一个合适的采样器。spring-doc.cadn.net.cn

-spring-doc.cadn.net.cn

spring.ai.stabilityai.image.option.seedspring-doc.cadn.net.cn

随机噪声种子(省略此选项或使用 0 表示随机种子)。有效范围:0 到 4294967295。spring-doc.cadn.net.cn

0spring-doc.cadn.net.cn

spring.ai.stabilityai.image.option.stepsspring-doc.cadn.net.cn

要运行的扩散步数。有效范围:10 到 50。spring-doc.cadn.net.cn

30spring-doc.cadn.net.cn

spring.ai.stabilityai.image.option.style_presetspring-doc.cadn.net.cn

传入一个风格预设,以引导图像模型朝向特定风格。此风格预设列表可能会发生变化。spring-doc.cadn.net.cn

-spring-doc.cadn.net.cn

运行时选项

StabilityAiImageOptions.java 提供了模型配置,例如要使用的模型、风格、尺寸等。spring-doc.cadn.net.cn

在启动时,可以使用 StabilityAiImageModel(StabilityAiApi stabilityAiApi, StabilityAiImageOptions options) 构造函数配置默认选项。或者,使用前面描述的 spring.ai.openai.image.options.* 属性。spring-doc.cadn.net.cn

在运行时,您可以通过向 ImagePrompt 调用添加新的、特定于请求的选项来覆盖默认选项。 例如,要覆盖 Stability AI 特定的选项(如质量和要生成的图像数量),请使用以下代码示例:spring-doc.cadn.net.cn

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 实例。