【SpringAIAlibaba新手村系列】(9)Text to Image 文本生成图像技术

张开发
2026/6/10 10:41:38 15 分钟阅读
【SpringAIAlibaba新手村系列】(9)Text to Image 文本生成图像技术
第九章 Text to Image 文本生成图像技术版本标注Spring AI:1.1.2Spring AI Alibaba:1.1.2.0章节定位图像生成既可以单独通过ImageModel使用也可以作为多模态能力的一部分接入 Agent。在项目实践里Text to Image往往会和图像理解、语音输出、多模态输入一起组成完整的多模态应用。s01 s02 s03 s04 s05 s06 s07 s08 [ s09 ] s10 s11 s12 s13 s14 s15 s16 s17 s18提示词一变, 画风就变-- 文生图本质上是在和模型协商画面细节。一、什么是 Text to Image1.1 概念科普Text to Image文生图是 AI 的一种能力你只需要输入一段文字描述AI 就能生成对应的图片。就像有一个画家根据你的描述作画你说一只可爱的小猫在草地上玩耍AI 生成/\_/\ ( o.o ) ^ 当然真实AI生成的是真实的照片风格的图片1.2 技术原理文生图通常使用扩散模型Diffusion Model核心原理是正向扩散把一张图片逐渐添加噪声直到变成纯噪声反向扩散训练 AI 学习从噪声中恢复图片的过程生成时从随机噪声开始逐步去噪生成图片1.3 阿里云百炼的图像模型本章节使用的是阿里云百炼的wanx2.1-t2i-turbo模型它的特点是生成速度快turbo加速版中文理解好生成质量不错二、ImageModel 核心概念2.1 ImageModel 接口在 Spring AI 中ImageModel是图像生成的核心接口// ImageModel 是 AI 图像生成的入口 // 类似 ChatModel 对话模型的定位 public interface ImageModel { // 根据文字描述生成图片 ImageResponse call(ImagePrompt prompt); }2.2 ImagePromptImagePrompt是图像生成的请求对象// 创建图像生成请求 ImagePrompt prompt new ImagePrompt( 一只可爱的橘猫, // 用户输入的描述 options // 可选的参数配置图片数量、尺寸等 );2.3 ImageOptionsImageOptions包含各种生成参数参数说明可选值model使用的模型wanx2.1-t2i-turbosize图片尺寸1024x1024, 512x512 等quality生成质量standard, hdstyle风格写实、卡通、水墨等三、项目代码详解3.1 控制器代码package com.atguigu.study.controller; import com.alibaba.cloud.ai.dashscope.image.DashScopeImageOptions; import jakarta.annotation.Resource; import org.springframework.ai.image.ImageModel; import org.springframework.ai.image.ImagePrompt; import org.springframework.ai.image.ImageResponse; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; /** * 文本生成图像控制器 * 展示如何调用 AI 根据文字描述生成图片 */ RestController public class Text2ImageController { // 注入图像生成模型 // 和 ChatModel 类似ImageModel 也是通过自动配置注入的 Resource private ImageModel imageModel; /** * 文生图主方法 * * 接口http://localhost:8009/t2i/image?prompt小猫咪 * * param prompt 图片描述必填 * 越详细AI生成越符合预期 * return 生成成功的图片URL返回阿里云的临时访问链接 */ GetMapping(value /t2i/image) public String image(RequestParam(name prompt, defaultValue 刺猬) String prompt) { // 1. 构建图像生成选项 // DashScopeImageOptions 是阿里云专用的选项类 DashScopeImageOptions options DashScopeImageOptions.builder() .withModel(wanx2.1-t2i-turbo) // 指定使用阿里云的图像生成模型 // .withSize(1024x1024) // 可以设置图片尺寸默认1024x1024 // .withStyle(style) // 可以设置风格 // .withN(1) // 生成数量默认1张 .build(); // 2. 创建图像生成请求 // ImagePrompt 接受两个参数 // - 第一个用户输入的文本描述prompt // - 第二个生成选项可省略 ImagePrompt imagePrompt new ImagePrompt(prompt, options); // 3. 调用模型生成图片 // 返回值是 ImageResponse 对象 ImageResponse response imageModel.call(imagePrompt); // 4. 从结果中提取图片 URL // getResult().getOutput().getUrl() 是标准的提取路径 // 返回的是阿里云百炼的临时图片 URL return response.getResult().getOutput().getUrl(); } }3.2 返回结果示例调用成功后返回的是一个图片访问链接https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation...注意这个 URL 通常是临时访问链接也可以通过浏览器进行下载。如果业务需要长期保存应该由后端下载后再转存到对象存储、本地文件系统或业务自己的媒体服务中。四、图片生成的优化技巧4.1 Prompt 编写技巧// ❌ 简单描述效果可能一般 prompt 一只猫 // ✅ 详细描述效果更好 prompt 一只可爱的橘猫胖乎乎的大眼睛躺在草地上阳光明媚摄影风格高清 // ✅ 结构化描述效果更好 prompt 主题一只可爱的橘猫 姿态躺着的懒洋洋的 环境绿色草地上有阳光 风格摄影写实风格 质量高清8K 4.2 常用风格关键词风格英文关键词适用场景写实风格photorealistic, realistic photo产品图、人物照卡通风格cartoon, anime, illustration插画、表情包水墨风格Chinese ink painting, shuimo国风、艺术创作油画风格oil painting艺术画作3D风格3D render, C4D创意设计五、本章小结5.1 核心概念概念说明ImageModel图像生成模型接口ImagePrompt图像生成的请求对象DashScopeImageOptions阿里云图像模型配置项wanx2.1-t2i-turbo阿里云文生图模型5.2 使用流程1. 准备文字描述prompt 2. 创建 ImageOptions 配置参数 3. 创建 ImagePrompt 请求 4. 调用 ImageModel.call() 5. 从响应中提取 URL5.3 拓展应用生成的图片可以用于AI 助手配图生成海报/封面产品设计灵感创意内容生成另外在完整应用里文生图还常被包装成工具Agent 根据用户描述决定是否调用生成图片工具图片生成结果再作为 URL 或媒体对象返回给前端与多模态输入一起组成完整工作流本章重点理解 Text to Image 的基本原理掌握 ImageModel 的使用方法学会编写高效的 prompt下章剧透s10学会了生成图片下一章我们将学习 Text to Voice——让 AI 把文字变成语音TIP图像生成与多模态的关系本章聚焦的是文本生成图像。但在实际项目里图像能力通常有两类能力类型说明图像生成根据文字描述生成图片图像理解把图片作为输入让模型识别内容Agent 工具化把图像生成包装成工具交给 Agent 自主决定是否调用所以本章学会ImageModel之后后续就可以自然衔接到多模态和 Agent 场景。编辑者Flittly更新时间2026年4月相关资源阿里云文生图 API | Spring AI Image

更多文章