Image-Text-to-Text
MLX
Safetensors
inkling_mm_model
Mixture of Experts
multimodal
inkling
thinking-machines
conversational
Instructions to use pipenetwork/Inkling-MLX-8bit with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- MLX
How to use pipenetwork/Inkling-MLX-8bit with MLX:
# Make sure mlx-vlm is installed # pip install --upgrade mlx-vlm from mlx_vlm import load, generate from mlx_vlm.prompt_utils import apply_chat_template from mlx_vlm.utils import load_config # Load the model model, processor = load("pipenetwork/Inkling-MLX-8bit") config = load_config("pipenetwork/Inkling-MLX-8bit") # Prepare input image = ["http://images.cocodataset.org/val2017/000000039769.jpg"] prompt = "Describe this image." # Apply chat template formatted_prompt = apply_chat_template( processor, config, prompt, num_images=1 ) # Generate output output = generate(model, processor, formatted_prompt, image) print(output) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- LM Studio
- Pi
How to use pipenetwork/Inkling-MLX-8bit with Pi:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "pipenetwork/Inkling-MLX-8bit"
Configure the model in Pi
# Install Pi: npm install -g @mariozechner/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "mlx-lm": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "pipenetwork/Inkling-MLX-8bit" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Hermes Agent new
How to use pipenetwork/Inkling-MLX-8bit with Hermes Agent:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "pipenetwork/Inkling-MLX-8bit"
Configure Hermes
# Install Hermes: curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash hermes setup # Point Hermes at the local server: hermes config set model.provider custom hermes config set model.base_url http://127.0.0.1:8080/v1 hermes config set model.default pipenetwork/Inkling-MLX-8bit
Run Hermes
hermes
- OpenClaw new
How to use pipenetwork/Inkling-MLX-8bit with OpenClaw:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "pipenetwork/Inkling-MLX-8bit"
Configure OpenClaw
# Install OpenClaw: npm install -g openclaw@latest # Register the local server and set it as the default model: openclaw onboard --non-interactive --mode local \ --auth-choice custom-api-key \ --custom-base-url http://127.0.0.1:8080/v1 \ --custom-model-id "pipenetwork/Inkling-MLX-8bit" \ --custom-provider-id mlx-lm \ --custom-compatibility openai \ --custom-text-input \ --accept-risk \ --skip-health
Run OpenClaw
openclaw agent --local --agent main --message "Hello from Hugging Face"
| license: apache-2.0 | |
| base_model: thinkingmachines/Inkling | |
| base_model_relation: quantized | |
| pipeline_tag: image-text-to-text | |
| library_name: mlx | |
| tags: | |
| - mlx | |
| - moe | |
| - multimodal | |
| - inkling | |
| - thinking-machines | |
| # Inkling-MLX-8bit | |
| **Built with Inkling (Thinking Machines Lab).** | |
| MLX (Apple Silicon) conversion of | |
| [thinkingmachines/Inkling](https://huggingface.co/thinkingmachines/Inkling), | |
| quantized to **8-bit** (affine group quant, group size 64). | |
| **Code / loader:** [github.com/PipeNetwork/inkling-mlx](https://github.com/PipeNetwork/inkling-mlx) | |
| Inkling is a **975B-total / 41B-active** sparse-MoE, natively multimodal model | |
| (text + image/video + audio → text). This is the **full multimodal** conversion: | |
| all three towers (text backbone, HMLP vision, dMel audio) are ported; the | |
| multi-token-prediction head is dropped (inference-irrelevant). | |
| ## Quantizations | |
| | Variant | Size | Notes | | |
| |---|---|---| | |
| | [8bit](https://huggingface.co/pipenetwork/Inkling-MLX-8bit) | ~937 GB | near-lossless | | |
| | [6bit](https://huggingface.co/pipenetwork/Inkling-MLX-6bit) | ~717 GB | high quality | | |
| | [4bit](https://huggingface.co/pipenetwork/Inkling-MLX-4bit) | ~490 GB | balanced default | | |
| ## Quantization scheme: affine int4 (not NVFP4 / MXFP4) | |
| MLX supports FP4 modes and Thinking Machines ships an | |
| [Inkling-NVFP4](https://huggingface.co/thinkingmachines/Inkling-NVFP4) checkpoint — so for | |
| the record, we benchmarked round-trip reconstruction error (‖W − Ŵ‖ / ‖W‖ vs bf16) on real | |
| Inkling expert weights: | |
| | Scheme | bits/weight | reconstruction error | | |
| |---|---:|---:| | |
| | **affine int4** (group 64) | 4.50 | **~9.1%** | | |
| | nvfp4 (group 16) | 4.50 | ~10.2% | | |
| | mxfp4 (group 32) | 4.25 | ~12.3% | | |
| Affine int4 is the most faithful: it is *asymmetric* (per-group scale **and** zero-point, 16 | |
| uniform levels), which centers on Inkling's near-Gaussian expert weights better than | |
| symmetric FP4's fixed non-uniform levels. FP4's real payoff is heavy-tailed *activations* and | |
| native Blackwell FP4 tensor cores — neither helps weight fidelity on Apple Silicon, where MLX | |
| would dequantize FP4 anyway. So these builds use affine int4. | |
| ## ⚠️ Loading requires the bundled `inkling_mlx` loader | |
| The `inkling_mm_model` architecture is **not** in stock `mlx-lm` / `mlx-vlm`, so this | |
| repo bundles a minimal, numerically-validated MLX implementation under `inkling_mlx/`. | |
| ```bash | |
| pip install mlx mlx-lm transformers | |
| ``` | |
| ```python | |
| from inkling_mlx.load import load | |
| from inkling_mlx.generate import greedy_generate | |
| from transformers import AutoTokenizer | |
| model, config = load("/path/to/this/repo") | |
| tok = AutoTokenizer.from_pretrained("/path/to/this/repo", trust_remote_code=True) | |
| ids = tok("The capital of France is")["input_ids"] | |
| print(tok.decode(greedy_generate(model, config, ids, max_new_tokens=64))) | |
| ``` | |
| Needs an Apple-Silicon Mac with enough unified memory to hold the weights (≈ the | |
| size above). | |
| ## Status & caveats | |
| - **Text generation** works end-to-end via an incremental KV + short-convolution cache. | |
| - **Multimodal** is supported end-to-end: the vision/audio towers and their | |
| preprocessing (`InklingProcessor` — image patchify/normalize, audio log-mel→dMel, | |
| validated ~1e-7 vs the reference) are included. Pass images/audio via the processor. | |
| - Quantized: attention / MLP / expert projections, token embed+unembed, and the | |
| vision/audio matmuls. Kept in higher precision: the MoE router, RMSNorms, the four | |
| short-convolutions per layer, and the relative-position bias. | |
| Conversion is streaming (tensor-by-tensor; the ~1.9 TB bf16 model never fully loads | |
| into RAM) and was validated with fp32 numerical parity against transformers PR #47347. | |
| License: Apache-2.0 (inherits the base model). | |