Download code/tests/test_framepack_memory_align.py from amonshano/echo: direct link, hf CLI and curl.
- Browser
- Download file 1.52 kB
-
https://huggingface.co/amonshano/echo/resolve/main/code/tests/test_framepack_memory_align.py
- Command line
-
hf download hf://amonshano/echo/code/tests/test_framepack_memory_align.py
-
curl -L -o test_framepack_memory_align.py https://huggingface.co/amonshano/echo/resolve/main/code/tests/test_framepack_memory_align.py
1.52 kB
| """FramePack-Length latent/RT alignment (e.g. K=5, r=4). Run: PYTHONPATH=. python3 tests/test_framepack_memory_align.py""" | |
| import torch | |
| from diffsynth.models.memory.framepack_length import ( | |
| framepack_align_context_actions_to_latents, | |
| framepack_length_compress_context_latents, | |
| ) | |
| from diffsynth.models.memory.framepack_weight import apply_framepack_token_weights | |
| def test_k5_r4_latent_and_actions(): | |
| B, C, H, W = 1, 16, 8, 8 | |
| K = 5 | |
| r = 4 | |
| lat = torch.randn(B, C, K, H, W) | |
| out, new_k, K_pad, K_orig = framepack_length_compress_context_latents(lat, r) | |
| assert K_orig == 5 | |
| pad = (r - (K % r)) % r | |
| assert K_pad == K + pad == 8 | |
| assert new_k == 2 | |
| assert out.shape[2] == 2 | |
| ca = torch.randn(K, 12) | |
| aligned = framepack_align_context_actions_to_latents( | |
| ca, K_orig, K_pad, r, device=lat.device, dtype=lat.dtype | |
| ) | |
| assert aligned.shape == (2, 12) | |
| def test_framepack_weight_preserves_shape_suffix(): | |
| D = 64 | |
| f, h, w = 5, 2, 2 | |
| num_ctx = 2 | |
| N = f * h * w | |
| x = torch.randn(1, N, D) | |
| y = apply_framepack_token_weights( | |
| x, | |
| num_context_frames=num_ctx, | |
| f=f, | |
| h=h, | |
| w=w, | |
| context_position="suffix", | |
| use_framepack_memory=True, | |
| context_temporal_decay=0.9, | |
| context_attention_weight=1.0, | |
| ) | |
| assert y.shape == x.shape | |
| if __name__ == "__main__": | |
| test_k5_r4_latent_and_actions() | |
| test_framepack_weight_preserves_shape_suffix() | |
| print("test_framepack_memory_align: ok") | |