-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.py
46 lines (40 loc) · 1.57 KB
/
main.py
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
from itertools import chain
from argparse import ArgumentParser
from Image import load, load_glob
from Collage import Collage
def main():
parser = ArgumentParser()
parser.add_argument("-t", "--target", required=True)
parser.add_argument("-o", "--output", required=True)
parser.add_argument("-i", "--inputs", required=True, nargs="+")
parser.add_argument("-p", "--population", required=True, type=int)
parser.add_argument("-e", "--evolutions", required=True, type=int)
parser.add_argument("-f", "--fittest-num", required=True, type=int)
parser.add_argument("-I", "--iterations", type=int)
parser.add_argument("-v", "--video")
parser.add_argument("--fps", type=int)
parser.add_argument("--lock-aspect-ratio", action="store_true")
parser.add_argument("--only-improvements", action="store_true")
parser.add_argument("--num-processes", type=int)
parser.add_argument("--chunk-size", type=int)
args = parser.parse_args()
target = load(args.target)
if target is None:
return
with Collage(
target=target,
output=load(args.output),
output_path=args.output,
inputs=chain.from_iterable(load_glob(glob) for glob in args.inputs),
video_path=args.video,
fps=args.fps,
population=args.population,
evolutions=args.evolutions,
fittest_num=args.fittest_num,
iterations=args.iterations,
lock_aspect_ratio=args.lock_aspect_ratio,
only_improvements=args.only_improvements,
) as collage:
collage.run()
if __name__ == "__main__":
main()