Instructions to use FACEONG/pretrain_mot_subrot with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Diffusers
How to use FACEONG/pretrain_mot_subrot with Diffusers:
pip install -U diffusers transformers accelerate
import torch from diffusers import DiffusionPipeline # switch to "mps" for apple devices pipe = DiffusionPipeline.from_pretrained("FACEONG/pretrain_mot_subrot", torch_dtype=torch.bfloat16, device_map="cuda") prompt = "Astronaut in a jungle, cold color palette, muted colors, detailed, 8k" image = pipe(prompt).images[0] - Notebooks
- Google Colab
- Kaggle
MoT VTA 预训练权重 — cumulative step 5100(减法 rot6d 链)
WAN 视频扩散 DiT → MoT 三专家(video 3072,暖启动自 robbyant/lingbot-va-base;action / tactile 各 1024)。
视频·触觉·动作联合去噪(diffusion-forcing,tactile foresight),use_mot=True。
- 代码分支:
neoVTA@symdiff-mot-proprio-state(必须用该分支或其后代加载;含 MoT loader / 减法 delta / proprio-state 开关) - 训练数据:纯真机多机器人池(~949 repo / ~65.5 万段,7 种 embodiment,无 UMI)
- 训练量:累计
5100 optim steps × 有效 batch 192 ≈ 98 万样本(1.5 epoch) - val(纯真机 22878 段):total 0.2689 / action 0.0129 / latent 0.1795 / tactile 0.0765(持续改善中的中途 ckpt)
- LocalTactile / proprio-state 分支本 ckpt 未训(开关关;posttrain 可零初始化开启)
动作空间(重要)
20 维双臂 EE [pos3 + rot6d + grip1] × 2,pi0.5 horizon-16 delta:
| 分量 | 表示 |
|---|---|
| pose(0-8 / 10-18) | 逐元素减法 delta:action[anchor+k] − state[anchor](pi05_rot6d_relative_delta=False,非几何相对旋转) |
| gripper(9 / 19) | 绝对指令值 |
| 单臂机器人 | 占左臂 10 维,右臂槽置零 + mask |
文件
transformer/
config.json # MoT 结构(is_mot / expert dims)
diffusion_pytorch_model.safetensors # 14G bf16
meta.json # 累计步号 / seed / 续训来源
norm_stat_subrot.json # ★ action 归一化 q01/q99(全局)
norm_stat_per_robot_subrot.json # ★ per-robot action norm(训练实际按机器人命中)
norm_stat_state_subrot.json # (可选)绝对 state q01/q99——开 use_proprio_state 才需要
norm_stat_state_per_robot_subrot.json # (可选)per-robot state norm
加载
import torch
from wan_va.modules.utils import load_mot_checkpoint # neoVTA 分支代码
model = load_mot_checkpoint("<本仓库>/transformer", torch_dtype=torch.bfloat16)
# posttrain 开 state 通路:load_mot_checkpoint(..., use_proprio_state=True)
# (零初始化分支,首步与原模型逐位一致;需自算任务的 state norm)
注意:这是自定义 MoT 类,不能用
AutoModel.from_pretrained一行加载,必须配分支代码。
⚠️ 必读
- norm 必须配套:直接推理/评测本权重时用本仓库的 subrot norm(训练精确域 all-horizon delta 分位数);posttrain 建议自算任务 norm(同域计算:delta 任务在 all-horizon delta 域,gripper 绝对域),且 server 必须带 posttrain 用的那份。
- 推理需 VAE + text encoder + tokenizer:直接取 robbyant/lingbot-va-base 的
vae/、text_encoder/、tokenizer/(本模型未改动它们)。 - serve 时
action_per_frame必须 = latent stride×4(30fps 数据 = 12,不是 16);pose 反算用 per-frame 链式 anchor;fsid 修复保持默认开。 - 触觉输入 = episode-first global 残差 latent(相对源 episode 首帧的 RGB 残差 → 128×128 → Wan VAE → 48ch 8×8),编码脚本在分支
script/encode_tactile_latent.py。
- Downloads last month
- -
Model tree for FACEONG/pretrain_mot_subrot
Base model
robbyant/lingbot-va-base