【AI】文生图&文生视频

【AI】文生图&文生视频

文章目录

  • 【AI】文生图&文生视频
    • [1. 简介](#1. 简介)
    • [2. 接入阿里百炼平台](#2. 接入阿里百炼平台)
      • [2.1 申请免费体验](#2.1 申请免费体验)
      • [2.2 配置API-KEY](#2.2 配置API-KEY)
      • [2.3 添加依赖](#2.3 添加依赖)
      • [2.4 配置模型参数](#2.4 配置模型参数)
      • [2.5 模型测试](#2.5 模型测试)
    • [3. 文生图](#3. 文生图)
    • [4. 文生视频](#4. 文生视频)

1. 简介

在前面的文章中,我们使用了langchain4j提供的免费演示密钥去连接的gpt-4o--mi模型,但免费的apikey连接的模型总会有许多配额限制,这里我们接入阿里百炼平台,它集成了阿里的通义系列大模型和其它第三方大模型(如deepseek),涵盖文本、 图像、音视频等不同模态,最主要的是,新用户有千万token(不同模型合计)免费送,用于我们平时学习使用已经足够了。

2. 接入阿里百炼平台

2.1 申请免费体验

  • 进入官网点击大模型模块:官网链接

  • 点击免费体验

  • 点击开通服务,并确认开通

2.2 配置API-KEY

  1. 前往申请:大模型服务平台百炼控制台

  2. 创建完api-key后,在环境变量配置DASH_SCOPE_API_KEY,变量值为刚创建的api-key

2.3 添加依赖

xml 复制代码
<dependencies>
    <!-- 接入阿里云百炼平台 -->
    <dependency>
        <groupId>dev.langchain4j</groupId>
        <artifactId>langchain4j-community-dashscope-spring-boot-starter</artifactId>
        <version>1.0.0-beta3</version>
    </dependency>
</dependencies>

<dependencyManagement>
    <dependencies>
        <!--引入langchain4j依赖管理清单 -->
        <dependency>
            <groupId>dev.langchain4j</groupId>
            <artifactId>langchain4j-bom</artifactId>
            <version>${langchain4j.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <!--引入百炼依赖管理清单 -->
        <dependency>
            <groupId>dev.langchain4j</groupId>
            <artifactId>langchain4j-community-bom</artifactId>
            <version>${langchain4j.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
<dependencyManagement>

2.4 配置模型参数

这里使用的是qwen-max模型

properties 复制代码
# 阿里百炼平台
langchain4j.community.dashscope.chat-model.api-key=${DASH_SCOPE_API_KEY}
langchain4j.community.dashscope.chat-model.model-name=qwen-max

2.5 模型测试

编写接口如下:

java 复制代码
@Autowired
QwenChatModel qwenChatModel;

@GetMapping("/chat")
public String model(@RequestParam(value = "message", defaultValue = "Hello") String message){
    String chat = qwenChatModel.chat(message);
    return chat;
}

执行结果:

到这里我们的模型引入就完成了!!

3. 文生图

引入阿里百炼平台后,我们接入内置的通义模型就方便多了,想要实现文生图 的话我们可以引入通义万象这个模型来构建文生图的逻辑,构建模型代码如下:

java 复制代码
WanxImageModel wanxImageModel = WanxImageModel.builder()
        .modelName("wanx2.1-t2i-turbo")
        .apiKey(System.getenv("DASH_SCOPE_API_KEY"))
        .build();

之后直接在接口中进行引用即可:

java 复制代码
Response<Image> response = wanxImageModel.generate(message);
return response.content().url().toString();

:如果想要实现让ai根据输入的提示词判断现在是直接生成文本还是生成图片,可以再加一层判断逻辑来进行捕获:

java 复制代码
@GetMapping("/chat")
public String model(@RequestParam(value = "message", defaultValue = "Hello") String message) throws {
    String chatJudge = qwenChatModel.chat("对下述内容进行判断,如果是要求生成一张图片,则返回数字1;以上情况都不符合则返回数字0\n" + message);
    if (chatJudge.equals("1")) {
        Response<Image> response = wanxImageModel.generate(message);
        return response.content().url().toString();
    }
    String chat = memoryChatAssistant.chat(message);
    return chat;
}

执行结果:

4. 文生视频

文生视频的实现方式与文生图类似,也是通过万象大模型来进行生成的,具体代码如下:

  • 封装视频生成方法:

    java 复制代码
    private static String getVideo(String message) throws NoApiKeyException, InputRequiredException {
        VideoSynthesis vs = new VideoSynthesis();
        VideoSynthesisParam param =
                VideoSynthesisParam.builder()
                        .model("wanx2.1-t2v-turbo")
                        .prompt(message)
                        .size("1280*720")
                        .apiKey(System.getenv("DASH_SCOPE_API_KEY"))
                        .build();
        System.out.println("please wait...");
        VideoSynthesisResult videoSynthesisResult = vs.call(param);
        return videoSynthesisResult.getOutput().getVideoUrl();
    }
  • 接口修改

    java 复制代码
    @GetMapping("/chat")
    public String model(@RequestParam(value = "message", defaultValue = "Hello") String message) throws NoApiKeyException, InputRequiredExceptio
        String chatJudge = qwenChatModel.chat("对下述内容进行判断,如果是要求生成一张图片,则返回数字1;如果是要求生成一个视频,则返回数字2;以上情况都不符合则返回数字0\n" + message);
        if (chatJudge.equals("1")) {
            Response<Image> response = wanxImageModel.generate(message);
            return response.content().url().toString();
        }
        else if (chatJudge.equals("2")) {
            return getVideo(message);
        }
        String chat = memoryChatAssistant.chat(message);
        return chat;
    }

执行结果如下:

以上便是对文生图和文生视频的介绍与使用了,如果上述内容对大家有帮助的话请给一个三连关注吧💕( •̀ ω •́ )✧✨

相关推荐
七颗糖很甜几秒前
基于 OpenCV 的 FY2 云顶图云块追踪算法实现
人工智能·opencv·算法
__Wedream__1 分钟前
NTIRE 2026 Challenge on Efficient Super-Resolution——冠军方案解读
人工智能·深度学习·算法·计算机视觉·超分辨率重建
FL16238631295 分钟前
基于深度学习mediape实现人员跌倒人体姿势跌倒检测算法源码+说明文件
人工智能·深度学习·算法
James5065 分钟前
NewAPI使用
人工智能·docker·newapi
FAFU_kyp6 分钟前
AP2 执行流程详解
人工智能
AI英德西牛仔7 分钟前
手机怎么把AI对话导出
人工智能·ai·智能手机·豆包·deepseek·ds随心转
Old Uncle Tom10 分钟前
Claude Code 记忆系统架构分析
人工智能·ai·系统架构·agent
空中湖13 分钟前
大模型修炼秘籍 第一卷灵气采集 第一章:天地为炉——海量数据之采集
人工智能
sp_fyf_202416 分钟前
【大语言模型】 语言模型学习什么以及何时学习?隐式课程假说
人工智能·学习·语言模型
java1234_小锋16 分钟前
LangChain4j简介以及快速入门
人工智能·langchain4j