LingBot-World 2.0源码结构全解读:wan目录如何把Wan2.2改造成因果世界模型
【免费下载链接】lingbot-world-v2Infinite Worlds with Versatile Interactions项目地址https://gitcode.com/gh_mirrors/li/lingbot-world-v2点击查看免费下载LingBot-World 2.0LingBot-World-Infinity是一款可无限交互的世界模型。本文带你逐层拆解它的wan/源码目录看懂它如何把原生的Wan2.2视频生成模型改造成一个支持KV-Cache 因果推理、可实时驱动 720p 视频的交互式世界模型。无需大量代码跟着 5 个子目录 1 个推理入口走一遍即可。一张图看懂 LingBot-World 2.0 交互世界模型LingBot-World 2.0 相比上一代有四大升级无界交互时长输出质量不随时间衰减、快速响应蒸馏出实时版本可驱动 720p60fps、多样交互元素攻击、射箭、施法、射击等动作 文本事件、智能体框架pilot / director 双 agent 协同。它建立在Wan2.2之上但核心差异只有一个词从双向生成变成因果生成。这也是整个wan/目录改造的灵魂所在。wan 目录源码地图5 个子目录 1 个推理入口打开仓库wan/是全部改造的载体。先建立一张地图后面每一节都会深入其中一块lingbot-world-v2/ ├── generate.py # 推理入口参数解析 分布式初始化 ├── run_fast.sh # 8 卡一键启动脚本 └── wan/ ├── __init__.py # 对外导出 WanI2VCausal ├── image2video.py # 推理管线WanI2VCausal核心调度 ├── configs/ # 模型配置A14B、共享配置 ├── modules/ # 模型主干因果版 / 快速版 / VAE / T5 / 注意力 ├── distributed/ # 多卡FSDP 切分 Ulysses 序列并行 └── utils/ # 相机 Plücker 嵌入、flow-matching 调度器各子目录职责如下配合文件链接可直达源码子目录职责关键文件configs/定义 14B 模型维度与推理超参wan_i2v_A14B.py、shared_config.pymodules/因果/快速 DiT 主干、VAE、T5model_causal.py、model_fast.py、vae2_1.pydistributed/多卡 FSDP 序列并行因果前向fsdp.py、sequence_parallel.pyutils/相机条件、flow-matching 调度cam_utils.py、fm_solvers_unipc.py模型规格定义在 wan/configs/wan_i2v_A14B.pydim5120、num_heads40、num_layers40、patch_size(1,2,2)、vae_stride(4,8,8)。注意这里有两个检查点子文件夹fast_checkpointtransformers快速版与causal_checkpointtransformer_causal因果版——这是双模型变体的伏笔后面会讲。改造①把双向注意力换成因果 KV-Cache 推理原生 Wan2.2 用双向自注意力一次性处理整段视频所有帧互相可见质量高但无法边生成边交互也无法扩展到无限时长。LingBot-World 2.0 的破局点在 wan/modules/model_causal.py 的SelfAttention_KVCache以及快速版 model_fast.py 的CausalWanSelfAttention。它把普通注意力替换成带 KV-Cache 的滚动注意力视频按chunk默认 3~4 个 latent 帧切块逐块生成每块只处理自己的 token但把历史帧的 K/V 存进缓存供后续块复用这样新帧只看过去、不看未来形成因果自回归生成自然支持无限交互。推理总调度在 wan/image2video.py 的generate()它按infer_mode分发到_generate_causal_fastL424 起或_generate_causal_pretrainL730 起两者共享同一套逐 chunk 去噪 回写 KV 缓存的主循环。改造②滚动 KV 缓存窗口——local_attn_size 与 sink_size无限时长意味着 KV 缓存会无限增长内存必然爆炸。LingBot-World 2.0 用两个参数把它控制在固定大小逻辑在 wan/modules/model_causal.pylocal_attn_size默认 -1滑动窗口大小单位是帧。当缓存超过窗口时最旧的 token 被驱逐整体左移只保留最近 N 帧显存恒定。sink_size注意力汇聚帧无论怎么滚动始终保留最前面的 N 帧。这借鉴了Attention Sink思想——开头的关键帧作为锚点保证长程一致性。配合 generate.py 的--local_attn_size 18 --sink_size 6模型用固定的 18 帧窗口 6 帧锚点就能稳定输出远超窗口长度的视频。这正是 README 里无界交互时长的工程来源。快速版的 KV 更新发生在每个 chunk 去噪完成后先用 4 步得到干净 latent再额外跑一次 t0 的前向把这段干净特征写进缓存见 image2video.py 的回写逻辑下一块生成时即可看到它。改造③因果 RoPE 定位——让模型知道自己在第几帧逐块生成时模型每次只见到一小段但它需要知道这段在完整时间轴上的真实位置否则位置编码会错位。解法在 wan/modules/model_causal.py 的rope_apply(..., start_framecurrent_start_frame)快速版对应 causal_rope_apply。每次前向都传入当前块的起始帧偏移current_start_frame把旋转位置编码RoPE平移到正确位置。一句话RoPE 负责我在第几帧KV-Cache 负责我记得前面发生了什么二者共同支撑因果推理。改造④相机/动作条件注入——Plücker 嵌入如何驱动世界世界模型必须听话跟随相机移动、响应 WASD 动作。条件信号由 wan/utils/cam_utils.py 生成读取poses.npy相机-世界矩阵与intrinsics.npy相机内参get_plucker_embeddings为每个像素算出射线起点与方向拼成6 维 Plücker 嵌入cam_utils.py该嵌入在 DiT 中经相机 MLP 注入并在每个 Transformer 块里通过AdaLN 调制cam_scale/cam_shift见 model_causal.py改变特征。这样一段相机轨迹就能指挥世界如何展开。仓库examples/里每个样本都配了poses.npy、intrinsics.npy、wasd_action.npy正是这套条件的输入。上图是examples/00的起始帧第一人称驾驭飞龙飞向哥特城堡配文examples/00/prompt.txt描述风声掠过骑手双手、城堡逐渐靠近——正是相机条件 文本事件共同驱动的交互场景。examples/01则展示纯运镜在薄雾中对巨石阵做缓慢环绕全景无角色动作、只有相机轨迹说明模型能把单一相机路径稳定延展为长镜头。两种推理模式causal_fast 与 causal_pretrain 怎么选infer_mode决定用哪个模型、哪种采样image2video.py模式模型类采样适用场景causal_fast默认WanModelFast每块4 步、无 CFG实时720p 交互延迟敏感causal_pretrainWanModelCausal每块40 步 CFG追求更高单帧质量快速版用蒸馏模型源自 Self-Forcing 思路配合 KV 窗口滚动主打快因果预训练版用完整 CFGcond / uncond 各一套 KV 缓存见 image2video.py主打稳。两者都通过 wan/image2video.py 的generate()统一调度调用方无感知。上图是 run_fast.sh 默认的examples/03起始帧湖畔孤树也是官方推荐的快速上手样本。多卡加速FSDP 切分 Ulysses 序列并行14B 主干 长序列单卡吃不消LingBot-World 2.0 用两条正交的并行策略FSDP 参数切分把 T5 与 DiT 的权重分片到各卡见 wan/distributed/fsdp.py 的shard_modelUlysses 序列并行把 DiT 的超长序列沿时间维度切到多卡注意力内做 all-to-all 通信。因果版专用前向是 sequence_parallel.py 的sp_dit_forward_causal/sp_attn_forward_causal由 image2video.py 在启用--ulysses_size时动态替换到各块。--ulysses_size必须等于卡数且能整除num_headsgenerate.py 有强校验。最快启动步骤一条命令跑通 LingBot-World 2.0前置安装 PyTorch≥2.4、flash-attn与 requirements.txt并从 HuggingFace / ModelScope 下载lingbot-world-v2-14b-causal-fast权重。克隆仓库git clone https://gitcode.com/gh_mirrors/li/lingbot-world-v2 cd lingbot-world-v28 卡一键启动run_fast.shbash run_fast.sh lingbot-world-v2-14b-causal-fast 361它等价于用 generate.py 的run_causal拉起WanI2VCausal默认 480×832、--local_attn_size 18 --sink_size 6、--ulysses_size 8。想换样本把--image指向examples/XX/image.jpg、--action_path指向examples/XX即可prompt建议参考各examples/XX/prompt.txt。小贴士WanI2VCausal提供 prewarm()在计时前跑一次空前向可把首次生成的约 7 秒 CUDA 预热开销移出正式窗口且输出逐比特一致——做实时延迟优化时值得启用。关键文件速查表文件一句话定位wan/image2video.py推理总调度WanI2VCausal分块循环 KV 回写 双模式分发wan/modules/model_causal.py因果主干KV 注意力、因果 RoPE、相机注入wan/modules/model_fast.py快速蒸馏主干4 步采样 窗口滚动wan/modules/vae2_1.pyWan2.1 VAE负责像素↔latent 编解码wan/utils/cam_utils.pyPlücker 嵌入、相对位姿、内参变换wan/configs/wan_i2v_A14B.py14B 维度与两个检查点子文件夹配置wan/distributed/sequence_parallel.pyUlysses 因果序列并行前向generate.py推理入口参数、分布式、保存小结wan 目录的改造本质把 Wan2.2 变成因果世界模型LingBot-World 2.0 只做对了几件对的事KV-Cache 滚动注意力实现因果自回归、窗口 锚点把显存锁死、因果 RoPE保住时间定位、Plücker 相机条件让世界可交互、蒸馏 4 步换来实时、FSDP Ulysses撑起多卡。读懂 wan/modules/model_causal.py 与 wan/image2video.py 这两个文件你就抓住了整个wan/目录的骨架。赞分享【免费下载链接】lingbot-world-v2Infinite Worlds with Versatile Interactions项目地址https://gitcode.com/gh_mirrors/li/lingbot-world-v2点击查看免费下载相关推荐YuriKey开发者指南如何贡献代码和参与项目开发YuriKey开发者指南如何贡献代码和参与项目开发 YuriKey是一个系统级模块旨在帮助用户轻松获取Strong Integrity。本指南将详细介绍如何从40步到4步LingBot-World 2.0实时推理蒸馏causal_fast原理与关键代码解读从40步到4步LingBot World 2.0实时推理蒸馏causal_fast原理与关键代码解读 LingBot World 2.0LingBotProxySQL 项目架构全景剖析目录结构、线程模型与构建系统源码级解读ProxySQL 项目架构全景剖析目录结构、线程模型与构建系统源码级解读 文档说明 本文以仓库内 doc/ai generated/architecture后端数据库负载均衡创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

