From 27a2e27c3aaba53f85634abbf00ef1b9f8dbb6f9 Mon Sep 17 00:00:00 2001 From: Lincoln Stein Date: Tue, 21 Feb 2023 12:09:34 -0500 Subject: [PATCH] fix crash when installed models < number columns 1. Fixed display crash when the number of installed models is less than the number of desired columns to display them. 2. Added --ckpt_convert option to init file. --- ldm/invoke/config/invokeai_configure.py | 23 ++++++++++++++++------- ldm/invoke/config/model_install.py | 3 ++- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/ldm/invoke/config/invokeai_configure.py b/ldm/invoke/config/invokeai_configure.py index 0066dd7a60..0ac51a3d89 100755 --- a/ldm/invoke/config/invokeai_configure.py +++ b/ldm/invoke/config/invokeai_configure.py @@ -442,6 +442,13 @@ class editOptsForm(npyscreen.FormMultiPage): relx=5, scroll_exit=True, ) + self.ckpt_convert = self.add_widget_intelligent( + npyscreen.Checkbox, + name="Load legacy checkpoint models into memory as diffusers models", + value=old_opts.ckpt_convert, + relx=5, + scroll_exit=True, + ) self.always_use_cpu = self.add_widget_intelligent( npyscreen.Checkbox, name="Force CPU to be used on GPU systems", @@ -569,13 +576,14 @@ class editOptsForm(npyscreen.FormMultiPage): new_opts = Namespace() for attr in [ - "outdir", - "safety_checker", - "free_gpu_mem", - "max_loaded_models", - "xformers", - "always_use_cpu", - "embedding_path", + "outdir", + "safety_checker", + "free_gpu_mem", + "max_loaded_models", + "xformers", + "always_use_cpu", + "embedding_path", + "ckpt_convert", ]: setattr(new_opts, attr, getattr(self, attr).value) @@ -709,6 +717,7 @@ def write_opts(opts: Namespace, init_file: Path): --max_loaded_models={int(opts.max_loaded_models)} --{'no-' if not opts.safety_checker else ''}nsfw_checker --{'no-' if not opts.xformers else ''}xformers +--{'no-' if not opts.ckpt_convert else ''}ckpt_convert {'--free_gpu_mem' if opts.free_gpu_mem else ''} {'--always_use_cpu' if opts.always_use_cpu else ''} """ diff --git a/ldm/invoke/config/model_install.py b/ldm/invoke/config/model_install.py index 0c337c5ac2..c39ec744f3 100644 --- a/ldm/invoke/config/model_install.py +++ b/ldm/invoke/config/model_install.py @@ -241,7 +241,8 @@ class addModelsForm(npyscreen.FormMultiPage): def _get_columns(self)->int: window_height, window_width = curses.initscr().getmaxyx() - return 4 if window_width > 240 else 3 if window_width>160 else 2 if window_width>80 else 1 + cols = 4 if window_width > 240 else 3 if window_width>160 else 2 if window_width>80 else 1 + return min(cols,len(self.installed_models)) def on_ok(self): self.parentApp.setNextForm(None)