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

执行结果如下:

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

相关推荐
电商API&Tina几秒前
【电商API接口】开发者一站式电商API接入说明
大数据·数据库·人工智能·云计算·json
湘美书院--湘美谈教育12 分钟前
湘美谈教育湘美书院网文研究:人工智能与微型小说选集
人工智能·深度学习·神经网络·机器学习·ai写作
uzong17 分钟前
Harness Engineering 是什么?一场新的 AI 范式已经开始
人工智能·后端·架构
墨有66619 分钟前
FieldFormer:基于物理场论的极简AI大模型底层架构,附带源码
人工智能·架构·电磁场算法映射
Mountain and sea39 分钟前
从零搭建工业机器人激光切割+焊接产线:KUKA七轴协同+节卡AGV+视觉检测实战复盘
人工智能·机器人·视觉检测
倾颜1 小时前
我把本地 AI Chat 项目重构了一遍:用 LangChain.js + Ollama + Streamdown 搭了一个最小可扩展架构
langchain·llm·next.js
FserSuN1 小时前
langchain deepagents 框架使用带脚本的Skill
langchain·ai编程
K姐研究社1 小时前
阿里JVS Claw实测 – 手机一键部署 OpenClaw,开箱即用
人工智能·智能手机·aigc·飞书
卷积殉铁子1 小时前
从“手动挡”到“自动驾驶”:OpenClaw如何让AI开发变成“说话就行”
人工智能
机器之心1 小时前
扎克伯格正在打造自己的「AI分身」,并计划裁掉1.6万人
人工智能·openai