summaryrefslogtreecommitdiff
path: root/app/relay/modules/morph.js
blob: e09f5ca905dbd1427b7b5a53fd945a26356824cd (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
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',
  script: 'test.pl',
  params: (task) => {
    let params = [
      '--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,
      '--steps', task.opt.steps,
      '--dilate', task.opt.dilate,
      '--video-out', ['morph', task.opt.mode, task.opt.dataset, moment().format('%YYYY%MM%DD_%hh%mm')].join('_') + '.mp4'
    ]
    if (task.opt.mode === 'average') {
      params.push('--average-videos')
      params.push('True')
    } else {
      params.push('--mix-videos')
      params.push('True')
    }
    return params
  }

  },
  listen: (task, line, i) => {
    if ( (parseInt(line) % 10) === 0) {
      return { type: 'epoch', task, epoch: (i/10)|0 }
    }
    return null
  }
}

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