FilmAgent是一个多代理协作系统,用于3D虚拟空间中的端到端电影自动化。FilmAgent模拟关键的工作人员角色——导演、编剧、演员和电影摄影师,并在沙盒环境中集成高效的人工工作流程。
[](https://github.com/HITsz-TMG/FilmAgent/blob/main/pics/intro.png =700x)
按照传统的电影制片厂工作流程,我们将整个电影自动化过程分为三个连续的阶段:创意开发、编剧和电影摄影,并应用Critique-Correct-Verify、辩论-评判协作策略。在这些阶段之后,剧本中的每一行都指定了演员的位置、他们的动作、他们的对话和选择的镜头。
1、安装包
conda create -n filmagent python==3.9.18
conda activate filmagent
pip install -r env.txt
2、在Filmagent目录中创建Script
和Logs
文件夹,然后将绝对路径名’/path/to/'替换为您的特定路径,并修改main.py
中的topic
。修改LLMCaller.py
中的api_key和组织编号。运行以下命令以获取代理协作创建的电影脚本:
cd /path/to/FilmAgent
conda activate filmagent
python main.py
3、我们使用ChatTTS为脚本中的角色提供语音表演。您需要将ChatTTS存储库下载到TTS
目录。然后将绝对路径名’/path/to/'替换为tts_main.py
中您的特定路径。运行以下命令来部署语音合成服务:
cd /path/to/TTS
conda create -n tts python==3.9.18
conda activate tts
pip install -r tts_env.txt
python tts_main.py
4、修改GenerateAudio.py
中的Script_path``actos_path
、Audio_path
和url
。运行以下命令获取音频文件:
cd /path/to/FilmAgent
conda activate filmagent
python GenerateAudio.py
5、我们现在有了script.json
,actors_profile.json
,和一系列的.wav
音频文件。接下来,我们需要在Unity中执行脚本。
Unity编辑器的推荐版本是Unity2022.3.14f1c1。您需要下载我们提供的Unity项目文件。解压后,打开TheBigBang\Assets\TheBigBang\Manyrooms.unity
。然后将所有的绝对路径名 /path/to/
替换为您在TheBigBang\Assets\Scirpts\StartVideo.cs
和TheBigBang\Assets\Scirpts\ScriptExecute.cs
特定的位置。
在unity界面中按 ctrl+R
重新编译,单击“Play”进入游戏模式,然后按 E
开始执行脚本(有时音频文件加载缓慢,因此您可能需要播放2到3次才能正常运行)。
6、对于我们实验部分中15个主题的测试,我们提供了三个.py
文件:test_full.py
(完整的FilmAgent框架,利用多代理协作。),test_no_interation.py
(单个代理负责规划、编剧和电影摄影,代表我们的FilmAgent框架,没有多代理协作算法。)和test_cot.py
(单个代理生成思想链原理和完整的脚本)。
下表记录了多代理协作之前(左)和之后(右)的脚本和相机设置的一些比较,以及讨论过程的摘录。
案例#1和#2分别来自脚本创作#2和#3阶段的Critique-Correct-Verify方法。案例#3和#4来自电影摄影中的辩论-评判方法。
20250122_1310_Sora.mp4
虽然Sora对不同的位置、角色和镜头表现出很强的适应性,但它在一致性和叙事表达方面遇到了困难。相比之下,FilmAgent需要预先构建的3D空间,但它可以制作连贯、符合物理要求的视频,并具有强大的讲故事能力。
2025-02-02(日)