【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;
    }

执行结果如下:

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

相关推荐
明朝百晓生7 分钟前
强化学习【Monte Carlo Learning][MC Basic 算法]
人工智能·机器学习
云知谷5 小时前
【C++基本功】C++适合做什么,哪些领域适合哪些领域不适合?
c语言·开发语言·c++·人工智能·团队开发
rit84324995 小时前
基于MATLAB实现基于距离的离群点检测算法
人工智能·算法·matlab
初学小刘6 小时前
深度学习:从图片数据到模型训练(十分类)
人工智能·深度学习
递归不收敛6 小时前
大语言模型(LLM)入门笔记:嵌入向量与位置信息
人工智能·笔记·语言模型
之墨_7 小时前
【大语言模型】—— 自注意力机制及其变体(交叉注意力、因果注意力、多头注意力)的代码实现
人工智能·语言模型·自然语言处理
从孑开始8 小时前
ManySpeech.MoonshineAsr 使用指南
人工智能·ai·c#·.net·私有化部署·语音识别·onnx·asr·moonshine
涛涛讲AI8 小时前
一段音频多段字幕,让音频能够流畅自然对应字幕 AI生成视频,扣子生成剪映视频草稿
人工智能·音视频·语音识别
可触的未来,发芽的智生8 小时前
新奇特:黑猫警长的纳米世界,忆阻器与神经网络的智慧
javascript·人工智能·python·神经网络·架构
WWZZ20259 小时前
快速上手大模型:机器学习2(一元线性回归、代价函数、梯度下降法)
人工智能·算法·机器学习·计算机视觉·机器人·大模型·slam