<!-- SPDX-FileCopyrightText: 2024 Joshua Jewell -→ <!-- SPDX-License-Identifier: MIT -→
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
-
RSR (Rhodium Standard Repository) compliance
-
Full documentation suite
-
Diff-based compression: Store VAE images as diffs to reduce dataset size by ~50%
-
New
compresssubcommand to convert VAE images to diffs -
New
decompresssubcommand to reconstruct full VAE directory -
New
reconstructsubcommand to reconstruct single VAE image -
Julia
CompressedVAEDatasetfor on-the-fly VAE reconstruction -
Diff encoding:
diff = VAE - Original + 128(offset for signed values) -
Contrastive learning model for VAE artifact detection (
contrastive_model.jl) -
CNN encoder with ResNet-style residual blocks (embed_dim=256)
-
Projection head for contrastive learning (proj_dim=128)
-
Multiple loss functions: NT-Xent, Supervised Contrastive, Triplet, Contrastive
-
Two-phase training: contrastive pre-training + classifier fine-tuning
-
Binary classifier for original vs VAE discrimination
-
Embedding extraction for visualization (t-SNE, UMAP compatible)
-
Evaluation metrics: accuracy, precision, recall, F1, confusion matrix
-
GPU support via CUDA.jl (optional)
-
Justfile recipes:
train,train-compressed,evaluate,embed,train-full
-
SHAKE256 (d=256) cryptographic checksums for all image files
-
Train/test/validation/calibration splits (70/15/10/5 ratio)
-
Both random and stratified split generation
-
Size-based stratification with configurable bins
-
CUE metadata generation with Dublin Core compliance
-
Nickel configuration schema
-
SPDX headers on all source files
-
Isabelle/HOL proofs for split properties
-
Disjointness (no overlap between splits)
-
Exhaustiveness (all images assigned)
-
Ratio correctness (within 1% tolerance)
-
Original-VAE bijection preservation
-
normalizesubcommand for dataset processing -
verifysubcommand for output validation -
statssubcommand for statistics display -
hashsubcommand for single-file checksums -
Comprehensive help and examples
-
Nix flake for reproducible builds
-
Podman container with Chainguard Wolfi base
-
Justfile task runner
-
Julia utilities for Flux.jl training
| Version | Release Date | Status | |---------|--------------|--------| | 1.0.0 | 2024-01-01 | Current |
-
Deprecated features announced one minor version before removal
-
Migration guides provided for breaking changes
-
LTS branches may be created for critical security fixes