Model architectures

The complete config.json model_type allowlist.

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.

69recognized canonical types
68runnable after safety policy
17vision-capable classifications
6dual-mode classifications

Complete architecture list

model_typeClassificationImportant behavior
acereasonLanguageLoads through the MLX language-model path.
afmoeBlockedRecognized but deliberately blocked because it is known to crash the Metal GPU driver.
apertusLanguageLoads through the MLX language-model path.
baichuan_m1LanguageLoads through the MLX language-model path.
bailing_moeLanguageLoads through the MLX language-model path.
bitnetLanguageLoads through the MLX language-model path.
cohereLanguageLoads through the MLX language-model path.
deepseek_v3LanguageLoads through the MLX language-model path.
deepseek_v4LanguageLoads through the MLX language-model path.
ernie4_5LanguageLoads through the MLX language-model path.
exaone4LanguageLoads through the MLX language-model path.
falcon_h1LanguageLoads through the MLX language-model path.
fastvlmVisionRecognized by the vision-model preflight path.
gemmaLanguageLoads through the MLX language-model path.
gemma2LanguageLoads through the MLX language-model path.
gemma3Dual-modeThe presence of vision_config determines the effective path.
gemma3_textLanguageLoads through the MLX language-model path.
gemma3nLanguageLoads through the MLX language-model path.
gemma4LanguageLoads through the MLX language-model path.
gemma4_textLanguageLoads through the MLX language-model path.
glm_moe_dsaLanguageLoads through the MLX language-model path.
glm4LanguageLoads through the MLX language-model path.
glm4_moeLanguageLoads through the MLX language-model path.
glm4_moe_liteLanguageLoads through the MLX language-model path.
gpt_ossLanguageLoads through the MLX language-model path.
graniteLanguageLoads through the MLX language-model path.
granitemoehybridLanguageLoads through the MLX language-model path.
idefics3VisionRecognized by the vision-model preflight path.
internlm2LanguageLoads through the MLX language-model path.
jamba_3bLanguageLoads through the MLX language-model path.
joyai_llm_flashLanguageLoads through the MLX language-model path.
kimi_k2LanguageLoads through the MLX language-model path.
kimi_k25LanguageLoads through the MLX language-model path.
lfm2LanguageLoads through the MLX language-model path.
lfm2_moeLanguageLoads through the MLX language-model path.
lfm2_vlVisionRecognized by the vision-model preflight path.
lfm2-vlVisionHyphenated compatibility spelling; lfm2_vl is also accepted.
lille-130mLanguageLoads through the MLX language-model path.
llamaLanguageLoads through the MLX language-model path.
llava_qwen2VisionRecognized by the vision-model preflight path.
mimoLanguageLoads through the MLX language-model path.
minimax_m2LanguageLoads through the MLX language-model path.
mistralLanguageLoads through the MLX language-model path.
mistral3Dual-modeThe presence of vision_config determines the effective path.
nanochatLanguageLoads through the MLX language-model path.
nemotron_hLanguageLoads through the MLX language-model path.
olmo2LanguageLoads through the MLX language-model path.
olmo3LanguageLoads through the MLX language-model path.
olmoeLanguageLoads through the MLX language-model path.
openelmLanguageLoads through the MLX language-model path.
paligemmaVisionRecognized by the vision-model preflight path.
phiLanguageLoads through the MLX language-model path.
phi3LanguageLoads through the MLX language-model path.
phimoeLanguageLoads through the MLX language-model path.
pixtralVisionRecognized by the vision-model preflight path.
qwen2LanguageLoads through the MLX language-model path.
qwen2_5_vlVisionRecognized by the vision-model preflight path.
qwen2_vlVisionRecognized by the vision-model preflight path.
qwen3LanguageLoads through the MLX language-model path.
qwen3_5Dual-modeThe presence of vision_config determines the effective path.
qwen3_5_moeDual-modeThe presence of vision_config determines the effective path.
qwen3_6Dual-modeThe presence of vision_config determines the effective path.
qwen3_6_moeDual-modeThe presence of vision_config determines the effective path.
qwen3_moeLanguageLoads through the MLX language-model path.
qwen3_nextLanguageLoads through the MLX language-model path.
qwen3_vlVisionRecognized by the vision-model preflight path.
smollm3LanguageLoads through the MLX language-model path.
smolvlmVisionRecognized by the vision-model preflight path.
starcoder2LanguageLoads 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

llama · mistral · mistral3 · starcoder2 · jamba_3b · pixtral

Gemma

gemma · gemma2 · gemma3 · gemma3_text · gemma3n · gemma4 · gemma4_text · paligemma

Qwen

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 / Kimi

deepseek_v3 · deepseek_v4 · kimi_k2 · kimi_k25 · joyai_llm_flash

GLM

glm4 · glm4_moe · glm4_moe_lite · glm_moe_dsa

Phi / Granite / NVIDIA

phi · phi3 · phimoe · bitnet · granite · granitemoehybrid · nemotron_h

Liquid / Cohere

lfm2 · lfm2_moe · lfm2_vl · lfm2-vl · cohere

Specialized and emerging

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

Vision-specific

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 valueCanonical value
qwen3.5qwen3_5
qwen3.5_moeqwen3_5_moe
qwen3.5_nextqwen3_next
qwen3.5_vlqwen3_vl
qwen3.6qwen3_6
qwen3.6_moeqwen3_6_moe
qwen3_6_next · qwen3.6_nextqwen3_next
qwen3_6_vl · qwen3.6_vl · qwen3_5_vlqwen3_vl
gemma_4 · gemma-4gemma4
gemma_4_text · gemma-4-textgemma4_text

How modality is selected

  1. AFM reads the downloaded or local checkpoint's config.json.
  2. It normalizes known aliases and rejects unknown types before allocating the model.
  3. It inspects nested text_config, vision_config, and processor metadata—not only the type's name.
  4. For dual-mode Qwen3.5/Qwen3.6 and Gemma/Mistral-style configurations, the actual config layout selects the factory.
  5. --media forces VLM intent for single-prompt mode; remote preflight may correct an incorrect text/vision guess.

Architecture-specific behavior

ArchitectureSpecial pathBoundary
qwen3_6*MTP compatibility detectionAlso requires an mtp.safetensors sidecar and an eligible request.
gemma4Native Gemma 4 tools; dense verifier may use EAGLE3Adaptive XML is bypassed. EAGLE3 excludes MoE and needs a drafter.
deepseek_v4Native MLX path, checkpoint conversion, or DwarfStar executorDwarfStar requires a self-contained local layout and accepts fewer controls.
cohere-family checkpointsThinking tags and template behavior may force serial generationCorrectness takes precedence over requested batch concurrency.
XML-function familiesQwen-compatible parser and optional strict tool grammarParser selection changes tool-call interpretation.
afmoePreflight blockNo opt-out: prevents a known Metal driver crash.