❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日跟你分享最新的 AI 资讯和开源应用,也会不定期分享自己的想法和开源实例,欢迎关注我哦!
🥦 微信公众号|搜一搜:蚝油菜花 🥦
🚀 快速阅读
功能:根据自然语言指令自动创建真实感和动态的视觉特效视频。
技术:集成了神经场景建模、基于LLM的代码生成和物理模拟技术。
应用:广泛应用于电影、广告、游戏开发、虚拟现实和教育培训等领域。
正文(附运行示例)
AutoVFX 是什么
AutoVFX是由伊利诺伊大学香槟分校研究团队推出的先进物理特效框架,能够根据自然语言指令自动创建真实感和动态的视觉特效(VFX)视频。该框架集成了神经场景建模、基于大型语言模型(LLM)的代码生成和物理模拟技术,实现照片级逼真且物理上合理的视频编辑效果。用户可以直接用自然语言指令控制视频内容的修改和创作。
AutoVFX的主要功能包括3D场景建模、程序生成、VFX模块、物理模拟和渲染与合成。通过这些功能,用户可以轻松创建复杂的特效场景,如模拟爆炸、天气效果、物体变形等。
AutoVFX 的主要功能
- 3D场景建模:从输入视频中提取关键场景属性,包括几何、外观、语义和照明信息。
- 程序生成:用大型语言模型(LLMs)将自然语言编辑指令转换为可执行的程序代码。
- VFX模块:包含预定义的专门函数,用于执行各种编辑任务,如对象插入、移除、材质编辑和物理模拟。
- 物理模拟:支持刚体物理和粒子效果,如烟雾和火焰,实现逼真的动态交互。
- 渲染与合成:用物理基础的渲染引擎(如Blender)生成最终的视频,包括前景对象、背景网格和合成。
AutoVFX 的技术原理
- 神经场景建模:用3D重建和场景理解模型来建立全面的场景模型,编码输入视频中的丰富几何、外观和语义信息。
- LLM-based代码生成:基于大型语言模型(LLMs),如GPT-4,将简单的语言编辑指令转换成程序。
- 物理模拟集成:将场景模型与物理模拟引擎(如Blender)集成,实现物理上合理的交互和动态效果。
- 模块化函数封装:将编辑模块封装成可调用的函数,函数组合形成全面的程序,便于Python解释器执行。
- 渲染技术:用Cycles渲染器进行高质量的物理基础渲染,模拟光的相互作用,包括反射、折射和全局照明。
- 合成管道:提取前景和背景遮罩及基于alpha阈值和遮挡推理的前景内容,计算阴影强度,将阴影和前景内容混合到原始图像中,以产生最终的合成视频。
如何运行 AutoVFX
环境设置
首先,克隆AutoVFX的GitHub仓库并创建环境:
git clone https://github.com/haoyuhsu/autovfx.git
cd autovfx/
conda create -n autovfx python=3.10
conda activate autovfx
安装PyTorch和cudatoolkit:
conda install pytorch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 pytorch-cuda=11.8 -c pytorch -c nvidia
安装其他必要的模块和包:
# 安装Gaussian Splatting子模块
cd sugar/gaussian_splatting/
pip install submodules/diff-gaussian-rasterization
pip install submodules/simple-knn
# 安装分割和跟踪模块
cd ../../tracking
pip install -e .
# 安装其他包
pip install openai objaverse kornia wandb open3d plyfile imageio-ffmpeg einops e3nn pygltflib lpips scann geffnetopen_clip_torch sentence-transformers==2.7.0 geffnet mmcv vedo
下载预训练模型和数据
下载预训练模型和数据:
# 下载预处理数据
cd retrieval
gdown --folder https://drive.google.com/drive/folders/1Lw87MstzbQgEX0iacTm9GpLYK2UE3gNm
# 下载Blender
cd third_parties/Blender
wget https://download.blender.org/release//Blender3.6/blender-3.6.11-linux-x64.tar.xz
tar -xvf blender-3.6.11-linux-x64.tar.xz
rm blender-3.6.11-linux-x64.tar.xz
运行示例
下载预处理的Garden场景数据和预训练模型:
mkdir datasets && cd datasets
gdown --folder https://drive.google.com/drive/folders/1eRdSAqDloGXk04JK60v3io6GHWdomy2N
cd ../
mkdir output && cd output
gdown --folder https://drive.google.com/drive/folders/1KE8LSA_r-3f2LVlTLJ5k4SHENvbwdAfN
运行示例:
export OPENAI_API_KEY=/your/openai_api_key/
export MESHY_API_KEY=/your/meshy_api_key/
SCENE_NAME=garden_large
CUSTOM_TRAJ_NAME=transforms_001
SCENE_SCALE=2.67
BLENDER_CONFIG_NAME=blender_cfg_rigid_body_simulation
python edit_scene.py \
--source_path datasets/${SCENE_NAME} \
--model_path output/${SCENE_NAME}/ \
--gaussians_ckpt_path output/${SCENE_NAME}/coarse/sugarcoarse_3Dgs15000_densityestim02_sdfnorm02/22000.pt \
--custom_traj_name ${CUSTOM_TRAJ_NAME} \
--anchor_frame_idx 0 \
--scene_scale ${SCENE_SCALE} \
--edit_text "Drop 5 basketballs on the table." \
--scene_mesh_path datasets/${SCENE_NAME}/mesh/mesh.obj \
--blender_config_name ${BLENDER_CONFIG_NAME}.json \
--blender_output_dir_name ${BLENDER_CONFIG_NAME} \
--render_type MULTI_VIEW \
--deva_dino_threshold 0.45 \
--is_uv_mesh
资源
- 项目官网:https://haoyuhsu.github.io/autovfx-website
- GitHub 仓库:https://github.com/haoyuhsu/autovfx
- arXiv 技术论文:https://arxiv.org/pdf/2411.02394
- Google Drive:https://drive.google.com/drive/folders/1eRdSAqDloGXk04JK60v3io6GHWdomy2N
❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日跟你分享最新的 AI 资讯和开源应用,也会不定期分享自己的想法和开源实例,欢迎关注我哦!
🥦 微信公众号|搜一搜:蚝油菜花 🥦