lightx2v commited on
Commit
efb3d0e
·
verified ·
1 Parent(s): 71f742c

Upload folder using huggingface_hub

Browse files
export_weights.py ADDED
@@ -0,0 +1,164 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python3
2
+ """Export the six named LightVAE components without changing source files."""
3
+
4
+ import argparse
5
+ from collections import Counter
6
+ from datetime import datetime, timezone
7
+ import hashlib
8
+ import json
9
+ import os
10
+ from pathlib import Path
11
+ import shutil
12
+ import tempfile
13
+
14
+ import torch
15
+ from safetensors import safe_open
16
+ from safetensors.torch import save_file
17
+
18
+
19
+ COMPONENTS = (
20
+ ("wan21_full_depth_latest.pt", "lightvae-pro-wan21-decoder"),
21
+ ("wan21_compact_latest.pt", "lightvae-lite-wan21-decoder"),
22
+ ("wan22_full_depth_latest.pt", "lightvae-pro-wan22-decoder"),
23
+ ("wan22_compact_latest.pt", "lightvae-lite-wan22-decoder"),
24
+ ("minimax_h3_lightvae_decoder.safetensors", "lightvae-lite-h3-decoder"),
25
+ ("minimax_h3_lightvae_encoder.safetensors", "lightvae-lite-h3-encoder"),
26
+ )
27
+
28
+
29
+ def sha256(path):
30
+ digest = hashlib.sha256()
31
+ with path.open("rb") as stream:
32
+ for chunk in iter(lambda: stream.read(8 * 1024 * 1024), b""):
33
+ digest.update(chunk)
34
+ return digest.hexdigest()
35
+
36
+
37
+ def write_json(path, value):
38
+ with path.open("x", encoding="utf-8") as stream:
39
+ json.dump(value, stream, ensure_ascii=False, indent=2, allow_nan=False)
40
+ stream.write("\n")
41
+
42
+
43
+ def inspect_safetensors(path):
44
+ with safe_open(path, framework="pt", device="cpu") as saved:
45
+ keys = sorted(saved.keys())
46
+ dtypes = Counter(saved.get_slice(key).get_dtype() for key in keys)
47
+ return {
48
+ "tensor_count": len(keys),
49
+ "tensor_prefix_counts": dict(Counter(key.split(".")[0] for key in keys)),
50
+ "tensor_dtype_counts": dict(dtypes),
51
+ }
52
+
53
+
54
+ def convert_wan(source, target):
55
+ saved = torch.load(source, weights_only=True, map_location="cpu", mmap=True)
56
+ state = saved["model"]
57
+ if not isinstance(state, dict) or not state:
58
+ raise ValueError(f"Missing model state: {source}")
59
+ if any(not isinstance(key, str) or not isinstance(value, torch.Tensor)
60
+ for key, value in state.items()):
61
+ raise TypeError(f"Non-tensor model entry: {source}")
62
+ checkpoint_metadata = {key: value for key, value in saved.items() if key != "model"}
63
+ encoded = json.dumps(checkpoint_metadata, ensure_ascii=False, allow_nan=False)
64
+ tensors = {key: value.detach().cpu().contiguous() for key, value in state.items()}
65
+ save_file(tensors, target, metadata={
66
+ "format": "pt",
67
+ "model_type": "lightvae_decoder",
68
+ "checkpoint_metadata": encoded,
69
+ })
70
+ with safe_open(target, framework="pt", device="cpu") as restored:
71
+ if set(restored.keys()) != set(state):
72
+ raise AssertionError(f"Tensor keys changed: {source}")
73
+ if json.loads(restored.metadata()["checkpoint_metadata"]) != json.loads(encoded):
74
+ raise AssertionError(f"Checkpoint metadata changed: {source}")
75
+ for key, expected in tensors.items():
76
+ actual = restored.get_tensor(key)
77
+ if actual.dtype != expected.dtype or actual.shape != expected.shape:
78
+ raise AssertionError(f"Shape/dtype changed: {source}:{key}")
79
+ # Compare bytes, including NaN payloads and signed zeros.
80
+ if not torch.equal(actual.reshape(-1).view(torch.uint8),
81
+ expected.reshape(-1).view(torch.uint8)):
82
+ raise AssertionError(f"Tensor values changed: {source}:{key}")
83
+ return checkpoint_metadata
84
+
85
+
86
+ def main():
87
+ parser = argparse.ArgumentParser(description=__doc__)
88
+ parser.add_argument("--source-dir", type=Path, default=Path(
89
+ "/data/nvme6/gushiqiao/codes/latest/vae_prune/models"))
90
+ parser.add_argument("--output-dir", type=Path, default=Path(__file__).resolve().parent)
91
+ args = parser.parse_args()
92
+ torch.set_num_threads(4)
93
+ destination = args.output_dir.resolve()
94
+ destination.mkdir(parents=True, exist_ok=True)
95
+ output_names = ["manifest.json"]
96
+ for source_name, stem in COMPONENTS:
97
+ if not (args.source_dir / source_name).is_file():
98
+ raise FileNotFoundError(args.source_dir / source_name)
99
+ output_names.extend((stem + ".safetensors", stem + ".metadata.json"))
100
+ for name in output_names:
101
+ if (destination / name).exists() or (destination / name).is_symlink():
102
+ raise FileExistsError(f"Refusing to overwrite: {destination / name}")
103
+
104
+ manifest = {
105
+ "format_version": 1,
106
+ "created_utc": datetime.now(timezone.utc).isoformat(),
107
+ "source_files_unchanged": True,
108
+ "precision_policy": "Preserve all tensor names, shapes, dtypes and values.",
109
+ "loading_notes": {
110
+ "wan": "Use safetensors.torch.load_file for the model state. Original "
111
+ "checkpoint fields (family, kept, packed_records, provenance, step, etc.) "
112
+ "are preserved in the checkpoint_metadata header JSON and sidecar. "
113
+ "The existing torch.load-based .pt loader cannot load these files unchanged.",
114
+ "h3": "Byte-for-byte copy of the original component checkpoint, including header metadata.",
115
+ "components": "Decoder files do not include an encoder. The H3 encoder is pruned, not original.",
116
+ "wan21_lite_source": "Uses wan21_compact_latest.pt as requested, not the later recovery/student.pt.",
117
+ },
118
+ "weights": [],
119
+ }
120
+ with tempfile.TemporaryDirectory(prefix=".export-", dir=destination) as work:
121
+ staging = Path(work)
122
+ for source_name, stem in COMPONENTS:
123
+ source = (args.source_dir / source_name).resolve()
124
+ target = staging / (stem + ".safetensors")
125
+ print(f"Exporting {source.name} -> {target.name}", flush=True)
126
+ initial_stat = source.stat()
127
+ source_digest = sha256(source)
128
+ if source.suffix == ".pt":
129
+ metadata = convert_wan(source, target)
130
+ validation = "all_tensor_keys_shapes_dtypes_and_bytes_equal; metadata_equal"
131
+ else:
132
+ shutil.copyfile(source, target)
133
+ with safe_open(source, framework="pt", device="cpu") as original:
134
+ metadata = original.metadata()
135
+ validation = "whole_file_sha256_equal_including_header_metadata"
136
+ target_digest = sha256(target)
137
+ if source.suffix == ".safetensors" and source_digest != target_digest:
138
+ raise AssertionError(f"Copy verification failed: {source}")
139
+ final_stat = source.stat()
140
+ if (initial_stat.st_size, initial_stat.st_mtime_ns) != (
141
+ final_stat.st_size, final_stat.st_mtime_ns):
142
+ raise RuntimeError(f"Source changed during export: {source}")
143
+ metadata_name = stem + ".metadata.json"
144
+ write_json(staging / metadata_name, metadata)
145
+ manifest["weights"].append({
146
+ "file": target.name,
147
+ "metadata_file": metadata_name,
148
+ "source": str(source),
149
+ "source_sha256": source_digest,
150
+ "sha256": target_digest,
151
+ "size_bytes": target.stat().st_size,
152
+ "validation": validation,
153
+ **inspect_safetensors(target),
154
+ })
155
+ print(f"Verified {target.name}", flush=True)
156
+ write_json(staging / "manifest.json", manifest)
157
+ # Hard-link promotion refuses overwriting even if another process raced us.
158
+ for name in output_names[1:] + ["manifest.json"]:
159
+ os.link(staging / name, destination / name)
160
+ print(f"Done: {len(COMPONENTS)} verified weights in {destination}", flush=True)
161
+
162
+
163
+ if __name__ == "__main__":
164
+ main()
lightvae-lite-h3-decoder.metadata.json ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ {
2
+ "model_type": "minimax_h3_pruned_vae",
3
+ "format": "pt",
4
+ "architecture": "{\"kept_layers\":[1,3,6,9,13,16,18,21,26,27,30,34],\"search\":null,\"teacher_config\":{\"_class_name\":\"AutoencoderKLMiniMaxH3\",\"_diffusers_version\":\"0.36.0.dev0\",\"block_out_channels\":[128,256,256,512,512,1024],\"clip_length\":17,\"decoder_attention_head_dim\":64,\"decoder_ffn_mult\":4,\"decoder_norm_eps\":1e-05,\"decoder_num_attention_heads\":32,\"decoder_num_layers\":36,\"decoder_num_register_tokens\":4,\"decoder_rope_dim_ratio\":0.75,\"decoder_rope_theta\":100.0,\"in_channels\":3,\"latent_channels\":24,\"latents_mean\":[0.858090341091156,-0.9606591463088989,1.0661640167236328,-0.5090325474739075,-0.2727581858634949,-1.3675414323806763,-0.2553254961967468,-0.26907554268836975,-0.5376840829849243,-0.0464097298681736,0.6657370328903198,0.19690127670764923,-0.5460608005523682,-0.4035342037677765,-0.23683024942874908,0.25928452610969543,-0.30133944749832153,0.211341992020607,-1.1206848621368408,0.3581933379173279,-0.04225143790245056,0.2604829967021942,0.22864092886447906,0.7056031823158264],\"latents_std\":[1.2223774194717407,1.2767263650894165,1.6831774711608887,1.7549455165863037,1.5636216402053833,2.194143533706665,0.9653137922286987,1.0569885969161987,0.841948926448822,0.7729952931404114,1.8955937623977661,0.946841835975647,0.7996809482574463,0.44988900423049927,0.7197399735450745,0.6936293244361877,2.961095094680786,2.7694199085235596,3.0496184825897217,2.1088054180145264,3.276226282119751,3.1627357006073,2.2816812992095947,2.6127843856811523],\"layers_per_block\":2,\"norm_eps\":1e-06,\"norm_num_groups\":32,\"out_channels\":3,\"spatial_downsample_factors\":[2,2,2,2,1,1],\"spatial_padding_mode\":\"reflect\",\"temporal_downsample_factors\":[1,2,2,1,1,1],\"token_drop\":3},\"tile_sample_min_height\":256,\"tile_sample_min_overlap_height\":64,\"tile_sample_min_overlap_width\":64,\"tile_sample_min_width\":256}"
5
+ }
lightvae-lite-h3-decoder.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d060ad616a33f422fcb8395f525d6d71185b5ddb3e016b31cc210ba2c9c06ee9
3
+ size 3248356840
lightvae-lite-h3-encoder.metadata.json ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ {
2
+ "architecture": "{\"kept_residual_indices\":[0,2,4,6,8,11],\"search\":null,\"teacher_config\":{\"_class_name\":\"AutoencoderKLMiniMaxH3\",\"_diffusers_version\":\"0.36.0.dev0\",\"block_out_channels\":[128,256,256,512,512,1024],\"clip_length\":17,\"decoder_attention_head_dim\":64,\"decoder_ffn_mult\":4,\"decoder_norm_eps\":1e-05,\"decoder_num_attention_heads\":32,\"decoder_num_layers\":36,\"decoder_num_register_tokens\":4,\"decoder_rope_dim_ratio\":0.75,\"decoder_rope_theta\":100.0,\"in_channels\":3,\"latent_channels\":24,\"latents_mean\":[0.858090341091156,-0.9606591463088989,1.0661640167236328,-0.5090325474739075,-0.2727581858634949,-1.3675414323806763,-0.2553254961967468,-0.26907554268836975,-0.5376840829849243,-0.0464097298681736,0.6657370328903198,0.19690127670764923,-0.5460608005523682,-0.4035342037677765,-0.23683024942874908,0.25928452610969543,-0.30133944749832153,0.211341992020607,-1.1206848621368408,0.3581933379173279,-0.04225143790245056,0.2604829967021942,0.22864092886447906,0.7056031823158264],\"latents_std\":[1.2223774194717407,1.2767263650894165,1.6831774711608887,1.7549455165863037,1.5636216402053833,2.194143533706665,0.9653137922286987,1.0569885969161987,0.841948926448822,0.7729952931404114,1.8955937623977661,0.946841835975647,0.7996809482574463,0.44988900423049927,0.7197399735450745,0.6936293244361877,2.961095094680786,2.7694199085235596,3.0496184825897217,2.1088054180145264,3.276226282119751,3.1627357006073,2.2816812992095947,2.6127843856811523],\"layers_per_block\":2,\"norm_eps\":1e-06,\"norm_num_groups\":32,\"out_channels\":3,\"spatial_downsample_factors\":[2,2,2,2,1,1],\"spatial_padding_mode\":\"reflect\",\"temporal_downsample_factors\":[1,2,2,1,1,1],\"token_drop\":3},\"tile_sample_min_height\":256,\"tile_sample_min_overlap_height\":64,\"tile_sample_min_overlap_width\":64,\"tile_sample_min_width\":256,\"use_tiling\":true}",
3
+ "format": "pt",
4
+ "model_type": "minimax_h3_pruned_encoder"
5
+ }
lightvae-lite-h3-encoder.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4b0e5af102da19324c64df40abbd95008d8acb0b9cf76e4704d74c8ac20cefac
3
+ size 406335344
lightvae-lite-wan21-decoder.metadata.json ADDED
The diff for this file is too large to render. See raw diff
 
