                   "and find the best global minimum.")
          self.add_item(
              section=section, title="coverage", datatype=float, default=68.75,
              min_max=(62.5, 100.0), rounding=2, fixed=True,
              info="How much of the extracted image to train on. A lower coverage will limit the model's "
                   "scope to a zoomed-in central area while higher amounts can include the entire face. "
                   "A trade-off exists between lower amounts given a bit more detail versus higher amounts "
                   "avoiding noticeable swap transitions. Sensible values to use are:"
                   "\n\t62.5%% spans from eyebrow to eyebrow."
                   "\n\t75.0%% spans from temple to temple."
                   "\n\t87.5%% spans from ear to ear."
                   "\n\t100.0%% is a mugshot.")
  
 
</s> remove                  "of the image.\n"
                 )
 </s> add                  "of the image.\n") </s> remove 
    def update_legacy_config(self):
        """ Update legacy state config files with the new loss formating
        """
        prior = "dssim_loss"
        new = "loss_function"
        if prior in self.config.keys() and new not in self.config.keys():
            self.config[new] = "ssim" if self.config[prior] is True else "mae"
            logger.debug("Updated config from older dssim format. New config loss function: %s",
                         self.config[new])
 </s> add  </s> remove     def get_loss_functions(self, side, predict, mask):
 </s> add     def get_loss_functions(self, mask):
            info="How much of the extracted image to train on. A lower coverage will limit the "
                 "model's scope to a zoomed-in central area while higher amounts can include the "
                 "entire face. A trade-off exists between lower amounts given more detail "
                 "versus higher amounts avoiding noticeable swap transitions. Sensible values to "
                 "use are:"
                   "and find the best global minimum.")
          self.add_item(
              section=section, title="coverage", datatype=float, default=68.75,
              min_max=(62.5, 100.0), rounding=2, fixed=True,
            info="How much of the extracted image to train on. A lower coverage will limit the "
                 "model's scope to a zoomed-in central area while higher amounts can include the "
                 "entire face. A trade-off exists between lower amounts given more detail "
                 "versus higher amounts avoiding noticeable swap transitions. Sensible values to "
                 "use are:"
            info="How much of the extracted image to train on. A lower coverage will limit the "
                 "model's scope to a zoomed-in central area while higher amounts can include the "
                 "entire face. A trade-off exists between lower amounts given more detail "
                 "versus higher amounts avoiding noticeable swap transitions. Sensible values to "
                 "use are:"
            info="How much of the extracted image to train on. A lower coverage will limit the "
                 "model's scope to a zoomed-in central area while higher amounts can include the "
                 "entire face. A trade-off exists between lower amounts given more detail "
                 "versus higher amounts avoiding noticeable swap transitions. Sensible values to "
                 "use are:"
            info="How much of the extracted image to train on. A lower coverage will limit the "
                 "model's scope to a zoomed-in central area while higher amounts can include the "
                 "entire face. A trade-off exists between lower amounts given more detail "
                 "versus higher amounts avoiding noticeable swap transitions. Sensible values to "
                 "use are:"
                   "\n\t62.5%% spans from eyebrow to eyebrow."
                   "\n\t75.0%% spans from temple to temple."
                   "\n\t87.5%% spans from ear to ear."
                   "\n\t100.0%% is a mugshot.")
  
keep keep keep keep replace replace replace replace keep keep keep keep keep
 Post PR Fixups

- train/_config.py: PEP8 Fixes. Slight description change on coverage
- models/_base.py:
   - Remove unused variables from Loss()
   - Delete legacy config items from state file
   - Save state file on Legacy update
   - PEP8
- Remove _defaults.py for models with no config options 
plugins/train/_config.py