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

执行结果如下:

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

相关推荐
Blossom.11826 分钟前
基于深度学习的图像分类:使用预训练模型进行迁移学习
人工智能·深度学习·目标检测·分类·音视频·语音识别·迁移学习
想躺平的咸鱼干1 小时前
大模型开发
ai·大模型·ai应用开发技术架构
kupeThinkPoem1 小时前
OpenAI最新大模型GPT-4o体验之Code Copilot AI编程大模型
人工智能·ai编程
XINERTEL1 小时前
解锁高品质音频体验:探索音频质量评估与测试的科学之道
人工智能·音视频·语音识别·音视频质量测试
IMER SIMPLE2 小时前
人工智能-python-OpenCV 图像基础认知与运用-图像的预处理(1)
人工智能·python·opencv
盼小辉丶2 小时前
图机器学习(17)——基于文档语料库构建知识图谱
人工智能·知识图谱·图机器学习
88号技师2 小时前
2025年7月Renewable Energy-冬虫夏草优化算法Caterpillar Fungus Optimizer-附Matlab免费代码
开发语言·人工智能·算法·matlab·优化算法
DO_Community3 小时前
DigitalOcean 一键模型部署,新增支持百度开源大模型ERNIE 4.5 21B
人工智能·深度学习·百度·自然语言处理·开源
飞哥数智坊3 小时前
GPT-5:让 OpenAI CEO 眩晕的“天啊”时刻
人工智能
sssammmm4 小时前
AI入门学习-Python 最主流的机器学习库Scikit-learn
人工智能·python·机器学习