mirror of
https://github.com/vladmandic/automatic
synced 2026-09-19 01:04:32 +02:00
fix(te): apply sd_text_encoder changes for non-T5 encoders
reload_text_encoder only hot-swapped T5-family encoders and ran only at initial load, so changing sd_text_encoder for a model with a generic encoder (Krea2's Qwen3-VL) never took effect until a full model reload. Track the loaded selection and, for encoders with no in-place swap, reload the model on change, triggered from the settings handler. The fresh model object also invalidates the prompt cache.
This commit is contained in:
@@ -200,6 +200,8 @@ def run_settings_single(value, key, progress=False, force=False):
|
||||
from modules.dml import directml_override_opts
|
||||
directml_override_opts()
|
||||
shared.opts.save(silent=True)
|
||||
if key == 'sd_text_encoder':
|
||||
sd_models.reload_text_encoder() # apply the change now; reloads the model for encoders with no in-place swap
|
||||
if key not in ['sd_model_checkpoint', 'sd_model_refiner', 'sd_vae', 'sd_te', 'sd_unet'] or force:
|
||||
log.debug(f'Setting changed: {key}="{value}" progress={progress} force={force}')
|
||||
return get_value_for_setting(key), shared.opts.dumpjson()
|
||||
|
||||
Reference in New Issue
Block a user