【狂飙全模态】狂飙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()

四、效果展示

相关推荐
fanstuck17 小时前
从0到提交,如何用 ChatGPT 全流程参与建模比赛的
大数据·数学建模·语言模型·chatgpt·数据挖掘
春日见17 小时前
vscode代码无法跳转
大数据·人工智能·深度学习·elasticsearch·搜索引擎
Drgfd17 小时前
真智能 vs 伪智能:天选 WE H7 Lite 用 AI 人脸识别 + 呼吸灯带,重新定义智能化充电桩
人工智能·智能充电桩·家用充电桩·充电桩推荐
萤丰信息18 小时前
AI 筑基・生态共荣:智慧园区的价值重构与未来新途
大数据·运维·人工智能·科技·智慧城市·智慧园区
盖雅工场18 小时前
排班+成本双管控,餐饮零售精细化运营破局
人工智能·零售餐饮·ai智能排班
神策数据18 小时前
打造 AI Growth Team: 以 Data + AI 重塑品牌零售增长范式
人工智能·零售
2501_9413331018 小时前
数字识别与检测_YOLOv3_C3k2改进模型解析
人工智能·yolo·目标跟踪
逐梦苍穹18 小时前
速通DeepSeek论文mHC:给大模型装上物理阀门的架构革命
人工智能·deepseek·mhc
运维小欣18 小时前
Agentic AI 与 Agentic Ops 驱动,智能运维迈向新高度
运维·人工智能
拾荒的小海螺18 小时前
开源项目:LTX2 高效可控的开源视频生成模型
开源·音视频