mirror of
https://github.com/willmiao/ComfyUI-Lora-Manager.git
synced 2026-07-03 07:51:16 -03:00
feat(ui): dynamically populate base model dropdown from CivitAI API, add Krea 2 constants (#1001)
This commit is contained in:
@@ -196,6 +196,7 @@ class CivitaiBaseModelService:
|
|||||||
"ernie": "ERNI",
|
"ernie": "ERNI",
|
||||||
"ernie turbo": "ETRB",
|
"ernie turbo": "ETRB",
|
||||||
"nucleus": "NUCL",
|
"nucleus": "NUCL",
|
||||||
|
"krea 2": "KR2",
|
||||||
"svd": "SVD",
|
"svd": "SVD",
|
||||||
"ltxv": "LTXV",
|
"ltxv": "LTXV",
|
||||||
"ltxv2": "LTV2",
|
"ltxv2": "LTV2",
|
||||||
@@ -424,6 +425,7 @@ class CivitaiBaseModelService:
|
|||||||
"Ernie",
|
"Ernie",
|
||||||
"Ernie Turbo",
|
"Ernie Turbo",
|
||||||
"Nucleus",
|
"Nucleus",
|
||||||
|
"Krea 2",
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -229,5 +229,6 @@ SUPPORTED_DOWNLOAD_SKIP_BASE_MODELS = frozenset(
|
|||||||
"Ernie",
|
"Ernie",
|
||||||
"Ernie Turbo",
|
"Ernie Turbo",
|
||||||
"Nucleus",
|
"Nucleus",
|
||||||
|
"Krea 2",
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
* Handles model metadata editing functionality - General version
|
* Handles model metadata editing functionality - General version
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { BASE_MODEL_CATEGORIES } from '../../utils/constants.js';
|
import { BASE_MODEL_CATEGORIES, getMergedBaseModels } from '../../utils/constants.js';
|
||||||
import { showToast } from '../../utils/uiHelpers.js';
|
import { showToast } from '../../utils/uiHelpers.js';
|
||||||
import { getModelApiClient } from '../../api/modelApiFactory.js';
|
import { getModelApiClient } from '../../api/modelApiFactory.js';
|
||||||
|
|
||||||
@@ -267,6 +267,7 @@ export function setupBaseModelEditing(filePath) {
|
|||||||
|
|
||||||
// Add options from BASE_MODEL_CATEGORIES constants
|
// Add options from BASE_MODEL_CATEGORIES constants
|
||||||
const baseModelCategories = BASE_MODEL_CATEGORIES;
|
const baseModelCategories = BASE_MODEL_CATEGORIES;
|
||||||
|
const categorizedModels = new Set();
|
||||||
|
|
||||||
// Create option groups for better organization
|
// Create option groups for better organization
|
||||||
Object.entries(baseModelCategories).forEach(([category, models]) => {
|
Object.entries(baseModelCategories).forEach(([category, models]) => {
|
||||||
@@ -277,13 +278,30 @@ export function setupBaseModelEditing(filePath) {
|
|||||||
const option = document.createElement('option');
|
const option = document.createElement('option');
|
||||||
option.value = model;
|
option.value = model;
|
||||||
option.textContent = model;
|
option.textContent = model;
|
||||||
option.selected = model === currentValue;
|
if (model === currentValue) option.selected = true;
|
||||||
|
categorizedModels.add(model);
|
||||||
group.appendChild(option);
|
group.appendChild(option);
|
||||||
});
|
});
|
||||||
|
|
||||||
dropdown.appendChild(group);
|
dropdown.appendChild(group);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Check for dynamic base models from API that aren't in any category
|
||||||
|
const mergedModels = getMergedBaseModels();
|
||||||
|
const uncategorizedModels = mergedModels.filter(model => !categorizedModels.has(model));
|
||||||
|
if (uncategorizedModels.length > 0) {
|
||||||
|
const group = document.createElement('optgroup');
|
||||||
|
group.label = 'Other (API)';
|
||||||
|
uncategorizedModels.forEach(model => {
|
||||||
|
const option = document.createElement('option');
|
||||||
|
option.value = model;
|
||||||
|
option.textContent = model;
|
||||||
|
if (model === currentValue) option.selected = true;
|
||||||
|
group.appendChild(option);
|
||||||
|
});
|
||||||
|
dropdown.appendChild(group);
|
||||||
|
}
|
||||||
|
|
||||||
// Replace content with dropdown
|
// Replace content with dropdown
|
||||||
baseModelContent.style.display = 'none';
|
baseModelContent.style.display = 'none';
|
||||||
baseModelDisplay.insertBefore(dropdown, editBtn);
|
baseModelDisplay.insertBefore(dropdown, editBtn);
|
||||||
|
|||||||
@@ -70,6 +70,7 @@ export const BASE_MODELS = {
|
|||||||
ERNIE_TURBO: "Ernie Turbo",
|
ERNIE_TURBO: "Ernie Turbo",
|
||||||
NUCLEUS: "Nucleus",
|
NUCLEUS: "Nucleus",
|
||||||
PONY_V7: "Pony V7",
|
PONY_V7: "Pony V7",
|
||||||
|
KREA_2: "Krea 2",
|
||||||
// Default
|
// Default
|
||||||
UNKNOWN: "Other"
|
UNKNOWN: "Other"
|
||||||
};
|
};
|
||||||
@@ -197,6 +198,7 @@ export const BASE_MODEL_ABBREVIATIONS = {
|
|||||||
[BASE_MODELS.ERNIE]: 'ERNI',
|
[BASE_MODELS.ERNIE]: 'ERNI',
|
||||||
[BASE_MODELS.ERNIE_TURBO]: 'ETRB',
|
[BASE_MODELS.ERNIE_TURBO]: 'ETRB',
|
||||||
[BASE_MODELS.NUCLEUS]: 'NUCL',
|
[BASE_MODELS.NUCLEUS]: 'NUCL',
|
||||||
|
[BASE_MODELS.KREA_2]: 'KR2',
|
||||||
|
|
||||||
// Default
|
// Default
|
||||||
[BASE_MODELS.UNKNOWN]: 'OTH'
|
[BASE_MODELS.UNKNOWN]: 'OTH'
|
||||||
@@ -401,6 +403,7 @@ export const BASE_MODEL_CATEGORIES = {
|
|||||||
BASE_MODELS.PIXART_A, BASE_MODELS.PIXART_E, BASE_MODELS.HUNYUAN_1,
|
BASE_MODELS.PIXART_A, BASE_MODELS.PIXART_E, BASE_MODELS.HUNYUAN_1,
|
||||||
BASE_MODELS.LUMINA, BASE_MODELS.KOLORS, BASE_MODELS.NOOBAI, BASE_MODELS.ANIMA,
|
BASE_MODELS.LUMINA, BASE_MODELS.KOLORS, BASE_MODELS.NOOBAI, BASE_MODELS.ANIMA,
|
||||||
BASE_MODELS.ERNIE, BASE_MODELS.ERNIE_TURBO, BASE_MODELS.NUCLEUS,
|
BASE_MODELS.ERNIE, BASE_MODELS.ERNIE_TURBO, BASE_MODELS.NUCLEUS,
|
||||||
|
BASE_MODELS.KREA_2,
|
||||||
BASE_MODELS.UNKNOWN
|
BASE_MODELS.UNKNOWN
|
||||||
]
|
]
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user