Repository navigation
Releases: WeightLab/df11pack
Releases · WeightLab/df11pack
Release list
df11pack v0.1.1
Fixes found by an independent review of the repository against its own data.
Fixed
--luts=correctdid not change the LUTs in 0.1.0. It wrote the
df11pack_luts="correct"stamp but encoded in compat mode, so 0.1.0 output
stamped "correct" is compat output (it decodes correctly; the stamp is wrong).
The mode now reaches the encoder, with a test that checks the written LUTs.- Two definition patterns claiming the same module are refused; before, the
module became two units and its tensors were written twice. --ramwith a huge value gives a parse error instead of overflowing.- A unit whose tensors are all empty is an error, not a panic.
verifyfails a unit whosegaps/output_positionslack an entry for a window
or chunk the stream enters (before, it skipped it).- Opening a safetensors file with a malformed header (non-integer shapes or
offsets, offsets past the data, sizes that don't match the dtype) fails at once,
naming the tensor. --io autofinds the disk type for NVMe and other partitions, instead of
"device type unknown" (the choice made was already right).
Changed
verifyon--index idx8output exits 2 ("idx8 output: not supported by
verify") instead of reporting every unit as FAIL with exit 1.compresssays what it wrote ("wrote 5 safetensors files + config.json").--idx8-blockrequires--index idx8and refuses 0 at parse time (exit 2).--ramhelp notes there is always at least one worker.- Definition headers say where each definition comes from (19 from
ComfyUI-DFloat11-Extended'spattern_dict.py, 16 from a published release's
dfloat11_config); the ComfyUIflux,chromaandchroma-radiancesources
record Extended commit 414506d instead ofmaster(content unchanged). - Tests fail instead of passing silently when a tracked fixture is missing or
unreadable; only absent generated fixtures are skipped, with a SKIP line. - CI builds the MSRV job with Rust 1.85.1 (the repo's toolchain file had
overridden it, so 1.85 was never really tested before). - Documentation brought up to date with the measurements (FINDINGS, DESIGN,
PLAN, COMPATIBILITY, INDEX_SCHEMES); NORMS.md added.
Added
- Contributor documentation: CONTRIBUTING, Code of Conduct (Contributor Covenant
2.1), SECURITY, issue and pull request templates, CITATION.cff, and
docs/DEFINITIONS.md for the model definition format. phase0/make_tier0.py --src, and fixture regeneration steps inphase0/README.md.- CI uses current GitHub actions (Node 24) and pins Ubuntu 24.04.
Known limits (in addition to 0.1.0's)
- H12 is unmeasured: the CPU decoder behind
verifyis sequential, and there is
no GPU verification path. config.jsonkeeps the source model's schema (for examplerope_theta,
torch_dtype, the source'stransformers_version), so it differs from the
official compressor'ssave_pretrainedoutput.verify --level fullpeaked at 12.0 GiB of RAM on Qwen3-8B (6.6 GiB to compress).
df11pack v0.1.0
First release.
Compression
- DFloat11 output byte-identical to the official compressor (pip
dfloat11
0.5.0), as whole files: on real Qwen3-8B, all 39 files match the official output
and the publishedDFloat11/Qwen3-8B-DF11release, in 40 s and 6.6 GB of RAM
against 37 min and 27.3 GB. - Four layouts: transformers, diffusers, diffusers single-file, ComfyUI single-file.
- 35 built-in model definitions: every official DFloat11 release with a
dfloat11_config, and every model in ComfyUI-DFloat11-Extended. Custom
definitions by TOML path orDF11PACK_ARCH_DIR. - Parallel chunked encoder; memory-aware worker count (respects container limits);
--ram,--workers; sequential reads for spinning disks. - Atomic output: a failed or interrupted run never leaves a half-written file.
- Refuses what it cannot do exactly, rather than guessing: non-BF16 sources, and the
rare ambiguous tie in the official 32-bit code-length limiter.
Verification
--safe: every unit decoded and checked against the source before it is written.df11pack verify: structure without the source; sampled or full decode with it;
exit codes 0 / 1 / 2 for pass / fail / could not check.
Opt-in extras (clearly marked, never the default)
--luts=correct: zero-fills leftover LUT entries; proven unreachable by the
official CUDA kernel.--hashes: per-tensor SHA-256 in the header;verifythen catches corruption
without the source.--index idx8: experimental 8-bit block index with an escape table, 0.66%
smaller on Qwen3-8B. Not DFloat11; no current loader reads it.
Known limits
- Image and video models have not yet been loaded from df11pack output in ComfyUI or
diffusers on a GPU (files are byte-identical to what those loaders read). - Gated repositories (Gemma-3, SD3.5, FLUX.1-dev diffusers, Llama) were not checked
against real checkpoints. verify --level fulldecodes on one core (~10 minutes for a 12B model).- The legacy DFloat11 0.1.0 format (pickled releases) is not supported.