diff --git a/CHANGELOG.md b/CHANGELOG.md index 2749d5921..0a76c576a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # Change Log for SD.Next -## Update for 2025-02-09 +## Update for 2025-02-10 - **User Interface** - **Hints** @@ -29,6 +29,8 @@ allows for configurable image tiling for x/y axis separately enable in *scripts -> asymmetric tiling* *note*: traditional symmetric tiling is achieved by setting circular mode for both x and y + - persist *models -> hugginface -> token* + - persist *models -> civitai -> token* - **Fixes** - docs/wiki always use relative links - ui use correct timezone for log display diff --git a/modules/modelloader.py b/modules/modelloader.py index 0c5fa78d8..b89ce3e35 100644 --- a/modules/modelloader.py +++ b/modules/modelloader.py @@ -110,6 +110,8 @@ def download_civit_model_thread(model_name: str, model_url: str, model_path: str if os.path.isfile(temp_file): starting_pos = os.path.getsize(temp_file) headers['Range'] = f'bytes={starting_pos}-' + if token is None: + token = shared.opts.civit_token if token is not None and len(token) > 0: headers['Authorization'] = f'Bearer {token}' @@ -396,7 +398,7 @@ def load_civitai(model: str, url: str): return name # already downloaded else: shared.log.debug(f'Reference download start: model="{name}"') - download_civit_model_thread(model_name=model, model_url=url, model_path='', model_type='safetensors', token=None) + download_civit_model_thread(model_name=model, model_url=url, model_path='', model_type='safetensors', token=shared.opts.civit_token) shared.log.debug(f'Reference download complete: model="{name}"') sd_models.list_models() info = sd_models.get_closet_checkpoint_match(name) diff --git a/modules/shared.py b/modules/shared.py index 4cd18f9e3..3b08cfc07 100644 --- a/modules/shared.py +++ b/modules/shared.py @@ -359,13 +359,10 @@ def temp_disable_extensions(): ] disable_original = [] disabled = [] - if modules.shared.cmd_opts.theme is not None: - theme_name = modules.shared.cmd_opts.theme + if cmd_opts.theme is not None: + theme_name = cmd_opts.theme else: - theme_name = f'{modules.shared.opts.theme_type.lower()}/{modules.shared.opts.gradio_theme}' - if modules.shared.cmd_opts.locale is not None: - modules.shared.opts.ui_locale = modules.shared.cmd_opts.locale - + theme_name = f'{opts.theme_type.lower()}/{opts.gradio_theme}' if theme_name == 'lobe': disable_themes.remove('sd-webui-lobe-theme') elif theme_name == 'cozy-nest' or theme_name == 'cozy': @@ -948,6 +945,7 @@ options_templates.update(options_section(('huggingface', "Huggingface"), { "diffusers_model_load_variant": OptionInfo("default", "Preferred Model variant", gr.Radio, {"choices": ['default', 'fp32', 'fp16']}), "diffusers_vae_load_variant": OptionInfo("default", "Preferred VAE variant", gr.Radio, {"choices": ['default', 'fp32', 'fp16']}), "custom_diffusers_pipeline": OptionInfo('', 'Load custom Diffusers pipeline'), + "civitai_token": OptionInfo('', 'HuggingFace token', gr.Textbox, {"lines": 2, "visible": False}), })) options_templates.update(options_section(('extra_networks', "Networks"), { @@ -1114,6 +1112,8 @@ class Options: return data_label.default if data_label is not None else None def save_atomic(self, filename=None, silent=False): + if self.filename is None: + self.filename = config_filename if filename is None: filename = self.filename if cmd_opts.freeze: @@ -1234,6 +1234,8 @@ opts = Options() config_filename = cmd_opts.config opts.load(config_filename) cmd_opts = cmd_args.settings_args(opts, cmd_opts) +if cmd_opts.locale is not None: + opts.data['ui_locale'] = cmd_opts.locale if cmd_opts.use_xformers: opts.data['cross_attention_optimization'] = 'xFormers' opts.data['uni_pc_lower_order_final'] = opts.schedulers_use_loworder # compatibility diff --git a/modules/ui_models.py b/modules/ui_models.py index 28724bd66..8c172b9cd 100644 --- a/modules/ui_models.py +++ b/modules/ui_models.py @@ -429,6 +429,11 @@ def create_ui(): log.info(f'Diffuser model downloaded: model="{hub_id}"') return f'Diffuser model downloaded: model="{hub_id}"' + def hf_update_token(token): + log.debug('Huggingface update token') + opts.huggingface_token = token + opts.save() + with gr.Column(scale=6): gr.HTML('