diff --git a/LHM/__pycache__/__init__.cpython-310.pyc b/LHM/__pycache__/__init__.cpython-310.pyc index b83f6a4e47b0804f6aaa497d6f823e7884dc82b6..0c803f3a225c2fce2481220c11b979b25e9f99e6 100644 Binary files a/LHM/__pycache__/__init__.cpython-310.pyc and b/LHM/__pycache__/__init__.cpython-310.pyc differ diff --git a/LHM/datasets/__pycache__/__init__.cpython-310.pyc b/LHM/datasets/__pycache__/__init__.cpython-310.pyc index 39c1225eecdf6eb4179445585991de4e1368ead1..3daadbd8d38a642cbc6b9b1b0922c9cabd12654c 100644 Binary files a/LHM/datasets/__pycache__/__init__.cpython-310.pyc and b/LHM/datasets/__pycache__/__init__.cpython-310.pyc differ diff --git a/LHM/datasets/__pycache__/cam_utils.cpython-310.pyc b/LHM/datasets/__pycache__/cam_utils.cpython-310.pyc index d940b38ecb01d6a0057be58eb5efbd1a6560d1a6..c544b69ddfd4d20701c43b0ff80c1574dcb358cf 100644 Binary files a/LHM/datasets/__pycache__/cam_utils.cpython-310.pyc and b/LHM/datasets/__pycache__/cam_utils.cpython-310.pyc differ diff --git a/LHM/datasets/__pycache__/mixer.cpython-310.pyc b/LHM/datasets/__pycache__/mixer.cpython-310.pyc index dc02da6b78c093386e7dfee1074fc8633de450b6..ce221761110fad472b0ff6a2edfd97a7c34d41c4 100644 Binary files a/LHM/datasets/__pycache__/mixer.cpython-310.pyc and b/LHM/datasets/__pycache__/mixer.cpython-310.pyc differ diff --git a/LHM/models/__pycache__/ESRGANer_utils.cpython-310.pyc b/LHM/models/__pycache__/ESRGANer_utils.cpython-310.pyc index a09def05505b36397353dfbea1d1bea4877ceb5b..b1d21eff8d1c75aacb6ac1647038022327f89d04 100644 Binary files a/LHM/models/__pycache__/ESRGANer_utils.cpython-310.pyc and b/LHM/models/__pycache__/ESRGANer_utils.cpython-310.pyc differ diff --git a/LHM/models/__pycache__/__init__.cpython-310.pyc b/LHM/models/__pycache__/__init__.cpython-310.pyc index 20cd2e4a73911b0050744e088e050b728915d8ae..ee964eb382708d44566c1a1e3dcf4f8d811bfa6e 100644 Binary files a/LHM/models/__pycache__/__init__.cpython-310.pyc and b/LHM/models/__pycache__/__init__.cpython-310.pyc differ diff --git a/LHM/models/__pycache__/arcface_utils.cpython-310.pyc b/LHM/models/__pycache__/arcface_utils.cpython-310.pyc index 93878135c01b3366a349c08a78c750ee56a98452..918310444421a8d3a5fa48610c43aca7b3b4c399 100644 Binary files a/LHM/models/__pycache__/arcface_utils.cpython-310.pyc and b/LHM/models/__pycache__/arcface_utils.cpython-310.pyc differ diff --git a/LHM/models/__pycache__/embedder.cpython-310.pyc b/LHM/models/__pycache__/embedder.cpython-310.pyc index d20fc19419bba05bbd8d56f9d4b1f27b35b77ae3..b8286e8990552f59c7b2febb6784c9ffd1a5c7ac 100644 Binary files a/LHM/models/__pycache__/embedder.cpython-310.pyc and b/LHM/models/__pycache__/embedder.cpython-310.pyc differ diff --git a/LHM/models/__pycache__/modeling_human_lrm.cpython-310.pyc b/LHM/models/__pycache__/modeling_human_lrm.cpython-310.pyc index 49ca7f3cb3d6ce851730349dcabbdd67110cb5a7..382a2d71ae3c38dee5a2c404a4577fa034410407 100644 Binary files a/LHM/models/__pycache__/modeling_human_lrm.cpython-310.pyc and b/LHM/models/__pycache__/modeling_human_lrm.cpython-310.pyc differ diff --git a/LHM/models/__pycache__/transformer.cpython-310.pyc b/LHM/models/__pycache__/transformer.cpython-310.pyc index d8c27e3af742a0801ef41dabbc86684b386cfec3..6fa52d1a979dc61aac4efcf10a4ffb1fffdc70c5 100644 Binary files a/LHM/models/__pycache__/transformer.cpython-310.pyc and b/LHM/models/__pycache__/transformer.cpython-310.pyc differ diff --git a/LHM/models/__pycache__/transformer_dit.cpython-310.pyc b/LHM/models/__pycache__/transformer_dit.cpython-310.pyc index cb2c3fc8d03ccdf00f57b824e5c67d6b9b796270..53fb80d90c57e8d51fb0d987e1028cb470f0efca 100644 Binary files a/LHM/models/__pycache__/transformer_dit.cpython-310.pyc and b/LHM/models/__pycache__/transformer_dit.cpython-310.pyc differ diff --git a/LHM/models/__pycache__/utils.cpython-310.pyc b/LHM/models/__pycache__/utils.cpython-310.pyc index a61a1acd9fc3bb0fedd7982fa31c5704db43c826..5da13881b53ed53c479210d3da3d149cdfdb28ac 100644 Binary files a/LHM/models/__pycache__/utils.cpython-310.pyc and b/LHM/models/__pycache__/utils.cpython-310.pyc differ diff --git a/LHM/models/encoders/__pycache__/__init__.cpython-310.pyc b/LHM/models/encoders/__pycache__/__init__.cpython-310.pyc index ca7b6220647f2cc68fd03b772e1e8fe255a856da..2a3fabeeecd4c5c46b57795df41927a404745ffd 100644 Binary files a/LHM/models/encoders/__pycache__/__init__.cpython-310.pyc and b/LHM/models/encoders/__pycache__/__init__.cpython-310.pyc differ diff --git a/LHM/models/encoders/__pycache__/dinov2_fusion_wrapper.cpython-310.pyc b/LHM/models/encoders/__pycache__/dinov2_fusion_wrapper.cpython-310.pyc index 9270bead6376979fe27f6fb47949b742b0a04b40..1dd76881592f8c3fcc42c73c4507ba5f49f27e47 100644 Binary files a/LHM/models/encoders/__pycache__/dinov2_fusion_wrapper.cpython-310.pyc and b/LHM/models/encoders/__pycache__/dinov2_fusion_wrapper.cpython-310.pyc differ diff --git a/LHM/models/encoders/__pycache__/sapiens_warpper.cpython-310.pyc b/LHM/models/encoders/__pycache__/sapiens_warpper.cpython-310.pyc index f84af12f83097150c368ce0df4b2f32cd853fd37..8f1e68efc91c5590eb9f93060f55b96665f58fa0 100644 Binary files a/LHM/models/encoders/__pycache__/sapiens_warpper.cpython-310.pyc and b/LHM/models/encoders/__pycache__/sapiens_warpper.cpython-310.pyc differ diff --git a/LHM/models/encoders/dinov2/__pycache__/__init__.cpython-310.pyc b/LHM/models/encoders/dinov2/__pycache__/__init__.cpython-310.pyc index d729c1bd460616a164f69baa2198e7bd91fd3f53..eda3789eecdbca8b2e66fc0b6c54de2880dbfea2 100644 Binary files a/LHM/models/encoders/dinov2/__pycache__/__init__.cpython-310.pyc and b/LHM/models/encoders/dinov2/__pycache__/__init__.cpython-310.pyc differ diff --git a/LHM/models/encoders/dinov2/hub/__pycache__/__init__.cpython-310.pyc b/LHM/models/encoders/dinov2/hub/__pycache__/__init__.cpython-310.pyc index 950112853e8227083fe2a894b248e7e813eaa534..39a1a5cdb91b89ac3dfe2c4d0cf20e93be475062 100644 Binary files a/LHM/models/encoders/dinov2/hub/__pycache__/__init__.cpython-310.pyc and b/LHM/models/encoders/dinov2/hub/__pycache__/__init__.cpython-310.pyc differ diff --git a/LHM/models/encoders/dinov2/hub/__pycache__/backbones.cpython-310.pyc b/LHM/models/encoders/dinov2/hub/__pycache__/backbones.cpython-310.pyc index 6aee238eee1fb44bbd0289f2f8ead53c5f16d8cc..d4f8d50bbd81bce4a739bc542fc4146689e2d1ab 100644 Binary files a/LHM/models/encoders/dinov2/hub/__pycache__/backbones.cpython-310.pyc and b/LHM/models/encoders/dinov2/hub/__pycache__/backbones.cpython-310.pyc differ diff --git a/LHM/models/encoders/dinov2/hub/__pycache__/utils.cpython-310.pyc b/LHM/models/encoders/dinov2/hub/__pycache__/utils.cpython-310.pyc index 82feac8fe5138eee998243d7f468091499c4adb5..3def0e0eeeaddff9a927965b76ef14b87947ee9e 100644 Binary files a/LHM/models/encoders/dinov2/hub/__pycache__/utils.cpython-310.pyc and b/LHM/models/encoders/dinov2/hub/__pycache__/utils.cpython-310.pyc differ diff --git a/LHM/models/encoders/dinov2/layers/__pycache__/__init__.cpython-310.pyc b/LHM/models/encoders/dinov2/layers/__pycache__/__init__.cpython-310.pyc index b71139935419e1eaf7258f4b7397dfc7f0677463..0ef26a81331d5ba4ffac8cfc264f14dab43bbdcc 100644 Binary files a/LHM/models/encoders/dinov2/layers/__pycache__/__init__.cpython-310.pyc and b/LHM/models/encoders/dinov2/layers/__pycache__/__init__.cpython-310.pyc differ diff --git a/LHM/models/encoders/dinov2/layers/__pycache__/attention.cpython-310.pyc b/LHM/models/encoders/dinov2/layers/__pycache__/attention.cpython-310.pyc index ee33ee458a4873efd9b7d6d045a53b724cbf92bd..9e6b22f8082c3771b88b434020062dee6d821cee 100644 Binary files a/LHM/models/encoders/dinov2/layers/__pycache__/attention.cpython-310.pyc and b/LHM/models/encoders/dinov2/layers/__pycache__/attention.cpython-310.pyc differ diff --git a/LHM/models/encoders/dinov2/layers/__pycache__/block.cpython-310.pyc b/LHM/models/encoders/dinov2/layers/__pycache__/block.cpython-310.pyc index 56dc30384f23f5b72058d482d843c890b469ec63..c4be456f6ae50e1d45c568cff5010cd2acd8458e 100644 Binary files a/LHM/models/encoders/dinov2/layers/__pycache__/block.cpython-310.pyc and b/LHM/models/encoders/dinov2/layers/__pycache__/block.cpython-310.pyc differ diff --git a/LHM/models/encoders/dinov2/layers/__pycache__/dino_head.cpython-310.pyc b/LHM/models/encoders/dinov2/layers/__pycache__/dino_head.cpython-310.pyc index f0750ac5556b54409e78c2d50facf407f4d65a9f..c212f98eff800a8905d213176bd5bcd5db89d495 100644 Binary files a/LHM/models/encoders/dinov2/layers/__pycache__/dino_head.cpython-310.pyc and b/LHM/models/encoders/dinov2/layers/__pycache__/dino_head.cpython-310.pyc differ diff --git a/LHM/models/encoders/dinov2/layers/__pycache__/drop_path.cpython-310.pyc b/LHM/models/encoders/dinov2/layers/__pycache__/drop_path.cpython-310.pyc index 36d820882dbb9918f93416633712f353aadd9e0d..f2112186e397f8e40039e0bf690b481fc20cc0a8 100644 Binary files a/LHM/models/encoders/dinov2/layers/__pycache__/drop_path.cpython-310.pyc and b/LHM/models/encoders/dinov2/layers/__pycache__/drop_path.cpython-310.pyc differ diff --git a/LHM/models/encoders/dinov2/layers/__pycache__/layer_scale.cpython-310.pyc b/LHM/models/encoders/dinov2/layers/__pycache__/layer_scale.cpython-310.pyc index 0b483e7f39eab372476bcd818aba2cbd437a7278..ee8289876a5a4f4db74f1c30ccbb366f95cb897c 100644 Binary files a/LHM/models/encoders/dinov2/layers/__pycache__/layer_scale.cpython-310.pyc and b/LHM/models/encoders/dinov2/layers/__pycache__/layer_scale.cpython-310.pyc differ diff --git a/LHM/models/encoders/dinov2/layers/__pycache__/mlp.cpython-310.pyc b/LHM/models/encoders/dinov2/layers/__pycache__/mlp.cpython-310.pyc index f4be17f5a1e9dacc6066689cf63d6984a5904b36..b545e879ef03bce565ad9f6c5be889b06dba6ac7 100644 Binary files a/LHM/models/encoders/dinov2/layers/__pycache__/mlp.cpython-310.pyc and b/LHM/models/encoders/dinov2/layers/__pycache__/mlp.cpython-310.pyc differ diff --git a/LHM/models/encoders/dinov2/layers/__pycache__/patch_embed.cpython-310.pyc b/LHM/models/encoders/dinov2/layers/__pycache__/patch_embed.cpython-310.pyc index dd119fa71a1c9767d97f211225b934e47cb406f9..abfc52222787e11a589e0d90bc04f3977e9c9412 100644 Binary files a/LHM/models/encoders/dinov2/layers/__pycache__/patch_embed.cpython-310.pyc and b/LHM/models/encoders/dinov2/layers/__pycache__/patch_embed.cpython-310.pyc differ diff --git a/LHM/models/encoders/dinov2/layers/__pycache__/swiglu_ffn.cpython-310.pyc b/LHM/models/encoders/dinov2/layers/__pycache__/swiglu_ffn.cpython-310.pyc index 0717c07b70d40c68c2485c950fc6bc6bbed42969..338912b657173d5d5fc70148b10433ddd4ca773c 100644 Binary files a/LHM/models/encoders/dinov2/layers/__pycache__/swiglu_ffn.cpython-310.pyc and b/LHM/models/encoders/dinov2/layers/__pycache__/swiglu_ffn.cpython-310.pyc differ diff --git a/LHM/models/encoders/dinov2/models/__pycache__/__init__.cpython-310.pyc b/LHM/models/encoders/dinov2/models/__pycache__/__init__.cpython-310.pyc index 568675bc5dd99502f657a18d1d4a28c4d474c32e..ab29cf0203c66b883d323e69835c1b41e0438c68 100644 Binary files a/LHM/models/encoders/dinov2/models/__pycache__/__init__.cpython-310.pyc and b/LHM/models/encoders/dinov2/models/__pycache__/__init__.cpython-310.pyc differ diff --git a/LHM/models/encoders/dinov2/models/__pycache__/vision_transformer.cpython-310.pyc b/LHM/models/encoders/dinov2/models/__pycache__/vision_transformer.cpython-310.pyc index 11faf57754f31361f64a87b5c37460c38341bfc1..7cca874973e78a5e725dc9e1b72c08afad6863d2 100644 Binary files a/LHM/models/encoders/dinov2/models/__pycache__/vision_transformer.cpython-310.pyc and b/LHM/models/encoders/dinov2/models/__pycache__/vision_transformer.cpython-310.pyc differ diff --git a/LHM/models/rendering/__pycache__/__init__.cpython-310.pyc b/LHM/models/rendering/__pycache__/__init__.cpython-310.pyc index a839ad14ee0e7e9e3153e460f442319463934ea9..93b9174a17f9e95ccc7cd5818be44e96a7e49eb9 100644 Binary files a/LHM/models/rendering/__pycache__/__init__.cpython-310.pyc and b/LHM/models/rendering/__pycache__/__init__.cpython-310.pyc differ diff --git a/LHM/models/rendering/__pycache__/gs_renderer.cpython-310.pyc b/LHM/models/rendering/__pycache__/gs_renderer.cpython-310.pyc index 4f2faa8d119be30c7f95fce51ce6c0b25479299f..013ea9a4b2ca01eefb1433f9ec49259a77351324 100644 Binary files a/LHM/models/rendering/__pycache__/gs_renderer.cpython-310.pyc and b/LHM/models/rendering/__pycache__/gs_renderer.cpython-310.pyc differ diff --git a/LHM/models/rendering/__pycache__/gsplat_renderer.cpython-310.pyc b/LHM/models/rendering/__pycache__/gsplat_renderer.cpython-310.pyc index 8d7feec0a4bd5d3a52fa802deb2b98de202808eb..b38b0c1a775f659eb24f21503e7b8c4c6bba8914 100644 Binary files a/LHM/models/rendering/__pycache__/gsplat_renderer.cpython-310.pyc and b/LHM/models/rendering/__pycache__/gsplat_renderer.cpython-310.pyc differ diff --git a/LHM/models/rendering/__pycache__/mesh_utils.cpython-310.pyc b/LHM/models/rendering/__pycache__/mesh_utils.cpython-310.pyc index aa1a8a2342c53d349149fbc8a6e9db1314320518..6a711eca87c4123c0721b35aa66684ef236b1654 100644 Binary files a/LHM/models/rendering/__pycache__/mesh_utils.cpython-310.pyc and b/LHM/models/rendering/__pycache__/mesh_utils.cpython-310.pyc differ diff --git a/LHM/models/rendering/__pycache__/smpl_x.cpython-310.pyc b/LHM/models/rendering/__pycache__/smpl_x.cpython-310.pyc index fc996ce1cce4b342aefff8696f0c5d2344b4de00..adc5205064b76c441c5acd7cb4b8162c49293f89 100644 Binary files a/LHM/models/rendering/__pycache__/smpl_x.cpython-310.pyc and b/LHM/models/rendering/__pycache__/smpl_x.cpython-310.pyc differ diff --git a/LHM/models/rendering/__pycache__/smpl_x_voxel_dense_sampling.cpython-310.pyc b/LHM/models/rendering/__pycache__/smpl_x_voxel_dense_sampling.cpython-310.pyc index 5d7942710d22c20d71bb6e92e03c88ca8dad4ae2..2b73e6d3101093cf1e03e8811e162273048c1a39 100644 Binary files a/LHM/models/rendering/__pycache__/smpl_x_voxel_dense_sampling.cpython-310.pyc and b/LHM/models/rendering/__pycache__/smpl_x_voxel_dense_sampling.cpython-310.pyc differ diff --git a/LHM/models/rendering/__pycache__/synthesizer.cpython-310.pyc b/LHM/models/rendering/__pycache__/synthesizer.cpython-310.pyc index 0345f81d305c159747937093112860b5b0de92fe..513c995ff7f7fda0b7ce5512aa7d6e75cab81daf 100644 Binary files a/LHM/models/rendering/__pycache__/synthesizer.cpython-310.pyc and b/LHM/models/rendering/__pycache__/synthesizer.cpython-310.pyc differ diff --git a/LHM/models/rendering/utils/__pycache__/__init__.cpython-310.pyc b/LHM/models/rendering/utils/__pycache__/__init__.cpython-310.pyc index 86d53d7f66535bd8f2715ac17f58821172c3ab7b..bd272672f473dec0c9e00a7d74f041ebb5463606 100644 Binary files a/LHM/models/rendering/utils/__pycache__/__init__.cpython-310.pyc and b/LHM/models/rendering/utils/__pycache__/__init__.cpython-310.pyc differ diff --git a/LHM/models/rendering/utils/__pycache__/math_utils.cpython-310.pyc b/LHM/models/rendering/utils/__pycache__/math_utils.cpython-310.pyc index f7bb59c659cb7c006aea61a693a2701ffe90bea2..925c7329ea83a5f48d19734ccc9d0477de43eab4 100644 Binary files a/LHM/models/rendering/utils/__pycache__/math_utils.cpython-310.pyc and b/LHM/models/rendering/utils/__pycache__/math_utils.cpython-310.pyc differ diff --git a/LHM/models/rendering/utils/__pycache__/ray_marcher.cpython-310.pyc b/LHM/models/rendering/utils/__pycache__/ray_marcher.cpython-310.pyc index 7ad31b6c234d46ba0b4da597d6f8e2960086e722..405eaa92bf6c22723a4a3a9d78724f55567417de 100644 Binary files a/LHM/models/rendering/utils/__pycache__/ray_marcher.cpython-310.pyc and b/LHM/models/rendering/utils/__pycache__/ray_marcher.cpython-310.pyc differ diff --git a/LHM/models/rendering/utils/__pycache__/ray_sampler.cpython-310.pyc b/LHM/models/rendering/utils/__pycache__/ray_sampler.cpython-310.pyc index c52b5c78a54bfa687065fd0d8979d6363acc00a8..702bdcb0f7196759f00d71a5116f1fc786c24f9e 100644 Binary files a/LHM/models/rendering/utils/__pycache__/ray_sampler.cpython-310.pyc and b/LHM/models/rendering/utils/__pycache__/ray_sampler.cpython-310.pyc differ diff --git a/LHM/models/rendering/utils/__pycache__/renderer.cpython-310.pyc b/LHM/models/rendering/utils/__pycache__/renderer.cpython-310.pyc index 3777e1230781993b1a97cc655e126fa2b710a869..846e7f156719e7678ad636eda399d502f0ce64de 100644 Binary files a/LHM/models/rendering/utils/__pycache__/renderer.cpython-310.pyc and b/LHM/models/rendering/utils/__pycache__/renderer.cpython-310.pyc differ diff --git a/LHM/models/rendering/utils/__pycache__/sh_utils.cpython-310.pyc b/LHM/models/rendering/utils/__pycache__/sh_utils.cpython-310.pyc index 886755afc23f68d479d94641a4e2f4b2512471cc..8ca713402f98961f63de80772159f3c75a257ad0 100644 Binary files a/LHM/models/rendering/utils/__pycache__/sh_utils.cpython-310.pyc and b/LHM/models/rendering/utils/__pycache__/sh_utils.cpython-310.pyc differ diff --git a/LHM/models/rendering/utils/__pycache__/typing.cpython-310.pyc b/LHM/models/rendering/utils/__pycache__/typing.cpython-310.pyc index b1e5f4ffc8ba2b4dcebc713445af8ab65ca796cd..41302159e6b94e811ec1b9f8c497ca90d3bc52af 100644 Binary files a/LHM/models/rendering/utils/__pycache__/typing.cpython-310.pyc and b/LHM/models/rendering/utils/__pycache__/typing.cpython-310.pyc differ diff --git a/LHM/models/rendering/utils/__pycache__/utils.cpython-310.pyc b/LHM/models/rendering/utils/__pycache__/utils.cpython-310.pyc index 3ab405e490d4fbffa567723334c8a68e258095ca..9dabbe1090995c2712e344c353946c23bc404a56 100644 Binary files a/LHM/models/rendering/utils/__pycache__/utils.cpython-310.pyc and b/LHM/models/rendering/utils/__pycache__/utils.cpython-310.pyc differ diff --git a/LHM/outputs/__pycache__/base.cpython-310.pyc b/LHM/outputs/__pycache__/base.cpython-310.pyc index 1ade3afa0551b9bd6cba621ad8472e8fd5c0db6e..659870af7755ad5eaf3ea72e71293a98d89059d3 100644 Binary files a/LHM/outputs/__pycache__/base.cpython-310.pyc and b/LHM/outputs/__pycache__/base.cpython-310.pyc differ diff --git a/LHM/outputs/__pycache__/output.cpython-310.pyc b/LHM/outputs/__pycache__/output.cpython-310.pyc index f28675c82cf5300ca0053f383d59821c89911e28..7c190d2d1756bbf9f48cc588849e7e1c75a9168a 100644 Binary files a/LHM/outputs/__pycache__/output.cpython-310.pyc and b/LHM/outputs/__pycache__/output.cpython-310.pyc differ diff --git a/LHM/runners/__pycache__/__init__.cpython-310.pyc b/LHM/runners/__pycache__/__init__.cpython-310.pyc index b93346a1ccd75cf20b8f91f195e6b41401a79bf6..b060ba3788d899bc1d23c743230fc55467335d84 100644 Binary files a/LHM/runners/__pycache__/__init__.cpython-310.pyc and b/LHM/runners/__pycache__/__init__.cpython-310.pyc differ diff --git a/LHM/runners/__pycache__/abstract.cpython-310.pyc b/LHM/runners/__pycache__/abstract.cpython-310.pyc index d8b13f0d52bca34b1a9748f8f6089a51e13778a5..670a8bc5af4f6cdd97f1a9b78f8e6305cff71000 100644 Binary files a/LHM/runners/__pycache__/abstract.cpython-310.pyc and b/LHM/runners/__pycache__/abstract.cpython-310.pyc differ diff --git a/LHM/runners/infer/__pycache__/__init__.cpython-310.pyc b/LHM/runners/infer/__pycache__/__init__.cpython-310.pyc index 2cfbc7b62e098234f84da2edf3ee90bfcf099a4d..950db5b426678ba25ef22d0a9ec7ca391ef269d7 100644 Binary files a/LHM/runners/infer/__pycache__/__init__.cpython-310.pyc and b/LHM/runners/infer/__pycache__/__init__.cpython-310.pyc differ diff --git a/LHM/runners/infer/__pycache__/base_inferrer.cpython-310.pyc b/LHM/runners/infer/__pycache__/base_inferrer.cpython-310.pyc index 6502e33b9f702d0eb2b9ab023938232b0b3d4d05..cd448a4a63a54616d0e2e0a34f107f0e2b8eb884 100644 Binary files a/LHM/runners/infer/__pycache__/base_inferrer.cpython-310.pyc and b/LHM/runners/infer/__pycache__/base_inferrer.cpython-310.pyc differ diff --git a/LHM/runners/infer/__pycache__/human_lrm.cpython-310.pyc b/LHM/runners/infer/__pycache__/human_lrm.cpython-310.pyc index 47825032243df2f2f10d91ffd80ee8ccb46771cb..c4b89b81f3d8c46ae19fee8c710873cadf61f0a0 100644 Binary files a/LHM/runners/infer/__pycache__/human_lrm.cpython-310.pyc and b/LHM/runners/infer/__pycache__/human_lrm.cpython-310.pyc differ diff --git a/LHM/runners/infer/__pycache__/utils.cpython-310.pyc b/LHM/runners/infer/__pycache__/utils.cpython-310.pyc index 668995e3430f9439d8853fbf6375d1d1602723d4..37bfc8efe26cd74101a96b818e9555f4359c5ca2 100644 Binary files a/LHM/runners/infer/__pycache__/utils.cpython-310.pyc and b/LHM/runners/infer/__pycache__/utils.cpython-310.pyc differ diff --git a/LHM/runners/infer/human_lrm.py b/LHM/runners/infer/human_lrm.py index 9c023d5f8bcc0d2c373bd90fab68f0262d162878..d266637b49fcad5ec6c191a8de8dbe27732d1648 100644 --- a/LHM/runners/infer/human_lrm.py +++ b/LHM/runners/infer/human_lrm.py @@ -41,6 +41,7 @@ from LHM.utils.logging import configure_logger # from LHM.utils.video import images_to_video from LHM.utils.ffmpeg_utils import images_to_video +from rembg import remove from .base_inferrer import Inferrer logger = get_logger(__name__) @@ -446,12 +447,21 @@ class HumanLRMInferrer(Inferrer): @torch.no_grad() def parsing(self, img_path): - parsing_out = self.parsingnet(img_path=img_path, bbox=None) + # parsing_out = self.parsingnet(img_path=img_path, bbox=None) - alpha = (parsing_out.masks * 255).astype(np.uint8) + # alpha = (parsing_out.masks * 255).astype(np.uint8) + # return alpha + # input_path = 'input.png' + # output_path = 'output.png' + + input = cv2.imread(img_path) + output = remove(input) + alpha = output[:,:,3] + # cv2.imwrite(output_path, output) return alpha + def infer_single( self, image_path: str, diff --git a/LHM/utils/__pycache__/__init__.cpython-310.pyc b/LHM/utils/__pycache__/__init__.cpython-310.pyc index d96fcf34b136bbdce0d5216bb4a58c134ae93f60..177b34f106b777c9fe551e6203f073243a8a6227 100644 Binary files a/LHM/utils/__pycache__/__init__.cpython-310.pyc and b/LHM/utils/__pycache__/__init__.cpython-310.pyc differ diff --git a/LHM/utils/__pycache__/face_detector.cpython-310.pyc b/LHM/utils/__pycache__/face_detector.cpython-310.pyc index 78724f5b073dbfb9f2cb8ca1c4fcf4a7678456de..f24ec84aa978d54b8f1593091227fcaa7fbc9316 100644 Binary files a/LHM/utils/__pycache__/face_detector.cpython-310.pyc and b/LHM/utils/__pycache__/face_detector.cpython-310.pyc differ diff --git a/LHM/utils/__pycache__/ffmpeg_utils.cpython-310.pyc b/LHM/utils/__pycache__/ffmpeg_utils.cpython-310.pyc index b19e4efc277cba6a9ea16a97593ee1f4988d61ad..72db6324131c5f6e854f5c0f0f64587998c447b1 100644 Binary files a/LHM/utils/__pycache__/ffmpeg_utils.cpython-310.pyc and b/LHM/utils/__pycache__/ffmpeg_utils.cpython-310.pyc differ diff --git a/LHM/utils/__pycache__/hf_hub.cpython-310.pyc b/LHM/utils/__pycache__/hf_hub.cpython-310.pyc index dcd25905a6255c252135059f48bff7d184612b57..65951d3b611b5ef20bc38540e8dddb31edb79c35 100644 Binary files a/LHM/utils/__pycache__/hf_hub.cpython-310.pyc and b/LHM/utils/__pycache__/hf_hub.cpython-310.pyc differ diff --git a/LHM/utils/__pycache__/logging.cpython-310.pyc b/LHM/utils/__pycache__/logging.cpython-310.pyc index 99c7007a27dda6aa691c8b6789ab2f3496be3e3e..b060540c1a6f5493a4de11f634d4141c4624d4e0 100644 Binary files a/LHM/utils/__pycache__/logging.cpython-310.pyc and b/LHM/utils/__pycache__/logging.cpython-310.pyc differ diff --git a/LHM/utils/__pycache__/registry.cpython-310.pyc b/LHM/utils/__pycache__/registry.cpython-310.pyc index b33645e03b527f932153a2f1d95a0bf48d592f99..5468c597f6cc4e6d0b28b6fca89f626bd6c26ff9 100644 Binary files a/LHM/utils/__pycache__/registry.cpython-310.pyc and b/LHM/utils/__pycache__/registry.cpython-310.pyc differ diff --git a/README.md b/README.md index cb347981b8b7d35114ba5e63ae2cd09d240bfa3c..220cb5e92703e06c3006a5a77c65dc895d282b36 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ --- -title: LHM +title: LHM_Debug emoji: ⚡ colorFrom: red colorTo: indigo diff --git a/app.py b/app.py index 0ec49645fd6563648c3766534e21306bcc0c19af..d05be1e535bd635aacb021f385b6c54349f2ba0e 100644 --- a/app.py +++ b/app.py @@ -22,24 +22,74 @@ import spaces import subprocess import os -# def install_cuda_toolkit(): -# # CUDA_TOOLKIT_URL = "https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run" -# # # CUDA_TOOLKIT_URL = "https://developer.download.nvidia.com/compute/cuda/12.2.0/local_installers/cuda_12.2.0_535.54.03_linux.run" -# # CUDA_TOOLKIT_FILE = "/tmp/%s" % os.path.basename(CUDA_TOOLKIT_URL) -# # subprocess.call(["wget", "-q", CUDA_TOOLKIT_URL, "-O", CUDA_TOOLKIT_FILE]) -# # subprocess.call(["chmod", "+x", CUDA_TOOLKIT_FILE]) -# # subprocess.call([CUDA_TOOLKIT_FILE, "--silent", "--toolkit"]) - -# os.environ["CUDA_HOME"] = "/usr/local/cuda" -# os.environ["PATH"] = "%s/bin:%s" % (os.environ["CUDA_HOME"], os.environ["PATH"]) -# os.environ["LD_LIBRARY_PATH"] = "%s/lib:%s" % ( -# os.environ["CUDA_HOME"], -# "" if "LD_LIBRARY_PATH" not in os.environ else os.environ["LD_LIBRARY_PATH"], -# ) -# # Fix: arch_list[-1] += '+PTX'; IndexError: list index out of range -# os.environ["TORCH_CUDA_ARCH_LIST"] = "8.0;8.6" - -# install_cuda_toolkit() +from engine.pose_estimation.pose_estimator import PoseEstimator +from LHM.utils.face_detector import VGGHeadDetector +from LHM.utils.hf_hub import wrap_model_hub + +def parse_configs(): + + parser = argparse.ArgumentParser() + parser.add_argument("--config", type=str) + parser.add_argument("--infer", type=str) + args, unknown = parser.parse_known_args() + + cfg = OmegaConf.create() + cli_cfg = OmegaConf.from_cli(unknown) + + # parse from ENV + if os.environ.get("APP_INFER") is not None: + args.infer = os.environ.get("APP_INFER") + if os.environ.get("APP_MODEL_NAME") is not None: + cli_cfg.model_name = os.environ.get("APP_MODEL_NAME") + + args.config = args.infer if args.config is None else args.config + + if args.config is not None: + cfg_train = OmegaConf.load(args.config) + cfg.source_size = cfg_train.dataset.source_image_res + try: + cfg.src_head_size = cfg_train.dataset.src_head_size + except: + cfg.src_head_size = 112 + cfg.render_size = cfg_train.dataset.render_image.high + _relative_path = os.path.join( + cfg_train.experiment.parent, + cfg_train.experiment.child, + os.path.basename(cli_cfg.model_name).split("_")[-1], + ) + + cfg.save_tmp_dump = os.path.join("exps", "save_tmp", _relative_path) + cfg.image_dump = os.path.join("exps", "images", _relative_path) + cfg.video_dump = os.path.join("exps", "videos", _relative_path) # output path + + if args.infer is not None: + cfg_infer = OmegaConf.load(args.infer) + cfg.merge_with(cfg_infer) + cfg.setdefault( + "save_tmp_dump", os.path.join("exps", cli_cfg.model_name, "save_tmp") + ) + cfg.setdefault("image_dump", os.path.join("exps", cli_cfg.model_name, "images")) + cfg.setdefault( + "video_dump", os.path.join("dumps", cli_cfg.model_name, "videos") + ) + cfg.setdefault("mesh_dump", os.path.join("dumps", cli_cfg.model_name, "meshes")) + + cfg.motion_video_read_fps = 6 + cfg.merge_with(cli_cfg) + + cfg.setdefault("logger", "INFO") + + assert cfg.model_name is not None, "model_name is required" + + return cfg, cfg_train + +def _build_model(cfg): + from LHM.models import model_dict + + hf_model_cls = wrap_model_hub(model_dict["human_lrm_sapdino_bh_sd3_5"]) + model = hf_model_cls.from_pretrained(cfg.model_name) + + return model def launch_pretrained(): from huggingface_hub import snapshot_download, hf_hub_download @@ -61,27 +111,6 @@ def launch_env_not_compile_with_cuda(): # os.system("pip install git+https://github.com/camenduru/simple-knn/") os.system("pip install --no-index --no-cache-dir pytorch3d -f https://dl.fbaipublicfiles.com/pytorch3d/packaging/wheels/py310_cu121_pyt251/download.html") -# def launch_env_compile_with_cuda(): -# # simple_knn -# os.system("wget oss://virutalbuy-public/share/aigc3d/data/for_lingteng/LHM/simple_knn.zip && wget oss://virutalbuy-public/share/aigc3d/data/for_lingteng/LHM/simple_knn-0.0.0.dist-info.zip") -# os.system("unzip simple_knn.zip && unzip simple_knn-0.0.0.dist-info.zip") -# os.system("mv simple_knn /usr/local/lib/python3.10/site-packages/") -# os.system("mv simple_knn-0.0.0.dist-info /usr/local/lib/python3.10/site-packages/") - -# # diff_gaussian -# os.system("wget oss://virutalbuy-public/share/aigc3d/data/for_lingteng/LHM/diff_gaussian_rasterization.zip && wget oss://virutalbuy-public/share/aigc3d/data/for_lingteng/LHM/diff_gaussian_rasterization-0.0.0.dist-info.zip") -# os.system("unzip diff_gaussian_rasterization.zip && unzip diff_gaussian_rasterization-0.0.0.dist-info.zip") -# os.system("mv diff_gaussian_rasterization /usr/local/lib/python3.10/site-packages/") -# os.system("mv diff_gaussian_rasterization-0.0.0.dist-info /usr/local/lib/python3.10/site-packages/") - -# # pytorch3d -# os.system("wget oss://virutalbuy-public/share/aigc3d/data/for_lingteng/LHM/pytorch3d.zip && wget oss://virutalbuy-public/share/aigc3d/data/for_lingteng/LHM/pytorch3d-0.7.8.dist-info.zip") -# os.system("unzip pytorch3d.zip && unzip pytorch3d-0.7.8.dist-info.zip") -# os.system("mv pytorch3d /usr/local/lib/python3.10/site-packages/") -# os.system("mv pytorch3d-0.7.8.dist-info /usr/local/lib/python3.10/site-packages/") - - -# launch_env_compile_with_cuda() def assert_input_image(input_image): if input_image is None: @@ -112,8 +141,9 @@ def get_image_base64(path): return f"data:image/png;base64,{encoded_string}" -def demo_lhm(infer_impl): +def demo_lhm(pose_estimator, face_detector, lhm_model, cfg): + @spaces.GPU def core_fn(image: str, video_params, working_dir): image_raw = os.path.join(working_dir.name, "raw.png") with Image.fromarray(image) as img: @@ -125,16 +155,76 @@ def demo_lhm(infer_impl): dump_video_path = os.path.join(working_dir.name, "output.mp4") dump_image_path = os.path.join(working_dir.name, "output.png") - status = spaces.GPU(infer_impl( - gradio_demo_image=image_raw, - gradio_motion_file=smplx_params_dir, - gradio_masked_image=dump_image_path, - gradio_video_save_path=dump_video_path - )) - if status: + + # prepare dump paths + omit_prefix = os.path.dirname(image_raw) + image_name = os.path.basename(image_raw) + uid = image_name.split(".")[0] + subdir_path = os.path.dirname(image_raw).replace(omit_prefix, "") + subdir_path = ( + subdir_path[1:] if subdir_path.startswith("/") else subdir_path + ) + print("subdir_path and uid:", subdir_path, uid) + + motion_seqs_dir = smplx_params_dir + + motion_name = os.path.dirname( + motion_seqs_dir[:-1] if motion_seqs_dir[-1] == "/" else motion_seqs_dir + ) + + motion_name = os.path.basename(motion_name) + + dump_image_dir = os.path.dirname(dump_image_path) + os.makedirs(dump_image_dir, exist_ok=True) + + print(image_raw, motion_seqs_dir, dump_image_dir, dump_video_path) + + + shape_pose = pose_estimator(image_raw) + assert shape_pose.is_full_body, f"The input image is illegal, {shape_pose.msg}" + + if os.path.exists(dump_video_path): return dump_image_path, dump_video_path - else: - return None, None + source_size = cfg.source_size + render_size = cfg.render_size + render_fps = 30 + + aspect_standard = 5.0 / 3 + motion_img_need_mask = cfg.get("motion_img_need_mask", False) # False + vis_motion = cfg.get("vis_motion", False) # False + + parsing_mask = parsing(image_raw) + + input = cv2.imread(img_path) + output = remove(input) + alpha = output[:,:,3] + + # self.infer_single( + # image_path, + # motion_seqs_dir=motion_seqs_dir, + # motion_img_dir=None, + # motion_video_read_fps=30, + # export_video=False, + # export_mesh=False, + # dump_tmp_dir=dump_image_dir, + # dump_image_dir=dump_image_dir, + # dump_video_path=dump_video_path, + # shape_param=shape_pose.beta, + # ) + + + + # status = spaces.GPU(infer_impl( + # gradio_demo_image=image_raw, + # gradio_motion_file=smplx_params_dir, + # gradio_masked_image=dump_image_path, + # gradio_video_save_path=dump_video_path + # )) + + # if status: + # return dump_image_path, dump_video_path + # else: + # return None, None _TITLE = '''LHM: Large Animatable Human Model''' @@ -262,11 +352,30 @@ def launch_gradio_app(): "NUMBA_THREADING_LAYER": 'omp', }) - from LHM.runners import REGISTRY_RUNNERS - RunnerClass = REGISTRY_RUNNERS[os.getenv("APP_TYPE")] - with RunnerClass() as runner: - runner.to('cuda') - demo_lhm(infer_impl=runner.infer) + # from LHM.runners import REGISTRY_RUNNERS + # RunnerClass = REGISTRY_RUNNERS[os.getenv("APP_TYPE")] + # with RunnerClass() as runner: + # runner.to('cuda') + # demo_lhm(infer_impl=runner.infer) + + facedetector = VGGHeadDetector( + "./pretrained_models/gagatracker/vgghead/vgg_heads_l.trcd", + device='cpu', + ) + facedetector.to('cuda') + + pose_estimator = PoseEstimator( + "./pretrained_models/human_model_files/", device='cpu' + ) + pose_estimator.to('cuda') + pose_estimator.device = 'cuda' + + cfg, cfg_train = parse_configs() + lhm = _build_model(cfg) + lhm.to('cuda') + + demo_lhm(pose_estimator, facedetector, lhm, cfg) + if __name__ == '__main__': diff --git a/engine/__pycache__/__init__.cpython-310.pyc b/engine/__pycache__/__init__.cpython-310.pyc index d5a14354bdaed7ffd41d806c9ef0132917fec343..f2d431c8c00d8fee1725d3926733d2fafdf7afbd 100644 Binary files a/engine/__pycache__/__init__.cpython-310.pyc and b/engine/__pycache__/__init__.cpython-310.pyc differ diff --git a/engine/__pycache__/ouputs.cpython-310.pyc b/engine/__pycache__/ouputs.cpython-310.pyc index cfaf8b2b0ec829e2d4b40282bf436bcd0be54a6d..e271f93f21c75c869cbd849d18271bbd75870284 100644 Binary files a/engine/__pycache__/ouputs.cpython-310.pyc and b/engine/__pycache__/ouputs.cpython-310.pyc differ diff --git a/engine/pose_estimation/pose_estimator.py b/engine/pose_estimation/pose_estimator.py index eab06a53d4ad4f1d6b8edf4e880fc818c5b3e9f6..a24e215c115a7ceadc26cdc169061aa211554fb7 100644 --- a/engine/pose_estimation/pose_estimator.py +++ b/engine/pose_estimation/pose_estimator.py @@ -94,13 +94,14 @@ def inverse_perspective_projection(points, K, distance): class PoseEstimator(torch.nn.Module): def __init__(self, model_path, device="cuda"): - super.__init__() + super().__init__() self.device = torch.device(device) self.mhmr_model = load_model( os.path.join(model_path, "pose_estimate", "multiHMR_896_L.pt"), model_path=model_path, device=self.device, ) + self.pad_ratio = 0.2 self.img_size = 896 self.fov = 60 @@ -171,6 +172,7 @@ class PoseEstimator(torch.nn.Module): return resize_img, annotation + @torch.no_grad() def forward(self, img_path): # image_tensor H W C @@ -184,16 +186,17 @@ class PoseEstimator(torch.nn.Module): img_tensor, annotation = self._preprocess(img_np) K = self.get_camera_parameters() - with torch.cuda.amp.autocast(enabled=True): - target_human = self.mhmr_model( - img_tensor, - is_training=False, - nms_kernel_size=int(3), - det_thresh=0.3, - K=K, - idx=None, - max_dist=None, - ) + # with torch.cuda.amp.autocast(enabled=True): + target_human = self.mhmr_model( + img_tensor, + is_training=False, + nms_kernel_size=int(3), + det_thresh=0.3, + K=K, + idx=None, + max_dist=None, + ) + if not len(target_human) == 1: return SMPLXOutput( beta=None,