mirror of
https://git.datalinker.icu/ltdrdata/ComfyUI-Manager
synced 2025-12-14 00:24:23 +08:00
add model size (#809)
This commit is contained in:
parent
84cdffe193
commit
aa3db7d2b4
@ -518,6 +518,16 @@ export class ModelManager {
|
|||||||
formatter: (url, rowItem, columnItem) => {
|
formatter: (url, rowItem, columnItem) => {
|
||||||
return `<a class="cmm-btn-download" title="Download file" href="${url}" target="_blank">${icons.download}</a>`;
|
return `<a class="cmm-btn-download" title="Download file" href="${url}" target="_blank">${icons.download}</a>`;
|
||||||
}
|
}
|
||||||
|
}, {
|
||||||
|
id: 'size',
|
||||||
|
name: 'Size',
|
||||||
|
width: 100,
|
||||||
|
formatter: (size) => {
|
||||||
|
if (typeof size === "number") {
|
||||||
|
return this.formatSize(size);
|
||||||
|
}
|
||||||
|
return size;
|
||||||
|
}
|
||||||
}, {
|
}, {
|
||||||
id: 'type',
|
id: 'type',
|
||||||
name: 'Type',
|
name: 'Type',
|
||||||
@ -652,6 +662,7 @@ export class ModelManager {
|
|||||||
models.forEach((item, i) => {
|
models.forEach((item, i) => {
|
||||||
const { type, base, name, reference, installed } = item;
|
const { type, base, name, reference, installed } = item;
|
||||||
item.originalData = JSON.parse(JSON.stringify(item));
|
item.originalData = JSON.parse(JSON.stringify(item));
|
||||||
|
item.size = this.sizeToBytes(item.size);
|
||||||
item.hash = md5(name + reference);
|
item.hash = md5(name + reference);
|
||||||
item.id = i + 1;
|
item.id = i + 1;
|
||||||
|
|
||||||
@ -740,6 +751,56 @@ export class ModelManager {
|
|||||||
|
|
||||||
// ===========================================================================================
|
// ===========================================================================================
|
||||||
|
|
||||||
|
formatSize(v) {
|
||||||
|
const base = 1000;
|
||||||
|
const units = ['', 'K', 'M', 'G', 'T', 'P'];
|
||||||
|
const space = '';
|
||||||
|
const postfix = 'B';
|
||||||
|
if (v <= 0) {
|
||||||
|
return `0${space}${postfix}`;
|
||||||
|
}
|
||||||
|
for (let i = 0, l = units.length; i < l; i++) {
|
||||||
|
const min = Math.pow(base, i);
|
||||||
|
const max = Math.pow(base, i + 1);
|
||||||
|
if (v > min && v <= max) {
|
||||||
|
const unit = units[i];
|
||||||
|
if (unit) {
|
||||||
|
const n = v / min;
|
||||||
|
const nl = n.toString().split('.')[0].length;
|
||||||
|
const fl = Math.max(3 - nl, 1);
|
||||||
|
v = n.toFixed(fl);
|
||||||
|
}
|
||||||
|
v = v + space + unit + postfix;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return v;
|
||||||
|
}
|
||||||
|
|
||||||
|
// for size sort
|
||||||
|
sizeToBytes(v) {
|
||||||
|
if (typeof v === "number") {
|
||||||
|
return v;
|
||||||
|
}
|
||||||
|
if (typeof v === "string") {
|
||||||
|
const n = parseFloat(v);
|
||||||
|
const unit = v.replace(/[0-9.B]+/g, "").trim().toUpperCase();
|
||||||
|
if (unit === "K") {
|
||||||
|
return n * 1000;
|
||||||
|
}
|
||||||
|
if (unit === "M") {
|
||||||
|
return n * 1000 * 1000;
|
||||||
|
}
|
||||||
|
if (unit === "G") {
|
||||||
|
return n * 1000 * 1000 * 1000;
|
||||||
|
}
|
||||||
|
if (unit === "T") {
|
||||||
|
return n * 1000 * 1000 * 1000 * 1000;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return v;
|
||||||
|
}
|
||||||
|
|
||||||
showSelection(msg) {
|
showSelection(msg) {
|
||||||
this.element.querySelector(".cmm-manager-selection").innerHTML = msg;
|
this.element.querySelector(".cmm-manager-selection").innerHTML = msg;
|
||||||
}
|
}
|
||||||
|
|||||||
932
model-list.json
932
model-list.json
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user