diff --git a/extensions-builtin/sd_forge_controlnet/scripts/controlnet.py b/extensions-builtin/sd_forge_controlnet/scripts/controlnet.py index f86bfbde..08aa5ff2 100644 --- a/extensions-builtin/sd_forge_controlnet/scripts/controlnet.py +++ b/extensions-builtin/sd_forge_controlnet/scripts/controlnet.py @@ -56,6 +56,8 @@ class ControlNetCachedParameters: class ControlNetForForgeOfficial(scripts.Script): + sorting_priority = 10 + def title(self): return "ControlNet" diff --git a/extensions-builtin/sd_forge_dynamic_thresholding/scripts/forge_dynamic_thresholding.py b/extensions-builtin/sd_forge_dynamic_thresholding/scripts/forge_dynamic_thresholding.py index 686ffe47..d1ae209a 100644 --- a/extensions-builtin/sd_forge_dynamic_thresholding/scripts/forge_dynamic_thresholding.py +++ b/extensions-builtin/sd_forge_dynamic_thresholding/scripts/forge_dynamic_thresholding.py @@ -7,6 +7,8 @@ opDynamicThresholdingNode = DynamicThresholdingNode().patch class DynamicThresholdingForForge(scripts.Script): + sorting_priority = 11 + def title(self): return "DynamicThresholding (CFG-Fix) Integrated" diff --git a/extensions-builtin/sd_forge_freeu/scripts/forge_freeu.py b/extensions-builtin/sd_forge_freeu/scripts/forge_freeu.py index 4bd0bebc..07864802 100644 --- a/extensions-builtin/sd_forge_freeu/scripts/forge_freeu.py +++ b/extensions-builtin/sd_forge_freeu/scripts/forge_freeu.py @@ -43,6 +43,8 @@ opFreeU_V2 = FreeU_V2() class FreeUForForge(scripts.Script): + sorting_priority = 12 + def title(self): return "FreeU Integrated" diff --git a/extensions-builtin/sd_forge_hypertile/scripts/forge_hypertile.py b/extensions-builtin/sd_forge_hypertile/scripts/forge_hypertile.py index e84c79e2..05ea101f 100644 --- a/extensions-builtin/sd_forge_hypertile/scripts/forge_hypertile.py +++ b/extensions-builtin/sd_forge_hypertile/scripts/forge_hypertile.py @@ -8,6 +8,8 @@ opHyperTile = HyperTile() class HyperTileForForge(scripts.Script): + sorting_priority = 13 + def title(self): return "HyperTile Integrated" diff --git a/extensions-builtin/sd_forge_kohya_hrfix/scripts/kohya_hrfix.py b/extensions-builtin/sd_forge_kohya_hrfix/scripts/kohya_hrfix.py index ed9667dd..de21d566 100644 --- a/extensions-builtin/sd_forge_kohya_hrfix/scripts/kohya_hrfix.py +++ b/extensions-builtin/sd_forge_kohya_hrfix/scripts/kohya_hrfix.py @@ -8,6 +8,8 @@ opPatchModelAddDownscale = PatchModelAddDownscale() class KohyaHRFixForForge(scripts.Script): + sorting_priority = 14 + def title(self): return "Kohya HRFix Integrated" diff --git a/extensions-builtin/sd_forge_latent_modifier/scripts/forge_latent_modifier.py b/extensions-builtin/sd_forge_latent_modifier/scripts/forge_latent_modifier.py index dd641399..172efb22 100644 --- a/extensions-builtin/sd_forge_latent_modifier/scripts/forge_latent_modifier.py +++ b/extensions-builtin/sd_forge_latent_modifier/scripts/forge_latent_modifier.py @@ -7,6 +7,8 @@ opModelSamplerLatentMegaModifier = ModelSamplerLatentMegaModifier().mega_modify class LatentModifierForForge(scripts.Script): + sorting_priority = 15 + def title(self): return "LatentModifier Integrated" diff --git a/extensions-builtin/sd_forge_multidiffusion/scripts/forge_multidiffusion.py b/extensions-builtin/sd_forge_multidiffusion/scripts/forge_multidiffusion.py index d1f5d383..cbc9225e 100644 --- a/extensions-builtin/sd_forge_multidiffusion/scripts/forge_multidiffusion.py +++ b/extensions-builtin/sd_forge_multidiffusion/scripts/forge_multidiffusion.py @@ -8,6 +8,8 @@ opTiledDiffusion = TiledDiffusion().apply class MultiDiffusionForForge(scripts.Script): + sorting_priority = 16 + def title(self): return "MultiDiffusion Integrated" diff --git a/extensions-builtin/sd_forge_sag/scripts/forge_sag.py b/extensions-builtin/sd_forge_sag/scripts/forge_sag.py index d4eb0349..764fe463 100644 --- a/extensions-builtin/sd_forge_sag/scripts/forge_sag.py +++ b/extensions-builtin/sd_forge_sag/scripts/forge_sag.py @@ -8,6 +8,8 @@ opSelfAttentionGuidance = SelfAttentionGuidance() class SAGForForge(scripts.Script): + sorting_priority = 12.5 + def title(self): return "SelfAttentionGuidance Integrated" diff --git a/extensions-builtin/sd_forge_stylealign/scripts/forge_stylealign.py b/extensions-builtin/sd_forge_stylealign/scripts/forge_stylealign.py index 6322fae0..541e2be5 100644 --- a/extensions-builtin/sd_forge_stylealign/scripts/forge_stylealign.py +++ b/extensions-builtin/sd_forge_stylealign/scripts/forge_stylealign.py @@ -10,6 +10,8 @@ def sdp(q, k, v, transformer_options): class StyleAlignForForge(scripts.Script): + sorting_priority = 17 + def title(self): return "StyleAlign Integrated" diff --git a/modules/scripts.py b/modules/scripts.py index fb2f0348..79c5cb76 100644 --- a/modules/scripts.py +++ b/modules/scripts.py @@ -94,6 +94,9 @@ class Script: controls = None """A list of controls retured by the ui().""" + sorting_priority = 0 + """Larger number will appear downwards in the UI.""" + def title(self): """this function should return the title of the script. This is what will be displayed in the dropdown menu.""" @@ -695,6 +698,8 @@ class ScriptRunner: if scriptlist is None: scriptlist = self.alwayson_scripts + scriptlist = sorted(scriptlist, key=lambda x: x.sorting_priority) + for script in scriptlist: if script.alwayson and script.section != section: continue