AI-Auto-Video-Generator 项目介绍
AI-Auto-Video-Generator 是一个基于人工智能的故事视频生成器,用户只需输入故事提示,就能自动生成视频。这一工具集成了 OpenAI 的 GPT-3 用于生成故事,使用 OpenAI 的 DALL-E 创建图像,并通过 ElevenLabs 的 API 添加语音旁白,最终将这些元素合成为一个完整的视频。
项目启动指南
以下说明将帮助用户在本地计算机上设置和运行该项目。
先决条件
- 需要安装 Python 3.6 或更高版本
- 需要安装 Pip(Python 包管理器)
- 需要安装 FFmpeg(用于视频处理的命令行程序)
创建虚拟环境
创建虚拟环境有助于将包彼此隔离,避免冲突。在运行代码和安装所需软件包之前,请使用 venv。代码中需要的 openai 版本为 0.28,这在 requirements.txt 中指定。
- 进入项目目录:
- Windows:
python -m venv .venv
然后Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
- Linux:
python3 -m venv .venv
- Windows:
- 激活虚拟环境:
- Windows:
.\venv\Scripts\Activate.ps1
- Linux:
source .venv/bin/activate
- Windows:
- 完成后关闭虚拟环境:
deactivate
安装
- 克隆仓库:
git clone https://github.com/BB31420/AI-Auto-Video-Generator.git
- 进入项目目录:
cd AI-Auto-Video-Generator
- 安装所需 Python 包:
pip install -r requirements.txt
- 安装 FFmpeg:
- macOS 上可以使用 Homebrew:
brew install ffmpeg
- Linux 上可以使用包管理器(例如,Ubuntu 上使用
apt-get install ffmpeg
) - Windows 上可以从 FFmpeg 官方网站下载安装程序
- macOS 上可以使用 Homebrew:
- 安装 spacy:
python -m spacy download en_core_web_sm
使用方法
-
编辑项目目录下的 .env 文件,添加您的 API 密钥:
OPENAI_API_KEY=your_openai_api_key ELEVENLABS_API_KEY=your_elevenlabs_api_key
- 请将
your_openai_api_key
和your_elevenlabs_api_key
替换为您的实际 API 密钥。
- 请将
-
编辑名为 caption_generator.py 的文件,设置您所需的字体路径,指定目录和字体名称。
- Linux 的字体路径在:
"/usr/share/fonts"
- Windows 的字体路径在:
C:\Windows\Fonts
- Linux 的字体路径在:
-
运行 autovideo.py 脚本,生成的视频会保存在同一文件夹中:
- Windows:
python main.py
- Linux:
python3 main.py
- Windows:
-
根据提示输入故事提示词并生成视频。
故障排除
- 如果遇到缺少依赖项的错误,请确保已安装所需的 Python 包:
pip install -r requirements.txt
- 如果遇到与 FFmpeg 相关的错误,请确保其已安装在系统中并且在系统的 PATH 中可用。
修改代码生成俳句和蜜蜂趣闻视频
该项目允许用户通过修改代码以生成特定主题的视频,例如俳句和蜜蜂相关趣闻。用户可以更改提示、模型、文本覆盖、背景颜色和位置等内容。
-
示例提示
- 对于俳句相关内容,可以输入类似以下的提示:
Create a haiku about nature
- 关于蜜蜂的趣闻,可以输入类似以下的提示:
Tell me 5 interesting facts about bees
- 对于俳句相关内容,可以输入类似以下的提示:
-
更改模型
若要更改模型,可在 openai.Completion.create() 函数中替换 engine 参数。例如,使用 text-curie-002 模型:
response = openai.Completion.create( engine="text-curie-002", prompt=prompt, max_tokens=400, n=1, stop=None, temperature=0.7, )
-
更改图像停留时间
若要更改每个图像的停留时间,修改 create_video() 函数中的 set_duration() 参数。例如,将每张图像的停留时间设置为 5 秒:
image_clips = [mpy.ImageClip(img).set_duration(5) for img in image_filenames]
-
更改图像数量
若要更改图像数量,更新 extract_image_prompts() 函数中的 num_prompts 参数。例如,生成 6 张图像:
def extract_image_prompts(story, num_prompts=5):
-
更改旁白使用的语音
若要更改旁白使用的语音,修改 generate_voiceover() 函数。在 requests.post() 调用中使用所需的语音 ID。例如,要使用不同的语音,替换现有的语音 ID:
response = requests.post("https://api.elevenlabs.io/v1/text-to-speech/NEW_VOICE_ID", headers=headers, json=data)
通过这些步骤,用户可以根据自己的需求修改代码以生成主题为俳句或蜜蜂趣闻的视频。请注意 API 的使用限制,尤其是在处理较长的文本生成时,建议调整 max_tokens 参数以控制生成文本的长度,并避免超出 API 限制。