multimodalart HF Staff commited on
Commit
94fce9e
Β·
verified Β·
1 Parent(s): ec34106

Document live backend architecture, add sdk_version 6.12.0

Browse files
Files changed (1) hide show
  1. README.md +25 -8
README.md CHANGED
@@ -4,24 +4,41 @@ emoji: 🌍
4
  colorFrom: gray
5
  colorTo: red
6
  sdk: gradio
 
7
  app_file: app.py
8
  pinned: false
9
- short_description: Interactive action-conditioned world rollout from one image
10
  python_version: "3.10"
11
  startup_duration_timeout: 40m
12
  ---
13
 
14
  # 🌍 ABot-World β€” Interactive World Rollout
15
 
16
- Turn a single image into a navigable world. Provide a first-frame image, describe
17
- the scene, and choose an action (WASD to move / IJKL to look). The model
18
- autoregressively rolls out an action-conditioned video of the world.
 
 
19
 
20
  - **Model:** [`acvlab/ABot-World-0-5B-LF`](https://huggingface.co/acvlab/ABot-World-0-5B-LF) (built on Wan2.2-TI2V-5B)
21
  - **Code:** [amap-cvlab/ABot-World](https://github.com/amap-cvlab/ABot-World)
22
  - **Project:** [ABot-World](https://amap-cvlab.github.io/ABot-World/)
23
 
24
- This Space adapts the upstream real-time interactive web client into a request/response
25
- rollout suitable for ZeroGPU: instead of live keyboard streaming, you pick one action
26
- to hold and a rollout length, and receive a video. Inference is causal / block-wise,
27
- matching the upstream `CausalInferencePipeline`.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4
  colorFrom: gray
5
  colorTo: red
6
  sdk: gradio
7
+ sdk_version: 6.12.0
8
  app_file: app.py
9
  pinned: false
10
+ short_description: Live interactive world rollout from an image
11
  python_version: "3.10"
12
  startup_duration_timeout: 40m
13
  ---
14
 
15
  # 🌍 ABot-World β€” Interactive World Rollout
16
 
17
+ Upload a single starting image and steer a **live** navigable world in real time.
18
+ Provide a first-frame image (image-to-video seed), describe the scene, and drive
19
+ the world with **WASD** (move & turn) / **IJKL** (look & pan). The model
20
+ autoregressively rolls out an action-conditioned world and streams decoded frames
21
+ straight to your browser.
22
 
23
  - **Model:** [`acvlab/ABot-World-0-5B-LF`](https://huggingface.co/acvlab/ABot-World-0-5B-LF) (built on Wan2.2-TI2V-5B)
24
  - **Code:** [amap-cvlab/ABot-World](https://github.com/amap-cvlab/ABot-World)
25
  - **Project:** [ABot-World](https://amap-cvlab.github.io/ABot-World/)
26
 
27
+ ## Architecture
28
+
29
+ This Space runs a proper live backend/infrastructure (in the spirit of
30
+ [`Overworld/waypoint-1-5`](https://huggingface.co/spaces/Overworld/waypoint-1-5)):
31
+
32
+ - **`gradio.Server`** exposes ZeroGPU-friendly `/start_game` and `/stop_game`
33
+ API endpoints plus a raw **WebSocket** (`/ws`) that streams binary JPEG frames
34
+ and receives live control input β€” no Gradio UI polling.
35
+ - A custom **`index.html`** front-end handles **image upload** (the i2v seed β€”
36
+ no video upload needed), live keyboard steering, and a clean HUD.
37
+ - Every endpoint is keyed by a per-client `session_id`, so concurrent players
38
+ never share seed images, frame queues, or status messages.
39
+ - **ZeroGPU quota** is billed to the *requesting user*: the HF iframe's
40
+ `x-api-token` / `x-ip-token` is forwarded by the Gradio JS client and the
41
+ incoming request context is propagated into the GPU worker thread, so
42
+ `@spaces.GPU` consumes the visitor's own quota rather than the Space owner's.
43
+
44
+ Inference is causal / block-wise, matching the upstream `CausalInferencePipeline`.