現状、PNG Info等とモデルやHNを完全に一致させるのは難しい。
ckptやHNのptについてる8桁のハッシュはファイルの一部のみのハッシュである。
def model_hash(filename):
try:
with open(filename, "rb") as file:
import hashlib
m = hashlib.sha256()
file.seek(0x100000)
m.update(file.read(0x10000))
return m.hexdigest()[0:8]
except FileNotFoundError:
return 'NOFILE'
そのため、DBやHNでファイルが増えた場合、ハッシュが衝突しやすい。
ckptは、最初(cmdr版)の頃に model.ckpt とファイル名が固定だったこと、
NAILeakのファイル名が中身を推測しにくいこと、
マージモデルにつくデフォルトの名前が長すぎるなどの理由で、
ユーザーがファイル名を変える可能性が高く、ファイル名を衝突回避に使いづらい。
完全なsha256を実装すると読み込みに時間がかかってしまうが、
キャッシュファイルを作る等の提案が行われている。
HNのptは内部にnameを持っているが、Stepsを完走した場合はnameに反映されない。
ファイル名も配布時に失われたりする。
ckptと比べるとファイルサイズが小さい分、完全なsha256には移行しやすい。
Anything v3は配布時期と配布方法によって数種類のファイルが存在するらしい。
(マルウェアが誤検出されたことが理由かも知れないがわからない)
このファイルはsd_model_hashが異なるので判別は可能である。