Model type
Language model
5 Downloads
Capabilities
Minimum system memory
Tags
Model type
Language model
5 Downloads
Capabilities
Model type
Language model
5 Downloads
Capabilities
Minimum system memory
Tags
Model type
Language model
5 Downloads
Capabilities
Minimum system memory
Tags
Last updated
Updated on September 11byREADME
Wraps the local MXFP8 MLX weights at ~/AI/FiditeNemini/Unhinged-Qwen3.8-27B-MLX-MXFP8
(published at https://huggingface.co/FiditeNemini/Unhinged-Qwen3.8-27B-MLX-MXFP8) so the controls
Qwen3.8's chat template exposes become UI elements in LM Studio.
Nothing is downloaded — the weights are already on disk; this package only adds controls on top of them.
Each is a customField with a setJinjaVariable effect, bound to a variable the model's own
chat template reads. ../qwen3.8-27b-gguf/src/modelYaml.test.ts renders the real template to
prove every one of them changes the prompt.
| UI element | Type | Default | Jinja variable | Effect |
|---|---|---|---|---|
| Enable Thinking | toggle | on | enable_thinking | Off pre-closes <think>\n\n</think>, so the model answers directly |
| Reasoning Effort | dropdown | High | reasoning_effort | Injects a system instruction tuning analysis depth |
| Preserve Thinking |
Custom Fields
Special features defined by the model author
Enable Thinking
: boolean
(default=true)
Think before replying. When off, the thinking block is closed immediately and the model answers directly — pair that with the non-thinking sampling preset in the README.
Reasoning Effort
: select
(default=xhigh)
How much analysis to spend before answering. High is thorough, Medium is balanced, Low is fast and terse. No effect while Enable Thinking is off. In multi-turn agentic work, lower effort can raise total latency by causing retries.
Preserve Thinking
: boolean
(default=true)
Keep reasoning from earlier assistant turns in context. On gives agents a continuous reasoning trace and better KV cache reuse; off keeps only the latest turn's thinking, which shortens long conversations.
Label Images and Videos
: boolean
(default=false)
Prefix each attachment with "Picture N:" or "Video N:" so prompts can refer to a specific one by number. Useful when comparing several images in a single message.
Parameters
Custom configuration options included with this model
Sources
The underlying model files this model uses
Minimum system memory
Tags
Last updated
Updated on September 11byREADME
Wraps the local MXFP8 MLX weights at ~/AI/FiditeNemini/Unhinged-Qwen3.8-27B-MLX-MXFP8
(published at https://huggingface.co/FiditeNemini/Unhinged-Qwen3.8-27B-MLX-MXFP8) so the controls
Qwen3.8's chat template exposes become UI elements in LM Studio.
Nothing is downloaded — the weights are already on disk; this package only adds controls on top of them.
Each is a customField with a setJinjaVariable effect, bound to a variable the model's own
chat template reads. ../qwen3.8-27b-gguf/src/modelYaml.test.ts renders the real template to
prove every one of them changes the prompt.
| UI element | Type | Default | Jinja variable | Effect |
|---|---|---|---|---|
| Enable Thinking | toggle | on | enable_thinking | Off pre-closes <think>\n\n</think>, so the model answers directly |
| Reasoning Effort | dropdown | High | reasoning_effort | Injects a system instruction tuning analysis depth |
| Preserve Thinking |
Custom Fields
Special features defined by the model author
Enable Thinking
: boolean
(default=true)
Think before replying. When off, the thinking block is closed immediately and the model answers directly — pair that with the non-thinking sampling preset in the README.
Reasoning Effort
: select
(default=xhigh)
How much analysis to spend before answering. High is thorough, Medium is balanced, Low is fast and terse. No effect while Enable Thinking is off. In multi-turn agentic work, lower effort can raise total latency by causing retries.
Preserve Thinking
: boolean
(default=true)
Keep reasoning from earlier assistant turns in context. On gives agents a continuous reasoning trace and better KV cache reuse; off keeps only the latest turn's thinking, which shortens long conversations.
Label Images and Videos
: boolean
(default=false)
Prefix each attachment with "Picture N:" or "Video N:" so prompts can refer to a specific one by number. Useful when comparing several images in a single message.
Parameters
Custom configuration options included with this model
Sources
The underlying model files this model uses
| toggle |
| on |
preserve_thinking |
| Off drops reasoning from turns before the latest user message |
| Label Images and Videos | toggle | off | add_vision_id | Prefixes attachments with Picture N: / Video N: |
Two behaviours worth knowing. Medium injects nothing — xhigh and low each add an
instruction, medium is the template's neutral level. And effort is inert while thinking is
off, since the template only computes reasoning instructions inside the enable_thinking
branch.
Enable Thinking is keyed exactly enableThinking on purpose: LM Studio promotes a boolean field
whose key ends in that string into its native reasoning toggle rather than drawing a second
control.
Established empirically on LM Studio 0.4.21+2. Neither is in the published docs.
The key is <publisher>/<folder> lowercased, where publisher is the parent directory name
under the models root — it is not a manifest field. Matching is case-insensitive, so the
exact-case form works too; case is not the problem it is often assumed to be.
A stale name fails silently. The wrapper still registers, still appears in the picker, and still carries its field definitions — it just binds to nothing, so no controls render and the thinking badge disappears. Renaming the weights folder breaks this every time, and it is by far the most common cause of "my custom fields stopped working".
LM Studio collapses the two into a single row only for weights it downloaded itself, still sitting where it put them:
| weights | how they got there | one row? |
|---|---|---|
lmstudio-community/gemma-4-E2B-it-MLX-4bit | downloaded | yes |
lmstudio-community/gemma-4-12B-it-GGUF | downloaded | yes |
lmstudio-community/Qwen3.8-27B-GGUF | downloaded | yes |
FiditeNemini/Qwen3.8-27B-RAW | downloaded, then moved + renamed | no |
FiditeNemini/Unhinged-Qwen3.8-27B-MLX-MXFP8 | produced locally | no |
Row 4 is the decisive one: the same GGUF file that folded stopped folding once it was moved. So the association is to a downloaded artifact at its original path, not to any property of the model.yaml.
These weights were never downloaded, so there is nothing to associate. No model.yaml setting
fixes this. In particular, owner naming does not — a wrapper owned by local against weights
published as FiditeNemini still duplicates, which killed an earlier theory that the two merely
had to differ.
Publishing the weights to HuggingFace and re-downloading does not fix it — tested, no
change. What still correlates perfectly is how the wrapper got into hub/models/: every one
that folds is a Hub artifact LM Studio installed itself, and every hand-copied one duplicates.
The supported way to make a real artifact is lms push — and note that model.yaml belongs on
the LM Studio Hub, not HuggingFace. HF hosts weights; the Hub hosts the metadata artifact,
and the HF downloader ignores a model.yaml sitting in a weights repo.
lms login && lms push # from this folder lms get fiditenemini/unhinged-qwen3.8-27b
Untested at time of writing. If you install that way, do not re-run ./install.sh afterwards
— hand-copying over a Hub-managed artifact reintroduces exactly the problem.
Until then the trade is two rows with controls, or one row without.
Check whether the base bound:
python3 -c "import json;d=json.load(open('$HOME/.cache/lm-studio/.internal/model-index-cache.json'));[print(m['indexedModelIdentifier'],m['virtual'].get('concreteModelOptions')) for m in d['models'] if m.get('virtual') and '@' not in m['indexedModelIdentifier']]"
An empty concreteModelOptions means it did not bind — almost always a renamed weights folder.
Other silent failures seen during this work:
manifest.json. A smart quote (" vs “) or an em dash in name is enough;
the whole wrapper is dropped with no error, and it simply vanishes from the picker.hub/models/<owner>/<name>/ must match manifest
owner/name, and owner must be lowercase.262,144, and that is a hard ceiling here. LM Studio routes vision models through mlx_vlm,
whose Qwen3_5RotaryEmbedding accepts no scaling config and never calls initialize_rope, so
YaRN and every other RoPE knob are ignored. metadataOverrides is presentation-only, so
advertising more would just be false. For longer context use the GGUF sibling, where llama.cpp
takes RoPE scaling as load-time settings.
config.operation carries Qwen's thinking-mode preset (temperature 1.0, top_p 0.95,
top_k 20). min_p and repeat_penalty ship unchecked — Qwen's values for both are
no-ops, so enabling them would only mislead. If you turn thinking off, Qwen recommends
temperature 0.7, top_p 0.80, presence_penalty 1.5; set those by hand.
./install.sh
Validates against LM Studio's schema (via the sibling package's suite) then copies model.yaml
and manifest.json into ~/.cache/lm-studio/hub/models/local/unhinged-qwen3.8-27b-mlx/.
Based on
MLX
| toggle |
| on |
preserve_thinking |
| Off drops reasoning from turns before the latest user message |
| Label Images and Videos | toggle | off | add_vision_id | Prefixes attachments with Picture N: / Video N: |
Two behaviours worth knowing. Medium injects nothing — xhigh and low each add an
instruction, medium is the template's neutral level. And effort is inert while thinking is
off, since the template only computes reasoning instructions inside the enable_thinking
branch.
Enable Thinking is keyed exactly enableThinking on purpose: LM Studio promotes a boolean field
whose key ends in that string into its native reasoning toggle rather than drawing a second
control.
Established empirically on LM Studio 0.4.21+2. Neither is in the published docs.
The key is <publisher>/<folder> lowercased, where publisher is the parent directory name
under the models root — it is not a manifest field. Matching is case-insensitive, so the
exact-case form works too; case is not the problem it is often assumed to be.
A stale name fails silently. The wrapper still registers, still appears in the picker, and still carries its field definitions — it just binds to nothing, so no controls render and the thinking badge disappears. Renaming the weights folder breaks this every time, and it is by far the most common cause of "my custom fields stopped working".
LM Studio collapses the two into a single row only for weights it downloaded itself, still sitting where it put them:
| weights | how they got there | one row? |
|---|---|---|
lmstudio-community/gemma-4-E2B-it-MLX-4bit | downloaded | yes |
lmstudio-community/gemma-4-12B-it-GGUF | downloaded | yes |
lmstudio-community/Qwen3.8-27B-GGUF | downloaded | yes |
FiditeNemini/Qwen3.8-27B-RAW | downloaded, then moved + renamed | no |
FiditeNemini/Unhinged-Qwen3.8-27B-MLX-MXFP8 | produced locally | no |
Row 4 is the decisive one: the same GGUF file that folded stopped folding once it was moved. So the association is to a downloaded artifact at its original path, not to any property of the model.yaml.
These weights were never downloaded, so there is nothing to associate. No model.yaml setting
fixes this. In particular, owner naming does not — a wrapper owned by local against weights
published as FiditeNemini still duplicates, which killed an earlier theory that the two merely
had to differ.
Publishing the weights to HuggingFace and re-downloading does not fix it — tested, no
change. What still correlates perfectly is how the wrapper got into hub/models/: every one
that folds is a Hub artifact LM Studio installed itself, and every hand-copied one duplicates.
The supported way to make a real artifact is lms push — and note that model.yaml belongs on
the LM Studio Hub, not HuggingFace. HF hosts weights; the Hub hosts the metadata artifact,
and the HF downloader ignores a model.yaml sitting in a weights repo.
lms login && lms push # from this folder lms get fiditenemini/unhinged-qwen3.8-27b
Untested at time of writing. If you install that way, do not re-run ./install.sh afterwards
— hand-copying over a Hub-managed artifact reintroduces exactly the problem.
Until then the trade is two rows with controls, or one row without.
Check whether the base bound:
python3 -c "import json;d=json.load(open('$HOME/.cache/lm-studio/.internal/model-index-cache.json'));[print(m['indexedModelIdentifier'],m['virtual'].get('concreteModelOptions')) for m in d['models'] if m.get('virtual') and '@' not in m['indexedModelIdentifier']]"
An empty concreteModelOptions means it did not bind — almost always a renamed weights folder.
Other silent failures seen during this work:
manifest.json. A smart quote (" vs “) or an em dash in name is enough;
the whole wrapper is dropped with no error, and it simply vanishes from the picker.hub/models/<owner>/<name>/ must match manifest
owner/name, and owner must be lowercase.262,144, and that is a hard ceiling here. LM Studio routes vision models through mlx_vlm,
whose Qwen3_5RotaryEmbedding accepts no scaling config and never calls initialize_rope, so
YaRN and every other RoPE knob are ignored. metadataOverrides is presentation-only, so
advertising more would just be false. For longer context use the GGUF sibling, where llama.cpp
takes RoPE scaling as load-time settings.
config.operation carries Qwen's thinking-mode preset (temperature 1.0, top_p 0.95,
top_k 20). min_p and repeat_penalty ship unchecked — Qwen's values for both are
no-ops, so enabling them would only mislead. If you turn thinking off, Qwen recommends
temperature 0.7, top_p 0.80, presence_penalty 1.5; set those by hand.
./install.sh
Validates against LM Studio's schema (via the sibling package's suite) then copies model.yaml
and manifest.json into ~/.cache/lm-studio/hub/models/local/unhinged-qwen3.8-27b-mlx/.
Based on
MLX