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.ymlspring:ai:stabilityai:api-key: ${STABILITYAI_API_KEY}
# In your environment or .env fileexport STABILITYAI_API_KEY=<your-stabilityai-api-key>
您还可以在应用程序代码中以编程方式设置此配置:
// Retrieve API key from a secure source or environment variableString apiKey = System.getenv("STABILITYAI_API_KEY");
自动配置
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.stabilityai”用作属性前缀,使您能够连接到Stability AI。
| 属性 | 描述 | 默认值 |
|---|---|---|
spring.ai.stabilityai.base-url | 连接到的URL | api.stability.ai/v1 |
spring.ai.stabilityai.api-key | API密钥 | - |
现在,图像自动配置的启用和禁用是通过带有前缀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(已删除,不再有效) | 启用稳定性AI图像模型。 | true |
spring.ai.model.image | 启用稳定性AI图像模型。 | stabilityai |
spring.ai.stabilityai.image.base-url | 可选,覆盖spring.ai.openai.base-url以提供特定的url |
|
spring.ai.stabilityai.image.api-key | 可选,覆盖spring.ai.openai.api-key以提供特定的api-key | - |
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之外,您还可以使用通过ImageOptionsBuilder#builder()创建的便携式ImageOptions实例。