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() | |