Instructions to use vectionlabs/Maestro-2-9B-Preview with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use vectionlabs/Maestro-2-9B-Preview with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("image-text-to-text", model="vectionlabs/Maestro-2-9B-Preview") 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("vectionlabs/Maestro-2-9B-Preview") model = AutoModelForMultimodalLM.from_pretrained("vectionlabs/Maestro-2-9B-Preview", 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=40) print(processor.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use vectionlabs/Maestro-2-9B-Preview with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "vectionlabs/Maestro-2-9B-Preview" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "vectionlabs/Maestro-2-9B-Preview", "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/vectionlabs/Maestro-2-9B-Preview
- SGLang
How to use vectionlabs/Maestro-2-9B-Preview 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 "vectionlabs/Maestro-2-9B-Preview" \ --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": "vectionlabs/Maestro-2-9B-Preview", "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 "vectionlabs/Maestro-2-9B-Preview" \ --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": "vectionlabs/Maestro-2-9B-Preview", "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 vectionlabs/Maestro-2-9B-Preview with Docker Model Runner:
docker model run hf.co/vectionlabs/Maestro-2-9B-Preview
Maestro 2 — 9B (Preview)
Math, code, and deep thinking that can see. Now small enough to actually run.
Vection Labs
Preview release. An early build, published for the people who follow us. This has been trained in parallel with Salience-1.5-Pro, with the same data, but in a smaller model! Bugs you report in the Community tab get fixed in Maestro 2.1.
Abstract
Maestro 2 is a 9B dense multimodal model built for engineering work you can run on one GPU.
It thinks natively inside <think> blocks, writes and debugs real code, designs frontends that do
not look machine-generated, and reads images, screenshots, diagrams and video as first-class input.
Context window: 262,144 tokens.
It is the successor to Maestro 1 — the most-liked model we have shipped — and it keeps that model idea intact: one small brain that reasons, codes, and sees, rather than three specialists you have to switch between.
Highlights
- Native thinking. Real
<think>reasoning on by default; switch it off withenable_thinking=Falsewhen you want an instant answer. - Agentic software engineering. Repo-scale edits, methodical debugging, minimal precise patches, well-formed tool calls.
- Frontend and SVG. Modern stacks (React/Next, TypeScript, Tailwind, shadcn/ui), real design tokens and spacing scales, WCAG-accessible semantics, and disciplined SVG geometry.
- Genuinely multimodal. Images and video are inputs, not an afterthought.
- Long context. 262K tokens native.
- Small. 9B dense. One consumer GPU. Apache-2.0.
Model overview
| Parameters | 9.65B dense |
| Modalities | text, image, video -> text |
| Context window | 262,144 tokens native(In version 2.1, the context will be updated to 1M.) |
| Precision | bfloat16 |
| Architecture | Qwen3.5 (dense) + native vision encoder |
| License | Apache-2.0 |
| Library | transformers (AutoModelForImageTextToText) |
Larger MoE siblings: Maestro-2-9B-Preview (35B-A3B) and Salience-1.5-Flash (30B-A3B).
Thinking
Thinking is on by default — the model reasons inside <think>...</think> before answering, and
serving stacks surface it as reasoning_content. Pass enable_thinking=False to
apply_chat_template for direct answers.
Tool calling
Maestro 2 emits XML-style tool calls (<tool_call><function=...><parameter=...>), parsed
natively by the vLLM and SGLang tool parsers for this model family. Provide schemas through the
chat template tools argument.
Quickstart
from transformers import AutoModelForImageTextToText, AutoProcessor
repo = "vectionlabs/Maestro-2-9B-Preview"
proc = AutoProcessor.from_pretrained(repo)
model = AutoModelForImageTextToText.from_pretrained(repo, dtype="auto", device_map="auto")
messages = [{
"role": "user",
"content": [{"type": "text", "text": "Build a responsive pricing card in React + Tailwind."}],
}]
text = proc.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = proc(text=[text], return_tensors="pt").to(model.device)
out = model.generate(**inputs, max_new_tokens=2048)
print(proc.batch_decode(out[:, inputs.input_ids.shape[1]:], skip_special_tokens=True)[0])
Requires a recent transformers (>= 5.8). Images work the same way with
{"type": "image", "image": ...} content items.
Running locally
Dense 9B quantizes gracefully, unlike the sparse-MoE tiers of this family:
| quant | size | fits |
|---|---|---|
| Q8_0 | ~10 GB | 12 GB card, best quality |
| Q5_K_M | ~6.5 GB | 8 GB card [recommended] |
| Q4_K_M | ~5.6 GB | 6 GB card, still coherent |
Prompting tips
- Code: state language, constraints, and the exact I/O contract.
- Frontend: name the stack and the look you want; it returns tokens, semantics and structure.
- SVG: ask for an explicit
viewBoxand a stated grid; it plans geometry before drawing. - Vision: put the image before the question in the message content.
- Sampling:
temperature=0.7, top_p=0.95, top_k=20, presence_penalty=1.1. Lower the temperature to ~0.3 for precise patches.
Limitations & responsible use
- Maestro 2 can be confidently wrong. Verify factual and mathematical claims.
- Generated code may be insecure or incorrect - review before running, never execute untrusted output.
- 9B is a small model: it will lose to frontier-scale models on the hardest reasoning.
- Preview: known issues are being collected for Maestro 2.1. Pin a revision if you need reproducibility.
- Long-context and video inputs increase latency and memory substantially.
- Do not use it for surveillance, manipulation, or any use violating applicable law or Apache-2.0.
- No audio modality.
Citation
@misc{vectionlabs2026maestro2,
title = {Maestro 2 Preview: A 9B Multimodal Engineering Model},
author = {Vection Labs},
year = {2026},
url = {https://huggingface.co/vectionlabs/Maestro-2-9B-Preview}
}
- Downloads last month
- 71