
Qwen3.6-35B-A3B makes sense as a standalone local model only if you can answer one practical question. What can you actually do with it on your own machine?
The point is not another league table. The point is to show how the model behaves across its main modalities. You need to see how to shape prompts that do not drift. You also need to query the same model through LM Studio, Ollama or llama-server without changing your whole workflow.
This article replaces the earlier comparison framing with a cleaner structure. One model. Three scripts. Three kinds of output.
First comes text prompting. Then the OpenAI-compatible endpoint layer. Finally the multimodal path: a single image or a short local video file sampled into frames and sent to the model as one request.
What this article actually covers
| Area | Goal | Script |
|---|---|---|
| Text prompting | Show prompt shapes that are stable for explanation, planning, review and structured output | 03a_qwen_prompt_patterns.py |
| Local API calls | Query LM Studio, Ollama or llama-server through the same OpenAI-compatible interface | 03b_qwen_local_endpoints.py |
| Image and video input | Send one image or sampled local video frames to the model with a grounded question | 03c_qwen_modalities_demo.py |
That combination matches how people actually adopt a local multimodal model. They do not begin with benchmark spreadsheets. They begin with a task.
You might need to summarize, review, extract, inspect a screenshot, or understand what happened in a short clip. The scripts below are intentionally small. Each one isolates one decision: prompt shape, endpoint portability, or multimodal payload structure.
Script 1: prompt design for text-only work
03a_qwen_prompt_patterns.py is the control script for the article. It keeps everything text-only and focuses on the prompt itself.
That matters because many problems blamed on the model are really prompt-shape problems. You might have vague task framing, unstable output schema, or a missing constraint about tone and structure.
The script ships with four prompt styles:
- explain — technical explanation with clear constraints and a closing checklist,
- structured — deterministic JSON-style extraction,
- review — reviewer mode for correctness and missing edge cases,
- plan — short executable task breakdown.
python scripts/lm-studio-benchmark-lab/03a_qwen_prompt_patterns.py --style explain
python scripts/lm-studio-benchmark-lab/03a_qwen_prompt_patterns.py ^
--model qwen36-35b-a3b ^
--style structured ^
--max-tokens 1200 ^
--user-text "Roll out a local multimodal assistant for internal support."
The important part is not the CLI itself. It is the prompt discipline behind it.
For Qwen3.6, the safest baseline is simple. Keep the system message narrow. Put the output contract in the user message. Ask for one response format only.
If you mix explanation, extraction and planning into one request, the output becomes harder to reuse downstream.
How to read the output of Script 1
When the explain style works, the model gives you bounded prose. That prose can go straight into documentation.
When structured works, the response becomes easy to parse and compare between runs. When review works, the model stops being chatty and starts acting more like a reviewer.
In other words, this script is less about one perfect prompt. It is more about separating intents so the local model stays predictable.
Real run: what actually happened on LM Studio
I ran the structured variant locally against the loaded model identifier qwen36-35b-a3b. The practical outcome was useful, but also revealing.
LM Studio 0.4.14 let Qwen spend almost the whole completion budget on reasoning tokens. The saved JSON reported 1270 total tokens, including 1199 reasoning tokens.
That is why the updated script now stores both response and reasoning_content instead of silently saving an empty string.
Even with that behavior, the model still converged on a stable rollout structure. The useful part of the run was:
{
"task": "Deploy a local multimodal AI assistant for internal organizational support.",
"assumptions": [
"Sufficient on-premise or private cloud compute infrastructure exists",
"IT and security teams approve local model deployment"
],
"risks": [
"High hardware procurement and maintenance costs",
"Model inaccuracy or hallucination in critical workflows"
],
"next_steps": [
"Audit current infrastructure and compute capacity",
"Launch a controlled pilot with a designated user group"
]
}
The lesson is operational, not theoretical: for text-only Qwen runs on this setup, shorter tasks and a hard output contract matter more than creative prompting. If the completion budget is too small or the instruction is too loose, the model can waste most of the response on reasoning and leave little or no final answer.
Real run: simple text-to-text example
To show the most basic interaction pattern, I sent a direct question about quantization without any system prompt or structured formatting. This is what a plain text-to-text exchange looks like with Qwen3.6-35B-A3B on LM Studio.
Prompt:
Explain how quantization affects the quality and speed of local LLM inference.
Keep the answer under 200 words.
Model response:
Quantization reduces an LLM's numerical precision (e.g., from 16-bit float to 8-bit
or 4-bit integers), compressing weights to fit consumer hardware.
Speed: It dramatically accelerates inference. Smaller models consume less VRAM and RAM,
alleviating memory bandwidth bottlenecks. Modern hardware efficiently processes
low-precision data, enabling higher tokens-per-second, lower latency, and the ability
to run larger models on modest GPUs or CPUs.
Quality: Reduced precision causes information loss, but modern calibration techniques
(AWQ, GGUF, FP8) minimize degradation. At 4-bit, models typically retain 95–99% of
their original capability, making outputs nearly indistinguishable for everyday tasks.
However, complex reasoning, factual accuracy, and nuanced generation may degrade,
especially below 4-bit. The impact depends on the use case: casual chat and coding
often remain smooth, while specialized applications may require higher precision.
Ultimately, quantization enables practical local LLM deployment by trading marginal
quality loss for substantial gains in speed, memory efficiency, and hardware
accessibility.
The run consumed 2024 total tokens (36 prompt, 1795 reasoning, 229 visible response). The model spent nearly 90% of its completion budget on internal reasoning before producing a concise 150-word answer. This is the expected behavior for Qwen3.6 on LM Studio 0.4.14: the model thinks extensively before responding, which is why setting max_tokens too low can result in empty or truncated visible output.
Script 2: one model, several local endpoints
03b_qwen_local_endpoints.py demonstrates the operational layer. The same prompt can be sent to LM Studio, Ollama, llama-server, or any other local server that exposes the OpenAI-compatible API.
This is the part many users underestimate. Once the payload is normalized, the model becomes portable across runtimes.
python scripts/lm-studio-benchmark-lab/03b_qwen_local_endpoints.py ^
--backend lmstudio ^
--model qwen36-35b-a3b ^
--system "Answer directly in 3 bullets. Return only the final answer." ^
--max-tokens 1200 ^
--prompt "Give 3 safe prompt patterns for logs, code, and screenshots."
python scripts/lm-studio-benchmark-lab/03b_qwen_local_endpoints.py ^
--backend ollama ^
--model qwen3.6:35b-a3b ^
--prompt "Summarize this deployment note in 4 bullets."
python scripts/lm-studio-benchmark-lab/03b_qwen_local_endpoints.py --backend llama-server --list-models
| Backend | Default URL | What the script proves |
|---|---|---|
| LM Studio | http://localhost:1234/v1 | Fastest path for desktop testing and prompt iteration |
| Ollama | http://localhost:11434/v1 | Simple CLI-based local serving with the same request shape |
| llama-server | http://localhost:8080/v1 | Lower-level runtime where you directly control model flags and decoding |
The analysis here is straightforward. If your code depends only on messages, model, max_tokens and a compatible base_url, you are no longer trapped in one desktop app.
That is the right architectural boundary for local AI. Change the runtime if you need to. But do not keep rewriting the application code above it.
Real run: endpoint validation on the workstation
On the test machine used for this article, the LM Studio endpoint exposed the loaded model under both qwen36-35b-a3b and qwen/qwen3.6-35b-a3b.
That matters because the OpenAI-compatible path worked immediately once the model was loaded through lms load. No application-side code change was needed.
The concrete response pattern from the real run was also practical. Qwen proposed three prompt templates aligned to three common local tasks:
- Logs: analyze an anonymized snippet, replace PII and tokens with placeholders, and limit the answer to explicit errors plus an actionable fix.
- Code: review a snippet for security or performance issues after stripping secrets, then return only focused improvements that preserve constraints.
- Screenshots: inspect a redacted image, ignore blurred content, and return only layout, accessibility or structure feedback with no guesses about hidden state.
The saved response was not a summary invented after the run. It started like this in the JSON artifact:
Here's a thinking process:
1. Analyze User Input:
- Request: "Give 3 safe prompt patterns for logs, code, and screenshots."
2. Deconstruct Requirements:
- Need exactly 3 bullet points.
- Each bullet should correspond to logs, code, screenshots.
3. Brainstorming Safe Prompt Patterns:
- Logs: anonymized or redacted log snippet, replace all PII and tokens.
- Code: review code for security or performance issues after removing secrets.
- Screenshots: provide UX or structure feedback while ignoring blurred text.
Ollama and llama-server were not active on this workstation during the same validation pass, so the article does not pretend otherwise. The important point is narrower and more honest: the payload shape stayed identical, and the LM Studio run proved that the scripts work against a real local OpenAI-compatible endpoint.
Script 3: multimodal input without cloud dependencies
03c_qwen_modalities_demo.py shows the multimodal side directly. It accepts either one local image or one local video file.
For image input it base64-encodes the file and sends it as a standard image_url content block. For video it does not pretend the model understands raw container metadata.
It samples frames every N seconds, tags them with timestamps, and sends that list as the visual context for a single question.
This is the correct level of abstraction for a local video workflow. The model is not asked to infer an entire film. It is asked to reason over a bounded visual sequence.
That keeps token usage, visual payload size and response scope under control.
How to prompt image tasks
The strongest image prompts are grounded, not poetic. Ask for visible elements, layout, errors, labels, states, and concrete relationships. A local multimodal model is most useful when you reduce ambiguity:
- Good: “List the visible sections, the main action button and any warning text.”
- Good: “Extract the KPI names and describe what each chart seems to track.”
- Weak: “What do you think about this image?”
The script makes this visible because it stores the request and response in JSON. You can compare how the answer changes when the question becomes more specific.
That is more valuable than a synthetic score. It tells you how to get reusable output from the same screenshot.
How to prompt video-frame tasks
Video prompts should explicitly acknowledge that the model receives sampled frames, not a magical continuous stream.
That is why the script injects timestamp markers such as [Frame at 12.0s]. These markers give the model a simple temporal scaffold.
Without them, the answer tends to collapse into a flat image summary.
For practical work, keep the question procedural:
- Sequence question: “Describe the steps shown across the frames in order.”
- Change question: “What changes from frame to frame and what remains constant?”
- State question: “Which state transition is the most important in this clip?”
That is also why the script limits frame count. Six to eight frames are usually easier to reason over than a noisy burst of dozens of images.
More frames do not automatically mean better understanding. They often just mean more clutter.
Real-world test: analyzing a YouTube tutorial
To demonstrate multimodal capabilities with real content, I downloaded a YouTube tutorial and ran it through the same script.
The source video was LM Studio Is Getting Insane – Start Using It Now. The goal was straightforward: can Qwen3.6 reconstruct the narrative of a real screencast from sampled frames alone? No audio. No subtitles. Just visual context.
Video analysis: 6 frames across 50 seconds
The script sampled 6 frames at 10-second intervals. It sent them as a single multimodal request. Here is the exact prompt and the model’s response:
Prompt:
python scripts/lm-studio-benchmark-lab/03c_qwen_modalities_demo.py ^
--video youtube_video.mp4 ^
--question "Analyze this video and describe what it is about. Focus on key visual and thematic elements. List the most important moments and their significance." ^
--sample-seconds 10.0 ^
--max-frames 6 ^
--max-tokens 2000
Model response:
Based on the provided frames, this video is a demonstration and tutorial for LM Studio,
a popular application used to run Large Language Models (LLMs) locally on personal
computers. The presenter walks through the interface, checking hardware compatibility,
browsing the model library, and demonstrating a specific feature.
Thematic Elements:
* Local AI & Privacy: The opening text "Run AI models, locally and privately" sets the
main theme: taking control of AI away from the cloud and running it on your own hardware.
* Hardware Compatibility: A significant portion of the video focuses on checking if a
computer can actually run these models, highlighting the technical requirements (RAM/VRAM).
* Accessibility: The video aims to show that running advanced AI is accessible to regular
users with standard laptops (like the Apple M4 Pro shown).
Key Moments and Significance:
* [0.0s] Introduction & LM Link: The video begins with the LM Studio landing page.
It introduces "LM Link," a feature that allows users to connect to remote instances
of LM Studio.
* [10.0s] Browsing the Model Library: The presenter is inside the app's "Model Library."
They have selected google/gemma-4-2b. This frame highlights the ease of discovery,
showing model cards with details like parameter size (5.1B), architecture, and
supported capabilities (Vision, Text, Reasoning).
* [20.0s] Checking Hardware Specs: The presenter navigates to the "Hardware" settings.
It explicitly shows the system specs: an Apple M4 Pro with 24 GB RAM and 16 GB VRAM.
* [30.0s] Downloading a Model & Size Warnings: The user looks at Minimax-M2.7-GGUF.
A red warning "Likely too large" appears, teaching the user that not every model
will fit on their computer.
* [40.0s & 50.0s] Chatting with a PDF: The final segment demonstrates the
"Chat With PDF" feature. The user has uploaded a "Claude Opus 4.7 System Card.pdf"
and asks the local model to analyze it.
The run consumed 3209 total tokens. The breakdown: 1434 prompt tokens, 1174 reasoning tokens, and 601 visible response tokens.
The model correctly reconstructed the tutorial narrative from frames alone. It identified five key moments: landing page introduction, model library browsing, hardware compatibility check, download size warnings, and PDF chat functionality. No audio or subtitle data was provided.
Single-frame analysis: the 20-second mark
Could the model go deeper on one specific moment? I extracted the frame at the 20-second mark and sent it as a standalone image request.

