              The type of extractor to return the plugins for
          add_none: bool, optional
              Append "none" to the list of returned plugins. Default: False
          Returns
          -------
          list:
              A list of the available extractor plugin names for the given type
          """
          extractpath = os.path.join(os.path.dirname(__file__),
 
</s> remove     def get_available_extractors(extractor_type, add_none=False):
 </s> add     def get_available_extractors(extractor_type, add_none=False, extend_plugin=False): </s> remove         extractors = sorted(item.name.replace(".py", "").replace("_", "-")
                            for item in os.scandir(extractpath)
                            if not item.name.startswith("_")
                            and not item.name.endswith("defaults.py")
                            and item.name.endswith(".py"))
 </s> add         extractors = [item.name.replace(".py", "").replace("_", "-")
                      for item in os.scandir(extractpath)
                      if not item.name.startswith("_")
                      and not item.name.endswith("defaults.py")
                      and item.name.endswith(".py")]
        if extend_plugin and extractor_type == "mask" and "bisenet-fp" in extractors:
            extractors.remove("bisenet-fp")
            extractors.extend(["bisenet-fp-face", "bisenet-fp-head"])

        extractors = sorted(extractors) </s> remove #: lib/cli/args.py:444
 </s> add #: lib/cli/args.py:447 </s> remove #: lib/cli/args.py:456
 </s> add #: lib/cli/args.py:459 </s> remove #: lib/cli/args.py:468 lib/cli/args.py:478 lib/cli/args.py:491
#: lib/cli/args.py:505 lib/cli/args.py:737 lib/cli/args.py:751
#: lib/cli/args.py:764 lib/cli/args.py:778
 </s> add #: lib/cli/args.py:471 lib/cli/args.py:481 lib/cli/args.py:494
#: lib/cli/args.py:508 lib/cli/args.py:749 lib/cli/args.py:763
#: lib/cli/args.py:776 lib/cli/args.py:790
        extend_plugin: bool, optional
            Some plugins have configuration options that mean that multiple 'pseudo-plugins'
            can be generated based on their settings. An example of this is the bisenet-fp mask
            which, whilst selected as 'bisenet-fp' can be stored as 'bisenet-fp-face' and
            'bisenet-fp-head' depending on whether hair has been included in the mask or not.
            ``True`` will generate each pseudo-plugin, ``False`` will generate the original
            plugin name. Default: ``False``

              The type of extractor to return the plugins for
          add_none: bool, optional
              Append "none" to the list of returned plugins. Default: False
        extend_plugin: bool, optional
            Some plugins have configuration options that mean that multiple 'pseudo-plugins'
            can be generated based on their settings. An example of this is the bisenet-fp mask
            which, whilst selected as 'bisenet-fp' can be stored as 'bisenet-fp-face' and
            'bisenet-fp-head' depending on whether hair has been included in the mask or not.
            ``True`` will generate each pseudo-plugin, ``False`` will generate the original
            plugin name. Default: ``False``

          Returns
          -------
          list:
              A list of the available extractor plugin names for the given type
          """
          extractpath = os.path.join(os.path.dirname(__file__),
keep keep add keep keep keep keep keep keep
 Masks updates
  - Add head centering support to training
  - Update helptext/tooltips 
plugins/plugin_loader.py