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

四、效果展示

相关推荐
H03111698534 分钟前
App竞品数据查询工具整理 月狐数据 蝉大师 点点数据功能概览
人工智能
叠层归一研究院1 小时前
基于极限自指的叠层归一宇宙结构理论——无元外部封闭系统的内生区分模型
人工智能·经验分享·算法·agi
IT_陈寒1 小时前
Java线程池用错参数,我的服务居然悄悄崩溃了
前端·人工智能·后端
why-geo1 小时前
Hermes Agent 与 Python 的会产生什么样的碰撞
人工智能·python·ai编程
正经教主1 小时前
【FDE系列】阶段2:Day 29:FastAPI 进阶 — Pydantic 模型与完整 CRUD 实战
人工智能·python·fde
音视频牛哥2 小时前
视频编码的终局不是“更省码率”:从 H.266、AV2 到 AI 编解码的下一场竞争
音视频·h.266·rtsp h.266·h.266编解码·rtp h.266·rtp vvc·ai编解码
时速GEO系统2 小时前
初元 AI V1.1 版本升级,首个正式版发布一周・实现生成、部署、上线、优化全流程自动化闭环
人工智能·数据挖掘·node.js
咕泡科技2 小时前
咕泡科技FDE系列最新产品重磅发布!
人工智能·大模型·ai落地·fde·前沿部署工程师
犀利豆2 小时前
为什么全世界的 AI 都画不好一只骑自行车的鹈鹕
人工智能·llm·aigc
浅念-2 小时前
Redis基础详解:单线程模型、String与Hash数据结构
服务器·数据库·redis·sql·mysql·nosql数据库·nosql