WorldMem项目部署记录
一、环境与工具准备
- 安装Anaconda/Miniconda:官网下载默认路径安装,自动配置环境变量。
- 安装Git:下载Git for Windows,勾选「Git Bash Here」选项(确保Git Bash支持
wget命令,后续统一用Git Bash操作)。 - 创建Conda环境:打开Anaconda Prompt,执行以下命令创建专属环境(避免依赖冲突):
Terminal window conda create -n worldmem python=3.10 -y - 激活Conda环境(Anaconda Prompt中):
Terminal window conda activate worldmem - 安装带CUDA的PyTorch(核心依赖,GPU加速必备):
Terminal window pip uninstall torch torchvision torchaudio -y # 卸载可能存在的CPU版本pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 - 验证CUDA生效:执行以下命令,输出
True说明GPU适配成功:Terminal window python -c "import torch; print(torch.cuda.is_available())" - Git克隆项目代码:打开Git Bash(右键桌面→「Git Bash Here」),执行克隆命令:
克隆后项目路径:
Terminal window cd /c/Users/13062/Desktop # 切换到桌面目录git clone https://github.com/zeqixiao/worldmem-video-demo.git # 克隆项目C:\Users\13062\Desktop\worldmem-video-demo\WorldMem(后续所有操作均基于此路径)。
二、Git Bash配置Conda环境(统一终端+激活环境)
提示:所有后续操作(安装依赖、下载资源、执行脚本)均需在
worldmem环境中进行,Git Bash默认不支持Conda激活,必须先配置,否则依赖安装、命令执行都会失效。
- 配置Git Bash加载Conda脚本:
- 右键项目文件夹(
worldmem-video-demo\WorldMem)→「Git Bash Here」,打开Git Bash终端; - 执行以下命令创建并编辑配置文件:
Terminal window touch ~/.bashrc # 创建Conda配置文件nano ~/.bashrc # 打开编辑器 - 在编辑器中粘贴以下内容(Conda脚本默认路径,若Anaconda安装路径修改需对应调整):
Terminal window source /c/Users/13062/anaconda3/etc/profile.d/conda.sh - 保存退出:按
Ctrl+O→回车确认文件名→按Ctrl+X退出编辑器。
- 右键项目文件夹(
- 生效配置并激活
worldmem环境:- 执行以下命令加载配置:
Terminal window source ~/.bashrc - 激活
worldmem环境(终端开头显示(worldmem)即成功):Terminal window conda activate worldmem - 验证环境:执行
python --version,输出Python 3.10.x(与创建环境时指定版本一致),说明环境配置完成。
- 执行以下命令加载配置:
三、项目依赖安装(Conda环境内统一执行)
前置条件:已在Git Bash中激活
worldmem环境,所有依赖均安装在该环境内,不影响系统Python。
-
切换到项目根目录:
Terminal window cd /c/Users/13062/Desktop/worldmem-video-demo/WorldMem -
安装项目依赖:
- 先安装
requirements.txt(若项目包含该文件,一次性安装基础依赖):
Terminal window pip install -r requirements.txt- 按报错补充缺失依赖(运行项目时若提示「ModuleNotFoundError」,逐个安装以下核心依赖):
Terminal window pip install hydra-core lpips gradio wandb # 核心功能依赖pip install torchvision pillow numpy scipy opencv-python # 数据处理依赖
- 先安装
-
验证依赖安装:执行
pip list | grep gradio(或其他依赖名),能看到对应版本即安装成功。
四、本地资源准备+代码修改
1. 镜像站下载案例文件(case1.npz~case4.npz)
在Git Bash(已激活worldmem环境)中执行以下命令,创建目录并下载文件:
# 1. 创建案例文件目录(项目根目录下)mkdir -p assets/examples && cd assets/examples# 2. 镜像站下载wget https://hf-mirror.com/yslan/worldmem/resolve/main/assets/examples/case1.npzwget https://hf-mirror.com/yslan/worldmem/resolve/main/assets/examples/case2.npzwget https://hf-mirror.com/yslan/worldmem/resolve/main/assets/examples/case3.npzwget https://hf-mirror.com/yslan/worldmem/resolve/main/assets/examples/case4.npz下载完成后,4个.npz文件存入assets/examples目录,终端显示下载进度条及完成提示。
2. 修改app.py跳过自动下载
打开项目根目录下的app.py文件,找到download_assets_if_needed()函数,修改如下(仅注释原下载逻辑,保留本地检查):
import osimport requestsdef download_assets_if_needed(): asset_dir = "assets/examples" os.makedirs(asset_dir, exist_ok=True) cases = ["case1.npz", "case2.npz", "case3.npz", "case4.npz"] for case in cases: local_path = os.path.join(asset_dir, case) if os.path.exists(local_path): print(f"✅ 本地已找到 {case},跳过下载") continue # 注释原下载逻辑(已手动下载,避免超时) # url = f"https://huggingface.co/spaces/yslan/worldmem/resolve/main/assets/examples/{case}" # resp = requests.get(url, timeout=30) # with open(local_path, "wb") as f: # f.write(resp.content)保存文件即可生效,后续启动项目时会自动跳过下载步骤。
3. 镜像站下载模型权重(diffusion_only.ckpt等3个文件)
在Git Bash中切换到权重目录,执行下载命令(模型权重是核心,必须完整下载):
# 1. 回到项目根目录,创建权重目录cd /c/Users/13062/Desktop/worldmem-video-demo/WorldMemmkdir -p assets/checkpoints && cd assets/checkpoints# 2. 镜像站下载权重文件wget https://hf-mirror.com/zeqixiao/worldmem_checkpoints/resolve/main/diffusion_only.ckptwget https://hf-mirror.com/zeqixiao/worldmem_checkpoints/resolve/main/vae_only.ckptwget https://hf-mirror.com/zeqixiao/worldmem_checkpoints/resolve/main/pose_prediction_model_only.ckpt下载完成后,3个.ckpt文件存入assets/checkpoints目录(总大小约5GB,确保磁盘空间充足)。
4. 修改配置文件路径(指向本地权重)
打开项目根目录下configurations/huggingface.yaml文件,将权重路径改为本地目录(确保项目能找到下载的权重):
diffusion_path: assets/checkpoints/diffusion_only.ckptvae_path: assets/checkpoints/vae_only.ckptpose_prediction_path: assets/checkpoints/pose_prediction_model_only.ckpt保存文件,配置修改完成。
五、首次启动app.py(界面成功,视频生成功能缺失)
- 启动命令(Git Bash中,已激活
worldmem环境,项目根目录下):Terminal window python app.py - 运行现象:
- 终端日志正常输出「✅ 本地已找到 case1.npz」「🚀 初始化设备: cuda」「✅ 所有模型切换到eval模式」;
- 浏览器自动弹出
http://127.0.0.1:7860,成功进入Gradio界面,可选择场景、输入动作序列; - 点击「🎬 Generate!」按钮后,界面卡住无视频输出,终端无额外日志(无报错)。
- 产生问题原因:视频生成依赖
ffmpeg工具进行帧序列转MP4格式,本地未安装ffmpeg,项目无法调用该工具,导致视频生成功能加载失败。 - 关闭项目:按
Ctrl+C终止终端进程,关闭浏览器。
六、ffmpeg下载与安装配置(补全视频生成依赖)
1. 推荐安装路径(Windows系统必看)
-
必须安装在「无中文、无空格」的目录,否则环境变量配置失败,项目无法调用。
-
首选路径:
C:\Program Files\ffmpeg(解压后文件夹命名为ffmpeg,内部包含bin/doc等子目录)。
2. 安装与配置步骤
- 下载ffmpeg:
- 访问ffmpeg官网(https://ffmpeg.org/download.html),选择Windows「Full Build」版本;
- 或通过国内镜像站下载(避免境外超时),下载后得到压缩包(如
ffmpeg-7.0-full_build.7z)。
- 解压安装:用7-Zip等工具将压缩包解压到推荐路径(如
C:\Program Files\ffmpeg)。 - 配置环境变量(关键步骤):
- 右键「此电脑」→「属性」→「高级系统设置」→「环境变量」;
- 在「系统变量」中找到「Path」→「编辑」→「新建」,添加
ffmpeg的bin目录路径(如C:\Program Files\ffmpeg\bin); - 点击「确定」保存,关闭所有Git Bash终端(环境变量需重启终端生效)。
- 验证生效:打开新的Git Bash(自动激活
worldmem环境),执行:终端输出ffmpeg版本信息(如「ffmpeg version 7.0 Copyright (c) 2000-2023」),说明安装配置成功。Terminal window ffmpeg -version
七、重新启动app.py(视频生成加载成功,内存不足失败)
- 启动命令(新打开的Git Bash中,项目根目录下):
Terminal window python app.py - 运行现象:
- 终端日志正常初始化,视频生成组件加载成功(终端显示「ffmpeg相关初始化日志」);
- 加载
diffusion_model权重(3605MB)时,终端卡住,随后输出「Segmentation fault」,进程终止; - 任务管理器显示:CPU内存占用飙升至15.0GB+(总物理内存15.22GB),剩余可用内存不足200MB,触发内存溢出。
- 问题原因:
ffmpeg安装后,视频生成组件初始化增加了内存占用,叠加3.6GB的模型权重加载,16GB物理内存不足以承载,导致段错误。
八、训练脚本执行
- 补充训练依赖(若之前未安装):
Terminal window pip install wandb # 训练日志监控依赖 - 修复训练脚本配置:打开项目根目录下
train_stage_1.sh文件,将algorithm.metrics=[lpips,psnr]改为+algorithm.metrics=[lpips,psnr](适配Hydra配置语法,避免报错)。 - 执行训练脚本(Git Bash中,项目根目录下):
(注:若内存充足,脚本会正常启动训练;若内存不足,会出现与启动app.py类似的内存溢出报错)
Terminal window sh train_stage_1.sh
九、Git Bash环境常用命令速查表
| 操作目的 | 执行命令 |
|---|---|
| 激活Conda环境(Git Bash) | 打开Git Bash自动激活(或conda activate worldmem) |
| 切换到项目根目录 | cd /c/Users/13062/Desktop/worldmem-video-demo/WorldMem |
| 启动项目 | python app.py |
| 执行训练脚本 | sh train_stage_1.sh |
| 安装缺失依赖 | pip install [依赖名](如pip install gradio) |
| 验证CUDA生效 | python -c "import torch; print(torch.cuda.is_available())" |
| 验证ffmpeg生效 | ffmpeg -version |
| 克隆项目代码 | git clone https://github.com/zeqixiao/worldmem-video-demo.git |
| 镜像站下载文件(通用) | wget [镜像站链接](需在对应目录下执行) |
十、核心问题与解决方案汇总(按遇到顺序排列)
| 问题现象 | 根本原因 | 解决方案 |
|---|---|---|
| Git Bash无法激活Conda环境 | Git Bash默认不加载Conda脚本 | 配置.bashrc文件,添加Conda脚本路径,生效后自动激活 |
| 项目依赖安装失败/缺失 | 未在worldmem环境中执行安装命令 | 切换到项目根目录,在激活环境的Git Bash中执行pip install命令 |
| 境外资源下载超时 | GitHub/ Hugging Face境外链接访问不稳定 | 使用镜像站链接下载案例文件和模型权重 |
| 首次启动视频生成功能加载失败 | 未安装ffmpeg,视频格式转换依赖该工具 | 按指定路径安装ffmpeg,配置环境变量并验证生效 |
| 训练脚本Hydra配置报错 | algorithm.metrics参数语法不符合Hydra要求 | 在参数前加+,改为+algorithm.metrics=[lpips,psnr] |
| 重新启动app.py内存溢出 | 16GB物理内存不足以承载模型权重(3.6GB)+视频处理组件 | 扩展虚拟内存(20-40GB)或升级物理内存(≥32GB) |
十一、项目核心用途总结
WorldMem 是一个「基于动作交互的3D世界模拟与长视频生成工具」,核心价值是解决“单张场景图→上下文连贯长视频”的创作痛点,具体功能与场景如下:
- 核心功能:
- 6种预设场景(向日葵平原、沙漠、冰原等),支持任意场景作为初始帧;
- 动作交互(W/A/S/D/Q/E等按键组合),可实现转向、移动、使用物品等操作;
- 长视频生成:连续点击「Generate」扩展视频长度,自动维护场景3D结构、物体位置的一致性(新帧用红框标记);
- 模型训练:通过
train_stage_1.sh脚本训练自定义模型,优化生成效果。
- 应用场景:
- 游戏开发:快速生成开放世界视频片段,无需手动建模动画;
- 虚拟模拟:基于简单指令模拟虚拟环境视角移动与交互;
- 内容创作:为动画、影视领域提供低成本场景扩展工具。
关键注意事项
- 流程逻辑优先级:必须先配置Git Bash的Conda环境,再安装依赖、下载资源——无环境则所有依赖安装、命令执行都会失效,这是最关键的前置步骤。
ffmpeg安装红线:路径必须无中文、无空格,环境变量必须指向bin目录,否则视频生成功能始终加载失败。- 内存是核心瓶颈:16GB物理内存仅能满足基础界面启动,视频生成+模型权重加载需≥32GB物理内存,或扩展20-40GB虚拟内存。
- 终端统一原则:全程使用Git Bash操作,避免切换Anaconda Prompt/CMD导致环境不一致,减少报错概率。
- 资源完整性:案例文件(4个
.npz)和模型权重(3个.ckpt)必须完整下载,缺失任一文件会导致项目启动失败。
文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!














