| 167 | |
| 168 | |
| 169 | def load_model(): |
| 170 | modules.modeldata.model_data.locked = False |
| 171 | autoload = shared.opts.sd_checkpoint_autoload or shared.cmd_opts.ckpt is not None |
| 172 | log.info(f'Model: autoload={autoload} selected="{shared.opts.sd_model_checkpoint}"') |
| 173 | if autoload: |
| 174 | jobid = shared.state.begin('Load model') |
| 175 | thread_model = Thread(target=lambda: shared.sd_model) |
| 176 | thread_model.start() |
| 177 | thread_refiner = Thread(target=lambda: shared.sd_refiner) |
| 178 | thread_refiner.start() |
| 179 | thread_model.join() |
| 180 | thread_refiner.join() |
| 181 | shared.state.end(jobid) |
| 182 | timer.startup.record("checkpoint") |
| 183 | shared.opts.onchange("sd_model_checkpoint", wrap_queued_call(lambda: modules.sd_models.reload_model_weights(op='model')), call=False) |
| 184 | shared.opts.onchange("sd_model_refiner", wrap_queued_call(lambda: modules.sd_models.reload_model_weights(op='refiner')), call=False) |
| 185 | shared.opts.onchange("sd_vae", wrap_queued_call(lambda: modules.sd_vae.reload_vae_weights()), call=False) |
| 186 | shared.opts.onchange("sd_unet", wrap_queued_call(lambda: modules.sd_unet.load_unet(shared.sd_model)), call=False) |
| 187 | shared.opts.onchange("sd_text_encoder", wrap_queued_call(lambda: modules.sd_models.reload_text_encoder()), call=False) |
| 188 | shared.opts.onchange("temp_dir", modules.gr_tempdir.on_tmpdir_changed) |
| 189 | timer.startup.record("onchange") |
| 190 | |
| 191 | |
| 192 | def create_api(app): |