Downloads · 30 days
39
45% of all-time downloads
joyfox/JoyFox-OmniFlow-9B
JoyFox-OmniFlow-9B is a any-to-any model from joyfox. Use it for the any-to-any task on the model card, and read the license before you ship it in a product. It is set up for transformers. The card lists the license as apache-2.0.
JoyFox-OmniFlow-9B is a general-purpose, full-duplex multimodal model built on OpenBMB MiniCPM-o 4.5.
Downloads · 30 days
39
45% of all-time downloads
All-time downloads
86
Public
Parameters
9.4B
20 GB on disk
Likes
2
Public
Click a slice to open those files.
.safetensors18.7 GB · 93%
From the Hugging Face model README
JoyFox-OmniFlow-9B is a general-purpose, full-duplex multimodal model built on OpenBMB MiniCPM-o 4.5.
The model is designed for:
JoyFox-OmniFlow-9B is distributed as a complete BF16 Safetensors model that can be loaded directly with Hugging Face Transformers. The release includes the language model, vision encoder, audio encoder, multimodal projection layers, TTS module, voice-cloning support, token-to-waveform resources, and full-duplex streaming components.
| Component | Capability |
|---|---|
| Language model | General dialogue, knowledge, instruction following, math, code, and role-play |
| Vision module | Image, video-frame, and continuous visual-stream understanding |
| Audio module | Speech, environmental audio, and continuous audio-stream understanding |
| Multimodal projection | Alignment of language, vision, and audio representations |
| TTS | Natural text-to-speech generation |
| token2wav | Decoding speech tokens into waveform audio |
| Full-duplex streaming | Simultaneous seeing, listening, reasoning, and speaking |
| Voice cloning | Reference-audio-based voice control |
| Item | Value |
|---|---|
| Model class | MiniCPMO |
| Model family | MiniCPM-o 4.5 |
| Weight precision | BF16 |
| Total parameters | 9,371,787,666 |
| TTS parameters | 347,696,290 |
| Weight keys | 1,414 |
| TTS weight keys | 194 |
| Safetensors shards | 5 |
| Total weight size | 18,743,575,332 bytes |
| Complete directory size | Approximately 18.67 GiB |
| Audio module | Included |
| Vision module | Included |
| TTS module | Included |
| Full-duplex streaming configuration | Enabled |
The released model passed the following checks:
init_audio=true;init_vision=true;init_tts=true;stream_input=true;The complete BF16 model was successfully loaded on an NVIDIA RTX PRO 6000 Blackwell Server Edition:
llm: CUDAvpm: CUDAapm: CUDAtts: CUDAaudio_projection_layer: CUDAresampler: CUDAThe VRAM figure above primarily reflects model weights and small framework overhead. Full-duplex inference requires additional memory for the KV cache, video frames, audio buffers, and token2wav.
For text, image, or audio-understanding inference:
pip install "transformers==4.51.0" accelerate \
"torch>=2.3.0,<=2.8.0" "torchaudio<=2.8.0" \
"minicpmo-utils>=1.0.5"
For TTS or full-duplex streaming inference:
pip install "transformers==4.51.0" accelerate \
"torch>=2.3.0,<=2.8.0" "torchaudio<=2.8.0" \
"minicpmo-utils[all]>=1.0.5"
FFmpeg is also required for full-duplex video processing:
sudo apt update
sudo apt install -y ffmpeg
The model structure was also validated locally with transformers==4.57.0 and
torch==2.11.0+cu130. For production full-duplex use, the MiniCPM-o 4.5
officially recommended dependency versions are preferred.
import torch
from transformers import AutoModel, AutoProcessor
model_id = "joyfox/JoyFox-OmniFlow-9B"
model = AutoModel.from_pretrained(
model_id,
trust_remote_code=True,
attn_implementation="sdpa",
torch_dtype=torch.bfloat16,
init_vision=True,
init_audio=True,
init_tts=True,
)
processor = AutoProcessor.from_pretrained(
model_id,
trust_remote_code=True,
)
model.eval().cuda()
After installing minicpmo-utils[all]:
# Initialize token2wav for speech-token-to-waveform decoding.
model.init_tts()
# Enter full-duplex mode.
duplex_model = model.as_duplex()
# Return to standard half-duplex mode when needed.
model = duplex_model.as_simplex(reset_session=True)
Real-time video/audio chunking, streaming_prefill, streaming_generate, and
output-video generation follow the standard MiniCPM-o 4.5 full-duplex API.
import librosa
import torch
from huggingface_hub import hf_hub_download
ref_audio_path = hf_hub_download(
repo_id=model_id,
filename="assets/HT_ref_audio.wav",
)
ref_audio, _ = librosa.load(ref_audio_path, sr=16000, mono=True)
model.init_tts()
system_message = model.get_sys_prompt(
ref_audio=ref_audio,
mode="omni",
language="en",
)
messages = [
system_message,
{
"role": "user",
"content": ["Introduce yourself in a natural and concise way."],
},
]
with torch.inference_mode():
answer = model.chat(
msgs=messages,
do_sample=True,
temperature=0.7,
max_new_tokens=1024,
use_tts_template=True,
enable_thinking=False,
omni_mode=True,
generate_audio=True,
output_audio_path="output.wav",
)
print(answer)
JoyFox-OmniFlow-9B is suitable for:
minicpmo-utils[all].This model is built on MiniCPM-o 4.5 and is subject to the applicable upstream license requirements. The model card declares Apache-2.0 metadata. Before deployment, redistribution, or commercial use, review the original MiniCPM-o 4.5 license and the terms applicable to your intended use.
We thank OpenBMB, LLaMA-Factory, and the open-source community for the model, tooling, and supporting resources used in this project.