Instructions to use Alibaba-DAMO-Academy/RynnBrain1.1-9B with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use Alibaba-DAMO-Academy/RynnBrain1.1-9B with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("image-text-to-text", model="Alibaba-DAMO-Academy/RynnBrain1.1-9B", trust_remote_code=True) 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)# Load model directly from transformers import AutoProcessor, AutoModelForMultimodalLM processor = AutoProcessor.from_pretrained("Alibaba-DAMO-Academy/RynnBrain1.1-9B", trust_remote_code=True) model = AutoModelForMultimodalLM.from_pretrained("Alibaba-DAMO-Academy/RynnBrain1.1-9B", trust_remote_code=True) 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=40) print(processor.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use Alibaba-DAMO-Academy/RynnBrain1.1-9B with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "Alibaba-DAMO-Academy/RynnBrain1.1-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": "Alibaba-DAMO-Academy/RynnBrain1.1-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/Alibaba-DAMO-Academy/RynnBrain1.1-9B
- SGLang
How to use Alibaba-DAMO-Academy/RynnBrain1.1-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 "Alibaba-DAMO-Academy/RynnBrain1.1-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": "Alibaba-DAMO-Academy/RynnBrain1.1-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 "Alibaba-DAMO-Academy/RynnBrain1.1-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": "Alibaba-DAMO-Academy/RynnBrain1.1-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 Alibaba-DAMO-Academy/RynnBrain1.1-9B with Docker Model Runner:
docker model run hf.co/Alibaba-DAMO-Academy/RynnBrain1.1-9B
RynnBrain 1.1
Towards More Capable and Generalizable Embodied Foundation Models
💫 Project Page | 🤗 Hugging Face | 🤖 ModelScope | 📚 Cookbooks | 📄 arXiv
News
- [2026.07.16] ✨✨ Release RynnBrain 1.1 checkpoints (2B / 9B / 122B-A10B) on Hugging Face & ModelScope!
- [2026.07.16] ✨✨ Release the RynnBrain 1.1 Technical Report on arXiv!
Introduction
We present RynnBrain 1.1, a systematic upgrade of RynnBrain for embodied intelligence. RynnBrain 1.1 is released in three scales: 2B, 9B, and 122B-A10B, extending the model family from compact dense models to its first 122B-level sparse-MoE model.
What's New in 1.1 🚀
- Unified Embodied Scaling to 122B: Establishes the first embodied brain model at the 122B scale under a unified training recipe shared across 2B, 9B, and 122B-A10B, enabling a systematic study of how embodied cognition, spatial reasoning, grounding, and planning evolve with scale.
- Real-robot VLA transfer: Bridges perception and action through RynnBrain-VLA, translating embodied understanding into real-robot control and demonstrating strong cross-platform generalization on Unitree G1, Astribot, and Tianji-Wuji across humanoid, bimanual, and dexterous-hand tasks.
- Native 3D and contact point grounding: Introduces explicit 3D-grounded training and a new contact point prediction task, extending RynnBrain from image-plane localization to metric 3D understanding and action-relevant interaction grounding.
Performance
- General Embodied Understanding
RynnBrain 1.1-9B vs. other 9B-scale models
- Real-Robot VLA Evaluation
Real-robot VLA success rates vs. baselines
- 3D Grounding
3D grounding accuracy vs. baselines
Model Zoo
| Model | Base Model | HuggingFace | ModelScope |
|---|---|---|---|
| RynnBrain1.1-2B | Qwen3.5-2B | Link | Link |
| RynnBrain1.1-9B (This checkpoint) | Qwen3.5-9B | Link | Link |
| RynnBrain1.1-122B-A10B | Qwen3.5-122B-A10B | Link | Link |
Quick Start
Inference with 🤗 transformers
Minimal dependencies
pip install transformers==5.2.0
Run text generation
import torch
from transformers import AutoModelForImageTextToText, AutoProcessor
conversation = [
{
"role": "user",
"content": [
{"type": "image", "image": "cookbooks/assets/object_location/images/000000086408.jpg"},
{
"type": "text",
"text": "What appliance can be used to heat food quickly.\nGenerate coordinates for one object bounding box. Constraints: x1,y1,x2,y2 in [0,1000]. Response must be in the format: <object> (x1, y1), (x2, y2) </object>",
},
],
}
]
model_path = "Alibaba-DAMO-Academy/RynnBrain1.1-9B"
processor = AutoProcessor.from_pretrained(model_path)
model = AutoModelForImageTextToText.from_pretrained(
model_path,
dtype=torch.bfloat16,
)
model.to("cuda")
model_inputs = processor.apply_chat_template(
conversation,
add_generation_prompt=True,
enable_thinking=False,
tokenize=True,
return_dict=True,
return_tensors="pt",
)
model_inputs = model_inputs.to("cuda")
output_ids = model.generate(
**model_inputs,
max_new_tokens=256,
do_sample=False,
)
output_ids = output_ids[:, model_inputs["input_ids"].size(1) :]
response = processor.decode(output_ids[0], skip_special_tokens=True)
print(response)
Inference with SGLang
For installation and advanced usages, please refer to the official documentation.
OpenAI-Compatible Serving
# launch server
python3 -m sglang.launch_server --model-path Alibaba-DAMO-Academy/RynnBrain1.1-9B --host 0.0.0.0 --port 8000
# inference using openai api
import base64
import io
from openai import OpenAI
from PIL import Image
def pil_to_url(image: Image.Image):
image_format = image.format if image.format else 'PNG'
buffered = io.BytesIO()
image.save(buffered, format=image_format)
img_str = base64.b64encode(buffered.getvalue()).decode('utf-8')
return f'data:image/{image_format.lower()};base64,{img_str}'
messages = [
{
'role': 'user',
'content': [
{'type': 'image_url', 'image_url': {'url': pil_to_url(Image.open('cookbooks/assets/object_location/images/000000086408.jpg'))}},
{'type': 'text', 'text': 'What appliance can be used to heat food quickly.\nGenerate coordinates for one object bounding box. Constraints: x1,y1,x2,y2 ∈ [0,1000]. Response must be in the format: <object> (x1, y1), (x2, y2) </object>'},
],
}
]
client = OpenAI(api_key="", base_url="http://localhost:8000/v1")
response = client.chat.completions.create(
model="default",
messages=messages,
stream=False,
).choices[0].message.content
print(response)
Offline Engine
import sglang as sgl
from transformers import AutoProcessor
def main():
conversation = [
{
'role': 'user',
'content': [
{'type': 'image'},
{'type': 'text', 'text': 'What appliance can be used to heat food quickly.\nGenerate coordinates for one object bounding box. Constraints: x1,y1,x2,y2 ∈ [0,1000]. Response must be in the format: <object> (x1, y1), (x2, y2) </object>'},
],
}
]
model_path = 'Alibaba-DAMO-Academy/RynnBrain1.1-9B'
llm = sgl.Engine(model_path=model_path)
processor = AutoProcessor.from_pretrained(model_path)
prompt = processor.apply_chat_template(
conversation,
add_generation_prompt=True,
tokenize=False,
)
output = llm.generate(
prompt=prompt,
image_data='cookbooks/assets/object_location/images/000000086408.jpg',
sampling_params={"temperature": 0.8, "top_p": 0.95},
)
print(f"Prompt: {prompt}\nGenerated text: {output['text']}")
if __name__ == '__main__':
main()
Cookbooks
Check out the cookbooks that showcase RynnBrain's capabilities in cognition, localization, reasoning, and planning.
| Category | Cookbook name | Description |
|---|---|---|
| Spatial Understanding | 1_spatial_understanding.ipynb | Shows the model's ability for spatial understanding in the video scene. |
| Object Understanding | 2_object_understanding.ipynb | Shows how the model understands object categories, attributes, and relations and counting ability. |
| Object Grounding | 3_object_grounding.ipynb | Locates specific objects with bounding boxes in an image or video based on instructions. |
| Area Location | 4_area_location.ipynb | Identifies and marks specified regions by points in an image or video. |
| Affordance Location | 5_affordance_location.ipynb | Finds areas or objects with specific affordances in an image or video. |
| Trajectory Location | 6_trajectory_location.ipynb | Infers and annotates trajectories or motion paths in an image or video. |
| 🆕 Contact Point Prediction | 7_contact_point_prediction.ipynb | Predicts an instruction-conditioned contact point and in-plane orientation from an image. |
| 🆕 3D Grounding | 8_3d_grounding.ipynb | Predicts 3D bounding boxes (position, dimensions, orientation) from a single RGB image with camera intrinsics. |
Training
Pretraining & Evaluation
Please refer to RynnScale for details of pretraining and evaluation.
📑 Citation
If you find RynnBrain useful for your research and applications, please cite using this BibTeX:
@article{damo2026rynnbrain,
title={RynnBrain: Open Embodied Foundation Models},
author={Ronghao Dang, Jiayan Guo, Bohan Hou, Sicong Leng, Kehan Li, Xin Li, Jiangpin Liu, Yunxuan Mao, Zhikai Wang, Yuqian Yuan, Minghao Zhu, Xiao Lin, Yang Bai, Qian Jiang, Yaxi Zhao, Minghua Zeng, Junlong Gao, Yuming Jiang, Jun Cen, Siteng Huang, Liuyi Wang, Wenqiao Zhang, Chengju Liu, Jianfei Yang, Shijian Lu, Deli Zhao},
journal={arXiv preprint arXiv:2602.14979v1},
year={2026},
url = {https://arxiv.org/abs/2602.14979v1}
}
- Downloads last month
- -