Repository navigation
Run on mflux 0.23 and release 0.2.1 - #19
Merged
Merged
Conversation
Raise the mflux extra and the bench group to mflux>=0.23,<0.24 with pillow<13 (mflux 0.23.0 fails at import with Pillow 13). Load FLUX.1's norm_out.linear.bias, which mflux now builds and loads. Run Qwen-Image 2.1 through mflux's packed projections one block at a time, keep its compiled step functions out of the generation path, and refuse a step function compiled between calls. Export the empty COMPUTED_PARAMS set from the Qwen-Image 2.1 transformer, as the Krea 2 and ERNIE transformers do. Set the generate-time attributes mflux 0.23 reads for Z-Image and FLUX.2 Klein and refuse its precision options. Name the missing tensors when a base checkpoint lacks required weights. Pin the base repository revision for FLUX.1, Z-Image and FLUX.2 Klein. Record the macOS version in generate reports.
Lock the integration lane to mflux 0.23.0 and fail it when the lock installs another release, so the lane's name cannot outlive the pin. Add an mflux column to the README tier table: each row names the version it ran on, rows not re-run on 0.23 say so, and records without a version read "not recorded".
Identity and tier records on mflux 0.23 for FLUX.1-schnell, Z-Image, FLUX.2 Klein 4B and Qwen-Image 2.1. Klein 4B gets its first identity record.
IonDen
force-pushed
the
feature/0050-mflux-0.23
branch
from
October 28, 2026 19:47
bf5ad11 to
9b8a69f
Compare
IonDen
force-pushed
the
feature/0050-mflux-0.23
branch
from
October 28, 2026 20:00
9b8a69f to
b5c176c
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
mlx-dfloat has been pinned to mflux 0.20 since 0.2.0, while PyPI has moved on to 0.23. This change moves the
mfluxextra and the benchmark group tomflux>=0.23,<0.24and addspillow<13, because mflux 0.23.0 fails at import with Pillow 13. Version 0.2.1 requires mflux 0.23, and themfluxextra's pin excludes 0.20.For users, the fixes follow from what mflux 0.23 changed. FLUX.1 now loads
norm_out.linear.bias, which mflux 0.23 builds and loads. Qwen-Image-2.1 runs through mflux's packed projections one block at a time; its compiled step functions stay out of the generation path, and a step function compiled between calls is refused. Z-Image and FLUX.2 Klein set the attributes mflux 0.23 reads at generate time and refuse mflux's precision options. A base checkpoint that lacks required weights now fails with an error naming the missing tensors. Each model's BF16 base repository is pinned to a fixed revision, the snapshot the recorded runs used, and a base passed with--baseis used as given.mlx-dfloat generatereports now record the macOS version. The README's tier table has a new last column,mflux, showing which version each row ran on. The changelog has a 0.2.1 entry dated 2026-10-28.To check it, FLUX.1-schnell, Z-Image (base), the distilled FLUX.2-klein-4B and Qwen-Image-2.1 were run again on mflux 0.23.0 on the 32 GB M1 Max (macOS 27.0.1, mlx 0.32.2) at 1024². In each, the final latents are equal to those of the same transformer streaming its BF16 weights, and the images are identical pixel for pixel. The distilled FLUX.2-klein-4B had no identity record before; this is its first. The measured peaks are 19.77 GiB (schnell), 14.40 GiB (Z-Image), 11.85 GiB (klein-4B) and 20.37 GiB (Qwen-Image-2.1), all under the machine's 22.96 GiB fit budget. Z-Image's watched peak was above the old fit estimate for its VAE step (13.15 GiB), so this change raises the Z-Image estimate to cover every committed Z-Image run, and raises Qwen-Image-2.1's by 0.04 GiB. On a 24 GB Mac (not measured), a Z-Image call is now planned to drop the compressed transformer before the VAE decode. CI on this branch (https://github.com/IonDen/mlx-dfloat/actions/runs/40759395675): the required
testjob passed (2036 passed, coverage 87.98 % against the 85 % gate) and theintegration (0.23.0)lane passed (533 passed). ruff, the format check and mypy are clean, and the table script's check confirms the generated README blocks are current.What stays on mflux 0.20 numbers: ERNIE-Image and ERNIE-Image-Turbo, Krea 2 Turbo and Raw, FLUX.2-klein-base-4B, base-9B and 9B, Z-Image-Turbo, FLUX.1-dev and FLUX.1-Krea-dev, and the stopped 16 GB and 24 GB rows. They were not run again, and the tier table labels each
0.20, not re-run on 0.23. The stopped rows come from 0.2.0 files that record no mflux version, so they readnot recorded. A tier run the watchdog stops now records the mflux version.