Spaces:
Running
on
L40S
Running
on
L40S
| # Open Source Model Licensed under the Apache License Version 2.0 | |
| # and Other Licenses of the Third-Party Components therein: | |
| # The below Model in this distribution may have been modified by THL A29 Limited | |
| # ("Tencent Modifications"). All Tencent Modifications are Copyright (C) 2024 THL A29 Limited. | |
| # Copyright (C) 2024 THL A29 Limited, a Tencent company. All rights reserved. | |
| # The below software and/or models in this distribution may have been | |
| # modified by THL A29 Limited ("Tencent Modifications"). | |
| # All Tencent Modifications are Copyright (C) THL A29 Limited. | |
| # Hunyuan 3D is licensed under the TENCENT HUNYUAN NON-COMMERCIAL LICENSE AGREEMENT | |
| # except for the third-party components listed below. | |
| # Hunyuan 3D does not impose any additional limitations beyond what is outlined | |
| # in the repsective licenses of these third-party components. | |
| # Users must comply with all terms and conditions of original licenses of these third-party | |
| # components and must ensure that the usage of the third party components adheres to | |
| # all relevant laws and regulations. | |
| # For avoidance of doubts, Hunyuan 3D means the large language models and | |
| # their software and algorithms, including trained model weights, parameters (including | |
| # optimizer states), machine-learning model code, inference-enabling code, training-enabling code, | |
| # fine-tuning enabling code and other elements of the foregoing made publicly available | |
| # by Tencent in accordance with TENCENT HUNYUAN COMMUNITY LICENSE AGREEMENT. | |
| import os, sys | |
| sys.path.insert(0, f"{os.path.dirname(os.path.dirname(os.path.abspath(__file__)))}") | |
| from svrm.ldm.vis_util import render_func | |
| from infer.utils import seed_everything, timing_decorator | |
| class GifRenderer(): | |
| ''' | |
| render frame(s) of mesh using pytorch3d | |
| ''' | |
| def __init__(self, device="cuda:0"): | |
| self.device = device | |
| def __call__( | |
| self, | |
| obj_filename, | |
| elev=0, | |
| azim=None, | |
| resolution=512, | |
| gif_dst_path='', | |
| n_views=120, | |
| fps=30, | |
| rgb=True | |
| ): | |
| render_func( | |
| obj_filename, | |
| elev=elev, | |
| azim=azim, | |
| resolution=resolution, | |
| gif_dst_path=gif_dst_path, | |
| n_views=n_views, | |
| fps=fps, | |
| device=self.device, | |
| rgb=rgb | |
| ) | |
| if __name__ == "__main__": | |
| import argparse | |
| def get_args(): | |
| parser = argparse.ArgumentParser() | |
| parser.add_argument("--mesh_path", type=str, required=True) | |
| parser.add_argument("--output_gif_path", type=str, required=True) | |
| parser.add_argument("--device", default="cuda:0", type=str) | |
| return parser.parse_args() | |
| args = get_args() | |
| gif_renderer = GifRenderer(device=args.device) | |
| gif_renderer( | |
| args.mesh_path, | |
| gif_dst_path = args.output_gif_path | |
| ) | |