Spaces:
Runtime error
Runtime error
| import json | |
| import time | |
| from dataset.tracks_motion import TracksMotion | |
| from GPS import GPS | |
| import gradio as gr | |
| def _synthesis(synthesis_setting, motion_data): | |
| model = GPS( | |
| init_mode = f"random_synthesis/{synthesis_setting['frames']}", | |
| noise_sigma = synthesis_setting['noise_sigma'], | |
| coarse_ratio = 0.2, | |
| pyr_factor = synthesis_setting['pyr_factor'], | |
| num_stages_limit = -1, | |
| silent=True, | |
| device='cpu' | |
| ) | |
| synthesized_motion = model.run( | |
| motion_data, | |
| mode="match_and_blend", | |
| ext={ | |
| 'criteria': { | |
| 'type': 'PatchCoherentLoss', | |
| 'patch_size': synthesis_setting['patch_size'], | |
| 'stride': synthesis_setting['stride'] if 'stride' in synthesis_setting.keys() else 1, | |
| 'loop': synthesis_setting['loop'], | |
| 'coherent_alpha': synthesis_setting['alpha'] if synthesis_setting['completeness'] else None, | |
| }, | |
| 'optimizer': "match_and_blend", | |
| 'num_itrs': synthesis_setting['num_steps'], | |
| } | |
| ) | |
| return synthesized_motion | |
| def synthesis(data): | |
| data = json.loads(data) | |
| # create track object | |
| data['setting']['coarse_ratio'] = -1 | |
| motion_data = TracksMotion(data['tracks'], scale=data['scale']) | |
| start = time.time() | |
| synthesized_motion = _synthesis( | |
| data['setting'], | |
| [motion_data] | |
| ) | |
| end = time.time() | |
| data['time'] = end - start | |
| data['tracks'] = motion_data.parse(synthesized_motion) | |
| return data | |
| demo = gr.Interface(fn=synthesis, inputs="json", outputs="json") | |
| demo.launch() | |