Skip to content

Commit 920a3a4

Browse files
committed
SD3 Lora page filter - detection not implemented
1 parent 4823909 commit 920a3a4

File tree

4 files changed

+24
-4
lines changed

4 files changed

+24
-4
lines changed

extensions-builtin/Lora/network.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ class SdVersion(enum.Enum):
1919
SD1 = 2
2020
SD2 = 3
2121
SDXL = 4
22+
SD3 = 5
2223

2324

2425
class NetworkOnDisk:
@@ -59,6 +60,7 @@ def read_metadata():
5960
self.sd_version = self.detect_version()
6061

6162
def detect_version(self):
63+
# TODO: SdVersion.SD3 detection
6264
if str(self.metadata.get('ss_base_model_version', "")).startswith("sdxl_"):
6365
return SdVersion.SDXL
6466
elif str(self.metadata.get('ss_v2', "")) == "True":

extensions-builtin/Lora/scripts/lora_script.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,8 @@ def before_ui():
3838
"lora_add_hashes_to_infotext": shared.OptionInfo(True, "Add Lora hashes to infotext"),
3939
"lora_bundled_ti_to_infotext": shared.OptionInfo(True, "Add Lora name as TI hashes for bundled Textual Inversion").info('"Add Textual Inversion hashes to infotext" needs to be enabled'),
4040
"lora_show_all": shared.OptionInfo(False, "Always show all networks on the Lora page").info("otherwise, those detected as for incompatible version of Stable Diffusion will be hidden"),
41-
"lora_hide_unknown_for_versions": shared.OptionInfo([], "Hide networks of unknown versions for model versions", gr.CheckboxGroup, {"choices": ["SD1", "SD2", "SDXL"]}),
41+
"lora_hide_unknown_for_versions": shared.OptionInfo([], "Hide networks of unknown versions for model versions", gr.CheckboxGroup, {"choices": ["SD1", "SD2", "SDXL", "SD3"]}),
42+
"TEMP_setting_sd3_lora_filter": shared.OptionInfo(["SD1", "Unknown"], "For SD3 model also show Lora of other sd version", gr.CheckboxGroup, {"choices": ["SD1", "SD2", "SDXL", "Unknown"]}).info('Temporary setting until SD3 Lora detection is implemented'),
4243
"lora_in_memory_limit": shared.OptionInfo(0, "Number of Lora networks to keep cached in memory", gr.Number, {"precision": 0}),
4344
"lora_not_found_warning_console": shared.OptionInfo(False, "Lora not found warning in console"),
4445
"lora_not_found_gradio_warning": shared.OptionInfo(False, "Lora not found warning popup in webui"),

extensions-builtin/Lora/ui_edit_user_metadata.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ def generate_random_prompt_from_tags(self, tags):
160160
def create_extra_default_items_in_left_column(self):
161161

162162
# this would be a lot better as gr.Radio but I can't make it work
163-
self.select_sd_version = gr.Dropdown(['SD1', 'SD2', 'SDXL', 'Unknown'], value='Unknown', label='Stable Diffusion version', interactive=True)
163+
self.select_sd_version = gr.Dropdown(['SD1', 'SD2', 'SDXL', 'SD3', 'Unknown'], value='Unknown', label='Stable Diffusion version', interactive=True)
164164

165165
def create_editor(self):
166166
self.create_default_editor_elems()

extensions-builtin/Lora/ui_extra_networks_lora.py

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import network
44
import networks
55

6-
from modules import shared, ui_extra_networks
6+
from modules import shared, ui_extra_networks, sd_models_types
77
from modules.ui_extra_networks import quote_js
88
from ui_edit_user_metadata import LoraUserMetadataEditor
99

@@ -62,8 +62,14 @@ def create_item(self, name, index=None, enable_filter=True):
6262

6363
if shared.opts.lora_show_all or not enable_filter or not shared.sd_model:
6464
pass
65+
elif shared.sd_model.is_sd3:
66+
# TODO: add proper SD3 filtering when detection is implemented
67+
# TODO: move after Unknown block when implemented
68+
if sd_version is network.SdVersion.SD3 or sd_version.name in shared.opts.TEMP_setting_sd3_lora_filter:
69+
return item
70+
return None
6571
elif sd_version == network.SdVersion.Unknown:
66-
model_version = network.SdVersion.SDXL if shared.sd_model.is_sdxl else network.SdVersion.SD2 if shared.sd_model.is_sd2 else network.SdVersion.SD1
72+
model_version = self.sd_to_lora_version(shared.sd_model)
6773
if model_version.name in shared.opts.lora_hide_unknown_for_versions:
6874
return None
6975
elif shared.sd_model.is_sdxl and sd_version != network.SdVersion.SDXL:
@@ -88,3 +94,14 @@ def allowed_directories_for_previews(self):
8894

8995
def create_user_metadata_editor(self, ui, tabname):
9096
return LoraUserMetadataEditor(ui, tabname, self)
97+
98+
@staticmethod
99+
def sd_to_lora_version(sd_model: sd_models_types.WebuiSdModel):
100+
if sd_model.is_sd1:
101+
return network.SdVersion.SD1
102+
elif sd_model.is_sd2:
103+
return network.SdVersion.SD2
104+
elif sd_model.is_sdxl:
105+
return network.SdVersion.SDXL
106+
elif sd_model.is_sd3:
107+
return network.SdVersion.SD3

0 commit comments

Comments
 (0)