diff --git a/README.md b/README.md
index ba472e7..d9d189c 100644
--- a/README.md
+++ b/README.md
@@ -35,7 +35,7 @@ In the ComfyUI settings, you can modify various settings. Some changes will appl
| Max Difference in Lora Loading | 0 - 100 | Specifies the maximum allowable difference between a tag and a LoRa for it to be loaded. |
| Random Characters from Favourites Only | True / False | Ensures random characters are selected only from your favorited characters. |
| Remove Lora Path | True / False | Removes the path information from loras and only keeps the name. |
-| Sort Characters By Series | True / False | Sorts characters by their series instead of alphabetically. |
+| Sort Characters By | Alphabetically
Series | Sorts characters either alphabetically or by their series. |
| Sort Loras By | Alphabetically
Last Changed | Sorts loras either alphabetically or by latest changed. |
## Important Note
diff --git a/src/character_select.py b/src/character_select.py
index 4598b83..2b7bf02 100644
--- a/src/character_select.py
+++ b/src/character_select.py
@@ -28,7 +28,7 @@ class CharacterSelectNode:
character_dict = {}
final_character_dict = {}
final_characters = []
- cached_sorting_setting = ConfigReader.get_setting("sn0w.SortBySeries", False)
+ cached_sorting_setting = ConfigReader.get_setting("sn0w.SortCharactersBy", "alphabetical")
cached_default_character_setting = ConfigReader.get_setting("sn0w.DisableDefaultCharacters", False)
last_character = ""
@@ -56,7 +56,7 @@ class CharacterSelectNode:
):
cls.cached_default_character_setting = ConfigReader.get_setting("sn0w.DisableDefaultCharacters", False)
cls.initialize()
- elif cls.cached_sorting_setting != ConfigReader.get_setting("sn0w.SortBySeries", False):
+ elif cls.cached_sorting_setting != ConfigReader.get_setting("sn0w.SortCharactersBy", "alphabetical"):
cls.sort_characters()
@classmethod
@@ -92,13 +92,13 @@ class CharacterSelectNode:
@classmethod
def sort_characters(cls, force_sort=False):
- current_sorting_setting = ConfigReader.get_setting("sn0w.SortBySeries", False)
+ current_sorting_setting = ConfigReader.get_setting("sn0w.SortCharactersBy", "alphabetical")
if current_sorting_setting != cls.cached_sorting_setting or force_sort:
- if current_sorting_setting:
+ if current_sorting_setting == "series":
cls.final_character_dict = {
name: cls.character_dict[name] for name in sorted(cls.character_dict, key=cls.extract_series_name)
}
- else:
+ if current_sorting_setting == "alphabetical":
cls.final_character_dict = {name: cls.character_dict[name] for name in sorted(cls.character_dict)}
cls.cached_sorting_setting = current_sorting_setting
diff --git a/web/js/sortBySeries.js b/web/js/sortCharactersBy.js
similarity index 78%
rename from web/js/sortBySeries.js
rename to web/js/sortCharactersBy.js
index 0871590..e48155c 100644
--- a/web/js/sortBySeries.js
+++ b/web/js/sortCharactersBy.js
@@ -16,12 +16,16 @@ function updateSorting(graphCanvas) {
}, 50);
}
-const id = 'sn0w.SortBySeries';
+const id = 'sn0w.SortCharactersBy';
const settingDefinition = {
id,
- name: '[Sn0w] Sort Characters By Series',
+ name: '[Sn0w] Sort Characters By',
defaultValue: false,
- type: 'boolean',
+ options: [
+ { text: 'Alphabetical', value: 'alphabetical' },
+ { text: 'Series', value: 'series' },
+ ],
+ type: 'combo',
onChange: () => updateSorting(app),
};