当前位置: 首页 > news >正文

【AI】文生图文生视频

【AI】文生图&文生视频

文章目录

  • 【AI】文生图&文生视频
    • 1. 简介
    • 2. 接入阿里百炼平台
      • 2.1 申请免费体验
      • 2.2 配置API-KEY
      • 2.3 添加依赖
      • 2.4 配置模型参数
      • 2.5 模型测试
    • 3. 文生图
    • 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 添加依赖


<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模型

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

2.5 模型测试

编写接口如下:

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

执行结果:

在这里插入图片描述

在这里插入图片描述

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

3. 文生图

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

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

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

Response<Image> response = wanxImageModel.generate(message);
return response.content().url().toString();

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

@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. 文生视频

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

  • 封装视频生成方法:

    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();
    }
    
  • 接口修改

    @GetMapping("/chat")
    public String model(@RequestParam(value = "message", defaultValue = "Hello") String message) throws NoApiKeyException, InputRequiredExceptioString 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;
    }
    

执行结果如下:

在这里插入图片描述

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

http://www.xdnf.cn/news/1153711.html

相关文章:

  • 基于单片机的危险气体远程检测报警系统设计
  • 周末总结(2024/07/19)
  • 前端面试专栏-工程化:28.团队协作与版本控制(Git)
  • Jmeter系列(7)-线程组
  • python基础笔记
  • 西门子 S7-1500 PLC 电源选型指南:系统电源与负载电源的核心区别
  • LLM大模型微调技术与最佳实践
  • freertos任务调度关键函数理解
  • 动态规划——状压DP经典题目
  • 【Keil5-map文件】
  • FMEA-CP-PFD三位一体数字化闭环:汽车部件质量管控的速效引擎
  • simulink系列之模型接口表生成及自动连线脚本
  • Nestjs框架: 理解 RxJS响应式编程的核心概念与实践
  • 商业秘密视域下计算机软件的多重保护困境
  • 支付宝支付
  • day11 ADC
  • 论文略读: RASA: RANK-SHARING LOW-RANK ADAPTATION
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘sqlalchemy’问题
  • Linux内核设计与实现 - 第6章 内核数据结构
  • NX二次开发常用函数坐标转化UF_MTX4_csys_to_csys和UF_MTX4_vec3_multipl
  • 轻松学习C++:基本语法解析
  • 多线程 示例
  • leetcode_121 买卖股票的最佳时期
  • AWS Partner: Accreditation (Technical)
  • 轻松上手:从零开始启动第一个 Solana 测试节点
  • 综合实验--eNSP实验
  • TypeScript 泛型详解:从基础到实战应用
  • Linux中添加重定向(Redirection)功能到minishell
  • python网络爬虫之selenium库(二)
  • 【Web APIs】JavaScript 自定义属性操作 ② ( H5 自定义属性 )