wan-loop-generator / core_anim /rife_source.py
andrasnest's picture
Wan Loop Generator
7d03019
Raw
History Blame Contribute Delete
1.4 kB
from __future__ import annotations
import hashlib
from pathlib import Path
import sys
RIFE_COMMIT = "26545cc2dd95bc3d27f056016300673bdeee78f5"
EXPECTED_HASHES = {
# These two files include the local keep_output_on_device extension. The
# hashes pin that reviewed variant, not an unmodified upstream checkout.
"vfi_utils.py": "73e3d0268590e0932db8eef97d011b9d47b9291cd7d7c241021aa77f143d1318",
"vfi_models/rife/__init__.py": "ee793b3414d9bfe0dc58aaf9ffae127dc55e281559ba26dd69f33e710eda20e2",
"vfi_models/rife/rife_arch.py": "1cb6a4ef8f38b12cbfc260df4f8656a92e5c89f0e764b8f2339beb411147311c",
"config.yaml": "7eb60f495228022f545d35ef7b1146e246757987279d782438d1c4ff25e06b5d",
}
def prepare_rife_source() -> Path:
comfy_runtime = Path(__file__).resolve().parent / "third_party" / "comfy_runtime"
root = Path(__file__).resolve().parent / "third_party" / "rife"
for relative, expected in EXPECTED_HASHES.items():
path = root / relative
if not path.is_file():
raise FileNotFoundError(f"Sorgente RIFE vendorizzato mancante: {path}")
actual = hashlib.sha256(path.read_bytes()).hexdigest()
if actual != expected:
raise RuntimeError(f"Hash sorgente RIFE inatteso: {relative}")
for path in (comfy_runtime, root):
if str(path) not in sys.path:
sys.path.insert(0, str(path))
return root