# NODA2 Full Model Inventory
**MacBook Pro M4 Max — 64GB unified memory**  
**Date:** 2026-02-27  
**Status:** Read-only audit, no changes applied

---

## Загальна статистика

| Параметр | Значення |
|----------|---------|
| Всього моделей (унікальних) | **20+** |
| Реально використовуються зараз | **3** (qwen3.5 via Ollama/llama-server, llava:13b via Swapper) |
| Встановлені але невикористовувані | **12** (whisper, kokoro, MiniCPM-V, ComfyUI stack, FLUX, ...) |
| Дублюються | **2** (Qwen3.5-35B in Ollama + llama-server; GLM-4.7-flash:32k + :q4_K_M) |
| Налаштовані в swapper, але відсутні в Ollama | **2** (gemma2:27b, qwen2.5-coder:32b) |
| Є VL/vision-capable | **3** (llava:13b active, MiniCPM-V-4_5 idle, Qwen3-VL-32B not downloaded) |
| Можна перейти на single-model policy | **Частково** (64GB дозволяє тримати 1-2 великих моделі) |
| Потенційна економія диска (cleanup) | **~149 GB** |
| Негайна економія (P1 llama-server) | **~20 GB** |

---

## A. Система

| Параметр | Значення |
|----------|---------|
| CPU | Apple M4 Max |
| RAM | 64 GB unified |
| OS | macOS 26.3 (Darwin arm64) |
| Storage free | 634 GB |
| Ollama | v0.17.1 |
| Docker | 29.2.1 / Compose v5.0.2 |

---

## B. Backends (активні)

| Backend | Port | Статус | Модель |
|---------|------|--------|--------|
| Ollama (native) | 11434 | ✅ Running | 12 моделей, жодна не завантажена |
| llama-server (llama.cpp) | 11435 | ✅ Running | Qwen3.5-35B-A3B-Q4_K_M.gguf |
| Swapper (Docker) | 8890 | ✅ Healthy | active_model=null |
| open-webui (Docker) | 8080 | ✅ Healthy | Whisper-base (STT, CPU) |
| memory-service (uvicorn) | 8000 | ✅ Running | — |
| ComfyUI | — | ❌ Not running | — (offline) |

---

## C. Ollama Models (12 шт.)

| Модель | Розмір | Тип | GPU | Swapper | Рекомендація |
|--------|--------|-----|-----|---------|--------------|
| qwen3.5:35b-a3b | 9.3 GB | LLM (MoE) | Metal | ✅ так | 🟢 PRIMARY |
| qwen3:14b | 9.3 GB | LLM | Metal | ✅ так | 🟢 Keep |
| gemma3:latest | 3.3 GB | LLM (small) | Metal | ❌ не | 🟢 Add to swapper |
| glm-4.7-flash:32k | 19 GB | LLM | Metal | ✅ так | 🟡 Keep 1, remove other |
| glm-4.7-flash:q4_K_M | 19 GB | LLM | Metal | ❌ не | 🔴 DUPLICATE → видалити |
| **llava:13b** | 8.0 GB | **Vision** | Metal | ✅ так | 🟡 P0 fallback, замінити |
| mistral-nemo:12b | 7.1 GB | LLM | Metal | ❌ не | 🔴 Old → видалити |
| deepseek-coder:33b | 18 GB | Code | Metal | ✅ так | 🟡 Heavy, keep if needed |
| deepseek-r1:70b | 42 GB | LLM | Metal | ✅ так | 🟡 Very heavy, on-demand |
| starcoder2:3b | 1.7 GB | Code | Metal | ❌ не | 🟡 Keep for fast code |
| phi3:latest | 2.2 GB | LLM | Metal | ✅ так | 🟡 Replace with gemma3 |
| gpt-oss:latest | 13 GB | LLM | Metal | ✅ так | 🔴 Old → видалити |

---

## D. llama-server (Дублікат!)

| Параметр | Значення |
|----------|---------|
| Процес | `llama-server -m .../Qwen3.5-35B-A3B-Q4_K_M.gguf --port 11435` |
| Файл | `~/Library/Application Support/llama.cpp/models/Qwen3.5-35B-A3B-Q4_K_M.gguf` |
| Розмір | **20 GB** |
| Тип | Ідентична модель до `qwen3.5:35b-a3b` в Ollama |
| Проблема | DUP-01: 20 GB дублювання + плутає `router-config.node2.yml` |
| Рекомендація | 🔴 **P1: Зупинити + видалити файл. Savings: 20 GB** |

---

## E. Swapper (swapper_config_node2.yaml)

| Параметр | Значення |
|----------|---------|
| Status | ✅ healthy |
| active_model | null |
| ollama.url | http://host.docker.internal:11434 ✅ (виправлено P1) |
| GPU | Metal enabled |
| LLM моделей | 9 (2 не встановлені в Ollama!) |
| Vision моделей | 1 (llava-13b) ✅ після P0 |
| STT моделей | 0 ❌ (whisper є, але не підключений) |
| TTS моделей | 0 ❌ (kokoro є, але не підключений) |

---

## F. HuggingFace Cache — встановлені, але невикористовувані