Prompt:
python scripts/lm-studio-benchmark-lab/03c_qwen_modalities_demo.py ^
--image youtube_frame_20s.jpg ^
--question "Analyze this screenshot in detail. Describe what you see, including any text, UI elements, and the overall context. What is the user doing in this image?" ^
--max-tokens 1500
Model response:
Based on the screenshot, here is a detailed analysis of the visual elements and the context:
Overall Context
The image displays a software interface, likely Open WebUI (a popular interface for
running local Large Language Models like Ollama). The user is in the process of
browsing a library of AI models, specifically looking at the details and download
options for a model named "google/gemma-4-e2b."
Left Sidebar (Model Library)
* Search Bar: At the top, there is a search field labeled "Search local models by
name or author..."
* Filters: Below the search bar are tabs for "Staff picks," "GGUF, MLX," and
"Best Match."
* Model List: A vertical list of available AI models is shown. The list includes:
- Qwen2.6 27B
- Qwen2.6 32B A3B
- Gemma 4 31B
- Gemma 4 E4B
- Gemma 4 E2B (highlighted in blue, indicating it is the currently selected model)
- Gemma 4 A4B
* Video Overlay: In the bottom left corner, there is a circular "picture-in-picture"
video feed showing a man with a beard and headphones. This suggests the screenshot
is from a video tutorial, livestream, or video call.
Main Content Area (Right Side)
* Model Header: The title is google/gemma-4-e2b.
* Stats: It shows a count of 337,750 (likely downloads or stars), a "Last updated:
15 days ago" timestamp, and a "Staff Pick" badge.
* Description: "Gemma4, effective 28B version. Supports image input, reasoning,
and tool calling."
* Parameters: 5.1B, Architecture: gemma, Format: GGUF
* Capabilities: Vision, Tool Use, Reasoning
* Download Options: A list of quantization levels with a "Download" button (4.41 GB)
The run consumed 1770 total tokens. The breakdown: 270 prompt tokens, 1106 reasoning tokens, and 394 visible response tokens.
The model correctly identified the model library interface, the selected model, its capabilities, the download size, and even the picture-in-picture presenter overlay. It misidentified the app as “Open WebUI” instead of LM Studio. This minor error is understandable given the visual similarity between local model management interfaces.
What these YouTube runs prove
| Aspect | Video (6 frames) | Single frame (20s) |
|---|---|---|
| Input | 6 JPEG frames at 10s intervals | 1 JPEG frame at 20s |
| Prompt tokens | 1,434 | 270 |
| Reasoning tokens | 1,174 | 1,106 |
| Visible response | 601 tokens | 394 tokens |
| Narrative reconstruction | Correct 5-step tutorial flow | Detailed UI element inventory |
| Accuracy | All key moments identified correctly | App name wrong, everything else correct |
The practical takeaway is clear. Qwen3.6-35B-A3B handles real-world multimodal input well when the prompt is grounded.
The video analysis reconstructed a coherent narrative from sparse frames. The single-frame analysis produced a detailed UI inventory. Both runs spent more tokens on reasoning than on the visible answer. This is the expected behavior for this model on LM Studio 0.4.14.
Why these three scripts form one coherent workflow
Together, the scripts answer three different implementation questions:
| Question | Answering script | Main insight |
|---|---|---|
| How should I phrase the task? | 03a_qwen_prompt_patterns.py | Separate explanation, review, planning and structured extraction into different prompt shapes |
| How do I query the model locally? | 03b_qwen_local_endpoints.py | Use one OpenAI-compatible payload and swap runtimes by changing the base URL |
| How do I feed visual context? | 03c_qwen_modalities_demo.py | Send either one image or a bounded frame sequence with timestamps and a narrow question |
This is what the earlier version of the article was missing. A standalone article about Qwen3.6 should not spend its energy proving that some other model is slower or faster.
It should show what the model feels like to use in practice. How do you prompt it? How do you query it? How do you pass visual context? Where does the local workflow get cleaner once the interface is stable?
Operational notes for local use
- Use low temperature for structured tasks. If you want JSON-like outputs, stay near
0.1–0.2. - Keep visual questions narrow. Ask for objects, changes, warnings, labels or steps, not abstract opinions.
- Do not overload the video payload. Sample frames conservatively and label time positions.
- Save outputs to JSON. The scripts already do this, which makes prompt regression checks much easier.
- Watch reasoning-heavy runs. On this LM Studio build, Qwen could consume most of the completion budget in reasoning tokens unless the prompt contract stayed tight.
- Treat the endpoint as a boundary. If your app speaks one OpenAI-compatible dialect, runtime swaps become operational rather than architectural changes.
Summary
This article shows Qwen3.6-35B-A3B as one local multimodal model. The three scripts demonstrate practical usage patterns. The first stabilizes prompt design. The second proves endpoint portability. The third demonstrates image and video-frame input.
Evaluating whether this model belongs in your stack requires answering three questions in order. First: can you get stable text output? Second: can you query it through your preferred local runtime? Third: can you pass visual context without inventing a separate cloud pipeline?
This article answers all three questions with real local runs. The examples include simple text-to-text exchanges, structured JSON extraction, endpoint validation across runtimes, and real YouTube video processing. Each run shows actual prompts, model responses, and token usage breakdowns.
The key insight is operational rather than theoretical. Qwen3.6 spends most of its completion budget on internal reasoning. Setting appropriate token limits and keeping prompts grounded produces usable output. The model handles real-world multimodal input well when you reduce ambiguity and avoid overloading the visual context.
Leave a Reply