Image-Text-to-Text
Transformers
Safetensors
English
gamescaling
game-agent
embodied-agent
keyboard-mouse
continued-pretraining
qwen3_5
Instructions to use THUSI-Lab/GameScaling with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use THUSI-Lab/GameScaling with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("image-text-to-text", model="THUSI-Lab/GameScaling")# pip install -U transformers accelerate # Load model directly from transformers import AutoModel model = AutoModel.from_pretrained("THUSI-Lab/GameScaling", device_map="auto") - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use THUSI-Lab/GameScaling with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "THUSI-Lab/GameScaling" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "THUSI-Lab/GameScaling", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker
docker model run hf.co/THUSI-Lab/GameScaling
- SGLang
How to use THUSI-Lab/GameScaling with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "THUSI-Lab/GameScaling" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "THUSI-Lab/GameScaling", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "THUSI-Lab/GameScaling" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "THUSI-Lab/GameScaling", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }' - Docker Model Runner
How to use THUSI-Lab/GameScaling with Docker Model Runner:
docker model run hf.co/THUSI-Lab/GameScaling
Model card: fix table and message block layout
Browse files
README.md
CHANGED
|
@@ -180,10 +180,10 @@ The mouse line, copied verbatim:
|
|
| 180 |
- Mouse X Y -> aim / rotate the camera (X>0 right, Y>0 down)
|
| 181 |
```
|
| 182 |
|
| 183 |
-
|
| 184 |
-
|
| 185 |
-
|
| 186 |
-
|
| 187 |
|
| 188 |
### Complete example: Doom Battle-1
|
| 189 |
|
|
@@ -301,7 +301,7 @@ The assistant turn is always prefilled, and the request continues it
|
|
| 301 |
| Mode | Prefill | What the model does |
|
| 302 |
|---|---|---|
|
| 303 |
| `PolicyConfig()` (default, `reasoning=True`) | `<think>` | Decides whether and how long to think, closes `</think>`, then outputs the action |
|
| 304 |
-
| `PolicyConfig(reasoning=False)` | `<think>\n\n</think>` | Thinking is closed and empty; the model outputs
|
| 305 |
|
| 306 |
`<think>\n\n</think>` is exactly how the chat template renders a turn without reasoning, so the
|
| 307 |
no-reasoning mode stays in the training format. Do not send the request without a prefill.
|
|
@@ -311,11 +311,11 @@ Each user turn is the text `current game screen` followed by the frame. Multi-tu
|
|
| 311 |
|
| 312 |
```text
|
| 313 |
system system prompt (§2)
|
| 314 |
-
user "current game screen" + frame t-k
|
| 315 |
-
assistant action taken at t-k
|
| 316 |
...
|
| 317 |
user "current game screen" + current frame
|
| 318 |
-
assistant "<think>"
|
| 319 |
```
|
| 320 |
|
| 321 |
Past turns keep only the action (`history_think=0`). A turn that failed to parse is stored as an
|
|
|
|
| 180 |
- Mouse X Y -> aim / rotate the camera (X>0 right, Y>0 down)
|
| 181 |
```
|
| 182 |
|
| 183 |
+
**Note.** Lines such as `**Game Rules**`, `**Output Format**` and
|
| 184 |
+
`**Explanation**` are plain-text section headers that the model saw in training. They are part
|
| 185 |
+
of the prompt, not Markdown formatting: send them to the model unchanged, including the
|
| 186 |
+
asterisks.
|
| 187 |
|
| 188 |
### Complete example: Doom Battle-1
|
| 189 |
|
|
|
|
| 301 |
| Mode | Prefill | What the model does |
|
| 302 |
|---|---|---|
|
| 303 |
| `PolicyConfig()` (default, `reasoning=True`) | `<think>` | Decides whether and how long to think, closes `</think>`, then outputs the action |
|
| 304 |
+
| `PolicyConfig(reasoning=False)` | `<think>\n\n</think>` | Thinking is closed and empty; the model outputs the action chunk directly |
|
| 305 |
|
| 306 |
`<think>\n\n</think>` is exactly how the chat template renders a turn without reasoning, so the
|
| 307 |
no-reasoning mode stays in the training format. Do not send the request without a prefill.
|
|
|
|
| 311 |
|
| 312 |
```text
|
| 313 |
system system prompt (§2)
|
| 314 |
+
user "current game screen" + frame t-k ┐ last history_len turns
|
| 315 |
+
assistant action taken at t-k, no reasoning ┘ (default 5)
|
| 316 |
...
|
| 317 |
user "current game screen" + current frame
|
| 318 |
+
assistant prefill: "<think>" or "<think>\n\n</think>"
|
| 319 |
```
|
| 320 |
|
| 321 |
Past turns keep only the action (`history_think=0`). A turn that failed to parse is stored as an
|