Muse Glimmer 30B is a dense vision language model from Meta built for long-horizon agentic work on local hardware. The architecture pairs a 52-layer causal text decoder with a roughly 1.8B parameter ViT-G/14 perception encoder for about 29.6 billion parameters in total, and it accepts interleaved text and image input so an agent can interpret screenshots, charts, and documents alongside conversation. The decoder uses grouped-query attention with 32 query heads and 2 key-value heads, a repeating pattern of three sliding-window local attention layers followed by one global layer, SwiGLU feed-forward blocks, and rotary position embeddings applied on the local layers, supporting a trained context of 131,072 tokens.
Meta describes the model as distilled from the larger Muse Spark and trained and evaluated around agentic behavior: end-to-end task completion, schema-accurate tool calling, multi-step reasoning across extended workflows, and recovery when a tool call returns an unexpected result. Reasoning effort is selectable across low, medium, high, and xhigh settings, and the model emits channel-scoped reasoning traces together with XML style tool calls rather than JSON, which requires parsers specific to this family. A companion block-diffusion drafter head predicts blocks of 16 tokens per forward pass for speculative decoding, with the main model verifying the proposals in parallel.
Drag and drop an image here, or click to browse
Captioning will run automatically
—
Usage
Past 30 DaysVision Evals is Roboflow's ground-truth benchmark: every model runs the same real-world samples across six vision tasks, and answers are scored against ground truth.
Evals updated August 12, 2026Pricing updated August 13, 2026
Muse Glimmer 30B averages 70.8% across the six Vision Evals tasks, ranking #14 of 28 models overall.
Its weakest relative showing is Object Detection, ranking #20 of 28 at 41.0%.
At $0.0013 per sample it is the 6th cheapest of the 28 benchmarked models, and its average inference time of 8.7s per sample makes it the 19th fastest.
Field medians: Object Detection 55.2%, Counting 64.2%, Identification 84.4%, OCR 90.9%, Data Extraction 86.6%, Reasoning 58.0%.
| Task | Score | Field (0 to 100) | Rank | Cost / sample | Speed |
|---|---|---|---|---|---|
| Object Detection | 41.0% | #20 of 28 | $0.0020 | 15.03s | |
| Counting | 66.2% | #12 of 28 | $0.0008 | 3.71s | |
| Identification | 81.3% | #16 of 28 | $0.0006 | 1.87s | |
| OCR | 92.1% | #10 of 28 | $0.0012 | 7.66s | |
| Data Extraction | 86.6% | #13 of 28 | $0.0007 | 2.17s | |
| Reasoning | 57.6% | #15 of 28 | $0.0010 | 6.55s |
Overall benchmark score against estimated cost per sample. Upper-left is the sweet spot: high quality at low cost.
28 models on the current benchmark · scores and efficiency pooled across all six tasks at low effort · Muse Glimmer 30B highlighted
Muse Glimmer 30B scores from a single evaluation run · Methodology
View all Vision Evals →Muse Glimmer 30B costs $0.350 per 1M input tokens and $1.50 per 1M output tokens.
Pricing updated Aug 13, 2026
Other models worth comparing for similar use cases.
Muse Glimmer 30B runs as a hosted REST endpoint through Roboflow Workflows. Pick a task, then hand the prompt to your coding agent or copy the code. Forking the workflow into a free Roboflow workspace replaces the your-workspace and YOUR_API_KEY placeholders with your own.
Add the Roboflow MCP server
claude mcp add --transport http roboflow https://mcp.roboflow.com/mcp
Run /mcp and authorize Roboflow in your browser when the OAuth flow opens.
Start a new Claude Code session so the MCP loads, then paste the prompt below (it works the same in any agent).
Fork this workflow to your Roboflow workspace to use it.
Integrate the Roboflow "Muse Glimmer 30B" workflow into my app.
- Endpoint: POST https://serverless.roboflow.com/<your-workspace>/workflows/playground-muse-glimmer-30b-c
- Auth: send my Roboflow API key as `api_key` in the request body, read from the ROBOFLOW_API_KEY env var (never hardcode).
- Body: { "api_key": ..., "inputs": { `image`: { type: "url" | "base64", value }, `model_api_key`: my provider key } }.
With the Roboflow MCP connected, call `workflows_get` on "playground-muse-glimmer-30b-c" to read the exact input schema and treat it as the source of truth. A live `workflows_run` for this workflow also needs my OpenRouter key (`model_api_key`) passed as a runtime parameter; if you don't have it yet, skip the test run — it will fail with a server error without the provider key, which is expected and not a problem with your code — and rely on the schema. Validate the real run via the REST call once the keys below are set. Without the MCP, use the contract above.
Before running the app, set up these keys so it does not error at runtime:
- `ROBOFLOW_API_KEY` (sent as `api_key`) from https://app.roboflow.com/settings/api
- `OPENROUTER_API_KEY` (sent as `model_api_key`) from https://openrouter.ai/keys — my OpenRouter key
Create a .gitignore'd .env with these variables, using placeholder values for any I haven't given you. Then pause and tell me directly, in your reply: the full path to the .env file, exactly which keys I need to paste in, and the link to get each one. Wait for me to confirm I've added them before you run anything. Do not run the app until I confirm.
Then add the integration to my codebase: match my project's language, framework, and conventions; read every key from environment variables (never hardcode); add basic error handling; and include a small runnable example. If you can't tell what language my project uses, ask me.pip install inference-sdkFork this workflow to your Roboflow workspace to use it.
# 1. Import the library
from inference_sdk import InferenceHTTPClient
# 2. Connect to your workflow
client = InferenceHTTPClient(
api_url="https://serverless.roboflow.com",
api_key="YOUR_API_KEY"
)
# 3. Run your workflow on an image
result = client.run_workflow(
workspace_name="your-workspace",
workflow_id="playground-muse-glimmer-30b-c",
images={
"image": "YOUR_IMAGE.jpg" # Path to your image file
},
parameters={
"model_api_key": "YOUR_OPENROUTER_API_KEY"
},
use_cache=True # cache workflow definition for 15 minutes
)
# 4. Get your results
print(result)Fork this workflow to your Roboflow workspace to use it.
const response = await fetch('https://serverless.roboflow.com/your-workspace/workflows/playground-muse-glimmer-30b-c', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
api_key: 'YOUR_API_KEY',
inputs: {
"image": {"type": "url", "value": "IMAGE_URL"},
"model_api_key": "YOUR_OPENROUTER_API_KEY"
}
})
});
const result = await response.json();
console.log(result);Fork this workflow to your Roboflow workspace to use it.
curl --location 'https://serverless.roboflow.com/your-workspace/workflows/playground-muse-glimmer-30b-c' \
--header 'Content-Type: application/json' \
--data '{
"api_key": "YOUR_API_KEY",
"inputs": {
"image": {"type": "url", "value": "IMAGE_URL"},
"model_api_key": "YOUR_OPENROUTER_API_KEY"
}
}'Add the Roboflow MCP server
claude mcp add --transport http roboflow https://mcp.roboflow.com/mcp
Run /mcp and authorize Roboflow in your browser when the OAuth flow opens.
Start a new Claude Code session so the MCP loads, then paste the prompt below (it works the same in any agent).
Fork this workflow to your Roboflow workspace to use it.
Integrate the Roboflow "Muse Glimmer 30B" workflow into my app.
- Endpoint: POST https://serverless.roboflow.com/<your-workspace>/workflows/playground-muse-glimmer-30b-op
- Auth: send my Roboflow API key as `api_key` in the request body, read from the ROBOFLOW_API_KEY env var (never hardcode).
- Body: { "api_key": ..., "inputs": { `image`: { type: "url" | "base64", value }, `prompt`: text, `model_api_key`: my provider key } }.
With the Roboflow MCP connected, call `workflows_get` on "playground-muse-glimmer-30b-op" to read the exact input schema and treat it as the source of truth. A live `workflows_run` for this workflow also needs my OpenRouter key (`model_api_key`) passed as a runtime parameter; if you don't have it yet, skip the test run — it will fail with a server error without the provider key, which is expected and not a problem with your code — and rely on the schema. Validate the real run via the REST call once the keys below are set. Without the MCP, use the contract above.
Before running the app, set up these keys so it does not error at runtime:
- `ROBOFLOW_API_KEY` (sent as `api_key`) from https://app.roboflow.com/settings/api
- `OPENROUTER_API_KEY` (sent as `model_api_key`) from https://openrouter.ai/keys — my OpenRouter key
Create a .gitignore'd .env with these variables, using placeholder values for any I haven't given you. Then pause and tell me directly, in your reply: the full path to the .env file, exactly which keys I need to paste in, and the link to get each one. Wait for me to confirm I've added them before you run anything. Do not run the app until I confirm.
Then add the integration to my codebase: match my project's language, framework, and conventions; read every key from environment variables (never hardcode); add basic error handling; and include a small runnable example. If you can't tell what language my project uses, ask me.pip install inference-sdkFork this workflow to your Roboflow workspace to use it.
# 1. Import the library
from inference_sdk import InferenceHTTPClient
# 2. Connect to your workflow
client = InferenceHTTPClient(
api_url="https://serverless.roboflow.com",
api_key="YOUR_API_KEY"
)
# 3. Run your workflow on an image
result = client.run_workflow(
workspace_name="your-workspace",
workflow_id="playground-muse-glimmer-30b-op",
images={
"image": "YOUR_IMAGE.jpg" # Path to your image file
},
parameters={
"prompt": "Describe what you see in the image",
"model_api_key": "YOUR_OPENROUTER_API_KEY"
},
use_cache=True # cache workflow definition for 15 minutes
)
# 4. Get your results
print(result)Fork this workflow to your Roboflow workspace to use it.
const response = await fetch('https://serverless.roboflow.com/your-workspace/workflows/playground-muse-glimmer-30b-op', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
api_key: 'YOUR_API_KEY',
inputs: {
"image": {"type": "url", "value": "IMAGE_URL"},
"prompt": "Describe what you see in the image",
"model_api_key": "YOUR_OPENROUTER_API_KEY"
}
})
});
const result = await response.json();
console.log(result);Fork this workflow to your Roboflow workspace to use it.
curl --location 'https://serverless.roboflow.com/your-workspace/workflows/playground-muse-glimmer-30b-op' \
--header 'Content-Type: application/json' \
--data '{
"api_key": "YOUR_API_KEY",
"inputs": {
"image": {"type": "url", "value": "IMAGE_URL"},
"prompt": "Describe what you see in the image",
"model_api_key": "YOUR_OPENROUTER_API_KEY"
}
}'Add the Roboflow MCP server
claude mcp add --transport http roboflow https://mcp.roboflow.com/mcp
Run /mcp and authorize Roboflow in your browser when the OAuth flow opens.
Start a new Claude Code session so the MCP loads, then paste the prompt below (it works the same in any agent).
Fork this workflow to your Roboflow workspace to use it.
Integrate the Roboflow "Muse Glimmer 30B" workflow into my app.
- Endpoint: POST https://serverless.roboflow.com/<your-workspace>/workflows/playground-muse-glimmer-30b-mlc
- Auth: send my Roboflow API key as `api_key` in the request body, read from the ROBOFLOW_API_KEY env var (never hardcode).
- Body: { "api_key": ..., "inputs": { `image`: { type: "url" | "base64", value }, `classes`: string array, `model_api_key`: my provider key } }.
With the Roboflow MCP connected, call `workflows_get` on "playground-muse-glimmer-30b-mlc" to read the exact input schema and treat it as the source of truth. A live `workflows_run` for this workflow also needs my OpenRouter key (`model_api_key`) passed as a runtime parameter; if you don't have it yet, skip the test run — it will fail with a server error without the provider key, which is expected and not a problem with your code — and rely on the schema. Validate the real run via the REST call once the keys below are set. Without the MCP, use the contract above.
Before running the app, set up these keys so it does not error at runtime:
- `ROBOFLOW_API_KEY` (sent as `api_key`) from https://app.roboflow.com/settings/api
- `OPENROUTER_API_KEY` (sent as `model_api_key`) from https://openrouter.ai/keys — my OpenRouter key
Create a .gitignore'd .env with these variables, using placeholder values for any I haven't given you. Then pause and tell me directly, in your reply: the full path to the .env file, exactly which keys I need to paste in, and the link to get each one. Wait for me to confirm I've added them before you run anything. Do not run the app until I confirm.
Then add the integration to my codebase: match my project's language, framework, and conventions; read every key from environment variables (never hardcode); add basic error handling; and include a small runnable example. If you can't tell what language my project uses, ask me.pip install inference-sdkFork this workflow to your Roboflow workspace to use it.
# 1. Import the library
from inference_sdk import InferenceHTTPClient
# 2. Connect to your workflow
client = InferenceHTTPClient(
api_url="https://serverless.roboflow.com",
api_key="YOUR_API_KEY"
)
# 3. Run your workflow on an image
result = client.run_workflow(
workspace_name="your-workspace",
workflow_id="playground-muse-glimmer-30b-mlc",
images={
"image": "YOUR_IMAGE.jpg" # Path to your image file
},
parameters={
"classes": ["class1", "class2", "class3"],
"model_api_key": "YOUR_OPENROUTER_API_KEY"
},
use_cache=True # cache workflow definition for 15 minutes
)
# 4. Get your results
print(result)Fork this workflow to your Roboflow workspace to use it.
const response = await fetch('https://serverless.roboflow.com/your-workspace/workflows/playground-muse-glimmer-30b-mlc', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
api_key: 'YOUR_API_KEY',
inputs: {
"image": {"type": "url", "value": "IMAGE_URL"},
"classes": ["class1", "class2", "class3"],
"model_api_key": "YOUR_OPENROUTER_API_KEY"
}
})
});
const result = await response.json();
console.log(result);Fork this workflow to your Roboflow workspace to use it.
curl --location 'https://serverless.roboflow.com/your-workspace/workflows/playground-muse-glimmer-30b-mlc' \
--header 'Content-Type: application/json' \
--data '{
"api_key": "YOUR_API_KEY",
"inputs": {
"image": {"type": "url", "value": "IMAGE_URL"},
"classes": ["class1", "class2", "class3"],
"model_api_key": "YOUR_OPENROUTER_API_KEY"
}
}'Add the Roboflow MCP server
claude mcp add --transport http roboflow https://mcp.roboflow.com/mcp
Run /mcp and authorize Roboflow in your browser when the OAuth flow opens.
Start a new Claude Code session so the MCP loads, then paste the prompt below (it works the same in any agent).
Fork this workflow to your Roboflow workspace to use it.
Integrate the Roboflow "Muse Glimmer 30B" workflow into my app.
- Endpoint: POST https://serverless.roboflow.com/<your-workspace>/workflows/playground-muse-glimmer-30b-od
- Auth: send my Roboflow API key as `api_key` in the request body, read from the ROBOFLOW_API_KEY env var (never hardcode).
- Body: { "api_key": ..., "inputs": { `image`: { type: "url" | "base64", value }, `classes`: string array, `model_api_key`: my provider key } }.
With the Roboflow MCP connected, call `workflows_get` on "playground-muse-glimmer-30b-od" to read the exact input schema and treat it as the source of truth. A live `workflows_run` for this workflow also needs my OpenRouter key (`model_api_key`) passed as a runtime parameter; if you don't have it yet, skip the test run — it will fail with a server error without the provider key, which is expected and not a problem with your code — and rely on the schema. Validate the real run via the REST call once the keys below are set. Without the MCP, use the contract above.
Before running the app, set up these keys so it does not error at runtime:
- `ROBOFLOW_API_KEY` (sent as `api_key`) from https://app.roboflow.com/settings/api
- `OPENROUTER_API_KEY` (sent as `model_api_key`) from https://openrouter.ai/keys — my OpenRouter key
Create a .gitignore'd .env with these variables, using placeholder values for any I haven't given you. Then pause and tell me directly, in your reply: the full path to the .env file, exactly which keys I need to paste in, and the link to get each one. Wait for me to confirm I've added them before you run anything. Do not run the app until I confirm.
Then add the integration to my codebase: match my project's language, framework, and conventions; read every key from environment variables (never hardcode); add basic error handling; and include a small runnable example. If you can't tell what language my project uses, ask me.pip install inference-sdkFork this workflow to your Roboflow workspace to use it.
# 1. Import the library
from inference_sdk import InferenceHTTPClient
# 2. Connect to your workflow
client = InferenceHTTPClient(
api_url="https://serverless.roboflow.com",
api_key="YOUR_API_KEY"
)
# 3. Run your workflow on an image
result = client.run_workflow(
workspace_name="your-workspace",
workflow_id="playground-muse-glimmer-30b-od",
images={
"image": "YOUR_IMAGE.jpg" # Path to your image file
},
parameters={
"classes": ["class1", "class2", "class3"],
"model_api_key": "YOUR_OPENROUTER_API_KEY"
},
use_cache=True # cache workflow definition for 15 minutes
)
# 4. Get your results
print(result)Fork this workflow to your Roboflow workspace to use it.
const response = await fetch('https://serverless.roboflow.com/your-workspace/workflows/playground-muse-glimmer-30b-od', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
api_key: 'YOUR_API_KEY',
inputs: {
"image": {"type": "url", "value": "IMAGE_URL"},
"classes": ["class1", "class2", "class3"],
"model_api_key": "YOUR_OPENROUTER_API_KEY"
}
})
});
const result = await response.json();
console.log(result);Fork this workflow to your Roboflow workspace to use it.
curl --location 'https://serverless.roboflow.com/your-workspace/workflows/playground-muse-glimmer-30b-od' \
--header 'Content-Type: application/json' \
--data '{
"api_key": "YOUR_API_KEY",
"inputs": {
"image": {"type": "url", "value": "IMAGE_URL"},
"classes": ["class1", "class2", "class3"],
"model_api_key": "YOUR_OPENROUTER_API_KEY"
}
}'Add the Roboflow MCP server
claude mcp add --transport http roboflow https://mcp.roboflow.com/mcp
Run /mcp and authorize Roboflow in your browser when the OAuth flow opens.
Start a new Claude Code session so the MCP loads, then paste the prompt below (it works the same in any agent).
Fork this workflow to your Roboflow workspace to use it.
Integrate the Roboflow "Muse Glimmer 30B" workflow into my app.
- Endpoint: POST https://serverless.roboflow.com/<your-workspace>/workflows/playground-muse-glimmer-30b-ocr
- Auth: send my Roboflow API key as `api_key` in the request body, read from the ROBOFLOW_API_KEY env var (never hardcode).
- Body: { "api_key": ..., "inputs": { `image`: { type: "url" | "base64", value }, `model_api_key`: my provider key } }.
With the Roboflow MCP connected, call `workflows_get` on "playground-muse-glimmer-30b-ocr" to read the exact input schema and treat it as the source of truth. A live `workflows_run` for this workflow also needs my OpenRouter key (`model_api_key`) passed as a runtime parameter; if you don't have it yet, skip the test run — it will fail with a server error without the provider key, which is expected and not a problem with your code — and rely on the schema. Validate the real run via the REST call once the keys below are set. Without the MCP, use the contract above.
Before running the app, set up these keys so it does not error at runtime:
- `ROBOFLOW_API_KEY` (sent as `api_key`) from https://app.roboflow.com/settings/api
- `OPENROUTER_API_KEY` (sent as `model_api_key`) from https://openrouter.ai/keys — my OpenRouter key
Create a .gitignore'd .env with these variables, using placeholder values for any I haven't given you. Then pause and tell me directly, in your reply: the full path to the .env file, exactly which keys I need to paste in, and the link to get each one. Wait for me to confirm I've added them before you run anything. Do not run the app until I confirm.
Then add the integration to my codebase: match my project's language, framework, and conventions; read every key from environment variables (never hardcode); add basic error handling; and include a small runnable example. If you can't tell what language my project uses, ask me.pip install inference-sdkFork this workflow to your Roboflow workspace to use it.
# 1. Import the library
from inference_sdk import InferenceHTTPClient
# 2. Connect to your workflow
client = InferenceHTTPClient(
api_url="https://serverless.roboflow.com",
api_key="YOUR_API_KEY"
)
# 3. Run your workflow on an image
result = client.run_workflow(
workspace_name="your-workspace",
workflow_id="playground-muse-glimmer-30b-ocr",
images={
"image": "YOUR_IMAGE.jpg" # Path to your image file
},
parameters={
"model_api_key": "YOUR_OPENROUTER_API_KEY"
},
use_cache=True # cache workflow definition for 15 minutes
)
# 4. Get your results
print(result)Fork this workflow to your Roboflow workspace to use it.
const response = await fetch('https://serverless.roboflow.com/your-workspace/workflows/playground-muse-glimmer-30b-ocr', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
api_key: 'YOUR_API_KEY',
inputs: {
"image": {"type": "url", "value": "IMAGE_URL"},
"model_api_key": "YOUR_OPENROUTER_API_KEY"
}
})
});
const result = await response.json();
console.log(result);Fork this workflow to your Roboflow workspace to use it.
curl --location 'https://serverless.roboflow.com/your-workspace/workflows/playground-muse-glimmer-30b-ocr' \
--header 'Content-Type: application/json' \
--data '{
"api_key": "YOUR_API_KEY",
"inputs": {
"image": {"type": "url", "value": "IMAGE_URL"},
"model_api_key": "YOUR_OPENROUTER_API_KEY"
}
}'Muse Glimmer 30B is released under Apache-2.0, a permissive license. The Muse Glimmer 30B license lets you run, fine-tune, and redistribute the model in commercial products with no obligation to open-source related code changes, so no separate commercial license is required.
Apache-2.0 grants an express patent license that terminates if you bring a patent claim over the work, and it disclaims warranties. Validate Muse Glimmer 30B on your own data before you depend on it in production.
Read the full Apache 2.0 license ↗This is the straightforward case: a permissive license is the best technical solution and you are free to deploy Muse Glimmer 30B commercially without open-sourcing your own code.
Do not hesitate to reach out with questions for your commercial project — our team will help you start solving business problems on the first call. See Roboflow commercial licensing for the models included in each plan.
Talk to salesThis model is released under the Apache License 2.0, a permissive open-source license that allows commercial use, modification, distribution, and patent use.
Yes. Under the terms of the Apache 2.0 license, you can freely use this model for commercial purposes, including in proprietary products. You must retain the copyright notice and disclaimers when redistributing.
License information is provided as a guide and is not legal advice.
Yes. Muse Glimmer 30B accepts image input and handles OCR, data extraction, object counting, identification, visual reasoning, and object detection. On Roboflow's Vision Evals its strongest task is OCR at 92.1% (#10 of 28). You can test it on your own image in the demo above.
Yes. its transcriptions match the ground truth 92.1% on average (#10 of 28) on Vision Evals OCR. Pulling specific fields out of documents (data extraction) scores 86.6%.
Not its strength. On Vision Evals, Muse Glimmer 30B scores 41% mAP@50 on object detection (#20 of 28) and 66.2% exact-match accuracy on object counting. For production counting or precise localization, pairing it with a specialized detector like RF-DETR or your own trained model in a Roboflow Workflow is usually more reliable: detect the objects, then count the detections.
On our benchmark's task mix, Muse Glimmer 30B averages $0.0013 per sample at $0.35 per 1M input and $1.50 per 1M output tokens (#6 of 28 on cost), with an average speed of 8.7s per sample across the benchmark. Actual cost depends on your images and prompts.
On the overall Vision Evals ranking, Muse Glimmer 30B sits #14 of 28 at 70.8%, just behind GPT-5.6 Luna (71.5%) and just ahead of Gemini 3.5 Flash-Lite (69.6%). See the full side-by-side: Muse Glimmer 30B vs GPT-5.6 Luna.