- run_generation_loop walks a flat job plan (config_utils.build_job_plan) instead of the
nested resolution x config loops; job_order=minimize_reloads reorders it to cut model
and LoRA reloads. as_written reproduces the old order exactly.
- Preview pass (fewer steps, smaller snapped latent, no upscales); items carry config_fp,
preview_of, full_* keys. A full run skips cells whose preview was rejected (tombstoned
in meta.rejected_preview_fps by delete_rejected); a preview run skips cells that already
have a full image.
- check_if_job_completed gets a keyword-only preview flag (positional API unchanged).
- Distributed mode is untouched apart from an 'ignored' warning.
fix: a per-config resolution no longer leaks its w/h/batch_idx into later configs of the
same pass (the old loop set them once per input job; the pre-flight scan already did this
correctly, so pre-flight and the main loop disagreed).
fix: the async look-ahead picked the next config via job_idx*len(expanded)+conf_idx, which
was wrong whenever per-config-resolution configs were skipped after the first pass; it now
reads the next plan entry.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>