          self.validate()
          self.alignments = Alignments(self.args, False, self.images.is_video)
          # Update Legacy alignments
          Legacy(self.alignments, self.images.input_images, arguments.input_aligned_dir)
  
          self.add_queues()
          self.disk_io = DiskIO(self.alignments, self.images, arguments)
          self.extractor = None
          self.predictor = Predict(self.disk_io.load_queue, self.queue_size, arguments)
 
</s> remove         self.post_process = PostProcess(arguments)
        self.verify_output = False
 </s> add         self.add_queues()
        self.disk_io = DiskIO(self.alignments, self.images, arguments)
        self.extractor = None
        self.predictor = Predict(self.disk_io.load_queue, self.queue_size, arguments)
        self.converter = Converter(get_folder(self.args.output_dir),
                                   self.predictor.output_size,
                                   self.predictor.has_predicted_mask,
                                   self.disk_io.draw_transparent,
                                   self.disk_io.pre_encode,
                                   arguments) </s> remove         self.output_dir = get_folder(self.args.output_dir)
        self.extractor = None
        self.faces_count = 0
 </s> add         Utils.set_verbosity(self.args.loglevel) </s> remove         self.exe = "ffmpeg"
 </s> add         self.exe = im_ffm.get_ffmpeg_exe() </s> remove         self.frame_ranges = self.get_frame_ranges()
        self.imageidxre = re.compile(r"[^(mp4)](\d+)(?!.*\d)")
 </s> add 
        self.opts = OptionalActions(self.args, self.images.input_images, self.alignments)
          self.validate()
          self.alignments = Alignments(self.args, False, self.images.is_video)
          # Update Legacy alignments
          Legacy(self.alignments, self.images.input_images, arguments.input_aligned_dir)
        self.opts = OptionalActions(self.args, self.images.input_images, self.alignments)
  
          self.add_queues()
          self.disk_io = DiskIO(self.alignments, self.images, arguments)
          self.extractor = None
          self.predictor = Predict(self.disk_io.load_queue, self.queue_size, arguments)
keep keep keep add keep keep keep keep keep
 Convert refactor (#703)

* Separate predict and implement pool

* Add check and raise error to multithreading

Box functions to config. Add crop box option.

* All masks to mask module. Refactor convert masks

Predicted mask passed from model. Cli update

* Intesect box with mask and fixes

* Use raw NN output for convert

Use raw mask for face adjustments. Split adjustments to pre and post warp

* Separate out adjustments. Add unmask sharpen

* Set sensible defaults. Pre PR Testing

* Fix queue sizes. Move masked.py to lib

* Fix Skip Frames. Fix GUI Config popup

* Sensible queue limits. Add a less resource intensive single processing mode

* Fix predicted mask. Amend smooth box defaults

* Deterministic ordering for video output

* Video to Video convert implemented

* Fixups

- Remove defaults from folders across all stages
- Move match-hist and aca into color adjustments selectable
- Handle crashes properly for pooled processes
- Fix output directory does not exist error when creating a new output folder
- Force output to frames if input is not a video

* Add Color Transfer adjustment method

Wrap info text in GUI plugin configure popup

* Refactor image adjustments. Easier to create plugins

Start implementing config options for video encoding

* Add video encoding config options

Allow video encoding for frames input (must pass in a reference video)
Move video and image output writers to plugins

* Image writers config options

Move scaling to cli
Move draw_transparent to images config
Add config options for cv2 writer
Add Pillow image writer

* Add gif filetype to Pillow. Fix draw transparent for Pillow

* Add Animated GIF writer

standardize opencv/pillow defaults

* [speedup] Pre-encode supported writers in the convert pool (opencv, pillow)

Move scaling to convert pool
Remove dfaker mask

* Fix default writer

* Bugfixes

* Better custom argparse formatting 
scripts/convert.py