          model_filename = "Nirkin_500_softmax_v1.h5"
          super().__init__(git_model_id=git_model_id, model_filename=model_filename, **kwargs)
          self.name = "VGG Obstructed"
          self.input_size = 500
          self.vram = 3000  # TODO determine
          self.vram_warnings = 1024  # TODO determine
          self.vram_per_batch = 64  # TODO determine
          self.batchsize = self.config["batch-size"]
  
      def init_model(self):
          self.model = KSession(self.name, self.model_path, model_kwargs=dict())
          self.model.load_model()
 
</s> remove         self.vram = 2000  # TODO determine
        self.vram_warnings = 1024  # TODO determine
        self.vram_per_batch = 64  # TODO determine
 </s> add         self.vram = 3104
        self.vram_warnings = 1088  # at BS 1. OOMs at higher batchsizes
        self.vram_per_batch = 96 </s> remove         self.vram_warnings = 1024  # TODO determine
        self.vram_per_batch = 64  # TODO determine
 </s> add         self.vram_warnings = 256
        self.vram_per_batch = 48 </s> remove # TODO Cpu mode
 </s> add # TODO CPU mode </s> remove         # TODO Convert landmarks_xy to numpy arrays
 </s> add  </s> remove         self.input_size = 256  # Overide for model specific input_size
        self.blur_kernel = 5  # Overide for model specific blur_kernel size
        self.coverage_ratio = 1.0  # Overide for model specific coverage_ratio
 </s> add         self.input_size = 256  # Override for model specific input_size
        self.blur_kernel = 5  # Override for model specific blur_kernel size
        self.coverage_ratio = 1.0  # Override for model specific coverage_ratio
        self.vram = 3936
        self.vram_warnings = 1088  # at BS 1. OOMs at higher batchsizes
        self.vram_per_batch = 208
          model_filename = "Nirkin_500_softmax_v1.h5"
          super().__init__(git_model_id=git_model_id, model_filename=model_filename, **kwargs)
          self.name = "VGG Obstructed"
          self.input_size = 500
        self.vram = 3936
        self.vram_warnings = 1088  # at BS 1. OOMs at higher batchsizes
        self.vram_per_batch = 208
        self.vram = 3936
        self.vram_warnings = 1088  # at BS 1. OOMs at higher batchsizes
        self.vram_per_batch = 208
        self.vram = 3936
        self.vram_warnings = 1088  # at BS 1. OOMs at higher batchsizes
        self.vram_per_batch = 208
          self.batchsize = self.config["batch-size"]
  
      def init_model(self):
          self.model = KSession(self.name, self.model_path, model_kwargs=dict())
          self.model.load_model()
keep keep keep keep replace replace replace keep keep keep keep keep
 Smart Mask - Extract code review

- Lint simple_tests.py
- Only reformat alignments file if it exists otherwise change filename
- Update legacy alignments to new format at all stages
- faces_detect.Mask.from_dict - logging format fix
- convert.py fix otf for new pipeline
- cli.py - Add note that masks not used. Revert convert masks
- faces_detect.py - Revert non-extract code
- Add .p and .pickle extensions for serializer
- plugins/extract revert some changes
- scripts/fsmedia - Revert code changes
- Pipeline - cleanup
- Consistant alpha channel stripping (fixes single-process)
- Store landmarks as numpy array
- Code attribution
- Normalize feed face and reference face to 0.0 - 1.0 in convert
- Lock in mask VRAM sized
- Add documentation to plugin_loader
- Update alignments tool to work with new format 
plugins/extract/mask/vgg_obstructed.py