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 with
enable_thinking=False when 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
Table | |
|---|
| 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.
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:
Table with columns: quant, size, fits| 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
viewBox and 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}
}