个人微信API接口开发教程:如何将微信消息转发给自己的Python程序?

个人微信API接口开发教程:如何将微信消息转发给自己的Python程序?

微信消息转发到Python程序,核心是把微信消息从客户端转到服务端处理。转发不是"复制粘贴"那么简单,要解决消息捕获、格式解析、程序对接、实时性保证四个问题。教程按步骤讲——先配置回调,再解析消息,再对接Python程序…

2026/10/11 20:36:23 阅读更多 →
EMS物料追溯怎样落到项目记录

EMS物料追溯怎样落到项目记录

EMS项目的物料追溯需要连接哪些信息? 物料追溯需要把设计清单、采购与接收记录、投料状态及交付产品关联起来,而不只是保存一份采购单。记录应能够说明某种物料依据哪个版本、经何种确认进入了哪一批产品。具体追溯深度由项目要求确定,文件数…

2026/10/11 20:36:23 阅读更多 →
用Visio画DFD数据流程图:从符号选型到分层平衡的避坑指南

用Visio画DFD数据流程图:从符号选型到分层平衡的避坑指南

简介:一份系统讲解使用Visio绘制数据流程图(DFD)的教学课件,主要面向计算机及相关专业的学生、软件开发初学者,以及需要在课程设计或项目中绘制系统流程图的读者。内容以Visio 2003为例,从软件的安装环节讲…

