事实上,这个项目出品的非常紧急。
我答应了六个朋友,8月13,14号两天教他们的小孩(大都是小学生)用ai做视频。又刚好赶上我要搬家的原因,基本上我没有做什么准备。本身也是信手拈来的事情。
但是12号晚上我跟我小孩过一遍流程的时候(我小孩也是本次的学员之一+助教),发现一个很坑的事实是,我总不能让所有 家长提前给孩子把runway gen3都注册了,这里就复杂了,各种科学上网,梯子,语言问题。
我跟我小孩商量了下,能不能紧急搞一个出来。
他思考了几秒,他说可以。
然后我们就开干了(严格来说他就开干了)。
我是产品经理,虽然我原型图都没出给他,但是我好歹还是把整个流程逻辑线跟他确认了:
1、使用第三方api来搞,这样快;
2、反正自己用,加上runway gen3出视频特别慢,不考虑账号体系了。直接弄个邮箱来接受生成后的视频,不用在提交后当前 页面苦苦 等待(主要不做账号体系,等久了 ,页面不小心关了或是刷新了就没 了);
这样 就是 用户只需要输入:
图片、提示词、选择时长、自己的邮箱 然后一个按钮 点击提交。然后就o了。
于是我自告奋勇的承担了前端页面的开发(准确的说 ,是我让gpt4o承担了这个活)
2个小时后,他和我各自都搞定了,就是这样了:

之所以加了个授权邮箱是为了避免接口被恶意调用,虽然每次2毛钱不多,架不住白嫖党太多。哈哈
不能不说这样对普通用户(尤其是孩子来说)用起来真心是爽啊,直接 拿个pad 语音输入上传个图片,点击提交就可以了。注册、登录 、梯子、翻译啥的全不用。
来看看生成的视频(只做了图生视频哈,需要上传图片或图片+提示词):
原图:

下面是生成的视频:
生成速度感人,基本上一两分钟就可以搞定了,10s的稍微长一点。也是两三分钟不到。
好了前奏也有点太长了,咱们进入正题。
用ai写代码的过程,这个教程里我就不写了。咱们直接上源代码,今天主要讲如何 把这个套壳的runway gen3 turbo用起来 ,而且一次只要2毛钱。当然服务器你还是要钱的,一个月几十块钱要的。
为了安装部署更加简单直接,我们使用宝塔来部署(不会安装宝塔的请百度),宝塔安装的环境是:
nginx 1.20.0
mysql 5.6.50
首先我们点击 网站- 添加站点,然后输入你的域名(请提前把域名解析到你的服务器ip)、ftp可以不创建,数据库自动创建,php版本选择纯静态。

这个时候我们要配置下ssl证书。首先点击刚刚创建的网站名称,在打开的页面中,选中ssl,点击let's encrypt 选中你的域名。点击“申请证书”,稍等几十秒后,成功。

然后我们点击“强制https”后,点击“保存”。

这个时候我们关闭窗口,回到网站列表,点击刚刚新建的网站根目录,进入网站根目录:

这个时候我们看到有4个文件在根目录

我们这个时候可以访问下网站首页看看,https://video.digilifeform.com (注意用你自己的域名),这个时候可以看到网站已经创建成功了,显示的是默认的一个首页:

我们先把这4个文件删除了(注意:.user.ini会默认一直都在,这个不用管它):

我们再去github上把我开源的程序下载下来,下载地址:
https://github.com/laozhangai/aivideo

然后我们把下载下来的zip文件,上传到服务器根目录并右键解压缩:

这个时候我们看到多出来一个 文件夹,我们点击进入这个文件夹,把里面的文件全部选中后剪切:

然后回到根目录,点击粘贴,把全部文件粘贴到根目录里
这个时候我们点击宝塔左侧的“数据库”菜单,进入数据库列表,找到 之前创建网站的数据库,点击导入按钮:

在弹出的窗口上,点击从本机导入

然后选择我们的网站所在的根目录找到,video.sql.zip文件,并选中,点击“导入”:

这个时候,我们再点击左侧导航“网站”,点击网站的名称(域名),在弹出的窗口中,点击反向代理,打开高级功能,代理名称随便写,代理目录写:/api/ , 目标url:https://127.0.0.1:5001/api ,发送域名默认:127.0.01,然后点击确定。

现在我们再回到根目录,点击“hello”文件夹,双击运行config.txt,做一些信息配置:


