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

简介: 本文介绍 Spring AI 中的文生图能力,围绕 ImageModel、ImagePrompt 与阿里云百炼图像模型展开,演示如何根据文字描述生成图片链接,并结合 Prompt 编写技巧与参数配置,帮助开发者提升生成效果与落地能力。

第九章 Text to Image 文本生成图像技术

版本标注

  • Spring AI: 1.1.2
  • Spring 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 Image?

1.1 概念科普

Text to Image(文生图) 是 AI 的一种能力,你只需要输入一段文字描述,AI 就能生成对应的图片。

就像有一个"画家"根据你的描述作画:

  • 你说:"一只可爱的小猫在草地上玩耍"
  • AI 生成:
  /\_/\  
 ( o.o ) 
  > ^ <

(当然,真实AI生成的是真实的照片风格的图片)

1.2 技术原理

文生图通常使用扩散模型(Diffusion Model),核心原理是:

  1. 正向扩散:把一张图片逐渐添加噪声,直到变成纯噪声
  2. 反向扩散:训练 AI 学习从噪声中恢复图片的过程
  3. 生成时:从随机噪声开始,逐步"去噪",生成图片

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 ImagePrompt

ImagePrompt 是图像生成的请求对象:

// 创建图像生成请求
ImagePrompt prompt = new ImagePrompt(
    "一只可爱的橘猫",  // 用户输入的描述
    options            // 可选的参数配置(图片数量、尺寸等)
);

2.3 ImageOptions

ImageOptions 包含各种生成参数:

参数 说明 可选值
model 使用的模型 wanx2.1-t2i-turbo
size 图片尺寸 1024x1024, 512x512 等
quality 生成质量 standard, hd
style 风格 写实、卡通、水墨等

三、项目代码详解

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. 从响应中提取 URL

5.3 拓展应用

在完整应用里,文生图常被包装成工具:

  • Agent 根据用户描述决定是否调用生成图片工具
  • 图片生成结果再作为 URL 或媒体对象返回给前端
  • 与多模态输入一起组成完整工作流

本章重点

  1. 理解 Text to Image 的基本原理
  2. 掌握 ImageModel 的使用方法
  3. 学会编写高效的 prompt

下章剧透(s10):

学会了生成图片,下一章我们将学习 Text to Voice——让 AI 把文字变成语音!


💡 TIP:图像生成与多模态的关系

本章聚焦的是 文本生成图像。但在实际项目里,图像能力通常有两类:

能力类型 说明
图像生成 根据文字描述生成图片
图像理解 把图片作为输入,让模型识别内容
Agent 工具化 把图像生成包装成工具,交给 Agent 自主决定是否调用

所以本章学会 ImageModel 之后,后续就可以自然衔接到多模态和 Agent 场景。


📝 编辑者:Flittly
📅 更新时间:2026年4月
🔗 相关资源阿里云文生图 API | Spring AI Image

目录
相关文章
|
22天前
|
存储 人工智能 关系型数据库
OpenClaw怎么可能没痛点?用RDS插件来释放OpenClaw全部潜力
OpenClaw插件是深度介入Agent生命周期的扩展机制,提供24个钩子,支持自动注入知识、持久化记忆等被动式干预。相比Skill/Tool,插件可主动在关键节点(如对话开始/结束)执行逻辑,适用于RAG增强、云化记忆等高级场景。
765 56
OpenClaw怎么可能没痛点?用RDS插件来释放OpenClaw全部潜力
|
22天前
|
Arthas 人工智能 Java
我们做了比你更懂 Java 的 AI-Agent -- Arthas Agent
Arthas Agent 是基于阿里开源Java诊断工具Arthas的AI智能助手,支持自然语言提问,自动匹配排障技能、生成安全可控命令、循证推进并输出结构化报告,大幅降低线上问题定位门槛。
743 64
我们做了比你更懂 Java 的 AI-Agent -- Arthas Agent
|
25天前
|
人工智能 Java 程序员
吵了一百年的编程语言鄙视链,被AI智能体一锅端了
AI Agent崛起正终结百年编程语言之争:语法壁垒坍塌,代码生成趋近零成本。开发者护城河从API熟练度转向问题定义、业务洞察与系统架构能力。未来核心竞争力=创意×跨界整合×AI协同力。(239字)
147 9
|
人工智能 JavaScript Java
【SpringAIAlibaba新手村系列】(1)初识 Spring AI Alibaba 框架
本文介绍了SpringAIAlibaba框架的基本概念和使用方法。作为Spring官方AI框架的阿里云实现版本,它简化了Java开发者调用AI模型的过程。文章详细讲解了核心概念如ChatModel、ChatClient,以及阿里云百炼平台的功能。通过HelloWorld项目示例,展示了如何配置APIKey、编写控制层代码,实现普通调用和流式输出两种AI交互方式。重点阐述了SpringAI与SpringAIAlibaba的关系,以及自动配置机制的工作原理,帮助开发者快速上手这一框架。
622 0
|
27天前
|
机器学习/深度学习 并行计算 算法
基于YOLOv8的5种玻璃缺陷识别(破裂/打胶/起霜/污染/未加工)(中英文双版) | 附完整源码与效果演示
本文介绍了一种基于YOLOv8的玻璃状况识别系统,该系统能够自动识别玻璃的五种常见缺陷:玻璃破裂、玻璃打胶、玻璃起霜、玻璃污染和玻璃未加工。通过采用先进的深度学习算法,实现了对玻璃产品的高精度、高效率检测,为工业生产提供了可靠的质量保障手段。
185 14
|
30天前
|
人工智能 自然语言处理 JavaScript
2026年1分钟部署 OpenClaw(Clawdbot) 保姆级图文教程
2026年AI智能代理工具迎来爆发式发展,OpenClaw(前身为Clawdbot/Moltbot)作为开源、本地优先的AI助理框架,凭借7×24小时在线响应、多任务自动化执行、跨平台协同等核心能力,成为个人办公与轻量团队协作的首选工具。与传统聊天机器人不同,OpenClaw不仅能实现自然语言交互,更能通过指令完成文件处理、日程管理、邮件整理、多平台自动化操作等实际工作,兼容Qwen、GPT、Claude等多款大模型,是真正能落地的“数字员工”。
708 11

热门文章

最新文章