From 9183dc444e6c62ae4e33a759e03d9b2b66a49bf2 Mon Sep 17 00:00:00 2001 From: oobabooga <112222186+oobabooga@users.noreply.github.com> Date: Sat, 4 Apr 2026 10:48:53 -0700 Subject: [PATCH] API: Fix loader args leaking between sequential model loads --- modules/api/models.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/modules/api/models.py b/modules/api/models.py index b89397d3..e0bd21f3 100644 --- a/modules/api/models.py +++ b/modules/api/models.py @@ -47,7 +47,6 @@ def _load_model(data): unload_model() model_settings = get_model_metadata(model_name) - update_model_parameters(model_settings) # Update shared.args with custom model loading settings # Security: only allow keys that correspond to model loading @@ -55,6 +54,16 @@ def _load_model(data): # flags like trust_remote_code or extra_flags to be set via the API. blocked_keys = {'extra_flags'} allowed_keys = set(loaders.list_model_elements()) - blocked_keys + + # Reset all loader args to their startup values before applying new ones, + # so settings from a previous API load don't leak into this one. + # Include blocked keys in the reset (safe: restores startup value, not API-controlled). + for k in allowed_keys | blocked_keys: + if hasattr(shared.args, k) and hasattr(shared.original_args, k): + setattr(shared.args, k, getattr(shared.original_args, k)) + + update_model_parameters(model_settings) + if args: for k in args: if k in allowed_keys and hasattr(shared.args, k):