You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Follow-ups deferred from the initial Character LoRA Training feature (see docs/plans/2026-06-12-character-lora-training.md):
End-to-end smoke training on both runtimes. The trainers are unit/CLI-verified but no real run has executed yet. mflux: install the venv (scripts/setup-image-video.sh), run a 20-step training on a 5-image dataset, confirm the wrapper's entrypoint probe + output regexes match the installed mflux version (scripts/train_mflux_lora.py STEP_RES / checkpoint zip layout / adapter discovery in find_adapter), pin mflux in server/lib/pythonSetup.js PIP_NAMES if its training surface churns. flux2: 20-step run on black-forest-labs/FLUX.2-klein-4B, verify save_lora_weights round-trips through scripts/flux2_macos.py --lora-paths on the SDNQ-quantized inference pipeline (watch for lora_utils.py silent-skip warnings), and validate the render_sample 8-step Euler preview decodes correctly.
Full optimizer-state resume.--resume-from in scripts/train_flux2_lora.py reloads adapter weights only — optimizer state is not persisted, so resume restarts AdamW moments. The run-delete route and boot reconcile already keep checkpoints; add a 'retry from checkpoint' param on POST /api/lora-training/runs that threads resumeFrom/resumeCheckpoint (builders already accept it: server/services/loraTraining/runtimes.js).
Vision-LLM crop proposals for reference-sheet slicing.sliceReferenceSheet (server/services/loraDatasetGenerate.js) uses a fixed grid because turnaround layouts are model-generated/non-deterministic; the user prunes bad crops. A vision-LLM pass could propose bounding boxes per panel instead. — Shipped in Character LoRA follow-ups: vision-LLM auto-slicing, CLI-provider captioning, training queue UX #1408.
Follow-ups deferred from the initial Character LoRA Training feature (see docs/plans/2026-06-12-character-lora-training.md):
scripts/setup-image-video.sh), run a 20-step training on a 5-image dataset, confirm the wrapper's entrypoint probe + output regexes match the installed mflux version (scripts/train_mflux_lora.pySTEP_RES / checkpoint zip layout / adapter discovery infind_adapter), pinmfluxinserver/lib/pythonSetup.jsPIP_NAMES if its training surface churns. flux2: 20-step run onblack-forest-labs/FLUX.2-klein-4B, verifysave_lora_weightsround-trips throughscripts/flux2_macos.py --lora-pathson the SDNQ-quantized inference pipeline (watch forlora_utils.pysilent-skip warnings), and validate therender_sample8-step Euler preview decodes correctly.--resume-frominscripts/train_flux2_lora.pyreloads adapter weights only — optimizer state is not persisted, so resume restarts AdamW moments. The run-delete route and boot reconcile already keep checkpoints; add a 'retry from checkpoint' param onPOST /api/lora-training/runsthat threadsresumeFrom/resumeCheckpoint(builders already accept it:server/services/loraTraining/runtimes.js).sliceReferenceSheet(server/services/loraDatasetGenerate.js) uses a fixed grid because turnaround layouts are model-generated/non-deterministic; the user prunes bad crops. A vision-LLM pass could propose bounding boxes per panel instead. — Shipped in Character LoRA follow-ups: vision-LLM auto-slicing, CLI-provider captioning, training queue UX #1408.loraDatasetCaption.jsreusesdescribeImageDataUrlwhich only supports API-type providers; CLI providers (claude/codex with vision) could caption too. — Shipped in Character LoRA follow-ups: vision-LLM auto-slicing, CLI-provider captioning, training queue UX #1408.