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

四、效果展示

相关推荐
wukangjupingbb4 分钟前
AI多模态技术在创新药研发中的结合路径、机制及挑战
人工智能
消失的旧时光-194314 分钟前
第十四课:Redis 在后端到底扮演什么角色?——缓存模型全景图
java·redis·缓存
CoderIsArt15 分钟前
三大主流智能体框架解析
人工智能
民乐团扒谱机19 分钟前
【微实验】机器学习之集成学习 GBDT和XGBoost 附 matlab仿真代码 复制即可运行
人工智能·机器学习·matlab·集成学习·xgboost·gbdt·梯度提升树
Coder_Boy_21 分钟前
Deeplearning4j+ Spring Boot 电商用户复购预测案例中相关概念
java·人工智能·spring boot·后端·spring
芷栀夏24 分钟前
CANN ops-math:揭秘异构计算架构下数学算子的低延迟高吞吐优化逻辑
人工智能·深度学习·神经网络·cann
L5434144625 分钟前
告别代码堆砌匠厂架构让你的系统吞吐量翻倍提升
大数据·人工智能·架构·自动化·rpa
孤狼warrior26 分钟前
YOLO目标检测 一千字解析yolo最初的摸样 模型下载,数据集构建及模型训练代码
人工智能·python·深度学习·算法·yolo·目标检测·目标跟踪
凯子坚持 c27 分钟前
构建企业级 AI 工厂:基于 CANN `cann-mlops-suite` 的端到端 MLOps 实战
人工智能
Elwin Wong29 分钟前
浅析OpenClaw:从“贾维斯”梦想看下一代 AI 操作系统的架构演进
人工智能·agent·clawdbot·moltbot·openclaw