2026/10/11 20:36:23 阅读更多 →

最新新闻

PgQue 监控实战:5 个必须告警的队列健康指标 + 如何揪出卡住的消费者

PgQue 监控实战:5 个必须告警的队列健康指标 + 如何揪出卡住的消费者

【免费下载链接】PgQue PgQue – Zero-bloat Postgres queue built on top of on battle-proven Skypes PgQ. One SQL file to install, pg_cron to tick https://pgque.dev 项目地址: https://gitcode.com/gh_mirrors/pg/PgQue 点击查看 免费下载 PgQue 是一个零膨…

2026/10/11 22:49:35 阅读更多 →
农行银企直联全链路实战:从密钥申请到转账对账的Java避坑指南

农行银企直联全链路实战:从密钥申请到转账对账的Java避坑指南

简介:这份资源面向使用 Java 对接农业银行银企直联的开发者,聚焦企业财务系统与银行系统之间的电子数据交换场景,帮助解决转账、余额查询、支付等业务自动化处理中的接口开发与安全控制问题。压缩包共 20 个文件,约 23KB&#xff…

2026/10/11 22:49:35 阅读更多 →
从需求到建库:工厂物资管理数据库系统设计实战

从需求到建库:工厂物资管理数据库系统设计实战

简介:《工厂物资管理数据库系统》是一份面向高校数据库课程设计、毕业设计及物资管理项目初学者的完整设计报告。文档围绕工厂物资采购、入库、领用、库存盘点与报废处理全流程,按设计任务说明、需求分析、概念模型设计、逻辑模型设计、物理模型设计和数…

2026/10/11 22:49:35 阅读更多 →
Java实现人体姿态识别与动作评分:ONNX Runtime与DTW实战指南

Java实现人体姿态识别与动作评分:ONNX Runtime与DTW实战指南

简介:基于Java的人体姿态识别与动作评分系统,以动态捕捉画面中人体关键点为入口,在双侧肩、肘、髋、膝八个关节处同步生成角度数据,并融合姿态评估、实时语音提示和训练后多维分析,可服务于运动康复、体态矫正等专业场…

2026/10/11 22:49:35 阅读更多 →
从多智能体到提示注入:awesome-ai-agent-papers 5大核心分类全解析

从多智能体到提示注入:awesome-ai-agent-papers 5大核心分类全解析

【免费下载链接】awesome-ai-agent-papers A curated collection of AI agent research papers released in 2026, covering agent engineering, memory, evaluation, workflows, and autonomous systems. 项目地址: https://gitcode.com/gh_mirrors/aw/awesome-ai-…

2026/10/11 22:49:35 阅读更多 →
Vscode插件推荐——智能切换输入法(Smart IME)与TaoToken配置实践

Vscode插件推荐——智能切换输入法(Smart IME)与TaoToken配置实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 22:48:31 阅读更多 →

日新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:54 阅读更多 →