【狂飙全模态】狂飙AGI-智能视频生成助手

狂飙AGI-智能视频生成助手

一、项目展示

二、环境准备

1 阿里云百炼API Key获取
1.1 登录官网

官网网址https://bailian.console.aliyun.com

1.2 添加新的API Key
1.3 点击复制API Key(备用)
2 虚拟环境配置
2.1 创建虚拟环境
shell 复制代码
conda create -n KBAGI python=3.10
2.2 安装依赖包
bash 复制代码
pip install gradio openai dashscope http requests time

三、代码实现

3.1 导入依赖包
python 复制代码
import gradio as gr
import dashscope
from dashscope import VideoSynthesis
from http import HTTPStatus
import requests
import time
3.2 设置API Key
python 复制代码
DASHSCOPE_API_KEY = "XXXXXXXXXX【替换为1.3复制的API Key】XXXXXXXXXXXXXX"

# 初始化DashScope客户端
dashscope.api_key = DASHSCOPE_API_KEY
3.3 定义视频生成函数
python 复制代码
def generate_video(prompt, size="1920*1080", model="wan2.2-t2v-plus"):
    """
    根据文本提示生成视频
    
    Args:
        prompt (str): 视频内容描述
        size (str): 视频分辨率,默认为1920*1080
        model (str): 使用的模型,默认为wan2.2-t2v-plus
    
    Returns:
        str: 视频URL或错误信息
    """
    if not prompt.strip():
        return None, "请输入视频内容描述"

    try:
        # 调用DashScope视频生成API
        rsp = VideoSynthesis.call(
            model=model,
            prompt=prompt,
            size=size
        )

        if rsp.status_code == HTTPStatus.OK:
            video_url = rsp.output.video_url
            # 下载视频文件
            video_filename = f"generated_video_{int(time.time())}.mp4"
            response = requests.get(video_url)

            if response.status_code == 200:
                with open(video_filename, "wb") as f:
                    f.write(response.content)
                return video_filename, "视频生成成功!"
            else:
                return None, f"视频下载失败,状态码: {response.status_code}"
        else:
            return None, f"视频生成失败: {rsp.message}"

    except Exception as e:
        return None, f"视频生成过程中发生错误: {str(e)}"
3.4 Gradio界面构建
python 复制代码
# Gradio界面
with gr.Blocks(title="狂飙AGI-智能视频生成助手") as demo:
    gr.Markdown("# 🌟狂飙AGI-智能视频生成助手")
    gr.Markdown("基于WanX的智能视频生成工具")

    with gr.Row():
        with gr.Column():
            prompt_input = gr.Textbox(
                label="视频内容描述",
                placeholder="请输入要生成的视频内容描述,例如:一只小猫在月光下奔跑...",
                value="一只小猫在月光下奔跑...",
                lines=5
            )

            with gr.Row():
                size_dropdown = gr.Dropdown(
                    choices=["1920*1080", "1280*720", "1024*1024", "720*1280", "1080*1920"],
                    value="1920*1080",
                    label="视频分辨率"
                )
                model_dropdown = gr.Dropdown(
                    choices=["wan2.2-t2v-plus"],
                    value="wan2.2-t2v-plus",
                    label="生成模型"
                )

            generate_button = gr.Button("生成视频", variant="primary")
            status_output = gr.Textbox(label="状态信息", interactive=False)

        with gr.Column():
            video_output = gr.Video(label="生成视频")

    generate_button.click(
        generate_video,
        inputs=[prompt_input, size_dropdown, model_dropdown],
        outputs=[video_output, status_output]
    )
3.5 项目完整代码
python 复制代码
import gradio as gr
import dashscope
from dashscope import VideoSynthesis
from http import HTTPStatus
import requests
import time

DASHSCOPE_API_KEY = "XXXXXXXXXX【替换为1.3复制的API Key】XXXXXXXXXXXXXX"

# 初始化DashScope客户端
dashscope.api_key = DASHSCOPE_API_KEY


