Model comparison · 2026-10-17
Moondream 3.1 or Moondream 3 Preview? Differences and price
moondream/moondream3.1-9b-a2b compared with moondream/moondream3-preview: same price and context, the release difference, and Moondream's release notes.
Short answer: same request, same price, different release
LLMTR is a gateway that gives access to language models from different providers through one OpenAI-compatible API. Moondream 3.1 is offered there as moondream/moondream3.1-9b-a2b and Moondream 3 Preview as moondream/moondream3-preview; both are called on the /v1/chat/completions endpoint at https://llmtr.com/v1 with the same API key. Moving from one to the other means changing the model string.
In the LLMTR catalog the two rows share context, price, capabilities and data note. The difference is the release: the catalog lists Moondream 3.1 as the family's newer release and shows it with a New label on its model page, while Moondream 3 Preview is the preview release of Moondream 3 and carries no label. If you are starting a new integration, start with 3.1. If you have a flow built on 3 Preview whose results you have already evaluated, make the switch by comparing on your own samples.
Moondream 3.1 or Moondream 3 Preview?
The catalog facts do not tie the decision to price or to the shape of the request. Both models offer a 32,000-token context, are billed at $0.30 for input and $2.50 for output per 1M tokens, accept images only as base64 data URLs, keep reasoning off by default, and do not support tool calling, response_format or stop sequences. The choice depends on which release gives the answer you need on your own images. There is no price or capability advantage specific to 3 Preview in the catalog; from the catalog's point of view, the reason to stay on it is that your existing flow was built and evaluated on that release.
According to Moondream's own pages, 3 Preview was released in September 2025 as the preview release of Moondream 3, and 3.1 in July 2026. The table shows the values in the LLMTR catalog side by side; the only places where the two columns differ are the name, the catalog description and the label.
| Property | moondream/moondream3.1-9b-a2b | moondream/moondream3-preview |
|---|---|---|
| Model name | Moondream 3.1 | Moondream 3 Preview |
| Catalog description | the family's newer release | preview release of Moondream 3 |
| Label on the model page | New | no label |
| Parameters | 9B total, 2B active per token | 9B total, 2B active per token |
| Context window | 32,000 tokens | 32,000 tokens |
| Input / output price (per 1M tokens) | $0.30 / $2.50 | $0.30 / $2.50 |
| Image input | base64 data URL only | base64 data URL only |
| Reasoning | off by default; reasoning: true or :think | off by default; reasoning: true or :think |
| Tool calling, response_format, stop | not supported | not supported |
The difference according to Moondream's release notes
In its 3 Preview announcement, Moondream introduces the model as a preview release of Moondream 3: a mixture-of-experts (MoE) model with 9 billion parameters, 2 billion of them active. According to the announcement, the context length grew from 2,000 to 32,000 tokens in this release. The same announcement says the preview came with some caveats and that the model was still being trained. The announcement is dated 18 September 2025; the Moondream 3.1 model page gives the version as 3.1.0 and the release date as 7 July 2026.
The changelog on the Moondream 3.1 model page lists better grounding and dense-detection gains for 3.1. The 3.1 announcement also singles out dense detection in crowded scenes such as shelves, crowds and bins of parts as the main advance in this release.
These notes are written around Moondream's own skill interfaces, such as object detection and pointing. On LLMTR both models return a text answer through /v1/chat/completions. To see what the release difference means for your work, try both models on the same images.
What does the same request cost on each model?
Because the price cards are the same, the same token counts give the same amount. A request with a 1,500-token prompt, image included, and a 300-token answer costs (1,500 x $0.30 + 300 x $2.50) / 1M = $0.0012 on either model.
The real difference comes from the token counts: the two models can answer the same image at different lengths, and tokens produced while reasoning is on are billed at the output price. The Python example below sends the same image and question to both models and prints, for each one, the input and output tokens and the amount calculated at these prices. With reasoning on, the trace tokens are counted in completion_tokens on both models; run the comparison with reasoning off and with reasoning on separately, and do not merge the two cases into one average.
An OpenAI Python SDK example that sends the same image and question to moondream/moondream3.1-9b-a2b and moondream/moondream3-preview and prints the token usage and the amount side by side.
import base64
import os
from openai import OpenAI
client = OpenAI(base_url="https://llmtr.com/v1", api_key=os.environ["LLMTR_API_KEY"])
with open("street.png", "rb") as f:
image_b64 = base64.b64encode(f.read()).decode("ascii")
messages = [
{
"role": "user",
"content": [
{"type": "image_url", "image_url": {"url": f"data:image/png;base64,{image_b64}"}},
{"type": "text", "text": "Describe this image in two sentences."},
],
}
]
for model in ["moondream/moondream3.1-9b-a2b", "moondream/moondream3-preview"]:
response = client.chat.completions.create(
model=model,
messages=messages,
temperature=0,
max_tokens=256,
)
usage = response.usage
cost = (usage.prompt_tokens * 0.30 + usage.completion_tokens * 2.50) / 1_000_000
print(model, usage.prompt_tokens, usage.completion_tokens, f"${cost:.6f}")
print(response.choices[0].message.content)
Switching: only the model id changes
The two models share the request format: the same image_url part, the same reasoning field and :think / :fast suffixes, and the same unsupported fields. To move from 3 Preview to 3.1, setting the model string to moondream/moondream3.1-9b-a2b is enough. A non-empty tools array, a JSON response_format or a non-empty stop gets 400 on both models, so those fields should not be in your request anyway.
Before switching, set aside a small evaluation set of your own images and compare the two models' answers side by side; the temperature 0 in the example reduces variation in the comparison. If you work with images that contain Turkish text, test both models separately on Turkish samples; Moondream's 3.1 page notes that OCR and prompts give better results in English and Latin scripts. If the results are good enough for your work, change the id. Both rows are live in the catalog as of 17 October 2026.
Trying both models with one key on LLMTR
Create an account at llmtr.com, top up your balance under Dashboard > Billing and create a key under Dashboard > API Keys. In your OpenAI-compatible SDK, set base_url to https://llmtr.com/v1; the same key works for both models. Each request is deducted from your balance at the catalog price in effect when it is processed. Streaming works the same way on both models: stream: true is supported, and if you send include_usage: true in stream_options, usage arrives in the last chunk. Text-only requests without an image are accepted on both models as well.
The data note on both model cards is the same: this model is served through a third-party provider. Detailed request examples and the full list of unsupported fields are on the Moondream documentation page.
Move from Moondream 3 Preview to Moondream 3.1
Try both models side by side with the same key and the same images, compare the results and set the model id to moondream/moondream3.1-9b-a2b.
- Side-by-side run. Send the same image and question with moondream/moondream3-preview and with moondream/moondream3.1-9b-a2b.
- Comparison. Compare the two models' answers and the token counts in usage on your own evaluation set.
- Id change. If the result is good enough, set the model string to moondream/moondream3.1-9b-a2b; the rest of the request stays the same.
Frequently asked questions
What is the difference between Moondream 3.1 and Moondream 3 Preview?
In the LLMTR catalog the context (32,000 tokens), the price ($0.30 input / $2.50 output per 1M tokens) and the capabilities are the same. The difference is the release: 3.1 is the family's newer release, and 3 Preview is the preview release of Moondream 3.
Is Moondream 3.1 more expensive?
No. Both models are billed at $0.30 for input and $2.50 for output per 1M tokens; any difference in the amount comes only from the token counts.
What changes in code when moving from 3 Preview to 3.1?
Only the model id: write moondream/moondream3.1-9b-a2b instead of moondream/moondream3-preview. The image format, the reasoning field and the unsupported fields are the same on both models.