mirror of
https://github.com/easydiffusion/easydiffusion.git
synced 2025-05-18 23:30:46 +02:00
API to get SHA256 of a model file (#1510)
To be used from javascript to collect metadata from civitai https://civitai.com/api/v1/model-versions/by-hash/0A35347528
This commit is contained in:
parent
ca8a96f956
commit
bdd7d2599f
@ -139,6 +139,10 @@ def init():
|
|||||||
def modify_package(package_name: str, req: dict):
|
def modify_package(package_name: str, req: dict):
|
||||||
return modify_package_internal(package_name, req)
|
return modify_package_internal(package_name, req)
|
||||||
|
|
||||||
|
@server_api.get("/sha256/{obj_path:path}")
|
||||||
|
def get_sha256(obj_path: str):
|
||||||
|
return get_sha256_internal(obj_path)
|
||||||
|
|
||||||
@server_api.get("/")
|
@server_api.get("/")
|
||||||
def read_root():
|
def read_root():
|
||||||
return FileResponse(os.path.join(app.SD_UI_DIR, "index.html"), headers=NOCACHE_HEADERS)
|
return FileResponse(os.path.join(app.SD_UI_DIR, "index.html"), headers=NOCACHE_HEADERS)
|
||||||
@ -451,3 +455,26 @@ def modify_package_internal(package_name: str, req: dict):
|
|||||||
log.error(str(e))
|
log.error(str(e))
|
||||||
log.error(traceback.format_exc())
|
log.error(traceback.format_exc())
|
||||||
return HTTPException(status_code=500, detail=str(e))
|
return HTTPException(status_code=500, detail=str(e))
|
||||||
|
|
||||||
|
def get_sha256_internal(obj_path):
|
||||||
|
import hashlib
|
||||||
|
from easydiffusion.utils import sha256sum
|
||||||
|
|
||||||
|
path = obj_path.split("/")
|
||||||
|
type = path.pop(0)
|
||||||
|
|
||||||
|
try:
|
||||||
|
model_path = model_manager.resolve_model_to_use("/".join(path), type)
|
||||||
|
except Exception as e:
|
||||||
|
log.error(str(e))
|
||||||
|
log.error(traceback.format_exc())
|
||||||
|
|
||||||
|
return HTTPException(status_code=404)
|
||||||
|
try:
|
||||||
|
digest = sha256sum(model_path)
|
||||||
|
return {"digest": digest}
|
||||||
|
except Exception as e:
|
||||||
|
log.error(str(e))
|
||||||
|
log.error(traceback.format_exc())
|
||||||
|
return HTTPException(status_code=500, detail=str(e))
|
||||||
|
|
||||||
|
@ -6,3 +6,15 @@ from .save_utils import (
|
|||||||
save_images_to_disk,
|
save_images_to_disk,
|
||||||
get_printable_request,
|
get_printable_request,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def sha256sum(filename):
|
||||||
|
sha256 = hashlib.sha256()
|
||||||
|
with open(filename, "rb") as f:
|
||||||
|
while True:
|
||||||
|
data = f.read(8192) # Read in chunks of 8192 bytes
|
||||||
|
if not data:
|
||||||
|
break
|
||||||
|
sha256.update(data)
|
||||||
|
|
||||||
|
return sha256.hexdigest()
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user