base_model: LiquidAI/LFM3-Omni-2B
library_name: transformers
pipeline_tag: any-to-any
tags:
- liquid-ai
- lfm3
- lfm3-omni
- omni
- multimodal
- any-to-any
- vision
- audio
- speech-to-speech
- tts
- asr
- heretic
- abliterated
- uncensored
- edge-ai
LFM3-Omni-2B-Uncensored
OpenIntelligenceNet/LFM3-Omni-2B-Uncensored is a surgically abliterated, uncensored version of LiquidAI/LFM3-Omni-2B created with Heretic (v2.0.0.dev0).
100% Preserved Omni-Modal Capabilities
To remove refusal behavior without degrading multimodal perception or speech synthesis, directional abliteration was performed exclusively on the 24-layer LFM3 language backbone (model.language_model) across 100 Optuna Pareto trials and transplanted back into the full Omni architecture.
- Untouched Vision Encoder (
vision_tower+multi_modal_projector): Full image and video frame understanding. - Untouched Audio Encoder (
audio_encoder+audio_projector): Full 16kHz speech recognition (ASR) and video soundtrack understanding. - Untouched Speech Synthesis (
depth_decoder+LiquidCodec): Full 24kHz text-to-speech (TTS) and interleaved voice chat. - Patched
modeling_lfm3.py: Includes out-of-the-box support forlinear_attentionmask mappings acrosstransformersreleases.
Quickstart (Transformers)
import torch
from transformers import AutoModelForImageTextToText, AutoProcessor
model_id = "OpenIntelligenceNet/LFM3-Omni-2B-Uncensored"
device = "cuda" if torch.cuda.is_available() else "cpu"
dtype = torch.bfloat16 if device == "cuda" else torch.float32
processor = AutoProcessor.from_pretrained(model_id, trust_remote_code=True)
model = AutoModelForImageTextToText.from_pretrained(
model_id,
torch_dtype=dtype,
device_map="auto",
trust_remote_code=True
).eval()
# Text / Multimodal Chat Example
conversation = [
{"role": "system", "content": "Respond with text."},
{"role": "user", "content": "Explain how acoustic resonance works in musical instruments."}
]
inputs = processor.apply_chat_template(
conversation,
add_generation_prompt=True,
tokenize=True,
return_dict=True,
return_tensors="pt"
).to(model.device)
with torch.no_grad():
outputs = model.generate(**inputs, max_new_tokens=512, do_sample=False)
response = processor.decode(outputs[0][inputs["input_ids"].shape[1]:], skip_special_tokens=True)
print(response)