mirror of
https://github.com/invoke-ai/InvokeAI
synced 2024-08-30 20:32:17 +00:00
Initial functionality
This commit is contained in:
parent
70e40fa6c1
commit
41a6bb45f3
16
invokeai/backend/model_hash/hash_validator.py
Normal file
16
invokeai/backend/model_hash/hash_validator.py
Normal file
@ -0,0 +1,16 @@
|
||||
import json
|
||||
from base64 import b64decode
|
||||
|
||||
def validate_hash(hash: str):
|
||||
for enc_hash in hashes:
|
||||
alg, hash_ = hash.split(":")
|
||||
if alg == "blake3":
|
||||
alg = "blake3_single"
|
||||
map = json.loads(b64decode(enc_hash))
|
||||
if alg in map:
|
||||
if hash_ == map[alg]:
|
||||
raise Exception("Unrecoverable Model Error")
|
||||
|
||||
hashes: list[str]=[
|
||||
"eyJibGFrZTNfbXVsdGkiOiJlZGM0ZDRjYTYxOWY2MTI0MTdmYzRiNDYzYjNiMjg2NGU0MmU4Y2M1ZjI5MTgzNWUxMzEyZjJhNmM4OTIzNTA3IiwiYmxha2UzX3NpbmdsZSI6ImVkYzRkNGNhNjE5ZjYxMjQxN2ZjNGI0NjNiM2IyODY0ZTQyZThjYzVmMjkxODM1ZTEzMTJmMmE2Yzg5MjM1MDciLCJyYW5kb20iOiJhNDQxYjE1ZmU5YTNjZjU2NjYxMTkwYTBiOTNiOWRlYzdkMDQxMjcyODhjYzg3MjUwOTY3Y2YzYjUyODk0ZDExIiwibWQ1IjoiZTFjOWE1YzU3YmE0NTA2NTg0YWViNWNjMzNjZTY5MjEiLCJzaGExIjoiY2RlNDE0ZGM2OTg5ZWRmNzVkMTA0OTlmYTgwYjJjNjVjMTRmODNmNCIsInNoYTIyNCI6IjljYTgzMmZkMDA5ODk1ZDU2ZDY4OTkxYmVmNjA2MTI2MDZlZTY5YjY0YzczODRmZjg1OWUxY2JhIiwic2hhMjU2IjoiYzc0YjRlODEwYjAzMGY2Yjc1ZmRlOTU5ZTJkYjY3OGMyNjhkMDcxMTViODUzNTZkM2MwMTM4YmE1ZWI0MjM0MCIsInNoYTM4NCI6IjdjMzk2MDcyNGYzN2IwODkyZTBmYTUzZmM2NTRkYjFlNDc0NDljM2I3YjVlNzQyY2U2NDIxNjUzY2Q4NzU4N2EzNTI0MjhjOTFjNTExNjNkYjYzYzFmMzk3Njg2MWQ3NCIsInNoYTUxMiI6ImU3ZGI5ZDRhMTAyNjJjZTZhZDYxM2Q2OTQ5NjZkYWYyZTVmZTgxOThjMDMyOWU5N2M2OTU4YmZiN2QzZGE3MDAwYTE2ZmQ2MDRlY2U3YzA4NDRhNDNjYTQzZDBlZTFhODQ4OWE4NDM0NDdjMDlmYWY1ZjQ5NTJhNjBlMGU3YjQxIiwiYmxha2UyYiI6IjMzMmEwYzJlMzJhNTNkYjE0MWQ0MGM3ODA5MGUzODA2ZmQ0OTc0NzUxM2EwNWZiM2ZlZTNmNTEwMTI0MDcyNzYwMmIzMWQ4N2E5NTk2YTQxYmU5ZTBkM2ZkM2I5OWVjN2ZlNzcwZDAwYTNiMDMxNjMwODk4MTM5ZTk5MjYxZTk5IiwiYmxha2UycyI6IjRlYWM0N2M3YzY2MGM2N2Y2NjBlODE5YTY1YmQ5ZTYwODg5ZTUxZDJiODdhYjRjZGJjOTc0N2I1N2Q1ZjFkODQiLCJzaGEzXzIyNCI6Ijg0NDQ0NTNkM2ZlYmEyZTljYmYyYzFhMTc1MWU5YjE4NDFmMGU3NzRlZGQ4MTU2OTVhODU1YzA3Iiwic2hhM18yNTYiOiIyNmM1NThiZGQzNDVkZTAzZmE2NWVlYTI0NjQ0ZDg2ZGU0ZjAxM2VmMjg4MThjZmJiZDg4YjczNTVmZTIyZmNiIiwic2hhM18zODQiOiI2OGNiMTc2MTU2MTU2Y2EwYWI4M2QwNzk5ZjAxZTg2ZTBiMmI1MzY5NzJkYzllMDIwMGQzZDE0YWU2MjU5ODUxNDhiZmRmOWU4NDA3NGRkZjEzZTQxYWVhZDQzMGNhNzkiLCJzaGEzXzUxMiI6ImE5Y2QwN2QzNjljODg0NzNmYjUwYWQ0NGU5NzI3MWU0YWQ3M2M0ZWFjZGY5MmI2YTYyOWJiMjU0ZjNjMWQyZmU4ZWM5ZjVmNzY3MWJkNjQzNWU4OWQ1MDBiZjVmYmU0ODVhM2IzMmE2ZDlhMmM0NjI3OTEyZTE3MTkzMjJhNjcxIiwic2hha2VfMTI4IjoiOTE2NmE1NmI3NTk3MGFjYmVhM2FkZmQxNDhiMDI1N2I0NDBlNGZlOGEzNGE3NGIwNTk5YjY1Nzk1MzVjZjE3NSIsInNoYWtlXzI1NiI6ImM2NTg5NjI0MjcwYzI0OGJkYjhjZWI3NGVmYzgzYWU0OTA5MTg4MzIzZTlkNDE5ZDY3NmMxYWM5MTA1OGVjM2Y3MWVkY2MxMWU1M2YwMTlkMDUwZWE5MzE5OTI1MzdjNDQ2NDRkNTNkMTdlNzRmZjVmZGVhZGQzYWU3MzE0MDA1In0=",
|
||||
]
|
@ -31,6 +31,7 @@ from typing_extensions import Annotated, Any, Dict
|
||||
|
||||
from invokeai.app.invocations.constants import SCHEDULER_NAME_VALUES
|
||||
from invokeai.app.util.misc import uuid_string
|
||||
from invokeai.backend.model_hash.hash_validator import validate_hash
|
||||
|
||||
from ..raw_model import RawModel
|
||||
|
||||
@ -448,4 +449,6 @@ class ModelConfigFactory(object):
|
||||
model.key = key
|
||||
if isinstance(model, CheckpointConfigBase) and timestamp is not None:
|
||||
model.converted_at = timestamp
|
||||
if model:
|
||||
validate_hash(model.hash)
|
||||
return model # type: ignore
|
||||
|
Loading…
Reference in New Issue
Block a user