summaryrefslogtreecommitdiff
path: root/app/relay/modules/morph.js
blob: 40223f3442c9e26c6581c0b95c9171ec49523e08 (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
import path from 'path'
import moment from 'moment'

const name = 'morph'
const cwd = process.env.MORPH_CWD || path.join(process.cwd(), '..', 'pytorch-sepconv')

const morph = {
  type: 'pytorch_cpu',
  script: 'run.py',
  params: (task) => {
    console.log(task)
    let params = [
      '--dataset', task.opt.a,
      '--steps', task.opt.steps,
      '--dilate', task.opt.dilate,
      '--video-out', ['morph', task.opt.mode, task.dataset, moment().format('YYYYMMDD_hhmm')].join('_') + '.mp4',
      '--endpoint', process.env.API_REMOTE + '/api/folder/' + task.folder_id + '/upload/',
    ]
    if (task.opt.mode === 'image') {
      //
    } else {
      params = params.concat([
        '--first', path.join(cwd, '..', task.opt.dataset_module, 'sequences', task.opt.a),
        '--second', path.join(cwd, '..', task.opt.dataset_module, 'sequences', task.opt.b),
        '--a-offset', task.opt.a_offset,
        '--b-offset', task.opt.b_offset,
      ])
    }
    if (task.opt.mode === 'average') {
      params.push('--average-videos')
      params.push('True')
    } else {
      params.push('--mix-videos')
      params.push('True')
    }
    if (task.opt.smooth) {
      params.push('--smooth')
      params.push('True')
    }
    return params
  }
}

export default {
  name, cwd,
  activities: {
    morph,
  }
}