Skip to content

df11pack v0.1.1

Latest

Choose a tag to compare

@github-actions github-actions released this 26 Sep 23:12
· 10 commits to main since this release

Fixes found by an independent review of the repository against its own data.

Fixed

  • --luts=correct did 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.
  • --ram with a huge value gives a parse error instead of overflowing.
  • A unit whose tensors are all empty is an error, not a panic.
  • verify fails a unit whose gaps/output_positions lack 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 auto finds the disk type for NVMe and other partitions, instead of
    "device type unknown" (the choice made was already right).

Changed

  • verify on --index idx8 output exits 2 ("idx8 output: not supported by
    verify") instead of reporting every unit as FAIL with exit 1.
  • compress says what it wrote ("wrote 5 safetensors files + config.json").
  • --idx8-block requires --index idx8 and refuses 0 at parse time (exit 2).
  • --ram help notes there is always at least one worker.
  • Definition headers say where each definition comes from (19 from
    ComfyUI-DFloat11-Extended's pattern_dict.py, 16 from a published release's
    dfloat11_config); the ComfyUI flux, chroma and chroma-radiance sources
    record Extended commit 414506d instead of master (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 in phase0/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 verify is sequential, and there is
    no GPU verification path.
  • config.json keeps the source model's schema (for example rope_theta,
    torch_dtype, the source's transformers_version), so it differs from the
    official compressor's save_pretrained output.
  • verify --level full peaked at 12.0 GiB of RAM on Qwen3-8B (6.6 GiB to compress).