LingBot-World 2.0 是基于 Wan2.2 的交互式世界模型:输入首帧、文本与相机轨迹,按块续写视频,核心升级包括因果长时生成、蒸馏快速版、更多动作和双智能体。项目于 2026 年 7 月 9 日公开报告、推理代码及 14B causal-fast 权重,登上 Trending、获 910 星。“720p/60fps”“无限交互”的吸引力与研究代码、完整系统间的落差,共同推高了热度。
1. 开源代码能直接跑成实时游戏吗?
不能等同。HN 讨论指出它更像 GPU 密集的研究发布;仓库也明确不开放部署代码。公开的 generate.py 是离线分块推理,论文所称 720p/60fps 是官方完整系统能力,并非默认命令的端到端保证。应先生成 MP4 验证权重、输入和 CUDA,再参考 SGLang 或 flashdreams 自建流服务,不要把 Reactor 网页前端误认为开源后端。
python generate.py --task i2v-A14B --size '480*832' \
--ckpt_dir ./lingbot-world-v2-14b-causal-fast \
--image examples/03/image.jpg --action_path examples/03 \
--frame_num 81 --local_attn_size 18 --sink_size 6 \
--save_file output/smoke.mp4 --prompt 'A calm lakeside, camera moves forward'
2. 为什么照抄 Quick Start 会报错或爆显存?
README 主示例是 8 进程,同时启用 DiT/T5 FSDP 与 ulysses_size=8。源码要求 Ulysses 数等于进程数,单进程则禁止两个 FSDP 开关;14B 权重、torch>=2.4.0 和 FlashAttention 还必须匹配 CUDA。多卡应保持三项并行配置一致。单卡只能删除 --dit_fsdp --t5_fsdp --ulysses_size 8,再加 --offload_model true 做功能验证,仍可能显存不足。别直接把八卡脚本改成一个进程。
3. “无限世界”为何仍受帧数和动作文件限制?
“无限”指因果续写的交互时域设计,不代表单次调用占用无限显存。程序以 chunk_size=4 推理,并用局部 KV cache 滚动上下文;frame_num 应为 4n+1。causal-fast 还强制读取 poses.npy 和 intrinsics.npy,输出会被轨迹长度截断。示例虽含 action.npy、wasd_action.npy,当前路径却把 wasd_action 设为 None,只改 WASD 文件不会生效。自定义轨迹先验证:
from pathlib import Path
import numpy as np
p=Path('examples/03'); P=np.load(p/'poses.npy'); K=np.load(p/'intrinsics.npy')
assert P.shape[1:]==(4,4) and K.shape==(len(P),4)
print(min(361, ((len(P)-1)//4)*4+1))
local_attn_size=18 是滚动窗口,sink_size=6 是开头锚点,都不是帧数。PR #3 还发现逐层 .item() 会触发 GPU→CPU 同步,使速度受主机负载影响;该 PR 已关闭但未合并,测试时须记录 commit 和 CPU 负载。
4. 收到生成事件,在线演示为何仍黑屏?
Issue #2 报告能收到 generation_started、chunk_complete,但入站码率为 0、FPS 未定义,并跨设备和网络复现。事件只证明控制通道可用;零媒体流更指向 WebRTC 传输或服务端转发,而非提示词或本地 CUDA。应在浏览器 WebRTC 统计中检查 inbound-rtp 的 bytesReceived、framesDecoded 是否增长;若离线命令能产出 MP4,就把候选类型、浏览器版本和时间戳提交给演示维护者。
最后不要用尚未发布的模型名排错:目前只有 14B causal-fast;14B 预训练/双向版与 1.3B 仍在 TODO。许可证为 CC BY-NC-SA 4.0,仅限非商业用途,衍生作品须以相同许可分享。