|
此版本仍在开发中,尚未被视为稳定版。为了获取最新的快照版本,请使用Spring AI 1.1.3! |
StabilityAI 图像生成
Spring AI 支持 Stability AI 的文本到图像生成模型。
前提条件
您需要在Stability AI平台上创建一个API密钥以访问他们的AI模型。请遵循他们的入门文档来获取您的API密钥。
Spring AI项目定义了一个名为spring.ai.stabilityai.api-key的配置属性,您应将其设置为从Stability AI获取的API Key的值。
您可以在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");
自动配置
|
There has been a significant change in the Spring AI auto-configuration, starter modules' artifact names. Please refer to the 升级说明以获取更多信息。 |
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 构建脚本文件中。
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 |
|
spring.ai.stabilityai.api-key |
API 密钥 |
- |
|
图片自动配置的启用和禁用现在通过带有前缀 要启用,请设置 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 图像模型。 |
稳定性AI |
spring.ai.stabilityai.image.base-url |
可选地,覆盖 `spring.ai.openai.base-url` 以提供一个特定的URL |
|
spring.ai.stabilityai.image.api-key |
可选地,覆盖 `spring.ai.openai.api-key` 以提供一个特定的 api 密钥 |
- |
spring.ai.stabilityai.image.option.n |
要生成的图片数量。必须在1到10之间。 |
1 |
spring.ai.stabilityai.image.option.model |
在Stability AI中使用的引擎/模型。模型作为路径参数通过URL传递。 |
|
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到35。 |
7 |
spring.ai.stabilityai.image.option.clip_guidance_preset |
传递一个样式预设以引导图像模型朝向特定的风格。这份风格预设列表可能会有所变动。 |
|
spring.ai.stabilityai.image.option.sampler |
用于扩散过程的采样器。如果省略此值,将自动选择合适的采样器。 |
- |
spring.ai.stabilityai.image.option.seed |
随机噪声种子(省略此选项或使用 0 以获取随机种子)。有效范围:0 至 4294967295。 |
0 |
spring.ai.stabilityai.image.option.steps |
扩散步骤的运行次数。有效范围:10到50。 |
30 |
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之外,您还可以使用可移植的ImageOptions实例,通过ImageOptionsBuilder#builder()创建。 |