diff options
author | Antonio <antonio.hernandez.uk@gmail.com> | 2022-10-28 03:49:39 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-10-28 03:49:39 +0000 |
commit | 5d5dc64064d8ca399a76fe44dbb62bdef6c4b7c4 (patch) | |
tree | 52aba7a47d0f28ba85fc5c8bdbc9f91c9b6cd53b | |
parent | 737eb28faca8be2bb996ee0930ec77d1f7ebd939 (diff) | |
download | stable-diffusion-webui-gfx803-5d5dc64064d8ca399a76fe44dbb62bdef6c4b7c4.tar.gz stable-diffusion-webui-gfx803-5d5dc64064d8ca399a76fe44dbb62bdef6c4b7c4.tar.bz2 stable-diffusion-webui-gfx803-5d5dc64064d8ca399a76fe44dbb62bdef6c4b7c4.zip |
Natural sorting for dropdown checkpoint list
Example:
Before After
11.ckpt 11.ckpt
ab.ckpt ab.ckpt
ade_pablo_step_1000.ckpt ade_pablo_step_500.ckpt
ade_pablo_step_500.ckpt ade_pablo_step_1000.ckpt
ade_step_1000.ckpt ade_step_500.ckpt
ade_step_1500.ckpt ade_step_1000.ckpt
ade_step_2000.ckpt ade_step_1500.ckpt
ade_step_2500.ckpt ade_step_2000.ckpt
ade_step_3000.ckpt ade_step_2500.ckpt
ade_step_500.ckpt ade_step_3000.ckpt
atp_step_5500.ckpt atp_step_5500.ckpt
model1.ckpt model1.ckpt
model10.ckpt model10.ckpt
model1000.ckpt model33.ckpt
model33.ckpt model50.ckpt
model400.ckpt model400.ckpt
model50.ckpt model1000.ckpt
moo44.ckpt moo44.ckpt
v1-4-pruned-emaonly.ckpt v1-4-pruned-emaonly.ckpt
v1-5-pruned-emaonly.ckpt v1-5-pruned-emaonly.ckpt
v1-5-pruned.ckpt v1-5-pruned.ckpt
v1-5-vae.ckpt v1-5-vae.ckpt
-rw-r--r-- | modules/sd_models.py | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/modules/sd_models.py b/modules/sd_models.py index e697bb72..64d5ee0d 100644 --- a/modules/sd_models.py +++ b/modules/sd_models.py @@ -3,6 +3,7 @@ import os.path import sys
from collections import namedtuple
import torch
+import re
from omegaconf import OmegaConf
from ldm.util import instantiate_from_config
@@ -35,8 +36,10 @@ def setup_model(): list_models()
-def checkpoint_tiles():
- return sorted([x.title for x in checkpoints_list.values()])
+def checkpoint_tiles():
+ convert = lambda name: int(name) if name.isdigit() else name.lower()
+ alphanumeric_key = lambda key: [convert(c) for c in re.split('([0-9]+)', key)]
+ return sorted([x.title for x in checkpoints_list.values()], key = alphanumeric_key)
def list_models():
|