Human-readable bytes in model info.
- Also fixed typos in JavaScript comments.
This commit is contained in:
15
__init__.py
15
__init__.py
@@ -559,6 +559,19 @@ def download_file(url, filename, overwrite):
|
|||||||
os.rename(filename_temp, filename)
|
os.rename(filename_temp, filename)
|
||||||
|
|
||||||
|
|
||||||
|
def bytes_to_size(total_bytes):
|
||||||
|
units = ["B", "KiB", "MiB", "GiB", "TiB", "PiB"]
|
||||||
|
b = total_bytes
|
||||||
|
i = 0
|
||||||
|
while True:
|
||||||
|
b = b >> 10
|
||||||
|
if (b == 0): break
|
||||||
|
i = i + 1
|
||||||
|
if i >= len(units) or i == 0:
|
||||||
|
return str(total_bytes) + " " + units[0]
|
||||||
|
return "{:.2f}".format(total_bytes / (1 << (i * 10))) + " " + units[i]
|
||||||
|
|
||||||
|
|
||||||
@server.PromptServer.instance.routes.get("/model-manager/model/info")
|
@server.PromptServer.instance.routes.get("/model-manager/model/info")
|
||||||
async def get_model_info(request):
|
async def get_model_info(request):
|
||||||
model_path = request.query.get("path", None)
|
model_path = request.query.get("path", None)
|
||||||
@@ -574,7 +587,7 @@ async def get_model_info(request):
|
|||||||
comfyui_directory, name = os.path.split(model_path)
|
comfyui_directory, name = os.path.split(model_path)
|
||||||
info["File Name"] = name
|
info["File Name"] = name
|
||||||
info["File Directory"] = comfyui_directory
|
info["File Directory"] = comfyui_directory
|
||||||
info["File Size"] = str(os.path.getsize(abs_path)) + " bytes"
|
info["File Size"] = bytes_to_size(os.path.getsize(abs_path))
|
||||||
stats = pathlib.Path(abs_path).stat()
|
stats = pathlib.Path(abs_path).stat()
|
||||||
date_format = "%Y-%m-%d %H:%M:%S"
|
date_format = "%Y-%m-%d %H:%M:%S"
|
||||||
date_modified = datetime.fromtimestamp(stats.st_mtime).strftime(date_format)
|
date_modified = datetime.fromtimestamp(stats.st_mtime).strftime(date_format)
|
||||||
|
|||||||
@@ -1055,7 +1055,7 @@ class ModelGrid {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* In-place sort. Returns an arrat alias.
|
* In-place sort. Returns an array alias.
|
||||||
* @param {Array} list
|
* @param {Array} list
|
||||||
* @param {string} sortBy
|
* @param {string} sortBy
|
||||||
* @param {bool} [reverse=false]
|
* @param {bool} [reverse=false]
|
||||||
@@ -1230,7 +1230,7 @@ class ModelGrid {
|
|||||||
* @returns {HTMLElement[]}
|
* @returns {HTMLElement[]}
|
||||||
*/
|
*/
|
||||||
static #generateInnerHtml(models, modelType, settingsElements, searchSeparator, systemSeparator, modelInfoCallback) {
|
static #generateInnerHtml(models, modelType, settingsElements, searchSeparator, systemSeparator, modelInfoCallback) {
|
||||||
// TODO: seperate text and model logic; getting too messy
|
// TODO: separate text and model logic; getting too messy
|
||||||
// TODO: fallback on button failure to copy text?
|
// TODO: fallback on button failure to copy text?
|
||||||
const canShowButtons = modelNodeType[modelType] !== undefined;
|
const canShowButtons = modelNodeType[modelType] !== undefined;
|
||||||
const showAddButton = canShowButtons && settingsElements["model-show-add-button"].checked;
|
const showAddButton = canShowButtons && settingsElements["model-show-add-button"].checked;
|
||||||
@@ -1793,7 +1793,7 @@ class Civitai {
|
|||||||
* @param {string} id - Model ID.
|
* @param {string} id - Model ID.
|
||||||
* @param {string} apiPath - Civitai request subdirectory. "models" for 'model' urls. "model-version" for 'api' urls.
|
* @param {string} apiPath - Civitai request subdirectory. "models" for 'model' urls. "model-version" for 'api' urls.
|
||||||
*
|
*
|
||||||
* @returns {Promise<Object>} Dictionary containing recieved model info. Returns an empty if fails.
|
* @returns {Promise<Object>} Dictionary containing received model info. Returns an empty if fails.
|
||||||
*/
|
*/
|
||||||
static async requestInfo(id, apiPath) {
|
static async requestInfo(id, apiPath) {
|
||||||
const url = "https://civitai.com/api/v1/" + apiPath + "/" + id;
|
const url = "https://civitai.com/api/v1/" + apiPath + "/" + id;
|
||||||
@@ -1807,15 +1807,15 @@ class Civitai {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Extract file information from the given model version infomation.
|
* Extract file information from the given model version information.
|
||||||
*
|
*
|
||||||
* @param {Object} modelVersionInfo - Model version infomation.
|
* @param {Object} modelVersionInfo - Model version information.
|
||||||
* @param {(string|null)} [type=null] - Optional select by model type.
|
* @param {(string|null)} [type=null] - Optional select by model type.
|
||||||
* @param {(string|null)} [fp=null] - Optional select by floating point quantization.
|
* @param {(string|null)} [fp=null] - Optional select by floating point quantization.
|
||||||
* @param {(string|null)} [size=null] - Optional select by sizing.
|
* @param {(string|null)} [size=null] - Optional select by sizing.
|
||||||
* @param {(string|null)} [format=null] - Optional select by file format.
|
* @param {(string|null)} [format=null] - Optional select by file format.
|
||||||
*
|
*
|
||||||
* @returns {Object} - Extracted list of infomation on each file of the given model version.
|
* @returns {Object} - Extracted list of information on each file of the given model version.
|
||||||
*/
|
*/
|
||||||
static getModelFilesInfo(modelVersionInfo, type = null, fp = null, size = null, format = null) {
|
static getModelFilesInfo(modelVersionInfo, type = null, fp = null, size = null, format = null) {
|
||||||
const files = [];
|
const files = [];
|
||||||
@@ -1940,7 +1940,7 @@ class HuggingFace {
|
|||||||
* @param {string} id - Model ID.
|
* @param {string} id - Model ID.
|
||||||
* @param {string} apiPath - API path.
|
* @param {string} apiPath - API path.
|
||||||
*
|
*
|
||||||
* @returns {Promise<Object>} Dictionary containing recieved model info. Returns an empty if fails.
|
* @returns {Promise<Object>} Dictionary containing received model info. Returns an empty if fails.
|
||||||
*/
|
*/
|
||||||
static async requestInfo(id, apiPath = "models") {
|
static async requestInfo(id, apiPath = "models") {
|
||||||
const url = "https://huggingface.co/api/" + apiPath + "/" + id;
|
const url = "https://huggingface.co/api/" + apiPath + "/" + id;
|
||||||
@@ -2061,7 +2061,7 @@ class DownloadTab {
|
|||||||
#updateModels = () => {};
|
#updateModels = () => {};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tries to return the related ComfyUI model directory if unambigious.
|
* Tries to return the related ComfyUI model directory if unambiguous.
|
||||||
*
|
*
|
||||||
* @param {string | undefined} modelType - Model type.
|
* @param {string | undefined} modelType - Model type.
|
||||||
* @param {string | undefined} [fileType] - File type. Relevant for "Diffusers".
|
* @param {string | undefined} [fileType] - File type. Relevant for "Diffusers".
|
||||||
|
|||||||
Reference in New Issue
Block a user