sprint3d / students.json
ShoKuno5's picture
Remove the experiments-only adapter; students.json with the four deployed students
6c38647 verified
Raw History Blame Contribute Delete
6.36 kB
{
"format": 1,
"base_model": {
"repo": "TencentARC/Pixal3D",
"revision": "0b31f9160aa400719af409098bff7936a932f726"
},
"key_convention": "Each key is 'backbone.model.<path>.lora_A.weight' or 'backbone.model.<path>.lora_B.weight', where <path> names an nn.Linear in the state dict of the base flow model given by base_submodel (minus its '.weight' suffix); lora_A has shape [rank, in_features], lora_B has shape [out_features, rank], and the layer's weight update is (alpha / rank) * lora_B @ lora_A; example: 'backbone.model.blocks.0.self_attn.to_qkv.lora_A.weight'.",
"fold_rule": {
"none": "The adapters stay separate in float32: y = base(x) + (lora_B(lora_A(x.float())) * (alpha / rank)).to(base(x).dtype).",
"bf16": "At load time each adapted weight W (bfloat16, the dtype of the base model's transformer blocks) is replaced by W + ((lora_B.float() @ lora_A.float()) * (alpha / rank)).to(bfloat16), the sum being taken in bfloat16, and the adapters are removed."
},
"students": {
"structure": {
"file": "structure_student.safetensors",
"sha256": "a938130271c96eaaf67643bb428aa2aa8e53033b09608ea3eedc5531d9b97396",
"size_bytes": 1274085008,
"base_submodel": "ckpts/ss_flow_img_dit_1_3B_64_bf16",
"pipeline_key": "sparse_structure_flow_model",
"lora": {
"rank": 256,
"alpha": 256,
"target_modules": [
"self_attn.to_qkv",
"self_attn.to_out",
"cross_attn.cross_attn_block.to_q",
"cross_attn.cross_attn_block.to_kv",
"cross_attn.cross_attn_block.to_out",
"cross_attn.proj_linear",
"mlp.mlp.0",
"mlp.mlp.2"
],
"num_blocks": 30,
"num_adapters": 240,
"num_tensors": 480,
"num_elements": 318504960
},
"steps": {
"num_steps": 4,
"t": [
1.0,
0.9,
0.75,
0.6,
0.0
],
"grid_indices": [
0,
3,
6,
8,
12
],
"teacher_grid": "t = linspace(1, 0, 13) warped by t' = 3t / (1 + 2t); grid_indices index this grid",
"update": "euler",
"guidance_strength": 1.0
},
"fold": "none",
"dtype": "float32",
"source_checkpoint_sha256": "be04198a3751c999343510611e627ff92a696b02bdeb83ec8ea93c966663c1f8",
"training_updates": 500
},
"coarse_shape": {
"file": "coarse_shape_student.safetensors",
"sha256": "59be306522816b4d1defa525cfecf3f9666a161902b245fee387cd7a34fb9a66",
"size_bytes": 1305542328,
"base_submodel": "ckpts/slat_flow_img2shape_dit_1_3B_512_bf16",
"pipeline_key": "shape_slat_flow_model_512",
"lora": {
"rank": 256,
"alpha": 256,
"target_modules": [
"self_attn.to_qkv",
"self_attn.to_out",
"cross_attn.cross_attn_block.to_q",
"cross_attn.cross_attn_block.to_kv",
"cross_attn.cross_attn_block.to_out",
"cross_attn.proj_linear",
"mlp.mlp.0",
"mlp.mlp.2"
],
"num_blocks": 30,
"num_adapters": 240,
"num_tensors": 480,
"num_elements": 326369280
},
"steps": {
"num_steps": 1,
"t": [
1.0,
0.0
],
"update": "x0_prediction",
"guidance_strength": 1.0,
"x0_formula": "x0 = (1 - s) * x_t - (s + (1 - s) * t) * v with s = 1e-5, in float64"
},
"fold": "none",
"dtype": "float32",
"source_checkpoint_sha256": "46bc526388cc55f226d5747e64d7cd8a32fbe9153fdd0ff67eac7695ed148e1f",
"training_updates": 3000
},
"fine_shape": {
"file": "fine_shape_student.safetensors",
"sha256": "6beb37c82f5f618f84d9bc988564d41e3971ff85c42ef06217e580186e7dd583",
"size_bytes": 1305542328,
"base_submodel": "ckpts/slat_flow_img2shape_dit_1_3B_1024_bf16",
"pipeline_key": "shape_slat_flow_model_1024",
"lora": {
"rank": 256,
"alpha": 256,
"target_modules": [
"self_attn.to_qkv",
"self_attn.to_out",
"cross_attn.cross_attn_block.to_q",
"cross_attn.cross_attn_block.to_kv",
"cross_attn.cross_attn_block.to_out",
"cross_attn.proj_linear",
"mlp.mlp.0",
"mlp.mlp.2"
],
"num_blocks": 30,
"num_adapters": 240,
"num_tensors": 480,
"num_elements": 326369280
},
"steps": {
"num_steps": 1,
"t": [
1.0,
0.0
],
"update": "x0_prediction",
"guidance_strength": 1.0,
"x0_formula": "x0 = (1 - s) * x_t - (s + (1 - s) * t) * v with s = 1e-5, in float64"
},
"fold": "bf16",
"dtype": "float32",
"source_checkpoint_sha256": "9fa67dd330e2dcfaf751e281d19ed8cc3e9c949c97a1a0d0d1a5940bafda070c",
"training_updates": 2000
},
"texture": {
"file": "texture_student.safetensors",
"sha256": "ecc4ae096358120cde9ef2a6bbdff8bfee5c04e5f3bc49db84183d0f7d37887c",
"size_bytes": 1305542328,
"base_submodel": "ckpts/slat_flow_imgshape2tex_dit_1_3B_1024_bf16",
"pipeline_key": "tex_slat_flow_model_1024",
"lora": {
"rank": 256,
"alpha": 256,
"target_modules": [
"self_attn.to_qkv",
"self_attn.to_out",
"cross_attn.cross_attn_block.to_q",
"cross_attn.cross_attn_block.to_kv",
"cross_attn.cross_attn_block.to_out",
"cross_attn.proj_linear",
"mlp.mlp.0",
"mlp.mlp.2"
],
"num_blocks": 30,
"num_adapters": 240,
"num_tensors": 480,
"num_elements": 326369280
},
"steps": {
"num_steps": 2,
"k": 2,
"m": 6,
"t": [
1.0,
0.75,
0.0
],
"grid_indices": [
0,
6,
12
],
"teacher_grid": "t = linspace(1, 0, 13) warped by t' = 3t / (1 + 2t); grid_indices index this grid",
"update": "euler",
"guidance_strength": 1.0
},
"fold": "bf16",
"dtype": "float32",
"source_checkpoint_sha256": "4d8c96e111239c08670fe7cf88391ac024e2aa70b952e9f3714149c36ccb970f",
"training_updates": 3000
}
}
}