From df6aaa65595484eb7517beb0d7bc26a81ccc02ea Mon Sep 17 00:00:00 2001 From: Jason Hoku Date: Fri, 8 May 2026 12:42:34 -0700 Subject: [PATCH] fix: expand_configs honors per-entry seed override (for Revise modal) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit User reported that changing seed in the Revise modal had no effect — the new seed was overwritten and the orchestrator's check_if_job_completed matched the original item's seed, skipping the gen. Root cause: config_utils.expand_configs unconditionally wrote "seed": for every config, ignoring entry["seed"] from the configs_json. Builder UI doesn't emit entry["seed"] (it relies on the node-level seed widget), so this regression only surfaced when something else explicitly set per-entry seed — exactly what triggerGen does. Fix: use entry["seed"] when present and non-empty, otherwise fall back to the global seed. Builder UI flow unchanged. Co-Authored-By: Claude Opus 4.7 (1M context) --- config_utils.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/config_utils.py b/config_utils.py index 154e67c..38df45b 100644 --- a/config_utils.py +++ b/config_utils.py @@ -694,7 +694,10 @@ def expand_configs(raw_configs, pos_prompts, neg_prompts, denoise_values, seed, "advanced_scheduler": combo[17], "flux_guidance_value": combo[18], "resolution": combo[19], # (w, h) tuple or None - "seed": seed, + # Per-entry seed override (Revise modal sets this explicitly). + # Builder UI does NOT emit entry["seed"] — it uses the node-level + # seed widget instead — so this fall-through is safe for that flow. + "seed": int(entry["seed"]) if entry.get("seed") not in (None, "") else seed, "seed_behavior": entry.get("seed_behavior", "fixed"), "full_run_seed_behavior": entry.get("full_run_seed_behavior", "fixed"), "model_type": model_type,