def generate_video(prompt, size="1920*1080", model="wan2.2-t2v-plus"):
    """
    根据文本提示生成视频
    
    Args:
        prompt (str): 视频内容描述
        size (str): 视频分辨率,默认为1920*1080
        model (str): 使用的模型,默认为wan2.2-t2v-plus
    
    Returns:
        str: 视频URL或错误信息
    """
    if not prompt.strip():
        return None, "请输入视频内容描述"

    try:
        # 调用DashScope视频生成API
        rsp = VideoSynthesis.call(
            model=model,
            prompt=prompt,
            size=size
        )

        if rsp.status_code == HTTPStatus.OK:
            video_url = rsp.output.video_url
            # 下载视频文件
            video_filename = f"generated_video_{int(time.time())}.mp4"
            response = requests.get(video_url)

            if response.status_code == 200:
                with open(video_filename, "wb") as f:
                    f.write(response.content)
                return video_filename, "视频生成成功!"
            else:
                return None, f"视频下载失败,状态码: {response.status_code}"
        else:
            return None, f"视频生成失败: {rsp.message}"

    except Exception as e:
        return None, f"视频生成过程中发生错误: {str(e)}"


# Gradio界面
with gr.Blocks(title="狂飙AGI-智能视频生成助手") as demo:
    gr.Markdown("# 🌟狂飙AGI-智能视频生成助手")
    gr.Markdown("基于WanX的智能视频生成工具")

    with gr.Row():
        with gr.Column():
            prompt_input = gr.Textbox(
                label="视频内容描述",
                placeholder="请输入要生成的视频内容描述,例如:一只小猫在月光下奔跑...",
                value="一只小猫在月光下奔跑...",
                lines=5
            )

            with gr.Row():
                size_dropdown = gr.Dropdown(
                    choices=["1920*1080", "1280*720", "1024*1024", "720*1280", "1080*1920"],
                    value="1920*1080",
                    label="视频分辨率"
                )
                model_dropdown = gr.Dropdown(
                    choices=["wan2.2-t2v-plus"],
                    value="wan2.2-t2v-plus",
                    label="生成模型"
                )

            generate_button = gr.Button("生成视频", variant="primary")
            status_output = gr.Textbox(label="状态信息", interactive=False)

        with gr.Column():
            video_output = gr.Video(label="生成视频")

    generate_button.click(
        generate_video,
        inputs=[prompt_input, size_dropdown, model_dropdown],
        outputs=[video_output, status_output]
    )

if __name__ == "__main__":
    demo.launch()

四、效果展示

相关推荐
kaikaile19951 分钟前
风、浪、流环境模型的船舶三自由度(纵荡、横荡、艏摇)运动仿真MATLAB
开发语言·人工智能·matlab
HERR_QQ3 分钟前
端到端课程自用 4 规划 基于自规划AR的端到端规划 AI 笔记
人工智能·笔记·自动驾驶·transformer
weisian15112 分钟前
基础篇--概念原理-1-Token是什么?——从原理到实战,一篇讲透
人工智能·职场和发展·token
大模型最新论文速读16 分钟前
Select to Think:蒸馏 token 排序能力,效果平均提升24%
论文阅读·人工智能·深度学习·机器学习·自然语言处理
sthnyph26 分钟前
docker compose安装redis
redis·docker·容器
无忧智库27 分钟前
跨行业数据要素可信流通体系建设:打破信任壁垒的完整工程方法论(WORD)
大数据·人工智能
mit6.82428 分钟前
NitroGen: AI 自动玩游戏
人工智能
小王毕业啦29 分钟前
2007-2024年 省级-农林牧渔总产值、农业总产值数据(xlsx)
大数据·人工智能·数据挖掘·数据分析·社科数据·实证分析·经管数据
数据皮皮侠32 分钟前
上市公司创新韧性数据(2000-2024)|顶刊同款 EIR 指数
大数据·人工智能·算法·智慧城市·制造
科研前沿43 分钟前
纯视觉无感解算 + 动态数字孪生:室内外无感定位技术全新升级
大数据·人工智能·算法·重构·空间计算