OpenVINO Model Manager — desktop GUI for Intel Arc
Browse, download and convert LLMs and VLMs for OpenVINO / Optimum-Intel, without touching the terminal.
Intel ships powerful conversion tools (optimum-cli, openvino) but no GUI to use them.
OVForge fills that gap: it wraps the entire workflow — catalog browsing, model download,
conversion with quality presets, and output management — into a single desktop application.
Target user: anyone running LLMs on Intel Arc GPUs who wants a usable interface instead of long CLI commands.
| OS | Ubuntu 22.04+ (tested), any Linux with X11 or Wayland |
| Python | 3.10 or newer |
| GPU | Intel Arc (A-series or B-series) with current drivers |
| Stack | optimum-intel[openvino] + nncf in the Python environment |
Note: OpenVINO driver and GPU setup are prerequisites that OVForge cannot install. If you can already run
optimum-cli export openvino ...in your terminal, you are ready.
git clone https://github.com/YOUR_USERNAME/ovforge.git
cd ovforge
python3 -m venv .venv
source .venv/bin/activate
pip install PyQt6 PyQt6-WebEngine huggingface_hub markdown
pip install "optimum-intel[openvino]" nncf
./run.shIf you already have an OpenVINO environment:
source /path/to/your/openvino_env/bin/activate
./run.shrun.sh auto-discovers the Python interpreter in this order:
.venv/in the project foldervenv/in the project folder$OVFORGE_PYTHONenvironment variable (explicit override)../openvino_env/relative to the project (default OVForge layout)python3in$PATH
Open ⚙ Settings and paste your HF token to:
- Access gated models (Llama, Gemma, etc.)
- Increase API rate limits during catalog refresh
- IR OpenVINO — models already converted by Intel and the community (
OpenVINO/org on HF). Direct download with per-file byte progress and automatic resume. - Raw HuggingFace — any model on HF. OVForge detects the architecture,
matches it to a conversion profile, and builds the
optimum-clicommand for you.
| Preset | Weight format | Notes |
|---|---|---|
| FP16 | fp16 | Full quality, largest file |
| INT8 | int8 | Good quality, ~2× smaller |
| INT4 Balanced | int4 | Default — best quality/size ratio |
| INT4 Quality | int4 + AWQ | Slowest, best accuracy (requires calibration dataset) |
Advanced flags (ratio, group-size, dataset, sensitivity metric…) are available as toggleable chips — no manual CLI editing needed.
For vision-language models, an optional "Text only" mode exports just the language model (~60% smaller output, suitable for text inference on Arc without the vision overhead).
The 📁 Local Cache panel scans your output folder and classifies every model found:
| State | Meaning |
|---|---|
| ✅ IR Complete | Ready for inference |
| ⚠ IR Partial | Export interrupted — resume available |
| 📦 RAW Complete | Downloaded, ready to convert locally |
| 🔄 RAW Partial | Download interrupted — resume available |
OVForge organizes output automatically under a base folder you choose in Settings:
{base}/
├── ModelName/ ← direct IR download
└── ModelName-int4-ov/ ← conversion output
Format · Category (LLM, VLM, Embedding, STT, Diffusion) · Parameter range · File size · Free text search
OVForge ships with conversion profiles for 38+ model families including: LLaMA · Qwen · Phi · Mistral · Gemma · Falcon · MPT · BLOOM · OPT · GPT-2 · GPT-NeoX · Baichuan · ChatGLM · Yi · DeepSeek · InternLM · Qwen-VL · LLaVA · InternVL · and more.
Unknown architectures fall back to a generic LLM profile. If a model converts successfully with the fallback, it works.
- Conversion is not resumable. If interrupted, the output folder is cleaned up and the process must restart from scratch.
- One conversion at a time. Arc VRAM is fully utilized during export — launching a second conversion is not prevented but will likely OOM.
- Qwen3.5 (hybrid attention/delta-net architecture) requires
transformers >= 5.13.devand a patchedoptimum-intel. Upstream fix pending. - BNB-quantized models (suffix
-bnb-4bit) cannot be converted —optimum-clirequires unquantized source weights.
OVForge wraps optimum-cli — conversion compatibility depends on the installed
optimum-intel and transformers versions, not on OVForge itself.
Tested and working:
optimum-intel >= 2.0.0+transformers >= 4.40- Architectures: LLaMA-3, Qwen2.5, Phi-3, Mistral, Gemma, and most mainstream families
If a conversion fails with an ImportError or AttributeError in model_patcher.py,
the issue is almost always a version mismatch between optimum-intel and transformers.
Try: pip install --upgrade optimum-intel transformers
ovforge/
├── main.py # Entry point
├── run.sh # Launcher with env auto-discovery
├── profiles.json # Architecture → optimum-cli flags mapping
├── data/
│ ├── cache.db # SQLite: model catalog + settings + size cache
│ └── ovforge.log # Rotating log (5 MB × 3)
├── hf_client.py # HF Hub API + SQLite catalog cache
├── profile_resolver.py # Architecture → conversion profile lookup
├── conversion_engine.py # optimum-cli subprocess wrapper + HF downloader
├── cache_manager.py # Local folder scanner: IR/RAW state + integrity
├── assets/
│ ├── ovforge.svg # Application icon (source)
│ ├── ovforge_256.png # Application icon 256×256
│ └── ovforge.desktop # Linux .desktop entry
└── tests/
└── test_core.py # 55 unit tests (pytest)
Issues and PRs are welcome. Before submitting a conversion bug, please include:
- The model
repo_id - The preset used
- The full error from the conversion log dialog (📋 button)
- Output of
optimum-cli --versionandpython -c "import transformers; print(transformers.__version__)"
MIT — see LICENSE.