| Модель | Тип | Розмір | Стан | Пріоритет |
|--------|-----|--------|------|-----------|
| whisper-large-v3-turbo-asr-fp16 (MLX) | STT | 1.5 GB | ✅ Installed | P2 integrate |
| Kokoro-82M-bf16 (MLX) | TTS | 0.35 GB | ✅ Installed | P2 integrate |
| MiniCPM-V-4_5 | Vision | 16 GB | ✅ Installed | P2 integrate |
| Qwen2.5-7B-Instruct | LLM | 14 GB | ✅ Installed | P3 cleanup |
| Qwen2.5-1.5B-Instruct | LLM | 2.9 GB | ✅ Installed | P3 cleanup |
| Qwen3-VL-32B-Instruct | Vision | 4 KB | ❌ Only refs | — |
| Aquiles-ai/FLUX.2-dev | Image gen | 105 GB | ✅ Installed | P3 ComfyUI |

---

## G. ComfyUI Stack (offline, не інтегрований)

| Модель | Тип | Розмір | Якість |
|--------|-----|--------|--------|
| flux2-dev-Q8_0.gguf | Image gen | 33 GB | Very high |
| ltx-2-19b-distilled-fp8 | **Video gen** | 25 GB | Very high |
| z_image_turbo_bf16 | Image gen | 11 GB | High |
| SDXL-base-1.0 (hf_models) | Image gen | 72 GB | Medium (old) |
| sdxl_sofia_lora_v1 | LoRA (image) | 0.08 GB | — |

**Загальний розмір ComfyUI + linked:** ~200+ GB  
**Інтеграція з платформою:** ❌ Немає REST API wrapper

---

## H. Gaps Summary

### 🔴 P1 — Негайно
| ID | Проблема | Дія |
|----|----------|-----|
| DUP-01 | llama-server дублює Ollama (20 GB) | Зупинити процес, видалити файл |

### 🟡 P2 — Цього тижня
| ID | Проблема | Дія |
|----|----------|-----|
| GAP-01 | whisper-large-v3-turbo встановлений, не інтегрований | Додати STT endpoint |
| GAP-02 | Kokoro TTS встановлений, не інтегрований | Додати TTS endpoint |
| GAP-03 | MiniCPM-V-4_5 встановлений, не інтегрований | Замінити llava:13b в swapper |
| SW-01 | gemma2:27b в swapper config, не встановлений | Видалити з config |
| SW-02 | qwen2.5-coder:32b в swapper config, не встановлений | Видалити з config |
| DUP-02 | glm-4.7-flash два однакові варіанти (38 GB) | Залишити тільки :32k |

### 🔵 P3 — Наступний спринт
| ID | Проблема | Дія |
|----|----------|-----|
| GAP-04/05 | Qwen2.5 HF weights (17 GB) idle | Cleanup або конвертація |
| RED-02 | open-webui whisper-base vs MLX whisper | Upgrade |
| GAP-06 | ComfyUI не має API wrapper | Integrate або leave as manual |
| — | SDXL-base-1.0 (72 GB) якщо не потрібно | Cleanup |

---

## I. Executive Summary (15 bullets)

1. **12 моделей в Ollama** — жодна не завантажена зараз; hot-start за 2-5с при запиті
2. **llama-server дублює Ollama** — 20 GB зайвого диску і плутання портів (11434 vs 11435) → P1 cleanup
3. **Vision ВІДНОВЛЕНО (P0)** — `llava:13b` активна в Swapper, inference ~3.5s через GPU
4. **MiniCPM-V-4_5 (16 GB) встановлений але не підключений** — значно краще llava:13b → P2 upgrade
5. **Whisper-large-v3-turbo (MLX, 1.5 GB) готовий** — STT відсутній в стеку → P2 integrate
6. **Kokoro TTS (MLX, 0.35 GB) готовий** — TTS відсутній в стеку → P2 integrate
7. **2 моделі в swapper config але відсутні в Ollama** — gemma2:27b, qwen2.5-coder:32b → видалити з config
8. **GLM-4.7-flash дублюється** — два варіанти одного 19GB моделі → 19 GB зайвого
9. **ComfyUI stack (200+ GB)** — FLUX.2-dev + LTX-2 video + SDXL — offline, немає API; величезні можливості без інтеграції
10. **open-webui** запущений з whisper-base (CPU, низька якість) + embeddings — декількі неузгодженості
11. **STT та TTS в Swapper порожні** — обидва /stt/models і /tts/models повертають `[]`
12. **Qwen3.5-35B-A3B є рекомендованою основною моделлю** — MoE, 9.3 GB, fast на M4 Max
13. **gemma3:latest (3.3 GB) не в Swapper** — найкращий "small fast" кандидат для швидких задач
14. **Single-model policy** — на 64GB RAM менш критична ніж на NODA1 (20GB), але все одно рекомендована для порядку
15. **Потенційна економія диску: 149 GB** (20 GB негайно); без втрати можливостей

---

## Рекомендована мінімальна конфігурація (якщо йти на оптимізацію)

```
Primary LLM:    qwen3.5:35b-a3b (Ollama)         — 9.3 GB
Small/fast LLM: gemma3:latest (Ollama)             — 3.3 GB
Vision:         MiniCPM-V-4_5 (HF → integrate)    — 16 GB
STT:            whisper-large-v3-turbo (MLX)       — 1.5 GB
TTS:            Kokoro-82M-bf16 (MLX)              — 0.35 GB
Code:           deepseek-coder:33b (on-demand)     — 18 GB
Image gen:      flux2-dev via ComfyUI (manual)     — 33 GB
Video gen:      ltx-2 via ComfyUI (manual)         — 25 GB
─────────────────────────────────────────────────────────
Total active: ~30 GB (primary use case, fits in 64 GB RAM)
```

Це покрило б: text, vision, STT, TTS, code — в одному ноуті, без NODA1.
