0.24.0
Security
- Pillow 13.0.0 or newer is now required. It fixes a critical heap overflow in FlashPix JPEG decoding (GHSA-5x8w-8jj5-q52h) and other advisories. (#935)
- MFlux now requires Pillow 13 and Python 3.11 or newer. Python 3.10 is no longer supported. Upgrade to Python 3.11 or newer to install this version. (#933)
- mflux commands no longer crash at startup with Pillow 13 (
ImportError: cannot import name '_IntegralLike' from 'numbers'). (#890)
New models
- New model: FIBO 2 from Bria (Fibo 2.0 Dev and Fibo 2.0 Edit Turbo) with
mflux-generate-fibo2andmflux-generate-fibo2-edit. Text-to-image from JSON captions or short descriptions, editing of one to five images with optional masks, rendered text, LoRA and quantization. (#924) - New model: Anima from circlestone-labs (Turbo, Aesthetic and Base) with
mflux-generate-anima. It loads the ComfyUI files of circlestone-labs/Anima and supports kohya LoRAs, -q 4 to 8, --compute-precision float16 and mflux-save. (#931) - New model: MOSS-Image-SFT from OpenMOSS, with
mflux-generate-moss-image. It runs fully in MLX, including its Qwen3.5-9B text encoder, and supports quantization andmflux-save. (#914) mflux-generate-irisruns Iris-3B, a 3B text-to-image model that generates the pixels directly (no VAE): Turbo in 4 steps (--model iris-3b, the default) and the base model (--model iris-3b-base). (#899)
Improved
- FIBO 2: mflux-generate-fibo2 also runs Edit Turbo, and both FIBO 2 commands take --expand-prompt (writes the JSON caption with FIBO-vlm), --cfg-end and --step-cache-ratio, check a JSON caption before the model loads and decode the VAE in low-memory strips. (#934)
mflux-generate-moss-imagenow takes--loraand keeps LoRAs as runtime layers, so step-distilled LoRAs keep all of their update.--model moss-image-baseruns MOSS-Image-Base. (#929)mflux-generate-qwen-2.1andmflux-generate-qwen-2.1-edithave a new--small-text-encoderflag. It uses Qwen3.5-0.8B and the zen-image-edit adapter instead of Qwen3-VL-8B, and downloads about 2.1 GB instead of 17.5 GB. (#906)- FLUX 3, FLUX.2 Klein, ERNIE-Image, Z-Image, Lens and Ideogram 4 now decode the VAE in bf16 row strips. The decode needs approximately 1.6 GB at 1024×1024 instead of 7–14 GB.
--vae-tilingno longer shifts the colours.--vae-full-precisionuses the earlier full-image decode. (#910) mflux-generate-flux2andmflux-generate-flux2-edithave a new--small-text-encoderflag for FLUX.2-klein-4B. It uses Qwen3-0.6B and an adapter instead of the 4B text encoder, so the model needs less memory. (#896)mflux-generate-flux2andmflux-generate-flux2-edithave a new--small-decoderflag. It decodes FLUX.2 klein images with the small VAE decoder from Black Forest Labs, which is faster and needs less memory. (#897)mflux-save --hf-symlink [USERNAME]adds a Hugging Face cache entry that links to the saved files, so--model USERNAME/<folder>loads the saved model by repo id. Super simplemflux-save --model Qwen/Qwen-Image-2.1 -q 5now works with auto-naming - requires env varMFLUX_MODELS_DIR(#903)- Published mflux-community FLUX 3 repos now resolve by name alone: added hyphenated aliases (
flux-3-image-klein,flux-3-image-klein-base) so repo names infer the correct base model instead of raising "Cannot infer base_model". (#909)
Fixed
- Saved Krea 2 checkpoints on Hugging Face, like the mflux-community/krea-2-* repos, now load by repo id; they downloaded without their transformer and failed. A file passed as --model now gets an error that says so on Krea 2, FLUX, FLUX.2 and Z-Image. (#873)
- FLUX.2 klein:
--config-from-metadatano longer turns on the small text encoder when a sidecar records"small_text_encoder"as a string such as"false"; it reports an error instead. (#905) - Fix the Z-Image ControlNet mlsd preprocessor crashing on OpenCV 5, and allow opencv-python 5. (#901)
Changed
- mflux-check validates local MFlux and Safetensors model packages without downloads. Use --fix to restore missing MFlux shards from a compatible local cache snapshot. (#877)
Docs
- The pip example in
docs/plugins.mdnow installsmflux-teacache. Before,pip install mflux-<name>failed in a shell because the shell reads<and>as redirection. (#886) - Added mfluxible, an HTTP API server with a browser harness, MCP tool and OpenAI-compatible endpoints, to the community applications list in the README. (#885)
Internal
- CI now runs the test and model-registry jobs on GitHub's macos-15 runners, ahead of the macos-14 image's retirement on November 2, 2026. (#887)
FLUX 3fast tests now compare distilled and Base transformers with fixed FP32 and BF16 reference tensors, including image conditioning and timestep rules. (#883)FLUX 3contributors can record phase timings, MLX peaks across resets and RSS, with a reproducible 32 GB q4 baseline. (#894)