Instructions to use ACERobotics/ACE-Brain-0.6-9B with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use ACERobotics/ACE-Brain-0.6-9B with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("image-text-to-text", model="ACERobotics/ACE-Brain-0.6-9B") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] pipe(text=messages)# pip install -U transformers accelerate # Load model directly from transformers import AutoProcessor, AutoModelForMultimodalLM processor = AutoProcessor.from_pretrained("ACERobotics/ACE-Brain-0.6-9B") model = AutoModelForMultimodalLM.from_pretrained("ACERobotics/ACE-Brain-0.6-9B", device_map="auto") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] inputs = processor.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=256) print(processor.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use ACERobotics/ACE-Brain-0.6-9B with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "ACERobotics/ACE-Brain-0.6-9B" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "ACERobotics/ACE-Brain-0.6-9B", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }'Use Docker
docker model run hf.co/ACERobotics/ACE-Brain-0.6-9B
- SGLang
How to use ACERobotics/ACE-Brain-0.6-9B 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 "ACERobotics/ACE-Brain-0.6-9B" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "ACERobotics/ACE-Brain-0.6-9B", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }'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 "ACERobotics/ACE-Brain-0.6-9B" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "ACERobotics/ACE-Brain-0.6-9B", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }' - Docker Model Runner
How to use ACERobotics/ACE-Brain-0.6-9B with Docker Model Runner:
docker model run hf.co/ACERobotics/ACE-Brain-0.6-9B
ACE-Brain-0.6: Scaling Spatial Grounding for Physical Foundation Models
🌐 Project Page | 🤗 Hugging Face | 📔 Technical Report | 🤖 GitHub
Overview
ACE-Brain-0.6-9B is a 9B vision-language model that strengthens spatial grounding for physical foundation models. Given one or more images and a natural-language query, it identifies task-relevant objects, counts instances, resolves spatial relationships, and localizes interaction targets.
Built on Qwen3.5-9B, ACE-Brain-0.6-9B is fine-tuned on approximately 1.5 million training samples. A unified data pipeline converts robot manipulation recordings, egocentric interactions, object and part annotations, and spatial data into verifiable grounding supervision. Training updates the language-model parameters while keeping the vision encoder frozen.
On seven public grounding benchmarks, ACE-Brain-0.6-9B achieves a reported Avg-7 of 75.41, compared with 73.68 for GPT-6 Astra. It exceeds Astra on four of seven benchmarks, with remaining gaps on PixMo-Count, RefSpatial, and PointArena.
Key Features
- Unified grounding interface: Supports points, point lists, bounding boxes, integer counts, and categorical answers (
yes,no, ornone) for target identification, multi-instance perception, spatial grounding, and interaction grounding. - Robot-centered data pipeline: Automatically annotates manipulation recordings and combines them with complementary visual sources to broaden grounding coverage.
- Verifiable supervision: Checks object labels, requires complete instance sets for counting, verifies absent-target questions, and excludes evaluation images and episodes from training.
- Scaling with diverse data: Grounding performance improves across progressively larger and more diverse training releases under a fixed backbone and training recipe.
- Strong robot-scene performance: Achieves 93.42 on RobotGrounding, the team's held-out evaluation set covering referring, counting, absent targets, spatial judgments, and cross-view correspondence.
Performance Highlights
Results below are reported in Table 1 of the technical report. Higher is better; bold marks the best score among the models shown.
| Benchmark | GPT-5.5 | GPT-5.6-sol | GPT-6 Astra | Claude Opus 5.5 | Gemini 4 Argon | ACE-Brain-0.6-9B |
|---|---|---|---|---|---|---|
| Where2Place | 45.25 | 46.23 | 71.10 | 66.44 | 71.20 | 81.44 |
| PixMo-Count | 82.61 | 83.55 | 88.10 | 83.74 | 87.71 | 86.96 |
| RoboSpatial | 59.19 | 64.34 | 69.55 | 73.30 | 80.94 | 76.56 |
| RefSpatial | 60.29 | 54.51 | 80.14 | 71.10 | 51.56 | 71.84 |
| PointArena | 68.02 | 69.76 | 75.36 | 61.20 | 66.40 | 74.13 |
| RoboAfford | 68.04 | 71.45 | 84.94 | 75.10 | 71.48 | 88.14 |
| ShareRobot (affordance) | 38.57 | 36.66 | 46.60 | 40.20 | 29.53 | 48.82 |
| Avg-7 · public benchmarks | 60.28 | 60.93 | 73.68 | 67.30 | 65.55 | 75.41 |
| RobotGrounding · in-house benchmark | 83.96 | 85.18 | 91.10 | 90.89 | 78.51 | 93.42 |
Avg-7 is the unweighted mean of the seven public benchmark scores. RobotGrounding is evaluated separately and is not included in Avg-7. It contains 2,591 questions and reports a macro average over 14 scoring groups.
Inference Example
Install a Transformers version with Qwen3.5 support:
pip install -U "transformers>=5.2.0" accelerate torch torchvision pillow
The example uses the checkpoint and processor files from this repository in non-thinking mode. Replace scene.jpg and the query with your own image and grounding instruction.
import torch
from PIL import Image
from transformers import AutoProcessor, Qwen3_5ForConditionalGeneration
model_id = "ACERobotics/ACE-Brain-0.6-9B"
processor = AutoProcessor.from_pretrained(model_id)
model = Qwen3_5ForConditionalGeneration.from_pretrained(
model_id,
dtype="auto",
device_map="auto",
).eval()
image = Image.open("scene.jpg").convert("RGB")
messages = [
{
"role": "user",
"content": [
{"type": "image", "image": image},
{
"type": "text",
"text": (
"Point to the red cup in the image. "
"Return a point as [[x, y]], with integer coordinates "
"normalized to [0, 1000]. Return none if it is absent."
),
},
],
}
]
inputs = processor.apply_chat_template(
messages,
tokenize=True,
add_generation_prompt=True,
enable_thinking=False,
return_dict=True,
return_tensors="pt",
).to(model.device)
with torch.inference_mode():
generated_ids = model.generate(
**inputs,
max_new_tokens=128,
do_sample=False,
)
answer_ids = generated_ids[:, inputs["input_ids"].shape[1]:]
answer = processor.batch_decode(
answer_ids,
skip_special_tokens=True,
clean_up_tokenization_spaces=False,
)[0]
print(answer)
Grounding coordinates are integers normalized to [0, 1000] along each image axis. Depending on the query, the model can return a point, a list of points, a box, a count, or a categorical answer. Free-space grounding identifies unoccupied 2D regions and does not by itself establish 3D placement feasibility.
The example uses greedy decoding for simplicity. The reported benchmarks use temperature 0.2 and a 128-token output budget, except PixMo-Count, which uses 1,024 tokens. See the report for the full evaluation protocol and the Transformers Qwen3.5 documentation for the model interface.
Citation
If you find ACE-Brain-0.6-9B useful for your research and applications, please refer to our technical report:
ACE-Brain Team. ACE-Brain-0.6: Scaling Spatial Grounding for Physical Foundation Models.
Read the technical report (PDF). A formal BibTeX entry will be added when the arXiv identifier is available.
- Downloads last month
- -