Full-precision (bf16) abliteratedgoogle/gemma-4-12B-it — the complete encoder-free unified multimodal model (text · image · audio · video) with refusals removed via the ablation toolkit. This is the artifact that runs refusal-free vision + audio + video today (in transformers), and the source for the MLX quants below. By Lemura Labs.
Abliterated model — read this
Refusal directions were surgically removed from the parent. It will answer many prompts the parent refuses. No new capabilities were added — only refusal behavior was reduced. Use responsibly and within applicable law.
Refusal removal — before / after
Measured with the ablation toolkit's evaluator on 100 harmful prompts (mlabonne/harmful_behaviorstest[:100]), greedy decoding, refusal-marker classifier:
Model
Refusals
Refusal rate
google/gemma-4-12B-it (original)
99 / 100
99.0%
this model (abliterated)
12 / 100
12.0%
87 fewer refusals — an 87.9% reduction, at KL divergence 0.053 from the original (≪ 0.5, the damage threshold) → general capabilities preserved.
Specs
Precision
bfloat16 (full precision)
Disk size
~23.9 GB
Base
google/gemma-4-12B-it — 11.95B, 48 layers, 256K context, 140+ languages
Modalities
text · image · audio · video in, text out (encoder-free / unified)
1from transformers import AutoProcessor, AutoModelForMultimodalLM
23mid ="lemuralabs/Gemma-4-12B-uncensored-bf16"4processor = AutoProcessor.from_pretrained(mid)5model = AutoModelForMultimodalLM.from_pretrained(mid, dtype="auto", device_map="auto")67messages =[8{"role":"system","content":"You are a helpful assistant."},9{"role":"user","content":"Explain abliteration in two sentences."},10]11inputs = processor.apply_chat_template(messages, tokenize=True, return_dict=True,12 return_tensors="pt", add_generation_prompt=True, enable_thinking=False).to(model.device)13n = inputs["input_ids"].shape[-1]14out = model.generate(**inputs, max_new_tokens=256)15print(processor.parse_response(processor.decode(out[0][n:], skip_special_tokens=False)))
enable_thinking=True turns on reasoning mode; parse_response separates the thinking channel.
Vision & audio (image · audio · video)
Full multimodal runs here today — pass image/audio/video in the message content:
python
1messages =[{"role":"user","content":[2{"type":"image","url":"https://.../photo.jpg"},# image → key "url"3{"type":"audio","audio":"https://.../clip.wav"},# audio → key "audio" (≤30s)4{"type":"text","text":"Describe what you see and hear."},5]}]6inputs = processor.apply_chat_template(messages, tokenize=True, return_dict=True,7 return_tensors="pt", add_generation_prompt=True).to(model.device)8n = inputs["input_ids"].shape[-1]9out = model.generate(**inputs, max_new_tokens=512)10print(processor.parse_response(processor.decode(out[0][n:], skip_special_tokens=False)))
Audio ≤ 30 s (native ASR + speech translation) · images variable-resolution · video ≤ 60 s (~1 fps).
Running on Mac
This bf16 repo runs in transformers on Apple Silicon (MPS) — full multimodal, as above. For lighter, faster MLX serving, use the MLX quants of this model (see the family table) with: oMLX (inference server + macOS menu-bar app, SSD KV cache), vMLX, LM Studio (MLX engine), Ollama 0.19+, or mlx-vlm directly. Those serve the MLX quants once their bundled mlx-lm/mlx-vlm adds gemma4_unified support (text today via mlx-vlm + a small shim).
Quant family
Repo
Scheme
Eff. BPW
Size
Gemma-4-12B-uncensored-bf16 — abliterated, full multimodal