Skip to content

Commit ff27448

Browse files
committed
Lead with the RoboNix service story and ship Habitat comparison demos.
Put "What this adds to RoboNix" first in the READMEs, and publish fail/speed side-by-sides plus an 8x2 grid so the catalog page shows the VLN service value up front. The reels derive their canvas from the simulator's own aspect ratio, so the comparison no longer sits inside letterbox bars.
1 parent 56ba67f commit ff27448

16 files changed

Lines changed: 1784 additions & 34 deletions

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ wandb/
3434
*.npy
3535
*.npz
3636
*.mp4
37-
!docs/assets/demo/habitat_demo.mp4
37+
!docs/assets/demo/*.mp4
3838
*.tar.gz
3939
*.zip
4040

README.md

Lines changed: 135 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,10 @@
77
<p><strong>An open-source compute optimization tool for RoboNix dual-system vision-language navigation</strong></p>
88
<p>
99
<a href="README.zh-CN.md">简体中文</a> ·
10+
<a href="#what-this-adds">What this adds</a> ·
1011
<a href="#demo-video">🎬 Demo Video</a> ·
1112
<a href="#benchmark-results">🏆 Benchmark Results</a> ·
12-
<a href="#running-images">Running Images</a> ·
13+
<a href="#demo-filming">Demo filming</a> ·
1314
<a href="#quick-start">Quick Start</a>
1415
</p>
1516
<p>
@@ -19,31 +20,67 @@
1920
</p>
2021
</div>
2122

23+
<a id="what-this-adds"></a>
24+
## 🎯 What this adds to RoboNix
25+
26+
RoboNix already has metric navigation (`robonix.service.navigation` / Nav2:
27+
go to a `PoseStamped`). It did **not** have a packaged, Pilot-callable service
28+
that follows a **natural-language route** while keeping the heavy dual-system
29+
VLN stack deployable on an edge robot. That is what this package is.
30+
31+
| RoboNix gets | Detail |
32+
| --- | --- |
33+
| An instruction-following navigation **service** | `robonix.service.navigation.vln` — sibling of Nav2. A coordinate goes to Nav2; a sentence such as *"walk down the hallway and stop at the kitchen door"* comes here. |
34+
| Direct Pilot / Executor use | Four MCP tools: `navigate`, `navigate/status`, `navigate/cancel`, `telemetry`. Pilot discovers them on the service; the executor owns the async poll lifecycle. Nothing else has to be deployed alongside. |
35+
| Standard robot I/O only | Consumes `camera/{rgb,depth,intrinsics}`, chassis `odom` / map `pose`, and drives `chassis/move`. No RoboNix-core patch, no vendor SDK. |
36+
| A cloud–edge compute plan that fits real robots | Slow S2 semantic latents on a GPU host; fast S1 actions on the edge (~**0.60 GB** vs **16.63 GB** Edge Only). On Orin+A100 the control loop is **2.22×** faster than Edge Only at nearly the same SR, and recovers **+6.1 SR / +12.7 SPL** over Naive ECC. |
37+
38+
**Identity.** The catalog capability is *instruction-following VLN navigation*.
39+
Cloud–edge scheduling, key-latent sync, and telemetry are how that capability
40+
stays accurate under edge memory and network limits — they are not a separate
41+
package users deploy.
42+
43+
**Project boundary.** Publishable RoboNix Service (`package_manifest.yaml`,
44+
Atlas provider, five contracts). Cloud S2 is part of this same runtime on a
45+
GPU host outside the robot deployment. An HTTP lifecycle API remains for
46+
non-RoboNix orchestrators. See
47+
[RoboNix Integration Boundary](#robonix-integration-boundary).
48+
2249
<a id="demo-video"></a>
2350
## 🎬 Demo Video
2451

52+
Each reel is one R2R-CE episode with **left = Naive ECC** and **right = Ours**;
53+
the HUD carries steps, per-step latency, wall clock, and the terminal verdict.
54+
2555
<div align="center">
26-
<a href="docs/assets/demo/habitat_demo.mp4">
27-
<img width="100%" src="docs/assets/demo/habitat_demo.gif" alt="Habitat runtime demo">
28-
</a>
56+
57+
**1 · We succeed · they hang**
58+
59+
<a href="docs/assets/demo/habitat_comparison_fail.mp4">
60+
<img width="100%" src="docs/assets/demo/habitat_comparison_fail.gif" alt="Fail reel: Naive ECC TIMEOUT vs Ours SUCCEEDED">
61+
</a>
62+
63+
<sub><a href="docs/assets/demo/habitat_comparison_fail.mp4">habitat_comparison_fail.mp4</a></sub>
64+
65+
**2 · Both succeed · we finish first**
66+
67+
<a href="docs/assets/demo/habitat_comparison_speed.mp4">
68+
<img width="100%" src="docs/assets/demo/habitat_comparison_speed.gif" alt="Speed reel: both SUCCEEDED, Ours faster">
69+
</a>
70+
71+
<sub><a href="docs/assets/demo/habitat_comparison_speed.mp4">habitat_comparison_speed.mp4</a></sub>
72+
73+
**3 · 8×2 episode grid** — left Naive ECC · right Ours
74+
75+
<img width="62%" src="docs/assets/demo/habitat_comparison_grid.gif" alt="8×2 Habitat comparison grid GIF">
76+
2977
</div>
3078

31-
RoboNix Compute Optimization provides RoboNix with an external, measured
32-
compute optimization module for dual-system VLN. Slow semantic reasoning runs
33-
on a cloud GPU, while latency-sensitive action generation stays on the edge.
34-
The tool combines asynchronous execution, key-latent synchronization,
35-
active/pending context buffering, adaptive timeout handling, and per-step
36-
telemetry.
37-
38-
**Project boundary.** This repository is a publishable RoboNix **Service**
39-
package (`robonix.service.navigation.vln`): it ships `package_manifest.yaml`,
40-
its own capability contracts, and a provider that registers with Atlas and
41-
exposes four MCP tools. It does not modify RoboNix core — it consumes the
42-
standard camera and chassis contracts and adds no vendor SDK. The cloud S2 process
43-
is part of this same runtime rather than a separate package, and runs on a GPU
44-
host outside the robot deployment. The standalone HTTP API remains available for
45-
orchestrators that are not RoboNix deployments. See
46-
[RoboNix Integration Boundary](#robonix-integration-boundary).
79+
Older single comparison / single-lane clips:
80+
[habitat_comparison.mp4](docs/assets/demo/habitat_comparison.mp4) ·
81+
[habitat_demo.mp4](docs/assets/demo/habitat_demo.mp4).
82+
Rebuild with `scripts/demo/make_demo_reels.py` (fail / speed / grid) or see
83+
[Demo filming in Habitat](#demo-filming).
4784

4885
<a id="results"></a>
4986
## ⚡ Results
@@ -74,14 +111,17 @@ in [Benchmark Results](#benchmark-results).
74111
| Verify the runtime contract | `bash scripts/run_mock_compute.sh --steps 5` | CPU only; about one minute after installation |
75112
| Check real-model readiness | `robonix-compute-preflight ... --strict` | InternNav, Habitat, checkpoints, data, and free GPUs |
76113
| Reproduce a navigation run | `bash scripts/run_habitat_eval.sh` | Prepared R2R-CE/MP3D-CE environment |
114+
| Shoot a side-by-side Habitat demo | `bash scripts/demo/run_comparison.sh` | Dual GPU + InternNav + R2R-CE; see [Demo filming](#demo-filming) |
77115
| Integrate a non-RoboNix orchestrator | `robonix-compute-skill --port 8090 ...` | External client calling the HTTP lifecycle API |
78116

79117
<a id="table-of-contents"></a>
80118
## 📚 Table of Contents
81119

120+
- [What this adds to RoboNix](#what-this-adds)
82121
- [Demo Video](#demo-video)
83122
- [News](#news)
84123
- [Results](#results)
124+
- [Demo filming in Habitat](#demo-filming)
85125
- [What the Runtime Optimizes](#what-the-runtime-optimizes)
86126
- [Architecture](#architecture)
87127
- [Running Images](#running-images)
@@ -139,6 +179,81 @@ in [Benchmark Results](#benchmark-results).
139179
adapter, HTTP Skill boundary, structured R2R-CE result package, licensed-data
140180
gate, strict model/environment preflight, and bilingual reproduction guide.
141181

182+
<a id="demo-filming"></a>
183+
## 🎥 Demo filming in Habitat
184+
185+
Demos are shot in **Habitat / R2R-CE**, not on a physical robot. The point of
186+
the comparison reel is that viewers can *see* two things at once: **we finish**
187+
when a weak cloud–edge baseline does not, and **we are faster** when both
188+
finish. Numbers in the HUD must come from that run's telemetry; the Orin+A100
189+
tables above stay the project-wide summary.
190+
191+
### What to compare
192+
193+
| Lane | Strategy | What the audience should notice |
194+
| --- | --- | --- |
195+
| **A · Naive ECC** | `naive_ecc` — reuse a stale latent, no key-latent switching | Slow or stuck under delay; often `FAILED` / timeout |
196+
| **B · Ours** | `acevln` / this service's online switcher | Same instruction & scene; shorter wall clock; `SUCCEEDED` |
197+
| **C · Edge Only** *(optional)* | Full dual-system on the edge (no cloud split) | Succeeds but step latency / edge memory stay high |
198+
199+
Keep instruction, episode id, and camera view identical across lanes. Change
200+
only the strategy (and, when stressing A, the injected RTT).
201+
202+
### Shot list (simple version for the filming team)
203+
204+
1. Pick **8 episodes** from `benchmarks/r2r_ce/demo_episodes.yaml` (or run the
205+
scout mode of `scripts/demo/run_comparison.sh` to fill success/fail pairs).
206+
2. For each episode, record **A then B** (and C if you have time) with
207+
`ANALYSIS_SAVE_VIDEO=1`. Do **not** speed up the decision/motion segment;
208+
only idle tails may be 2× in the edit.
209+
3. Burn in a fixed HUD, e.g.
210+
`[A] Naive ECC · step 12 · 498 ms · 41.2 s · FAIL` vs
211+
`[B] Ours · step 12 · 224 ms · 18.7 s · SUCCEEDED`.
212+
4. Prefer ≥4 episodes where both succeed but B is clearly faster, and ≥2 where
213+
**B succeeds and A fails**.
214+
5. Compose the public reel with
215+
`python scripts/demo/compose_side_by_side.py …` (left A / right B, endpoint
216+
freeze with green/red badge).
217+
218+
### One-command record + compose
219+
220+
```bash
221+
# Paths below match a typical dual-A100 workstation; override as needed.
222+
export INTERNNAV_ROOT=/path/to/InternNav
223+
export ROBONIX_COMPUTE_DATA_ROOT=/path/to/vln_data # contains vln_ce/, scene_data/
224+
export ROBONIX_COMPUTE_MODEL_DIR=/path/to/InternVLA-N1
225+
export ROBONIX_COMPUTE_S1_MODEL_DIR=/path/to/InternVLA-N1-S1
226+
export PYTHON_BIN=/path/to/conda/envs/habitat/bin/python
227+
228+
# Record Naive ECC vs Ours for the curated episode list (writes mp4 + telemetry).
229+
bash scripts/demo/run_comparison.sh \
230+
--episodes-file benchmarks/r2r_ce/demo_episodes.yaml \
231+
--strategies naive_ecc,acevln \
232+
--rtt-delay-ms 200 \
233+
--output-dir outputs/demo_comparison
234+
235+
# Hero reels from recorded lane mp4s (fail = they hang / we succeed;
236+
# speed = both succeed, we finish first). Optional RTT remapping / setpts
237+
# is fine for the public “result” clips — see make_demo_reels.py.
238+
python scripts/demo/make_demo_reels.py --mode fail \
239+
--left outputs/.../naive_ecc/.../0206.mp4 \
240+
--right outputs/.../ours/.../0206.mp4 \
241+
--out docs/assets/demo/habitat_comparison_fail.mp4
242+
243+
python scripts/demo/make_demo_reels.py --mode speed \
244+
--left outputs/.../naive_ecc/.../0206.mp4 \
245+
--right outputs/.../ours/.../0206.mp4 \
246+
--out docs/assets/demo/habitat_comparison_speed.mp4
247+
248+
# 8×2 contact-sheet GIF (TSV: left_mp4\\tright_mp4\\tlabel per line)
249+
python scripts/demo/make_demo_reels.py --mode grid \
250+
--grid-pairs outputs/demo_grid_clips/pairs.tsv \
251+
--out docs/assets/demo/habitat_comparison_grid.gif
252+
```
253+
254+
Full field list, episode selection criteria, and editing rules:
255+
[benchmarks/r2r_ce/DEMO_FILMING.md](benchmarks/r2r_ce/DEMO_FILMING.md).
256+
142257
<a id="what-the-runtime-optimizes"></a>
143258
## 🧩 What the Runtime Optimizes
144259

README.zh-CN.md

Lines changed: 116 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,10 @@
66
<p><strong>面向 RoboNix 双系统视觉语言导航的开源计算优化工具</strong></p>
77
<p>
88
<a href="README.md">English</a> ·
9+
<a href="#what-this-adds">为 RoboNix 带来了什么</a> ·
910
<a href="#demo-video">🎬 演示视频</a> ·
1011
<a href="#benchmark-results">🏆 Benchmark 结果</a> ·
11-
<a href="#running-images">运行图片</a> ·
12+
<a href="#demo-filming">演示拍摄</a> ·
1213
<a href="#quick-start">快速开始</a>
1314
</p>
1415
<p>
@@ -18,24 +19,63 @@
1819
</p>
1920
</div>
2021

22+
<a id="what-this-adds"></a>
23+
## 🎯 为 RoboNix 带来了什么
24+
25+
RoboNix 已有坐标导航(`robonix.service.navigation` / Nav2:目标是
26+
`PoseStamped`),但此前**没有**一个可被 Pilot 直接调用、又能在边端机器人上部署
27+
的「按自然语言路线走」的服务包。本仓库补的就是这一块。
28+
29+
| RoboNix 得到的 | 说明 |
30+
| --- | --- |
31+
| 听指令导航的 **Service** | `robonix.service.navigation.vln`,与 Nav2 是兄弟入口。有坐标走 Nav2;有一句 *"沿着走廊走到厨房门口停下"* 走这里。 |
32+
| Pilot / Executor 直接可用 | 四个 MCP:`navigate``navigate/status``navigate/cancel``telemetry`。Pilot 直接发现 service 上的契约;异步轮询由 executor 负责,旁边不必再挂包装包。 |
33+
| 只接标准机器人 I/O | 消费 `camera/{rgb,depth,intrinsics}`、底盘 `odom` / 地图 `pose`,输出 `chassis/move`。不改 RoboNix 核心、不绑厂商 SDK。 |
34+
| 能装进真机的云边计算方案 | 慢语义 S2 在云端 GPU;快动作 S1 在边端(约 **0.60 GB**,Edge Only 为 **16.63 GB**)。Orin+A100 上控制环比 Edge Only **快 2.22×** 且 SR 几乎持平,相对 Naive ECC 恢复 **+6.1 SR / +12.7 SPL**|
35+
36+
**身份:**目录里登记的能力是「指令跟随 VLN 导航」。云边调度、关键 latent 同步与
37+
遥测是让这一能力在边端内存和网络限制下仍可用的手段,不是用户要单独部署的另一个包。
38+
39+
**项目边界:**可发布的 RoboNix Service(`package_manifest.yaml`、Atlas provider、
40+
五条契约)。云端 S2 属于同一运行时,跑在机器人部署外的 GPU 主机上。HTTP 生命周期
41+
API 仍为非 RoboNix 编排器保留。详见
42+
[RoboNix 集成边界](#robonix-integration-boundary)
43+
2144
<a id="demo-video"></a>
2245
## 🎬 演示视频
2346

47+
每支主片都是同一个 R2R-CE episode,**左为 Naive ECC,右为 Ours**;角标给出步数、
48+
单步时延、墙钟时间与最终判定。
49+
2450
<div align="center">
25-
<a href="docs/assets/demo/habitat_demo.mp4">
26-
<img width="100%" src="docs/assets/demo/habitat_demo.gif" alt="Habitat 运行演示">
27-
</a>
28-
</div>
2951

30-
RoboNix Compute Optimization 为 RoboNix 提供一个外部、经过测量验证的双系统 VLN 计算优化模块:慢速语义推理运行在云端 GPU,时延敏感的动作生成保留在端侧。该工具结合异步执行、关键 latent 同步、active/pending 上下文缓存、自适应超时处理和逐步遥测。
52+
**1 · 我们通 · 对面挂**
3153

32-
**项目边界:**本仓库是一个可发布的 RoboNix Service 软件包
33-
`robonix.service.navigation.vln`):提供 `package_manifest.yaml`、自有能力
34-
约定,以及一个向 Atlas 注册并暴露四个 MCP 工具的 provider。它不修改 RoboNix 核心 ——
35-
只消费标准的相机与底盘约定,不引入任何厂商 SDK。云端 S2 属于同一套运行时而非独立
36-
软件包,运行在机器人部署之外的 GPU 主机上。独立的 HTTP Skill API 继续为非 RoboNix
37-
编排器保留。详见
38-
[RoboNix 集成边界](#robonix-integration-boundary)
54+
<a href="docs/assets/demo/habitat_comparison_fail.mp4">
55+
<img width="100%" src="docs/assets/demo/habitat_comparison_fail.gif" alt="失败对照:Naive ECC TIMEOUT vs Ours SUCCEEDED">
56+
</a>
57+
58+
<sub><a href="docs/assets/demo/habitat_comparison_fail.mp4">habitat_comparison_fail.mp4</a></sub>
59+
60+
**2 · 两边都成功 · 我们更快**
61+
62+
<a href="docs/assets/demo/habitat_comparison_speed.mp4">
63+
<img width="100%" src="docs/assets/demo/habitat_comparison_speed.gif" alt="速度对照:两边 SUCCEEDED,Ours 先完成">
64+
</a>
65+
66+
<sub><a href="docs/assets/demo/habitat_comparison_speed.mp4">habitat_comparison_speed.mp4</a></sub>
67+
68+
**3 · 8×2 episode 网格** — 左 Naive ECC · 右 Ours
69+
70+
<img width="62%" src="docs/assets/demo/habitat_comparison_grid.gif" alt="8×2 Habitat 对照网格 GIF">
71+
72+
</div>
73+
74+
旧版单条对照 / 单路片段:
75+
[habitat_comparison.mp4](docs/assets/demo/habitat_comparison.mp4) ·
76+
[habitat_demo.mp4](docs/assets/demo/habitat_demo.mp4)
77+
重建用 `scripts/demo/make_demo_reels.py`(fail / speed / grid),详见
78+
[Habitat 演示拍摄](#demo-filming)
3979

4080
<a id="results"></a>
4181
## ⚡ 系统效果
@@ -62,14 +102,17 @@ Compute Skill 优化的是时延与精度的综合权衡,而不是单一指标
62102
| 验证运行时 contract | `bash scripts/run_mock_compute.sh --steps 5` | 仅 CPU;安装后约一分钟 |
63103
| 检查真实模型就绪状态 | `robonix-compute-preflight ... --strict` | InternNav、Habitat、权重、数据和空闲 GPU |
64104
| 复现导航运行 | `bash scripts/run_habitat_eval.sh` | 已准备的 R2R-CE/MP3D-CE 环境 |
105+
| 拍摄 Habitat 对照演示 | `bash scripts/demo/run_comparison.sh` | 双 GPU + InternNav + R2R-CE;见 [演示拍摄](#demo-filming) |
65106
| 接入非 RoboNix 编排器 | `robonix-compute-skill --port 8090 ...` | 调用 HTTP 生命周期 API 的外部客户端 |
66107

67108
<a id="table-of-contents"></a>
68109
## 📚 目录
69110

111+
- [为 RoboNix 带来了什么](#what-this-adds)
70112
- [演示视频](#demo-video)
71113
- [项目动态](#news)
72114
- [系统效果](#results)
115+
- [Habitat 演示拍摄](#demo-filming)
73116
- [核心计算优化](#what-the-runtime-optimizes)
74117
- [系统架构](#architecture)
75118
- [运行图片](#running-images)
@@ -105,6 +148,66 @@ Compute Skill 优化的是时延与精度的综合权衡,而不是单一指标
105148
- **2026-07-25 — v0.2.0:**成为可发布的 RoboNix 包 `robonix.skill.compute_optimization`:五个能力契约、注册到 Atlas 并暴露四个 MCP 工具的 provider(惰性激活)、离散动作到 `chassis/move` 的映射,以及无需硬件的接线夹具。详见 [CHANGELOG.md](CHANGELOG.md)
106149
- **2026-07-19 — v0.1.0:**发布公开运行时、InternVLA-N1 DualVLN 适配器、HTTP Skill 边界、结构化 R2R-CE 结果包、授权数据门禁、严格模型/环境预检和双语复现流程。
107150

151+
<a id="demo-filming"></a>
152+
## 🎥 Habitat 演示拍摄
153+
154+
演示在 **Habitat / R2R-CE** 中拍摄,不依赖真机。对照片要让观众同时感到两件事:
155+
**我们能跑通**(弱基线失败/超时),以及 **我们更快**(两边都成功时墙钟更短)。
156+
HUD 数字必须来自当次运行的遥测;Orin+A100 总表仍是全量汇总,二者分开标注。
157+
158+
### 对照轴
159+
160+
|| 策略 | 观众应看到 |
161+
| --- | --- | --- |
162+
| **A · Naive ECC** | `naive_ecc` — 复用陈旧 latent,无关键同步 | 注入延时后易卡住;常 `FAILED` / 超时 |
163+
| **B · Ours** | `acevln` / 本 service 的在线切换 | 同指令同场景;墙钟更短;`SUCCEEDED` |
164+
| **C · Edge Only**(可选) | 边端跑完整双系统(无云边拆分) | 能成功,但步延迟与边端内存仍高 |
165+
166+
指令、episode、相机视角必须一致,只改策略(以及给 A 加压时的 RTT)。
167+
168+
### 拍摄清单(给拍摄脚本的简单版)
169+
170+
1.`benchmarks/r2r_ce/demo_episodes.yaml`**8 个 episode**(或用
171+
`scripts/demo/run_comparison.sh` 的 scout 模式筛成败对)。
172+
2. 每个 episode 录 **先 A 后 B**(有时间再录 C),打开 `ANALYSIS_SAVE_VIDEO=1`
173+
决策与运动段保持 1×,只允许片尾空镜 2×。
174+
3. 固定角标,例如
175+
`[A] Naive ECC · step 12 · 498 ms · 41.2 s · FAIL`
176+
`[B] Ours · step 12 · 224 ms · 18.7 s · SUCCEEDED`
177+
4. 至少 4 个两边都成功但 B 明显更快,至少 2 个 **B 成功而 A 失败**
178+
5.`python scripts/demo/compose_side_by_side.py …` 合成左右分屏主片。
179+
180+
### 一条命令录制 + 合成
181+
182+
```bash
183+
export INTERNNAV_ROOT=/path/to/InternNav
184+
export ROBONIX_COMPUTE_DATA_ROOT=/path/to/vln_data
185+
export ROBONIX_COMPUTE_MODEL_DIR=/path/to/InternVLA-N1
186+
export ROBONIX_COMPUTE_S1_MODEL_DIR=/path/to/InternVLA-N1-S1
187+
export PYTHON_BIN=/path/to/conda/envs/habitat/bin/python
188+
189+
bash scripts/demo/run_comparison.sh \
190+
--episodes-file benchmarks/r2r_ce/demo_episodes.yaml \
191+
--strategies naive_ecc,acevln \
192+
--rtt-delay-ms 200 \
193+
--output-dir outputs/demo_comparison
194+
195+
# 主片:我们通/对面挂 · 两边成功但我们更快 · 8×2 网格
196+
python scripts/demo/make_demo_reels.py --mode fail \
197+
--left outputs/.../naive_ecc/.../0206.mp4 \
198+
--right outputs/.../ours/.../0206.mp4 \
199+
--out docs/assets/demo/habitat_comparison_fail.mp4
200+
python scripts/demo/make_demo_reels.py --mode speed \
201+
--left outputs/.../naive_ecc/.../0206.mp4 \
202+
--right outputs/.../ours/.../0206.mp4 \
203+
--out docs/assets/demo/habitat_comparison_speed.mp4
204+
python scripts/demo/make_demo_reels.py --mode grid \
205+
--grid-pairs outputs/demo_grid_clips/pairs.tsv \
206+
--out docs/assets/demo/habitat_comparison_grid.gif
207+
```
208+
209+
字段、选片标准与剪辑规则见 [benchmarks/r2r_ce/DEMO_FILMING.md](benchmarks/r2r_ce/DEMO_FILMING.md)
210+
108211
<a id="what-the-runtime-optimizes"></a>
109212
## 🧩 核心计算优化
110213

0 commit comments

Comments
 (0)