forge-again v1.7.6
A performance and workflow release: the canvas image transport is rebuilt, two long-standing slowdowns are gone, and the Lora tab finally understands modes. Full test suite green (48 passed, including the GPU tier).
Performance
- File-based canvas image transport. ForgeCanvas historically moved whole images as base64 text through hidden textboxes, in both directions - a 24 MP phone photo became a ~34 MB string riding inside every img2img submit and every send-to-inpaint push, measured as the correlate of queue-stream stalls and lost generations. The canvas now uploads images as real multipart files (submit payload: 34,303,350 bytes -> 133 bytes) and receives server-set images as file URLs (send-to-inpaint push: megabytes -> 86 bytes). Base64 remains the automatic fallback, marker paths only resolve inside gradio's temp dirs, and phone-photo EXIF rotation is handled.
- Back-to-back generations stay warm. The VAE's worst-case decode estimate (~9 GB for a 1 MP fp32 decode) was passed wholesale to the memory manager, which evicted the ENTIRE diffusion model at the end of every run to decode one image - the next run then paid a full weight reload, or worse, sampled partially CPU-swapped at ~10 s/it. The decode now requests only real headroom (the tiled-decode fallback covers genuine shortfalls). Measured: warm back-to-back 768x768 XL runs went from paying a reload every run to 4.0 s flat with zero evictions.
Features
- Lora tab filters by mode. The tab now opens showing the current mode's loras (by your models/Lora/sd|xl|flux directory layout - metadata version detection is 'Unknown' for most modern files and never filtered anything), re-filters live on mode switches, and searching another mode's folder still reaches everything. The
lora_filter_disabledsetting now defaults to off. - Lora tab loads during generations. The pages' content was delivered through the generation queue, so opening the UI mid-run left the tab spinning until the run finished. Content and refresh now bypass the queue (they are disk reads).
- Session restore brings the checkpoint back. The quicksettings row (Checkpoint, VAE, Clip skip, mode radio) lives outside every tab and was never captured. It is now saved with each session/profile and restored FIRST, so cross-mode restores flip the mode, wait for the list, then select the saved model. (Sessions/profiles saved before this release predate the data - re-save once.)
- Flash LoRA guard. Generating with a flash/distill LoRA at CFG > 1 or > 16 steps multiplies the work several-fold for no quality gain. The first offending Generate per server launch is held behind a choice - "Apply flash settings & run" (CFG 1.0, 16 steps) or "Run as is" - then the guard stays out of the way until the next server boot.
Upgrading
Pull and restart. No config or model changes needed. If you keep saved sessions/UI profiles, re-save them once so they include the checkpoint.