Apply memory changes via API (#1954)

Actually apply memory related changes posted to `/sdapi/v1/options`:
- 'forge_inference_memory'
- 'forge_async_loading'
- 'forge_pin_shared_memory'
This commit is contained in:
altoiddealer 2024-10-01 16:34:11 -04:00 committed by GitHub
parent f5190349b4
commit f4d5e8cac1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -687,12 +687,22 @@ class Api:
checkpoint_name = req.get("sd_model_checkpoint", None)
if checkpoint_name is not None and checkpoint_name not in sd_models.checkpoint_aliases:
raise RuntimeError(f"model {checkpoint_name!r} not found")
refresh_memory = False
memory_keys = ['forge_inference_memory', 'forge_async_loading', 'forge_pin_shared_memory']
for k, v in req.items():
shared.opts.set(k, v, is_api=True)
if k in memory_keys:
refresh_memory = True
main_entry.checkpoint_change(checkpoint_name)
# shared.opts.save(shared.config_filename) --- applied in checkpoint_change()
if refresh_memory:
model_memory = main_entry.total_vram - shared.opts.forge_inference_memory
main_entry.refresh_memory_management_settings(model_memory, shared.opts.forge_async_loading, shared.opts.forge_pin_shared_memory)
return
def get_cmd_flags(self):