          configfile = self.args.configfile if hasattr(self.args, "configfile") else None
          normalization = None if self.args.normalization == "none" else self.args.normalization
          self.extractor = Extractor(self.args.detector,
                                     self.args.aligner,
                                     configfile=configfile,
                                     multiprocess=not self.args.singleprocess,
                                     rotate_images=self.args.rotate_images,
                                     min_size=self.args.min_size,
 
</s> remove         retval = [samples[0:num_images]] if samples is not None else [self.samples[0:num_images]]
        if self.use_mask:
            retval.extend(tgt[0:num_images] for tgt in images)
        else:
            retval.extend(images[0:num_images])
 </s> add         masks = masks if masks is not None else self.masks
        samples = samples if samples is not None else self.samples
        retval = [samples[0:num_images], images[0:num_images], masks[0:num_images]] </s> remove                 padding)
 </s> add                 self.aligned["padding"]) </s> remove             src_face = detected_face.reference_face
 </s> add             src_face = detected_face.reference_face / np.array(255.0, dtype="float32") </s> remove     def compile_sample(self, batch_size, samples=None, images=None):
 </s> add     def compile_sample(self, batch_size, samples=None, images=None, masks=None): </s> remove         if self.use_mask:
            batch = [[batch["feed"], batch["masks"]], batch["targets"] + [batch["masks"]]]
        else:
            batch = [batch["feed"], batch["targets"]]
        self.generate_preview(do_preview)
        return batch
 </s> add         targets_use_mask = self.model.training_opts["replicate_input_mask"]
        model_inputs = batch["feed"] + batch["masks"] if self.use_mask else batch["feed"]
        model_targets = batch["targets"] + batch["masks"] if targets_use_mask else batch["targets"]
        return model_inputs, model_targets
                                   self.args.masker,
          configfile = self.args.configfile if hasattr(self.args, "configfile") else None
          normalization = None if self.args.normalization == "none" else self.args.normalization
          self.extractor = Extractor(self.args.detector,
                                     self.args.aligner,
                                   self.args.masker,
                                     configfile=configfile,
                                     multiprocess=not self.args.singleprocess,
                                     rotate_images=self.args.rotate_images,
                                     min_size=self.args.min_size,
keep keep keep add keep keep keep keep
 Smart Mask Exposure for Extraction & Training (#831)

Smart Masks - Initial Commit 
scripts/extract.py