AI自动视频生成器
一个由AI驱动的故事视频生成器, 接受用户输入的故事提示,使用OpenAI的GPT-3生成故事, 使用OpenAI的DALL-E生成图像,利用ElevenLabs API添加配音,然后将这些元素组合成一个视频。
待办事项:新项目可以在https://github.com/BB31420/loveListLace 找到
入门指南
这些指令将帮助你在本地机器上设置项目。
必备条件
- Python 3.6或更高版本
- Pip(Python包管理器)
- FFmpeg(一种用于视频处理的命令行程序)
创建虚拟环境
这有助于将包分开,避免冲突。在运行代码之前,使用venv并安装所需的软件包。代码需要使用0.28版本的openai, 这在requirements.txt中有指定。
- 使用命令行导航到项目目录
cd
ls -la
- Windows:
python -m venv .venv
然后Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
- Linux:
python3 -m venv .venv
- 激活虚拟环境
- Windows:
venv\Scripts\Activate.ps1
- Linux:
source .venv/bin/activate
- 完成运行main.py后关闭虚拟环境,使用这些包时需要保持虚拟环境激活
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官方网站下载安装程序
- 安装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的字体可以在此找到:
- 通过导航到保存有脚本和.env文件的目录运行autovideo.py 脚本。输出会生成在同一文件夹:
- Windows:
python main.py
- Linux: 'python3 main.py'
- 按提示输入故事提示并生成视频。
疑难解答
- 如果遇到与缺少依赖相关的错误,请确保通过运行
pip install -r requirements.txt
安装了所需的Python包 - 如果遇到与FFmpeg相关的错误,请确保其已安装在你的系统上并在系统的PATH中可用。
- https://platform.openai.com/account/api-keys
- https://beta.elevenlabs.io/subscription 单击用户图标然后选择个人资料
- 保管好你的密钥
说明书:修改代码以生成俳句和蜜蜂事实
这个说明书将指导你修改提供的代码,以专注于生成俳句和关于蜜蜂的事实视频。我们将涵盖更改提示、模型、文本覆盖、背景颜色和定位。
- 示例提示
- 对于俳句,输入与之相关的提示:
创建一个关于自然的俳句
- 对于蜜蜂事实,使用与蜜蜂相关的提示:
告诉我5个关于蜜蜂的有趣事实
- 更改模型
要更改模型,请在openai.Completion.create()函数中替换引擎参数。例如,使用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()调用中更新使用的URL与所需的声音ID。例如,要使用不同的声音,请替换现有的声音ID为新的(例如,"21m00Tcm4TlvDq8ikWAM","yoZ06aMxZJJ28mfd3POQ",或"AZnzlk1XvdvUeBnXmlld"):
response = requests.post("https://api.elevenlabs.io/v1/text-to-speech/NEW_VOICE_ID", headers=headers, json=data)
现在,你可以根据提供的指令修改代码,以生成俳句或关于蜜蜂事实的视频,以及每张图片的持续时间、图片的数量和配音使用的声音。记得根据需求自定义提示、模型、文本覆盖、背景颜色和定位、图片持续时间、图片数量以及配音。
此外,请注意你的API使用的令牌限额,超出这些限额可能会导致额外费用。你可以调整openai.Completion.create()函数中的max_tokens参数,以控制生成文本的长度。考虑设置较低的值,以维持在API限额内,特别是在生成较长的故事或事实时。