          for side in ("a", "b"):
              alignments_path = getattr(self.args, "alignments_path_{}".format(side))
              if not alignments_path:
                  image_path = getattr(self.args, "input_{}".format(side))
                  alignments_path = os.path.join(image_path, "alignments.json")
              alignments_paths[side] = alignments_path
          logger.debug("Alignments paths: %s", alignments_paths)
          return alignments_paths
  
      def load_trainer(self, model):
 
</s> remove         """ Set the alignments path to input dirs if not provided """
 </s> add         """ Set the alignments path to input folder if not provided """ </s> remove         """ Set timelapse paths if requested """
 </s> add         """ Set time-lapse paths if requested """ </s> remove         """ Check the image dirs exist, contain images and return the image
 </s> add         """ Check the image folders exist, contain images and return the image </s> remove             self.output.warning("Running without root/admin privileges")
 </s> add             self.output.info("Running without root/admin privileges") </s> remove         """ Monitor stdin for keypress """
 </s> add         """ Monitor stdin for key press """
                alignments_path = os.path.join(image_path, "alignments.fsa")
          for side in ("a", "b"):
              alignments_path = getattr(self.args, "alignments_path_{}".format(side))
              if not alignments_path:
                  image_path = getattr(self.args, "input_{}".format(side))
                alignments_path = os.path.join(image_path, "alignments.fsa")
              alignments_paths[side] = alignments_path
          logger.debug("Alignments paths: %s", alignments_paths)
          return alignments_paths
  
      def load_trainer(self, model):
keep keep keep keep replace keep keep keep keep keep
 Minor Fixes

scripts.train - default to .fsa alignments file
setup.py - Lower non-root message to info level 
scripts/train.py