          """ Original & LowMem models go with Adjust or Masked converter
              Note: GAN prediction outputs a mask + an image, while other predicts only an image """
          Utils.set_verbosity(self.args.verbose)
  
          if not self.alignments.have_alignments():
              self.generate_alignments()
  
          self.faces.faces_detected = self.alignments.read_alignments()
  
          model = self.load_model()
 
</s> remove 
    def have_alignments(self):
        """ Check if an alignments file exists """
        alignfile = self.get_alignments_path()
        return os.path.exists(alignfile)
 </s> add  </s> remove     exclude_names = [basename(Path(x).stem[:-2] + Path(x).suffix) for x in exclude]
 </s> add     exclude_names = [basename(Path(x).stem[:Path(x).stem.rfind('_')] +
        Path(x).suffix) for x in exclude] </s> remove             with open(alignfile, self.serializer.roptions) as align:
 </s> add             with open(self.alignments_path, self.serializer.roptions) as align: </s> remove             faces_detected = self.load_skip_alignments(alignfile, faces_detected)
 </s> add             faces_detected = self.load_skip_alignments(self.alignments_path, faces_detected)
        if not self.alignments.have_alignments_file:
          """ Original & LowMem models go with Adjust or Masked converter
              Note: GAN prediction outputs a mask + an image, while other predicts only an image """
          Utils.set_verbosity(self.args.verbose)
  
        if not self.alignments.have_alignments_file:
              self.generate_alignments()
  
          self.faces.faces_detected = self.alignments.read_alignments()
  
          model = self.load_model()
keep keep keep keep replace keep keep keep keep keep
 Cli/Scripts Refactor (#374)

* Refactor for PEP 8 and split process function

* Remove backwards compatibility for skip frames

* Split optional functions into own class. Make functions more modular

* train.py - Fix write image bug. Make more modular

* convert.py: Extract alignments from frames if they don't exist

* BugFix: SkipExisting broken since face name refactor

* train.py - Semi-fix for hang on reaching target iteration. Now quits on preview mode
Make tensorflow / system warning less verbose

* Final bugfixes

* Add 'all' back in for selectable detectors

* Final minor tweaks 
scripts/convert.py