Skip to content

Changelog

The Duskfall Portal Crew edited this page Jun 12, 2026 · 2 revisions

Changelog

All notable changes to this project. Format follows Keep a Changelog.


Unreleased — dev branch

Fixed

  • SDXL NaN loss (root cause)_tokenize_tags left overflow/padding chunks with all-False CLIP attention masks. exp(dtype.min) underflows to 0 in bf16/fp32, producing 0/0 = NaN in softmax. Fixed by setting ones_mask_chunk on three overflow paths in strategy_base.py.
  • min_snr_gamma_enabled missing from 4 presets — Illustrious AdamW8bit, Illustrious CAME Conservative, Pony Prodigy, and pony_template predated the _enabled flag convention.
  • Custom optimizer crash/corruption bugs — adammini bare param not wrapped in list; dehaze NameError on adaptive_muon path; fmarscrop TypeError; adopt in-place sqrt corruption; laprop alias mutation.
  • min_snr_gamma injected on every run — default value of 5.0 caused SNR weighting on every run regardless of intent. Now gated on min_snr_gamma_enabled.
  • disable_cross_attn_mask flag not read — argparse flag existed but was never connected to the training loop.
  • optimizer_args sent as array instead of string — caused silent arg-parsing failures for custom optimizers.

Changed

  • README restructured — removed conversational copy, expanded documentation links.

0.1.x-alpha — shipped to dev since 2026-04-30 main merge

Added

  • Tag viewer — Civitai-inspired chip filter UI on the tag editor page
  • Stop training button on the training monitor
  • WD14 3-way overwrite mode — overwrite / append / ignore
  • Live training monitor — step count, loss, learning rate, ETA from tqdm output
  • Anima, SDXL, Illustrious, and Pony preset templates
  • NoobAI-XL-v1.1 (EPS) added to model browser
  • Dev-branch provisioning scripts for VastAI and RunPod
  • fetch-restart.sh — full pull + npm install + build + restart
  • Weight decay auto-injected into optimizer_args for custom optimizers

Fixed

  • CAME NaN (network_train_unet_only default True → False)
  • Conservative CAME preset fp16+conv_dim:32 → bf16+conv_dim:0
  • Log cursor wrap-around — deque-relative index replaced with absolute counter
  • Training log polling — visibility-aware polling with fixed cadence
  • Log poller race condition at epoch boundary on tab switch
  • ZIP dataset upload — request body piped instead of buffered (fixes ECONNRESET)
  • Dataset tags_present flag — tag editor now shows status correctly
  • LoggingCard Radix fix — log_with uses 'none' sentinel instead of empty string
  • TOML generation path — config written directly to config/
  • enable_bucket now respects user config (was hardcoded True)
  • network_train_unet_only no longer passed in checkpoint training mode
  • HF upload form — token pre-filled from saved settings
  • LoRA resize — removed alpha input field (SVD auto-calculates it)
  • Merge/resize subprocesses now have timeouts
  • CUDA availability check before --device cuda
  • CheckpointTrainingConfig TypeScript type includes SD3.5, Chroma, Anima
  • AbortError console noise on navigation suppressed
  • Anima presets — clip_skip: 1, keep_tokens: 1 applied across all configs

Changed

  • shadcn CLI 3.6.1 → 4.7.0
  • Next.js 15 → 16 (PR #355, security bump)
  • PostCSS CVE-2026-41305 patched
  • fast-uri CVE-2026-6322 patched

0.1.0-alpha — 2026-04-30 initial alpha release

Initial alpha. Core LoRA training pipeline working end-to-end on VastAI and local NVIDIA GPU.

Features at launch

  • Web UI (Next.js 15 + FastAPI) for LoRA training on SDXL, SD1.5, Flux, SD3/SD3.5, Lumina
  • Dataset upload, WD14/BLIP/GIT auto-tagging, caption editor
  • Training configuration with preset system
  • Civitai model browser and HuggingFace upload
  • LoRA merge, resize, and checkpoint merge utilities
  • VastAI one-click deploy

Known Issues

  • Compass, LPFAdamW, RMSProp optimizers are wired but not yet in the UI dropdown
  • Rex and CosineAnnealing schedulers vendored but not exposed in UI
  • Preset list needs an organization pass
  • Flux and SD3 need real-world testing (confirmed working in the backend)

Clone this wiki locally