当前位置: 首页 > 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.dtcms.com/a/288799.html

相关文章:

  • 第三章自定义检视面板_创建自定义编辑器类_编辑器操作的撤销与恢复(本章进度3/9)
  • 使用pnpm安装项目的生产依赖dependencies和开发依赖devDependies及pnpm工作空间等简单使用方法说明
  • Function
  • Qwen3-8B 与 ChatGPT-4o Mini 的 TTFT 性能对比与底层原理详解
  • Docker实战:使用Docker部署envlinks极简个人导航页
  • Springboot美食分享平台
  • 【Kafka】深入理解 Kafka MirrorMaker2 - 实战篇
  • Mac m系列 VMware Fusion虚拟机安装ARM contos
  • host.equiv,.rhosts,inetd.conf文件的作用
  • Python应用进阶DAY10--模块化编程概念(模块、包、导入)及常见系统模块总结和第三方模块管理
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘beautifulsoup4’问题
  • 响应式编程入门教程第九节:UniRx 高级特性与自定义
  • python doipclient库
  • 学习C++、QT---30(QT库中如何自定义控件(自定义按钮)讲解)
  • XSS知识总结
  • Ajax简单介绍及Axios请求方式的别名
  • MyBatis从浅入深
  • SQL中的EXPLAIN命令详解
  • python的pywebview库结合Flask和waitress开发桌面应用程序简介
  • HarmonyOS 网络请求优化实战指南:从0到1写出流畅不卡顿的应用!
  • `tidyverse` 中涉及的函数及其用法
  • [Python] -项目实战8- 构建一个简单的 Todo List Web 应用(Flask)
  • 非线性优化框架CasADi工具箱求解最优控制问题OCP
  • Python Web框架详解:Flask、Streamlit、FastAPI
  • Python知识点2-if语句
  • 学成在线项目
  • 威力导演 12:革新级影音创作平台——专业特效与极致效率的完美融合
  • 【成品设计】STM32户外便携太阳能充电器设计
  • 看板如何体现任务完成标准
  • 小程序和H5数据mock配置过程