上面4个是smtp信息,这个是因为我们暂时没有做用户体系,所以是通过使用者的邮箱来接受生成的视频;请查找自己的邮箱服务商获取smtp信息;
ADMIN_EMAIL 是管理员邮箱,这个是后面添加的一个小功能,便于管理员了解到每个用户的生成视频的情况;
DUOMI_API_KEY 是重头戏,也是本次使用的一个第三方提供的runway gen3 turbo的视频生成服务的api接口。可以直接进入多米官网注册使用,每次调用收费是0.2元,还是比较划算。以后如果有精力会考虑支持更多视频工具的api接口,例如可灵,luma等。https://duomiapi.com/ 这是多米的官网。
AUTH_WORD 是用于授权使用用户邮箱的验证码,可以随便设置,比如 abc。这个功能是为了帮助管理者可以快速的授权使用者的邮箱(为了避免被大量滥用,所以增加了这个功能,只有 被授权的邮箱才可以生成视频)。授权的方式为:
https://video.digilifeform.com/api/allow-email?email=mm@6soft.com&password=abc&action=add
你只需要把这个链接中的 email= 后面的邮箱地址换成被授权的邮箱,然后password那里设置为你的AUTH_WORD即可。然后把链接放到浏览器里回车,你会看到下图这个信息返回,就表示邮箱授权成功了:

如果你要解除一个邮箱的授权,使用下面这个链接:
https://video.digilifeform.com/api/allow-email?email=mm@6soft.com&password=asd&action=delete
跟授权的链接区别是,最后的action=add就是授权添加,action=delete 就是解除授权。

好接着下来要配置的是 domain 这个就是直接写你的域名,注意格式是:video.digilifeform.com 前面不要https://,后面不要加“/” .
再接着是数据库的配置,
host是默认localhost即可
database,password, user,分别是数据库名,密码,用户名。 在宝塔面板左侧 点击数据库 在数据库列表里可以看到数据库名称,用户名,密码信息。
以上配置完成,接下来我们可以准备开始运行程序了。
首先点击宝塔左下角菜单“终端”进行环境部署:
首先我们的代码是python的语言写的,建议你先安装anaconda 并用anaconda创建python 3.10的环境来运行我们的项目。我这里不展开,可以百度下如何在linux系统上安装python。这里我已经创建好了一个 atv的环境。
我在终端输入conda activate atv激活环境:
conda activate atv
然后使用下面的命令安装fastapi,uvicorn, requests,werkzeug,pymysql这些包:
pip install fastapi uvicorn requests werkzeug pymysql
然后cd到主程序运行目录(这里的域名注意要换成你自己的域名):
cd /www/wwwroot/video.digilifeform.com/hello
然后运行程序:
python main.py

看到屏幕上出现上述 画面就是运行成了。让我们测试下。直接访问域名:
https://video.digilifeform.com (注意你要换你自己的域名)并且给你自己的邮箱做个授权。

现在我们一次上传图片,写一段提示词,选择时长,输入授权的邮箱,点击“generate video”,然后页面会显示提交已成功,生成的视频会发送到授权的邮箱里。

这个时候我们回到终端,就 会发现,程序已经在运行中。目前已经提交给runway在生成,并定时查询生成状态。

status 为0表示还没有处理,status 为1表示正在处理,status 为3的时候就成功了。 如果status为2的时候,就是失败了,runway有时会不明原因的返回2,按照我的经验基本上都是图片不支持。换一张图就可以 了。程序这里做了重试处理,如果为2的时候会重试一下,还是失败为2,就跳过了。会返回一条邮件信息给使用者。
现在我们看到已经成功了

最下面有两条发送邮件成功的记录,一条是发给用户的,一条是发给管理员的。我这个邮箱又是用户又是管理员,所以大家会看到两条记录 。
另外这次测试不知道是不是图片格式问题,用时比较久 基本上10分钟了,通常来说,都在两三分钟之间。
让我们看看上传的原图和生成的视频(随便找的很久之前的文生图的图片,质量不是很高)

如果想要python程序持续运行,你需要安装一个screen的包,然后使用下面的命令
screen -S video 新建一个窗口 ,在这个窗口里进入到程序目录 激活python环境 运行主程序。
这样程序就 不会因为终端超时断开导致程序也停止运行了。下次访问的时候 输入 screen -r video 即可进入程序运行窗口。