import os import time import subprocess from pathlib import Path REPO_ROOT = str(os.path.join(os.path.dirname(__file__))) def run_cmds(cmds): cmds = cmds.split('\n') for cmd in cmds: if len(cmd) == 0: continue os.system(cmd) def prepare_env(): init_flag = Path(f'{REPO_ROOT}/initialized') if init_flag.exists(): return os.chdir(REPO_ROOT) run_cmds( f''' git clone https://github.com/zju3dv/GVHMR --recursive {REPO_ROOT}/GVHMR pip install -r {REPO_ROOT}/GVHMR/requirements.txt pip install -e {REPO_ROOT}/GVHMR mkdir {REPO_ROOT}/GVHMR/inputs mkdir {REPO_ROOT}/GVHMR/outputs ln -s {REPO_ROOT}/GVHMR/inputs {REPO_ROOT}/ ln -s {REPO_ROOT}/GVHMR/outputs {REPO_ROOT}/ ln -s {REPO_ROOT}/GVHMR/hmr4d {REPO_ROOT}/ aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/camenduru/SMPLer-X/resolve/main/SMPL_NEUTRAL.pkl -d {REPO_ROOT}/GVHMR/inputs/checkpoints/body_models/smpl -o SMPL_NEUTRAL.pkl aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/camenduru/SMPLer-X/resolve/main/SMPLX_NEUTRAL.npz -d {REPO_ROOT}/GVHMR/inputs/checkpoints/body_models/smplx -o SMPLX_NEUTRAL.npz aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/camenduru/GVHMR/resolve/main/dpvo/dpvo.pth -d {REPO_ROOT}/GVHMR/inputs/checkpoints/dpvo -o dpvo.pth aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/camenduru/GVHMR/resolve/main/gvhmr/gvhmr_siga24_release.ckpt -d {REPO_ROOT}/GVHMR/inputs/checkpoints/gvhmr -o gvhmr_siga24_release.ckpt aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/camenduru/GVHMR/resolve/main/hmr2/epoch%3D10-step%3D25000.ckpt -d {REPO_ROOT}/GVHMR/inputs/checkpoints/hmr2 -o epoch=10-step=25000.ckpt aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/camenduru/GVHMR/resolve/main/vitpose/vitpose-h-multi-coco.pth -d {REPO_ROOT}/GVHMR/inputs/checkpoints/vitpose -o vitpose-h-multi-coco.pth aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/camenduru/GVHMR/resolve/main/yolo/yolov8x.pt -d {REPO_ROOT}/GVHMR/inputs/checkpoints/yolo -o yolov8x.pt touch {REPO_ROOT}/initialized ''' ) return def server_up(): server_up_flag = Path(f'{REPO_ROOT}/server_up') if server_up_flag.exists(): while True: time.sleep(600) else: os.system(f'python {REPO_ROOT}/app/entry.py') if __name__ == '__main__': prepare_env() server_up()