Files
Claude 3adebb731f Rename FunPack to FunUI (5.0.3 Classy Chopper): /fun endpoint, wink logo, load-time migration of old names
Old project/workflow names and browser settings migrate on load; /funpack redirects to /fun.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016acRss69eH1235eRdFTZHY
2026-10-25 13:11:03 +00:00

46 lines
1.4 KiB
Python

import torch
from core import patching
def _install(tiny, scale):
from modules.sampling.audio_coupling import install
patched = tiny.patcher.clone()
note = install(patching.GuardedPatcher(patched, "funui.audio_coupling", patching.Dropped()),
{"scale": scale}, key="funui.audio_coupling")
return patched, note
def _forward(tiny, patched):
# object patches are applied when the model is loaded for sampling
patched.patch_model(device_to=torch.device("cpu"), load_weights=False)
try:
return tiny.run(patched)
finally:
patched.unpatch_model(unpatch_weights=False)
def test_at_one_nothing_is_installed(tiny_ltx):
patched, note = _install(tiny_ltx, 1.0)
assert note is None and not patched.object_patches
def test_scaling_the_link_changes_the_sound_and_zero_changes_it_more(tiny_ltx):
base_v, base_a = tiny_ltx.run()
patched, note = _install(tiny_ltx, 3.0)
assert "3x across 4 blocks" in note
v, a = _forward(tiny_ltx, patched)
assert not torch.allclose(a, base_a)
muted, _ = _install(tiny_ltx, 0.0)
_, a0 = _forward(tiny_ltx, muted)
assert (a0 - base_a).abs().mean() > 0
def test_it_comes_off_again(tiny_ltx):
patched, _ = _install(tiny_ltx, 2.0)
assert patched.object_patches
patching.strip(patched, "funui.audio_coupling")
assert not patched.object_patches
_, a = _forward(tiny_ltx, patched)
assert torch.allclose(a, tiny_ltx.run()[1])