lightvae-lite-wan21-decoder.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:05cbfff899d1bd8ce5afa0cc5ed03dcd01dd95876a76b1fb7df5427353f822ce
3
+ size 70875748
lightvae-lite-wan22-decoder.metadata.json ADDED
@@ -0,0 +1,231 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "format_version": 1,
3
+ "name": "wan22_compact",
4
+ "family": "wan22",
5
+ "kept": [
6
+ 0,
7
+ 4,
8
+ 5,
9
+ 8,
10
+ 11
11
+ ],
12
+ "packed_records": [
13
+ {
14
+ "path": "conv1",
15
+ "shape": [
16
+ 1024,
17
+ 48,
18
+ 3,
19
+ 3,
20
+ 3
21
+ ],
22
+ "padding": 1,
23
+ "rank": 290,
24
+ "bias": true,
25
+ "pure2d": false,
26
+ "fraction": 0.6
27
+ },
28
+ {
29
+ "path": "middle.0.residual.2",
30
+ "shape": [
31
+ 1024,
32
+ 1024,
33
+ 3,
34
+ 3,
35
+ 3
36
+ ],
37
+ "padding": 1,
38
+ "rank": 420,
39
+ "bias": true,
40
+ "pure2d": false,
41
+ "fraction": 0.6
42
+ },
43
+ {
44
+ "path": "middle.0.residual.6",
45
+ "shape": [
46
+ 1024,
47
+ 1024,
48
+ 3,
49
+ 3,
50
+ 3
51
+ ],
52
+ "padding": 1,
53
+ "rank": 434,
54
+ "bias": true,
55
+ "pure2d": false,
56
+ "fraction": 0.6
57
+ },
58
+ {
59
+ "path": "upsamples.0.upsamples.2.residual.2",
60
+ "shape": [
61
+ 1024,
62
+ 1024,
63
+ 3,
64
+ 3,
65
+ 3
66
+ ],
67
+ "padding": 1,
68
+ "rank": 411,
69
+ "bias": true,
70
+ "pure2d": false,
71
+ "fraction": 0.6
72
+ },
73
+ {
74
+ "path": "upsamples.0.upsamples.2.residual.6",
75
+ "shape": [
76
+ 1024,
77
+ 1024,
78
+ 3,
79
+ 3,
80
+ 3
81
+ ],
82
+ "padding": 1,
83
+ "rank": 452,
84
+ "bias": true,
85
+ "pure2d": false,
86
+ "fraction": 0.6
87
+ },
88
+ {
89
+ "path": "upsamples.0.upsamples.3.time_conv",
90
+ "shape": [
91
+ 2048,
92
+ 1024,
93
+ 3,
94
+ 1,
95
+ 1
96
+ ],
97
+ "padding": 0,
98
+ "rank": 533,
99
+ "bias": true,
100
+ "pure2d": false,
101
+ "fraction": 0.6
102
+ },
103
+ {
104
+ "path": "upsamples.1.upsamples.0.residual.2",
105
+ "shape": [
106
+ 1024,
107
+ 1024,
108
+ 3,
109
+ 3,
110
+ 3
111
+ ],
112
+ "padding": 1,
113
+ "rank": 448,
114
+ "bias": true,
115
+ "pure2d": false,
116
+ "fraction": 0.6
117
+ },
118
+ {
119
+ "path": "upsamples.1.upsamples.0.residual.6",
120
+ "shape": [
121
+ 1024,
122
+ 1024,
123
+ 3,
124
+ 3,
125
+ 3
126
+ ],
127
+ "padding": 1,
128
+ "rank": 456,
129
+ "bias": true,
130
+ "pure2d": false,
131
+ "fraction": 0.6
132
+ },
133
+ {
134
+ "path": "upsamples.1.upsamples.3.time_conv",
135
+ "shape": [
136
+ 2048,
137
+ 1024,
138
+ 3,
139
+ 1,
140
+ 1
141
+ ],
142
+ "padding": 0,
143
+ "rank": 590,
144
+ "bias": true,
145
+ "pure2d": false,
146
+ "fraction": 0.6
147
+ },
148
+ {
149
+ "path": "upsamples.2.upsamples.0.residual.2",
150
+ "shape": [
151
+ 512,
152
+ 1024,
153
+ 3,
154
+ 3,
155
+ 3
156
+ ],
157
+ "padding": 1,
158
+ "rank": 0,
159
+ "bias": true,
160
+ "pure2d": true,
161
+ "fraction": 0.6
162
+ },
163
+ {
164
+ "path": "upsamples.2.upsamples.0.residual.6",
165
+ "shape": [
166
+ 512,
167
+ 512,
168
+ 3,
169
+ 3,
170
+ 3
171
+ ],
172
+ "padding": 1,
173
+ "rank": 0,
174
+ "bias": true,
175
+ "pure2d": true,
176
+ "fraction": 0.6
177
+ },
178
+ {
179
+ "path": "upsamples.3.upsamples.0.residual.2",
180
+ "shape": [
181
+ 256,
182
+ 512,
183
+ 3,
184
+ 3,
185
+ 3
186
+ ],
187
+ "padding": 1,
188
+ "rank": 0,
189
+ "bias": true,
190
+ "pure2d": true,
191
+ "fraction": 0.6
192
+ },
193
+ {
194
+ "path": "upsamples.3.upsamples.0.residual.6",
195
+ "shape": [
196
+ 256,
197
+ 256,
198
+ 3,
199
+ 3,
200
+ 3
201
+ ],
202
+ "padding": 1,
203
+ "rank": 0,
204
+ "bias": true,
205
+ "pure2d": true,
206
+ "fraction": 0.6
207
+ },
208
+ {
209
+ "path": "head.2",
210
+ "shape": [
211
+ 12,
212
+ 256,
213
+ 3,
214
+ 3,
215
+ 3
216
+ ],
217
+ "padding": 1,
218
+ "rank": 7,
219
+ "bias": true,
220
+ "pure2d": false,
221
+ "fraction": 0.6
222
+ }
223
+ ],
224
+ "provenance": {
225
+ "source": "/data/nvme3/gushiqiao/codes/wan22_11111_sum60_tail2d_all_teacher_gtl1_20260917/checkpoints/checkpoint-001000.pt",
226
+ "source_step": 1000,
227
+ "source_sha256": "3808b89d9d0c513f8290efb4d76b90ef756cf0c2667f080b45bdabff6371742b",
228
+ "source_bytes": 1904990651
229
+ },
230
+ "step": 3600
231
+ }
lightvae-lite-wan22-decoder.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:455846ab42fe580b82209aec2bee84774860e29a6a66673ec6effe99400b6197
3
+ size 609707592
lightvae-pro-wan21-decoder.metadata.json ADDED
The diff for this file is too large to render. See raw diff
 
