summaryrefslogtreecommitdiff
path: root/uprez.py
blob: cc9b69447cc3a5e999f4dec6b28cce9e12ae1f90 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
import os
import sys
import time
import subprocess
import argparse
import shutil
import re
from dotenv import load_dotenv, find_dotenv
load_dotenv(find_dotenv())

clean_re = re.compile('[^a-zA-Z0-9_\- ]')

start_time = time.time()

parser = argparse.ArgumentParser()
parser.add_argument('--folder', required=True)
parser.add_argument('--folder_id', type=int, default=0)
parser.add_argument('--out_fn', required=True)
parser.add_argument('--dataset', required=True)
parser.add_argument('--end', default="99999")
opt = parser.parse_args()

dataset = clean_re.sub('', opt.dataset)
step = '256'

os.makedirs('./uprez', exist_ok=True)

print(">>> {}".format(dataset))

in_dir = os.path.abspath(opt.folder)
vsr_duf_inputs_dir = os.path.abspath('../vsr-duf/inputs')
vsr_duf_results_dir = os.path.abspath('../vsr-duf/results/{}'.format(dataset))
out_dir = os.path.abspath('./uprez')

print("{}: {}".format('in_dir', in_dir))
print("{}: {}".format('vsr_duf_inputs', vsr_duf_inputs_dir))
print("{}: {}".format('vsr_duf_results', vsr_duf_results_dir))
print("{}: {}".format('out_dir', out_dir))

subprocess.call([ 'rm', '-rf', os.path.join(in_dir, '*') ])
subprocess.call([ 'rm', '-rf', os.path.join(vsr_duf_results_dir, '*') ])

print(">>>> crop frames")
subprocess.call([
  sys.executable,
  '../vsr-duf/crop_frames.py',
  '--step', step,
  '--in_dir', in_dir,
  '--out_dir', vsr_duf_inputs_dir,
  '--end', opt.end,
  '--ratio', '6.0'
])

print(">>>> uprez")
subprocess.call([
  sys.executable,
  '../vsr-duf/test.py',
  '--in_dir', vsr_duf_inputs_dir,
  '--out_dir', vsr_duf_results_dir,
  '--network_dir', os.path.abspath('../vsr-duf'),
])

print(">>>> merge framez")
subprocess.call([
  sys.executable,
  '../vsr-duf/merge_frames.py',
  '--step', step,
  '--in_dir', vsr_duf_results_dir,
  '--render_dir', out_dir,
  '--out_fn', opt.out_fn,
  '--mov',
])

if opt.folder_id > 0:
  mp4 = os.path.join(out_dir, opt.out_fn + '.mp4')
  print("upload {}".format(mp4))
  endpoint = os.getenv('API_REMOTE') + '/api/folder/{}/upload/'.format(opt.folder_id)
  subprocess.call([
    "curl",
    "-X", "POST",
    "-F", "module=pix2pixhd",
    "-F", "activity=uprez",
    "-F", "folder_id={}".format(opt.folder_id),
    "-F", "generated=1",
    "-F", "dataset={}".format(dataset),
    "-F", "datatype=video",
    "-F", "file=\@{}".format(mp4),
    endpoint
  ])

finish_time = time.time()

print("took %02f s.".format(finish_time - start_time))