ManiFlow Policy INN RoboTwin Notes
June 29, 2026 ยท View on GitHub
This repository is a local working copy based mainly on:
https://github.com/geyan21/ManiFlow_Policy
Most framework code, RoboTwin integration, dataset loading, workspace scripts, model components, and training/evaluation entry points are copied from the upstream ManiFlow repository. Local changes are focused on adding and testing the INN variants while keeping the original ManiFlow variants available.
Code Source
- Upstream project:
geyan21/ManiFlow_Policy - Main local workspace:
ManiFlow/ - Training/evaluation launcher:
scripts/train_eval_robotwin.sh - RoboTwin assets and third-party code:
third_party/RoboTwin1.0/
The local INN code is separated by name so it can be run side by side with the original ManiFlow policies.
Local INN Naming
The original ManiFlow policy names are kept unchanged:
- 2D image policy:
maniflow_image_timm_policy_robotwin - 3D point cloud policy:
maniflow_pointcloud_policy_robotwin
The local INN policy names are:
- 2D image INN policy:
inn_image_timm_policy_robotwin - 3D point cloud INN policy:
inn_pointcloud_policy_robotwin
The main INN-specific code paths are:
ManiFlow/maniflow/policy/inn_image_policy.pyManiFlow/maniflow/policy/inn_pointcloud_policy.pyManiFlow/maniflow/model/diffusion/ditx_inn.pyManiFlow/maniflow/config/inn_image_timm_policy_robotwin.yamlManiFlow/maniflow/config/inn_pointcloud_policy_robotwin.yaml
RoboTwin Training/Evaluation Launcher
General format:
bash scripts/train_eval_robotwin.sh <alg_name> <task_name> <addition_info> <seed> <gpu_id>
Arguments:
<alg_name>: policy/config name, without.yaml<task_name>: RoboTwin task name with_imageor_pointcloudsuffix<addition_info>: experiment tag written into the output directory name<seed>: random seed<gpu_id>: visible GPU id
Outputs are saved under:
ManiFlow/data/outputs/<task>-<alg_name>-<addition_info>_seed<seed>/
The script trains first and then runs evaluation automatically when eval=True.
Original ManiFlow RoboTwin Commands
These commands run the upstream ManiFlow policies copied from the original project.
2D Image ManiFlow
bash scripts/train_eval_robotwin.sh \
maniflow_image_timm_policy_robotwin \
pick_apple_messy_image \
0901 \
0 \
4
3D Point Cloud ManiFlow
For 3D point cloud tasks, setting time_c to zeros in ditx_inn.py is recommended, as this configuration yields better performance.
bash scripts/train_eval_robotwin.sh \
maniflow_pointcloud_policy_robotwin \
pick_apple_messy_pointcloud \
0901 \
0 \
5
INN RoboTwin Commands
These commands run the local INN variants. The task names stay the same as the
original RoboTwin task names; only the policy/config name changes from
maniflow_* to inn_*.
2D Image INN
bash scripts/train_eval_robotwin.sh \
inn_image_timm_policy_robotwin \
pick_apple_messy_image \
0901_inn \
0 \
4
3D Point Cloud INN
bash scripts/train_eval_robotwin.sh \
inn_pointcloud_policy_robotwin \
pick_apple_messy_pointcloud \
0901_inn \
0 \
5
Example with full arguments:
# Original 2D ManiFlow
bash scripts/train_eval_robotwin.sh maniflow_image_timm_policy_robotwin pick_apple_messy_image 0901 0 4
# INN 2D image
bash scripts/train_eval_robotwin.sh inn_image_timm_policy_robotwin pick_apple_messy_image 0901_inn 0 4
# Original 3D ManiFlow
bash scripts/train_eval_robotwin.sh maniflow_pointcloud_policy_robotwin pick_apple_messy_pointcloud 0901 0 5
# INN 3D point cloud
bash scripts/train_eval_robotwin.sh inn_pointcloud_policy_robotwin pick_apple_messy_pointcloud 0901_inn 0 5
Current INN Behavior
For INN policies, scripts/train_eval_robotwin.sh sets:
policy.num_inference_steps=1
for evaluation when alg_name is one of:
inn_image_timm_policy_robotwininn_pointcloud_policy_robotwin
This keeps the INN evaluation path separated from the original ManiFlow multi-step inference setting.