lightvae-pro-wan21-decoder.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:15597278a84b3b416f5f41552ed38a6145a403e5792760979f7bb74f7fb5c0eb
3
+ size 179047668
lightvae-pro-wan22-decoder.metadata.json ADDED
@@ -0,0 +1,510 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "format_version": 1,
3
+ "name": "wan22_full_depth",
4
+ "family": "wan22",
5
+ "kept": [
6
+ 0,
7
+ 1,
8
+ 2,
9
+ 3,
10
+ 4,
11
+ 5,
12
+ 6,
13
+ 7,
14
+ 8,
15
+ 9,
16
+ 10,
17
+ 11,
18
+ 12,
19
+ 13
20
+ ],
21
+ "packed_records": [
22
+ {
23
+ "path": "conv1",
24
+ "shape": [
25
+ 1024,
26
+ 48,
27
+ 3,
28
+ 3,
29
+ 3
30
+ ],
31
+ "padding": 1,
32
+ "rank": 290,
33
+ "bias": true,
34
+ "pure2d": false,
35
+ "fraction": 0.6
36
+ },
37
+ {
38
+ "path": "middle.0.residual.2",
39
+ "shape": [
40
+ 1024,
41
+ 1024,
42
+ 3,
43
+ 3,
44
+ 3
45
+ ],
46
+ "padding": 1,
47
+ "rank": 420,
48
+ "bias": true,
49
+ "pure2d": false,
50
+ "fraction": 0.6
51
+ },
52
+ {
53
+ "path": "middle.0.residual.6",
54
+ "shape": [
55
+ 1024,
56
+ 1024,
57
+ 3,
58
+ 3,
59
+ 3
60
+ ],
61
+ "padding": 1,
62
+ "rank": 434,
63
+ "bias": true,
64
+ "pure2d": false,
65
+ "fraction": 0.6
66
+ },
67
+ {
68
+ "path": "middle.2.residual.2",
69
+ "shape": [
70
+ 1024,
71
+ 1024,
72
+ 3,
73
+ 3,
74
+ 3
75
+ ],
76
+ "padding": 1,
77
+ "rank": 433,
78
+ "bias": true,
79
+ "pure2d": false,
80
+ "fraction": 0.6
81
+ },
82
+ {
83
+ "path": "middle.2.residual.6",
84
+ "shape": [
85
+ 1024,
86
+ 1024,
87
+ 3,
88
+ 3,
89
+ 3
90
+ ],
91
+ "padding": 1,
92
+ "rank": 441,
93
+ "bias": true,
94
+ "pure2d": false,
95
+ "fraction": 0.6
96
+ },
97
+ {
98
+ "path": "upsamples.0.upsamples.0.residual.2",
99
+ "shape": [
100
+ 1024,
101
+ 1024,
102
+ 3,
103
+ 3,
104
+ 3
105
+ ],
106
+ "padding": 1,
107
+ "rank": 406,
108
+ "bias": true,
109
+ "pure2d": false,
110
+ "fraction": 0.6
111
+ },
112
+ {
113
+ "path": "upsamples.0.upsamples.0.residual.6",
114
+ "shape": [
115
+ 1024,
116
+ 1024,
117
+ 3,
118
+ 3,
119
+ 3
120
+ ],
121
+ "padding": 1,
122
+ "rank": 427,
123
+ "bias": true,
124
+ "pure2d": false,
125
+ "fraction": 0.6
126
+ },
127
+ {
128
+ "path": "upsamples.0.upsamples.1.residual.2",
129
+ "shape": [
130
+ 1024,
131
+ 1024,
132
+ 3,
133
+ 3,
134
+ 3
135
+ ],
136
+ "padding": 1,
137
+ "rank": 430,
138
+ "bias": true,
139
+ "pure2d": false,
140
+ "fraction": 0.6
141
+ },
142
+ {
143
+ "path": "upsamples.0.upsamples.1.residual.6",
144
+ "shape": [
145
+ 1024,
146
+ 1024,
147
+ 3,
148
+ 3,
149
+ 3
150
+ ],
151
+ "padding": 1,
152
+ "rank": 456,
153
+ "bias": true,
154
+ "pure2d": false,
155
+ "fraction": 0.6
156
+ },
157
+ {
158
+ "path": "upsamples.0.upsamples.2.residual.2",
159
+ "shape": [
160
+ 1024,
161
+ 1024,
162
+ 3,
163
+ 3,
164
+ 3
165
+ ],
166
+ "padding": 1,
167
+ "rank": 411,
168
+ "bias": true,
169
+ "pure2d": false,
170
+ "fraction": 0.6
171
+ },
172
+ {
173
+ "path": "upsamples.0.upsamples.2.residual.6",
174
+ "shape": [
175
+ 1024,
176
+ 1024,
177
+ 3,
178
+ 3,
179
+ 3
180
+ ],
181
+ "padding": 1,
182
+ "rank": 452,
183
+ "bias": true,
184
+ "pure2d": false,
185
+ "fraction": 0.6
186
+ },
187
+ {
188
+ "path": "upsamples.0.upsamples.3.time_conv",
189
+ "shape": [
190
+ 2048,
191
+ 1024,
192
+ 3,
193
+ 1,
194
+ 1
195
+ ],
196
+ "padding": 0,
197
+ "rank": 533,
198
+ "bias": true,
199
+ "pure2d": false,
200
+ "fraction": 0.6
201
+ },
202
+ {
203
+ "path": "upsamples.1.upsamples.0.residual.2",
204
+ "shape": [
205
+ 1024,
206
+ 1024,
207
+ 3,
208
+ 3,
209
+ 3
210
+ ],
211
+ "padding": 1,
212
+ "rank": 448,
213
+ "bias": true,
214
+ "pure2d": false,
215
+ "fraction": 0.6
216
+ },
217
+ {
218
+ "path": "upsamples.1.upsamples.0.residual.6",
219
+ "shape": [
220
+ 1024,
221
+ 1024,
222
+ 3,
223
+ 3,
224
+ 3
225
+ ],
226
+ "padding": 1,
227
+ "rank": 457,
228
+ "bias": true,
229
+ "pure2d": false,
230
+ "fraction": 0.6
231
+ },
232
+ {
233
+ "path": "upsamples.1.upsamples.1.residual.2",
234
+ "shape": [
235
+ 1024,
236
+ 1024,
237
+ 3,
238
+ 3,
239
+ 3
240
+ ],
241
+ "padding": 1,
242
+ "rank": 475,
243
+ "bias": true,
244
+ "pure2d": false,
245
+ "fraction": 0.6
246
+ },
247
+ {
248
+ "path": "upsamples.1.upsamples.1.residual.6",
249
+ "shape": [
250
+ 1024,
251
+ 1024,
252
+ 3,
253
+ 3,
254
+ 3
255
+ ],
256
+ "padding": 1,
257
+ "rank": 485,
258
+ "bias": true,
259
+ "pure2d": false,
260
+ "fraction": 0.6
261
+ },
262
+ {
263
+ "path": "upsamples.1.upsamples.2.residual.2",
264
+ "shape": [
265
+ 1024,
266
+ 1024,
267
+ 3,
268
+ 3,
269
+ 3
270
+ ],
271
+ "padding": 1,
272
+ "rank": 467,
273
+ "bias": true,
274
+ "pure2d": false,
275
+ "fraction": 0.6
276
+ },
277
+ {
278
+ "path": "upsamples.1.upsamples.2.residual.6",
279
+ "shape": [
280
+ 1024,
281
+ 1024,
282
+ 3,
283
+ 3,
284
+ 3
285
+ ],
286
+ "padding": 1,
287
+ "rank": 477,
288
+ "bias": true,
289
+ "pure2d": false,
290
+ "fraction": 0.6
291
+ },
292
+ {
293
+ "path": "upsamples.1.upsamples.3.time_conv",
294
+ "shape": [
295
+ 2048,
296
+ 1024,
297
+ 3,
298
+ 1,
299
+ 1
300
+ ],
301
+ "padding": 0,
302
+ "rank": 590,
303
+ "bias": true,
304
+ "pure2d": false,
305
+ "fraction": 0.6
306
+ },
307
+ {
308
+ "path": "upsamples.2.upsamples.0.residual.2",
309
+ "shape": [
310
+ 512,
311
+ 1024,
312
+ 3,
313
+ 3,
314
+ 3
315
+ ],
316
+ "padding": 1,
317
+ "rank": 0,
318
+ "bias": true,
319
+ "pure2d": true,
320
+ "fraction": 0.6
321
+ },
322
+ {
323
+ "path": "upsamples.2.upsamples.0.residual.6",
324
+ "shape": [
325
+ 512,
326
+ 512,
327
+ 3,
328
+ 3,
329
+ 3
330
+ ],
331
+ "padding": 1,
332
+ "rank": 0,
333
+ "bias": true,
334
+ "pure2d": true,
335
+ "fraction": 0.6
336
+ },
337
+ {
338
+ "path": "upsamples.2.upsamples.1.residual.2",
339
+ "shape": [
340
+ 512,
341
+ 512,
342
+ 3,
343
+ 3,
344
+ 3
345
+ ],
346
+ "padding": 1,
347
+ "rank": 0,
348
+ "bias": true,
349
+ "pure2d": true,
350
+ "fraction": 0.6
351
+ },
352
+ {
353
+ "path": "upsamples.2.upsamples.1.residual.6",
354
+ "shape": [
355
+ 512,
356
+ 512,
357
+ 3,
358
+ 3,
359
+ 3
360
+ ],
361
+ "padding": 1,
362
+ "rank": 0,
363
+ "bias": true,
364
+ "pure2d": true,
365
+ "fraction": 0.6
366
+ },
367
+ {
368
+ "path": "upsamples.2.upsamples.2.residual.2",
369
+ "shape": [
370
+ 512,
371
+ 512,
372
+ 3,
373
+ 3,
374
+ 3
375
+ ],
376
+ "padding": 1,
377
+ "rank": 0,
378
+ "bias": true,
379
+ "pure2d": true,
380
+ "fraction": 0.6
381
+ },
382
+ {
383
+ "path": "upsamples.2.upsamples.2.residual.6",
384
+ "shape": [
385
+ 512,
386
+ 512,
387
+ 3,
388
+ 3,
389
+ 3
390
+ ],
391
+ "padding": 1,
392
+ "rank": 0,
393
+ "bias": true,
394
+ "pure2d": true,
395
+ "fraction": 0.6
396
+ },
397
+ {
398
+ "path": "upsamples.3.upsamples.0.residual.2",
399
+ "shape": [
400
+ 256,
401
+ 512,
402
+ 3,
403
+ 3,
404
+ 3
405
+ ],
406
+ "padding": 1,
407
+ "rank": 0,
408
+ "bias": true,
409
+ "pure2d": true,
410
+ "fraction": 0.6
411
+ },
412
+ {
413
+ "path": "upsamples.3.upsamples.0.residual.6",
414
+ "shape": [
415
+ 256,
416
+ 256,
417
+ 3,
418
+ 3,
419
+ 3
420
+ ],
421
+ "padding": 1,
422
+ "rank": 0,
423
+ "bias": true,
424
+ "pure2d": true,
425
+ "fraction": 0.6
426
+ },
427
+ {
428
+ "path": "upsamples.3.upsamples.1.residual.2",
429
+ "shape": [
430
+ 256,
431
+ 256,
432
+ 3,
433
+ 3,
434
+ 3
435
+ ],
436
+ "padding": 1,
437
+ "rank": 0,
438
+ "bias": true,
439
+ "pure2d": true,
440
+ "fraction": 0.6
441
+ },
442
+ {
443
+ "path": "upsamples.3.upsamples.1.residual.6",
444
+ "shape": [
445
+ 256,
446
+ 256,
447
+ 3,
448
+ 3,
449
+ 3
450
+ ],
451
+ "padding": 1,
452
+ "rank": 0,
453
+ "bias": true,
454
+ "pure2d": true,
455
+ "fraction": 0.6
456
+ },
457
+ {
458
+ "path": "upsamples.3.upsamples.2.residual.2",
459
+ "shape": [
460
+ 256,
461
+ 256,
462
+ 3,
463
+ 3,
464
+ 3
465
+ ],
466
+ "padding": 1,
467
+ "rank": 0,
468
+ "bias": true,
469
+ "pure2d": true,
470
+ "fraction": 0.6
471
+ },
472
+ {
473
+ "path": "upsamples.3.upsamples.2.residual.6",
474
+ "shape": [
475
+ 256,
476
+ 256,
477
+ 3,
478
+ 3,
479
+ 3
480
+ ],
481
+ "padding": 1,
482
+ "rank": 0,
483
+ "bias": true,
484
+ "pure2d": true,
485
+ "fraction": 0.6
486
+ },
487
+ {
488
+ "path": "head.2",
489
+ "shape": [
490
+ 12,
491
+ 256,
492
+ 3,
493
+ 3,
494
+ 3
495
+ ],
496
+ "padding": 1,
497
+ "rank": 7,
498
+ "bias": true,
499
+ "pure2d": false,
500
+ "fraction": 0.6
501
+ }
502
+ ],
503
+ "provenance": {
504
+ "source": "/data/nvme6/gushiqiao/codes/latest/vae/LightX2V/lightx2v_train/experiments/wan22_temporal_search/runs/full_depth_sum60_tail2d_reconstruction5k_gpu0123/recover/checkpoint-005000.pt",
505
+ "source_step": 5000,
506
+ "source_sha256": "6244ce47cb45d3e08bf03c71bb758082567d53f17e2de046fd9329aa79ece423",
507
+ "source_bytes": 4153786363
508
+ },
509
+ "step": 300
510
+ }
lightvae-pro-wan22-decoder.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:9985d3b90321f48109c3fed25b526f38d137a1a7a8f34e1afbe41ddfc27d2782
3
+ size 1384550888
manifest.json ADDED
@@ -0,0 +1,124 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "format_version": 1,
3
+ "created_utc": "2026-10-10T06:06:17.467435+00:00",
4
+ "source_files_unchanged": true,
5
+ "precision_policy": "Preserve all tensor names, shapes, dtypes and values.",
6
+ "loading_notes": {
7
+ "wan": "Use safetensors.torch.load_file for the model state. Original checkpoint fields (family, kept, packed_records, provenance, step, etc.) are preserved in the checkpoint_metadata header JSON and sidecar. The existing torch.load-based .pt loader cannot load these files unchanged.",
8
+ "h3": "Byte-for-byte copy of the original component checkpoint, including header metadata.",
9
+ "components": "Decoder files do not include an encoder. The H3 encoder is pruned, not original.",
10
+ "wan21_lite_source": "Uses wan21_compact_latest.pt as requested, not the later recovery/student.pt."
11
+ },
12
+ "weights": [
13
+ {
14
+ "file": "lightvae-pro-wan21-decoder.safetensors",
15
+ "metadata_file": "lightvae-pro-wan21-decoder.metadata.json",
16
+ "source": "/data/nvme6/gushiqiao/codes/latest/vae_prune/models/wan21_full_depth_latest.pt",
17
+ "source_sha256": "6411aa9c9c8d4498b962dffafc738def3b168c6a4f6bcd793d3a10d6c3ed01c1",
18
+ "sha256": "15597278a84b3b416f5f41552ed38a6145a403e5792760979f7bb74f7fb5c0eb",
19
+ "size_bytes": 179047668,
20
+ "validation": "all_tensor_keys_shapes_dtypes_and_bytes_equal; metadata_equal",
21
+ "tensor_count": 130,
22
+ "tensor_prefix_counts": {
23
+ "conv2": 2,
24
+ "decoder": 126,
25
+ "latents_mean": 1,
26
+ "latents_std": 1
27
+ },
28
+ "tensor_dtype_counts": {
29
+ "F32": 130
30
+ }
31
+ },
32
+ {
33
+ "file": "lightvae-lite-wan21-decoder.safetensors",
34
+ "metadata_file": "lightvae-lite-wan21-decoder.metadata.json",
35
+ "source": "/data/nvme6/gushiqiao/codes/latest/vae_prune/models/wan21_compact_latest.pt",
36
+ "source_sha256": "18c07c937083b39c768c033d9da91a39e02713072b900b2f8d7a00bca313b659",
37
+ "sha256": "05cbfff899d1bd8ce5afa0cc5ed03dcd01dd95876a76b1fb7df5427353f822ce",
38
+ "size_bytes": 70875748,
39
+ "validation": "all_tensor_keys_shapes_dtypes_and_bytes_equal; metadata_equal",
40
+ "tensor_count": 66,
41
+ "tensor_prefix_counts": {
42
+ "conv2": 2,
43
+ "decoder": 62,
44
+ "latents_mean": 1,
45
+ "latents_std": 1
46
+ },
47
+ "tensor_dtype_counts": {
48
+ "F32": 66
49
+ }
50
+ },
51
+ {
52
+ "file": "lightvae-pro-wan22-decoder.safetensors",
53
+ "metadata_file": "lightvae-pro-wan22-decoder.metadata.json",
54
+ "source": "/data/nvme6/gushiqiao/codes/latest/vae_prune/models/wan22_full_depth_latest.pt",
55
+ "source_sha256": "566bac95f1bbaa413c3a328e3781ec4f858a3c52eddb75a6f2040aa5386e150b",
56
+ "sha256": "9985d3b90321f48109c3fed25b526f38d137a1a7a8f34e1afbe41ddfc27d2782",
57
+ "size_bytes": 1384550888,
58
+ "validation": "all_tensor_keys_shapes_dtypes_and_bytes_equal; metadata_equal",
59
+ "tensor_count": 130,
60
+ "tensor_prefix_counts": {
61
+ "conv2": 2,
62
+ "decoder": 128
63
+ },
64
+ "tensor_dtype_counts": {
65
+ "F32": 130
66
+ }
67
+ },
68
+ {
69
+ "file": "lightvae-lite-wan22-decoder.safetensors",
70
+ "metadata_file": "lightvae-lite-wan22-decoder.metadata.json",
71
+ "source": "/data/nvme6/gushiqiao/codes/latest/vae_prune/models/wan22_compact_latest.pt",
72
+ "source_sha256": "a381b74119cbf1b90cd879cad7c587c1a0a2822af730cb67fc5e53f0388215ee",
73
+ "sha256": "455846ab42fe580b82209aec2bee84774860e29a6a66673ec6effe99400b6197",
74
+ "size_bytes": 609707592,
75
+ "validation": "all_tensor_keys_shapes_dtypes_and_bytes_equal; metadata_equal",
76
+ "tensor_count": 66,
77
+ "tensor_prefix_counts": {
78
+ "conv2": 2,
79
+ "decoder": 64
80
+ },
81
+ "tensor_dtype_counts": {
82
+ "F32": 66
83
+ }
84
+ },
85
+ {
86
+ "file": "lightvae-lite-h3-decoder.safetensors",
87
+ "metadata_file": "lightvae-lite-h3-decoder.metadata.json",
88
+ "source": "/data/nvme6/gushiqiao/codes/latest/vae_prune/models/minimax_h3_lightvae_decoder.safetensors",
89
+ "source_sha256": "d060ad616a33f422fcb8395f525d6d71185b5ddb3e016b31cc210ba2c9c06ee9",
90
+ "sha256": "d060ad616a33f422fcb8395f525d6d71185b5ddb3e016b31cc210ba2c9c06ee9",
91
+ "size_bytes": 3248356840,
92
+ "validation": "whole_file_sha256_equal_including_header_metadata",
93
+ "tensor_count": 203,
94
+ "tensor_prefix_counts": {
95
+ "decoder": 199,
96
+ "latents_mean": 1,
97
+ "latents_std": 1,
98
+ "post_quant_conv": 2
99
+ },
100
+ "tensor_dtype_counts": {
101
+ "F32": 203
102
+ }
103
+ },
104
+ {
105
+ "file": "lightvae-lite-h3-encoder.safetensors",
106
+ "metadata_file": "lightvae-lite-h3-encoder.metadata.json",
107
+ "source": "/data/nvme6/gushiqiao/codes/latest/vae_prune/models/minimax_h3_lightvae_encoder.safetensors",
108
+ "source_sha256": "4b0e5af102da19324c64df40abbd95008d8acb0b9cf76e4704d74c8ac20cefac",
109
+ "sha256": "4b0e5af102da19324c64df40abbd95008d8acb0b9cf76e4704d74c8ac20cefac",
110
+ "size_bytes": 406335344,
111
+ "validation": "whole_file_sha256_equal_including_header_metadata",
112
+ "tensor_count": 72,
113
+ "tensor_prefix_counts": {
114
+ "encoder": 68,
115
+ "latents_mean": 1,
116
+ "latents_std": 1,
117
+ "quant_conv": 2
118
+ },
119
+ "tensor_dtype_counts": {
120
+ "F32": 72
121
+ }
122
+ }
123
+ ]
124
+ }