Instructions to use joeygambino/MiniMax-H3-encoder-GGUF with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use joeygambino/MiniMax-H3-encoder-GGUF with llama.cpp:
Install (macOS, Linux)
curl -LsSf https://llama.app/install.sh | sh # Start a local OpenAI-compatible server with a web UI: llama serve -hf joeygambino/MiniMax-H3-encoder-GGUF:Q4_K_M # Run inference directly in the terminal: llama cli -hf joeygambino/MiniMax-H3-encoder-GGUF:Q4_K_M
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf joeygambino/MiniMax-H3-encoder-GGUF:Q4_K_M # Run inference directly in the terminal: llama cli -hf joeygambino/MiniMax-H3-encoder-GGUF:Q4_K_M
Use pre-built binary
# Download pre-built binary from: # https://github.com/ggerganov/llama.cpp/releases # Start a local OpenAI-compatible server with a web UI: ./llama-server -hf joeygambino/MiniMax-H3-encoder-GGUF:Q4_K_M # Run inference directly in the terminal: ./llama-cli -hf joeygambino/MiniMax-H3-encoder-GGUF:Q4_K_M
Build from source code
git clone https://github.com/ggerganov/llama.cpp.git cd llama.cpp cmake -B build cmake --build build -j --target llama-server llama-cli # Start a local OpenAI-compatible server with a web UI: ./build/bin/llama-server -hf joeygambino/MiniMax-H3-encoder-GGUF:Q4_K_M # Run inference directly in the terminal: ./build/bin/llama-cli -hf joeygambino/MiniMax-H3-encoder-GGUF:Q4_K_M
Use Docker
docker model run hf.co/joeygambino/MiniMax-H3-encoder-GGUF:Q4_K_M
- LM Studio
- Jan
- Ollama
How to use joeygambino/MiniMax-H3-encoder-GGUF with Ollama:
ollama run hf.co/joeygambino/MiniMax-H3-encoder-GGUF:Q4_K_M
- Unsloth Studio
How to use joeygambino/MiniMax-H3-encoder-GGUF with Unsloth Studio:
Install Unsloth Studio (macOS, Linux, WSL)
curl -fsSL https://unsloth.ai/install.sh | sh # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for joeygambino/MiniMax-H3-encoder-GGUF to start chatting
Install Unsloth Studio (Windows)
irm https://unsloth.ai/install.ps1 | iex # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for joeygambino/MiniMax-H3-encoder-GGUF to start chatting
Using HuggingFace Spaces for Unsloth
# No setup required # Open https://huggingface.co/spaces/unsloth/studio in your browser # Search for joeygambino/MiniMax-H3-encoder-GGUF to start chatting
- Pi
How to use joeygambino/MiniMax-H3-encoder-GGUF with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf joeygambino/MiniMax-H3-encoder-GGUF:Q4_K_M
Configure the model in Pi
# Install Pi: npm install -g @mariozechner/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "llama-cpp": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "joeygambino/MiniMax-H3-encoder-GGUF:Q4_K_M" } ] } } }Run Pi
# Start Pi in your project directory: pi
- OpenClaw new
How to use joeygambino/MiniMax-H3-encoder-GGUF with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf joeygambino/MiniMax-H3-encoder-GGUF:Q4_K_M
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 "joeygambino/MiniMax-H3-encoder-GGUF:Q4_K_M" \ --custom-provider-id llama-cpp \ --custom-compatibility openai \ --custom-text-input \ --accept-risk \ --skip-health
Run OpenClaw
openclaw agent --local --agent main --message "Hello from Hugging Face"
- Docker Model Runner
How to use joeygambino/MiniMax-H3-encoder-GGUF with Docker Model Runner:
docker model run hf.co/joeygambino/MiniMax-H3-encoder-GGUF:Q4_K_M
- Lemonade
How to use joeygambino/MiniMax-H3-encoder-GGUF with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull joeygambino/MiniMax-H3-encoder-GGUF:Q4_K_M
Run and chat with the model
lemonade run user.MiniMax-H3-encoder-GGUF-Q4_K_M
List all available models
lemonade list
- Hermes Agent
How to use joeygambino/MiniMax-H3-encoder-GGUF with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf joeygambino/MiniMax-H3-encoder-GGUF:Q4_K_M
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 joeygambino/MiniMax-H3-encoder-GGUF:Q4_K_M
Run Hermes
hermes
- Atomic Chat
MiniMax-H3 Text Encoder โ GGUF
GGUF quantizations of the Qwen3-VL-32B vision-language text encoder used by MiniMax-H3 in ComfyUI.
The H3 DiT quants are here: joeygambino/MiniMax-H3-GGUF. You need one file from each repo to run H3 โ the DiT alone will not generate anything.
Troubleshooting: state_dict / vision mismatch with the -mmproj file
Load these encoders with H3 Clip Loader (Any) from
ComfyUI-H3-Multishot,
not the stock CLIPLoaderGGUF node.
The H3 text encoder is a truncated Qwen3-VL-32B - 50 layers, no final norm,
no lm_head - and its vision tower ships separately as the -mmproj-F16.gguf
sidecar. Stock ComfyUI-GGUF only merges an mmproj when the encoder's
architecture is qwen2vl; Qwen3-VL reports qwen3vl, so the sidecar is never
merged at all, and the resulting missing vision tensors surface as a state_dict
mismatch. Its mmproj key map is also qwen2vl-era: wrong merger keys, and no
rules for H3's deepstack mergers or split QKV, so even forcing the merge would
not line up.
The pack's loader does all three things stock cannot - truncates the text tower to H3's shape, merges the sidecar explicitly, and renames the vision tensors to H3's layout (including remapping deepstack mergers, which llama.cpp indexes by vision layer 8/16/24 and H3 indexes by position 0/1/2).
Keep the -mmproj-F16.gguf in the same folder as the encoder and do not
rename either file: they are paired by filename stem.
Why does a .safetensors encoder work without any of this? Because a full
safetensors encoder (fp8, int8, NVFP4-AWQ, ...) is a complete, pre-shaped model
with its vision tower already inside. It needs no sidecar and no remapping.
That is a property of the container, not of the quantization - NVFP4 is not
doing anything special here.
Files
| File | Size | Use |
|---|---|---|
MiniMax-H3-encoder-Q4_K_M.gguf |
19.8 GB | Recommended. ~16.5 GB resident. |
MiniMax-H3-encoder-Q5_K_M.gguf |
23.2 GB | Higher precision, more VRAM. |
MiniMax-H3-encoder-mmproj-F16.gguf |
1.2 GB | Multimodal projector โ REQUIRED for image input. |
The mmproj is not optional if you use reference images
H3's reference-to-video (ref2va) and image-to-video paths feed images into the
text encoder. Without mmproj, the encoder is text-only: reference images are
ignored and reference/I2V workflows will not behave correctly.
CLIPLoaderGGUF (from ComfyUI-GGUF)
auto-pairs the mmproj sidecar by filename, so keep the names exactly as
downloaded and put the mmproj in the same folder as the encoder.
Install
Place all files in:
ComfyUI/models/text_encoders/
โโโ MiniMax-H3-encoder-Q4_K_M.gguf
โโโ MiniMax-H3-encoder-mmproj-F16.gguf
Load with CLIPLoaderGGUF (ComfyUI-GGUF) โ or H3ClipLoaderAny from
ComfyUI-H3-Multishot,
which accepts either .safetensors or .gguf and handles the mmproj pairing.
Set the CLIP type to minimax.
VRAM: read this before you file a "it's so slow" issue
The encoder and the DiT do not co-fit on a 32 GB card:
| Component | Resident |
|---|---|
| Encoder (Q4_K_M) | ~16.5 GB |
| H3 DiT | ~25 GB |
If both are held at once, the DiT loads partially and streams the remainder from system RAM every sampling step. Measured on an RTX 5090: ~60 minutes for a clip that takes ~15 minutes when the DiT is fully resident. The tell in your log is:
loaded partially; 6423 MB usable, 5847 MB loaded, 19363 MB offloaded
Fix: evict the encoder after conditioning and before sampling. Conditioning is already computed at that point, so the encoder weights are safe to drop:
import comfy.model_management as mm
clip.patcher.model.to(mm.text_encoder_offload_device())
mm.free_memory(mm.get_total_memory(mm.get_torch_device()) * 0.9, mm.get_torch_device())
mm.soft_empty_cache()
The multishot sampler in ComfyUI-H3-Multishot does this automatically between shots.
Note that a chained multi-shot workflow re-encodes per shot (each shot conditions on the previous shot's last frame), so the encoder reloads each time โ a few seconds per shot, which is far cheaper than streaming ~19 GB every step.
Notes on quantization
The encoder is Qwen3-VL-32B, whose tensor dimensions permit K-quants โ hence
Q4_K_M / Q5_K_M here. The H3 DiT cannot use K-quants (its 2688-wide tensors
are not divisible by 256), which is why that repo ships Q4_0 / Q5_1 instead. If
you are mixing and matching, that difference is expected, not a packaging error.
Also on Civitai
Same files, if you prefer downloading there: MiniMax-H3 Text Encoder GGUF (Qwen3-VL)
Support
Everything here is free and stays free โ the format spec, the nodes, the workflows, the cartridges, the LoRAs. If it saved you a night of debugging (it contains several hundred of mine), tips keep the 5090 warm:
- โ Buy me a coffee on Ko-fi
- ๐ Sponsor on GitHub
- ๐ Liberapay (recurring)
Credits
- MiniMax-H3 โ MiniMaxAI
- Qwen3-VL โ Alibaba / Qwen team
- GGUF loader for ComfyUI โ city96/ComfyUI-GGUF
Quantized and packaged by joeygambino.
- Downloads last month
- 25,457
4-bit
5-bit
Model tree for joeygambino/MiniMax-H3-encoder-GGUF
Base model
MiniMaxAI/MiniMax-H3
ollama run hf.co/joeygambino/MiniMax-H3-encoder-GGUF: