AFM preflights a checkpoint's config.json before loading it. The model_type field—not the repository name—is normalized, checked against this allowlist, and used to choose a language or vision loading path.
Complete architecture list
model_type | Classification | Important behavior |
|---|---|---|
acereason | Language | Loads through the MLX language-model path. |
afmoe | Blocked | Recognized but deliberately blocked because it is known to crash the Metal GPU driver. |
apertus | Language | Loads through the MLX language-model path. |
baichuan_m1 | Language | Loads through the MLX language-model path. |
bailing_moe | Language | Loads through the MLX language-model path. |
bitnet | Language | Loads through the MLX language-model path. |
cohere | Language | Loads through the MLX language-model path. |
deepseek_v3 | Language | Loads through the MLX language-model path. |
deepseek_v4 | Language | Loads through the MLX language-model path. |
ernie4_5 | Language | Loads through the MLX language-model path. |
exaone4 | Language | Loads through the MLX language-model path. |
falcon_h1 | Language | Loads through the MLX language-model path. |
fastvlm | Vision | Recognized by the vision-model preflight path. |
gemma | Language | Loads through the MLX language-model path. |
gemma2 | Language | Loads through the MLX language-model path. |
gemma3 | Dual-mode | The presence of vision_config determines the effective path. |
gemma3_text | Language | Loads through the MLX language-model path. |
gemma3n | Language | Loads through the MLX language-model path. |
gemma4 | Language | Loads through the MLX language-model path. |
gemma4_text | Language | Loads through the MLX language-model path. |
glm_moe_dsa | Language | Loads through the MLX language-model path. |
glm4 | Language | Loads through the MLX language-model path. |
glm4_moe | Language | Loads through the MLX language-model path. |
glm4_moe_lite | Language | Loads through the MLX language-model path. |
gpt_oss | Language | Loads through the MLX language-model path. |
granite | Language | Loads through the MLX language-model path. |
granitemoehybrid | Language | Loads through the MLX language-model path. |
idefics3 | Vision | Recognized by the vision-model preflight path. |
internlm2 | Language | Loads through the MLX language-model path. |
jamba_3b | Language | Loads through the MLX language-model path. |
joyai_llm_flash | Language | Loads through the MLX language-model path. |
kimi_k2 | Language | Loads through the MLX language-model path. |
kimi_k25 | Language | Loads through the MLX language-model path. |
lfm2 | Language | Loads through the MLX language-model path. |
lfm2_moe | Language | Loads through the MLX language-model path. |
lfm2_vl | Vision | Recognized by the vision-model preflight path. |
lfm2-vl | Vision | Hyphenated compatibility spelling; lfm2_vl is also accepted. |
lille-130m | Language | Loads through the MLX language-model path. |
llama | Language | Loads through the MLX language-model path. |
llava_qwen2 | Vision | Recognized by the vision-model preflight path. |
mimo | Language | Loads through the MLX language-model path. |
minimax_m2 | Language | Loads through the MLX language-model path. |
mistral | Language | Loads through the MLX language-model path. |
mistral3 | Dual-mode | The presence of vision_config determines the effective path. |
nanochat | Language | Loads through the MLX language-model path. |
nemotron_h | Language | Loads through the MLX language-model path. |
olmo2 | Language | Loads through the MLX language-model path. |
olmo3 | Language | Loads through the MLX language-model path. |
olmoe | Language | Loads through the MLX language-model path. |
openelm | Language | Loads through the MLX language-model path. |
paligemma | Vision | Recognized by the vision-model preflight path. |
phi | Language | Loads through the MLX language-model path. |
phi3 | Language | Loads through the MLX language-model path. |
phimoe | Language | Loads through the MLX language-model path. |
pixtral | Vision | Recognized by the vision-model preflight path. |
qwen2 | Language | Loads through the MLX language-model path. |
qwen2_5_vl | Vision | Recognized by the vision-model preflight path. |
qwen2_vl | Vision | Recognized by the vision-model preflight path. |
qwen3 | Language | Loads through the MLX language-model path. |
qwen3_5 | Dual-mode | The presence of vision_config determines the effective path. |
qwen3_5_moe | Dual-mode | The presence of vision_config determines the effective path. |
qwen3_6 | Dual-mode | The presence of vision_config determines the effective path. |
qwen3_6_moe | Dual-mode | The presence of vision_config determines the effective path. |
qwen3_moe | Language | Loads through the MLX language-model path. |
qwen3_next | Language | Loads through the MLX language-model path. |
qwen3_vl | Vision | Recognized by the vision-model preflight path. |
smollm3 | Language | Loads through the MLX language-model path. |
smolvlm | Vision | Recognized by the vision-model preflight path. |
starcoder2 | Language | Loads through the MLX language-model path. |
Family view
The runtime works from exact model_type values, but this view makes the breadth easier to scan.
llama · mistral · mistral3 · starcoder2 · jamba_3b · pixtral
gemma · gemma2 · gemma3 · gemma3_text · gemma3n · gemma4 · gemma4_text · paligemma
qwen2 · qwen3 · qwen3_moe · qwen3_next · qwen3_5 · qwen3_5_moe · qwen3_6 · qwen3_6_moe · qwen2_vl · qwen2_5_vl · qwen3_vl · llava_qwen2
deepseek_v3 · deepseek_v4 · kimi_k2 · kimi_k25 · joyai_llm_flash
glm4 · glm4_moe · glm4_moe_lite · glm_moe_dsa
phi · phi3 · phimoe · bitnet · granite · granitemoehybrid · nemotron_h
lfm2 · lfm2_moe · lfm2_vl · lfm2-vl · cohere
acereason · openelm · internlm2 · mimo · falcon_h1 · smollm3 · ernie4_5 · baichuan_m1 · exaone4 · gpt_oss · lille-130m · olmoe · olmo2 · olmo3 · bailing_moe · nanochat · apertus · minimax_m2
idefics3 · smolvlm · fastvlm
afmoe is omitted from the family view because AFM's preflight safety policy blocks it before model creation.
Normalized aliases
AFM accepts these upstream spelling variants and maps them to one canonical type before checking support:
| Declared value | Canonical value |
|---|---|
qwen3.5 | qwen3_5 |
qwen3.5_moe | qwen3_5_moe |
qwen3.5_next | qwen3_next |
qwen3.5_vl | qwen3_vl |
qwen3.6 | qwen3_6 |
qwen3.6_moe | qwen3_6_moe |
qwen3_6_next · qwen3.6_next | qwen3_next |
qwen3_6_vl · qwen3.6_vl · qwen3_5_vl | qwen3_vl |
gemma_4 · gemma-4 | gemma4 |
gemma_4_text · gemma-4-text | gemma4_text |
How modality is selected
- AFM reads the downloaded or local checkpoint's
config.json. - It normalizes known aliases and rejects unknown types before allocating the model.
- It inspects nested
text_config,vision_config, and processor metadata—not only the type's name. - For dual-mode Qwen3.5/Qwen3.6 and Gemma/Mistral-style configurations, the actual config layout selects the factory.
--mediaforces VLM intent for single-prompt mode; remote preflight may correct an incorrect text/vision guess.
Architecture-specific behavior
| Architecture | Special path | Boundary |
|---|---|---|
qwen3_6* | MTP compatibility detection | Also requires an mtp.safetensors sidecar and an eligible request. |
gemma4 | Native Gemma 4 tools; dense verifier may use EAGLE3 | Adaptive XML is bypassed. EAGLE3 excludes MoE and needs a drafter. |
deepseek_v4 | Native MLX path, checkpoint conversion, or DwarfStar executor | DwarfStar requires a self-contained local layout and accepts fewer controls. |
cohere-family checkpoints | Thinking tags and template behavior may force serial generation | Correctness takes precedence over requested batch concurrency. |
| XML-function families | Qwen-compatible parser and optional strict tool grammar | Parser selection changes tool-call interpretation. |
afmoe | Preflight block | No opt-out: prevents a known Metal driver crash. |