Download tests/harness.py from supermind/OGG-Comfy: direct link, hf CLI and curl.
- Browser
- Download file 5.37 kB
-
https://huggingface.co/supermind/OGG-Comfy/resolve/main/tests/harness.py
- Command line
-
hf download hf://supermind/OGG-Comfy/tests/harness.py
-
curl -L -o harness.py https://huggingface.co/supermind/OGG-Comfy/resolve/main/tests/harness.py
5.37 kB
| import os as _os | |
| HERE = _os.path.dirname(_os.path.abspath(__file__)) | |
| ROOT = _os.path.dirname(HERE) | |
| """Stand-ins for the parts of ComfyUI the pack imports, so its code can run here. Not ComfyUI: they do the minimum.""" | |
| import sys, types, os, importlib.util, contextlib | |
| import torch, torch.nn as nn | |
| from safetensors.torch import load_file, safe_open | |
| def mod(name, **attrs): | |
| m = types.ModuleType(name); m.__dict__.update(attrs); sys.modules[name] = m; return m | |
| class Any: | |
| def __init__(self, *a, **k): self.a, self.k = a, k | |
| class Inp(Any): | |
| def __init__(self, kind, *a, **k): super().__init__(*a, **k); self.kind = kind | |
| class Custom: | |
| def __init__(self, name): self.name = name | |
| def Output(self, *a, **k): return Any() | |
| def Input(self, *a, **k): return Inp("custom:" + self.name, *a, **k) | |
| def kind(name): return types.SimpleNamespace(Input=lambda *a, **k: Inp(name, *a, **k), Output=Any) | |
| class NodeOutput: | |
| def __init__(self, *args, ui=None): self.args, self.ui = args, ui | |
| class ComfyNode: pass | |
| io = types.SimpleNamespace(Custom=Custom, Schema=Any, ComfyNode=ComfyNode, NodeOutput=NodeOutput, Combo=kind("COMBO"), Int=kind("INT"), | |
| Float=kind("FLOAT"), String=kind("STRING"), Boolean=kind("BOOLEAN"), Audio=kind("AUDIO")) | |
| mod("comfy_api"); mod("comfy_api.latest", ComfyExtension=object, io=io) | |
| state = {"progress": [], "loaded": 0} | |
| class ProgressBar: | |
| def __init__(self, total): self.total = total | |
| def update_absolute(self, v): state["progress"].append((v, self.total)) | |
| def load_torch_file(path, return_metadata=False): | |
| t = load_file(path) | |
| if not return_metadata: return t | |
| with safe_open(path, "pt") as f: return t, f.metadata() | |
| class ModelPatcher: | |
| def __init__(self, model, load_device, offload_device): self.model, self.load_device, self.offload_device = model, load_device, offload_device | |
| cpu = torch.device("cpu") | |
| mm = mod("comfy.model_management", get_torch_device=lambda: cpu, unet_offload_device=lambda: cpu, vae_offload_device=lambda: cpu, | |
| load_models_gpu=lambda ps, **k: state.__setitem__("loaded", state["loaded"] + 1), | |
| throw_exception_if_processing_interrupted=lambda: None, archive_model_dtypes=lambda m: None, | |
| cuda_device_context=lambda d: contextlib.nullcontext()) | |
| mp = mod("comfy.model_patcher", ModelPatcher=ModelPatcher) | |
| cu = mod("comfy.utils", ProgressBar=ProgressBar, load_torch_file=load_torch_file) | |
| def resample(w, sr, to): return torch.nn.functional.interpolate(w[None], size=int(w.shape[-1] * to / sr), mode="linear")[0] | |
| ca = mod("comfy.audio", resample=resample) | |
| class Embedding(nn.Embedding): | |
| def forward(self, x, out_dtype=None): | |
| y = super().forward(x); return y if out_dtype is None else y.to(out_dtype) | |
| ops = mod("comfy.ops", manual_cast=types.SimpleNamespace(Conv1d=nn.Conv1d, ConvTranspose1d=nn.ConvTranspose1d, Linear=nn.Linear, | |
| LayerNorm=nn.LayerNorm, Embedding=Embedding)) | |
| def apply_rope1(x, freqs_cis): # as comfy.ldm.flux.math | |
| x_ = x.to(dtype=freqs_cis.dtype).reshape(*x.shape[:-1], -1, 1, 2) | |
| out = freqs_cis[..., 0] * x_[..., 0] | |
| out.addcmul_(freqs_cis[..., 1], x_[..., 1]) | |
| return out.reshape(*x.shape).type_as(x) | |
| class Snake1d(nn.Module): # shape of the real one: alpha [1, C, 1] | |
| def __init__(self, channels, dtype=None, device=None): | |
| super().__init__(); self.alpha = nn.Parameter(torch.ones(1, channels, 1, dtype=dtype, device=device)) | |
| def forward(self, x): return x + (self.alpha + 1e-9).reciprocal() * torch.sin(self.alpha * x).pow(2) | |
| mod("comfy.ldm"); mod("comfy.ldm.flux"); mod("comfy.ldm.flux.math", apply_rope1=apply_rope1) | |
| mod("comfy.ldm.minimax_music"); mod("comfy.ldm.minimax_music.dav", Snake1d=Snake1d) | |
| mod("comfy.ldm.modules"); mod("comfy.ldm.modules.attention", optimized_attention_for_device=lambda *a, **k: None) | |
| mod("comfy.text_encoders"); | |
| llama = mod("comfy.text_encoders.llama", Qwen3_06B=object, Qwen3_06BConfig=object, __file__="/nonexistent/llama.py") | |
| sys.modules["comfy.text_encoders"].llama = llama | |
| comfy = mod("comfy", model_management=mm, model_patcher=mp, utils=cu, audio=ca, ops=ops) | |
| OUT = HERE + "/out"; os.makedirs(OUT + "/temp", exist_ok=True) | |
| fp = mod("folder_paths", models_dir=HERE + "/models", folder_names_and_paths={}, supported_pt_extensions={".safetensors"}, | |
| add_model_folder_path=lambda n, p: fp.folder_names_and_paths.__setitem__(n, ([p], set())), | |
| get_filename_list=lambda n: [], get_full_path_or_raise=lambda n, f: f, get_output_directory=lambda: OUT, | |
| get_temp_directory=lambda: OUT + "/temp", | |
| get_save_image_path=lambda prefix, folder: (os.makedirs(os.path.dirname(os.path.join(folder, prefix)) or folder, exist_ok=True) or | |
| os.path.dirname(os.path.join(folder, prefix)), os.path.basename(prefix), 1, "", prefix)) | |
| class _Web: | |
| def json_response(x): return x | |
| mod("aiohttp", web=_Web); sys.modules["aiohttp"].web = _Web | |
| mod("server", PromptServer=types.SimpleNamespace(instance=None)) | |
| def load_pack(): | |
| spec = importlib.util.spec_from_file_location("ogg_pack", ROOT + "/__init__.py", submodule_search_locations=[ROOT]) | |
| pack = importlib.util.module_from_spec(spec); sys.modules["ogg_pack"] = pack; spec.loader.exec_module(pack) | |
| return pack, sys.modules["ogg_pack.nodes"] | |