for forge

pull/273/head
cou 2024-03-06 22:11:39 +09:00
parent 302ba65cc4
commit c66dfa2330
1 changed files with 84 additions and 49 deletions

View File

@ -11,17 +11,32 @@ function ch_img_node_str(path){
return `<img src='${ch_convert_file_path_to_url(path)}' style="width:24px"/>`; return `<img src='${ch_convert_file_path_to_url(path)}' style="width:24px"/>`;
} }
function ch_sd_version(){ export function ch_sd_version() {
let foot = gradioApp().getElementById("footer"); let foot = gradioApp().getElementById("footer");
if (!foot){return null;} if (!foot) {
return null;
}
let versions = foot.querySelector(".versions"); let versions = foot.querySelector(".versions");
if (!versions){return null;} if (!versions) {
return null;
}
let links = versions.getElementsByTagName("a"); let [webui_version] = versions.getElementsByTagName("a");
if (links == null || links.length == 0){return null;} if (!webui_version) {
return null;
}
return links[0].innerHTML.substring(1); return extract_version(webui_version.innerHTML);
}
function extract_version(text) {
const matches = text.match(/v[0-9]\.[0-9]\.[0-9]/);
if (matches === null || matches.length == 0) {
return null;
}
return matches[0].substring(1);
} }
@ -673,6 +688,29 @@ function ch_dl_model_new_version(event, model_path, version_id, download_url){
} }
/**
* @param {string} version1 - version1 (x.y.z)
* @param {string} version2 - version2 (x.y.z)
* @returns {number} - 1: version1 is higher, -1: version2 is higher, 0: same version
*/
function compareVersions(version1, version2) {
const v1Parts = version1.split('.').map(Number);
const v2Parts = version2.split('.').map(Number);
for (let i = 0; i < Math.max(v1Parts.length, v2Parts.length); i++) {
const v1Part = v1Parts[i] || 0;
const v2Part = v2Parts[i] || 0;
if (v1Part > v2Part) {
return 1;
} else if (v1Part < v2Part) {
return -1;
}
}
return 0; // same version
}
onUiLoaded(() => { onUiLoaded(() => {
@ -1117,7 +1155,7 @@ onUiLoaded(() => {
//from sd version 1.8.0, extra network's toolbar is fully rewrited. This extension need to re-write this part too. //from sd version 1.8.0, extra network's toolbar is fully rewrited. This extension need to re-write this part too.
let sd_version = ch_sd_version(); let sd_version = ch_sd_version();
console.log(`sd version is: ${sd_version}`); console.log(`sd version is: ${sd_version}`);
if (sd_version >= "1.8.0"){ if (compareVersions(sd_version, "1.8.0") >= 0){
for (let prefix of tab_prefix_list) { for (let prefix of tab_prefix_list) {
toolbar_id = prefix + "_lora_controls"; toolbar_id = prefix + "_lora_controls";
@ -1199,6 +1237,3 @@ onUiLoaded(() => {
}); });