                      "'/config/extract.ini' or 'Edit > Configure Extract Plugins':"
                      "\nL|'cv2-dnn': A CPU only extractor, is the least reliable, but uses least "
                      "resources and runs fast on CPU. Use this if not using a GPU and time is "
                      "important."
                      "\nL|'mtcnn': Fast on GPU, slow on CPU. Uses fewer resources than other GPU "
                      "detectors but can often return more false positives. NB: Runs on CPU for AMD "
                      "cards."
                      "\nL|'" + s3fd + "': Fast on GPU, slow on CPU. Can detect more faces and "
                      "fewer false positives than other GPU detectors, but is a lot more resource "
                      "intensive."})
          argument_list.append({
              "opts": ("-A", "--aligner"),
              "action": Radio,
 
</s> remove                     "\nL|'cv2-dnn': A CPU only extractor, is the least reliable, but uses least "
 </s> add                     "\nL|cv2-dnn: A CPU only extractor, is the least reliable, but uses least " </s> remove                     "\nL|'" + fan + "': Face Alignment Network. Best aligner. GPU "
 </s> add                     "\nL|fan: Face Alignment Network. Best aligner. GPU " </s> remove                     "\nL|'cv2-dnn': A cpu only CNN based landmark detector. Faster, less "
 </s> add                     "\nL|cv2-dnn: A cpu only CNN based landmark detector. Faster, less " </s> remove         datatype:  [required] A python type class. This limits the type of data that can be
                   provided in the .ini file and ensures that the value is returned in the
                   correct type to faceswap. Valid datatypes are: <class 'int'>, <class 'float'>,
                   <class 'str'>, <class 'bool'>.
        default:   [required] The default value for this option.
        info:      [required] A string describing what this option does.
        choices:   [optional] If this option's datatype is of <class 'str'> then valid
                   selections can be defined here. This validates the option and also enables
                   a combobox / radio option in the GUI.
        gui_radio: [optional] If <choices> are defined, this indicates that the GUI should use
                   radio buttons rather than a combobox to display this option.
        min_max:   [partial] For <class 'int'> and <class 'float'> datatypes this is required
                   otherwise it is ignored. Should be a tuple of min and max accepted values.
                   This is used for controlling the GUI slider range. Values are not enforced.
        rounding:  [partial] For <class 'int'> and <class 'float'> datatypes this is
                   required otherwise it is ignored. Used for the GUI slider. For floats, this
                   is the number of decimal places to display. For ints this is the step size.
        fixed:     [optional] [train only]. Training configurations are fixed when the model is
                   created, and then reloaded from the state file. Marking an item as fixed=False
                   indicates that this value can be changed for existing models, and will override
                   the value saved in the state file with the updated value in config. If not
                   provided this will default to True.
 </s> add     datatype:  [required] A python type class. This limits the type of data that can be
                provided in the .ini file and ensures that the value is returned in the
                correct type to faceswap. Valid datatypes are: <class 'int'>, <class 'float'>,
                <class 'str'>, <class 'bool'>.
    default:   [required] The default value for this option.
    info:      [required] A string describing what this option does.
    group:     [optional]. A group for grouping options together in the GUI. If not
                provided this will not group this option with any others.
    choices:   [optional] If this option's datatype is of <class 'str'> then valid
                selections can be defined here. This validates the option and also enables
                a combobox / radio option in the GUI.
    gui_radio: [optional] If <choices> are defined, this indicates that the GUI should use
                radio buttons rather than a combobox to display this option.
    min_max:   [partial] For <class 'int'> and <class 'float'> datatypes this is required
                otherwise it is ignored. Should be a tuple of min and max accepted values.
                This is used for controlling the GUI slider range. Values are not enforced.
    rounding:  [partial] For <class 'int'> and <class 'float'> datatypes this is
                required otherwise it is ignored. Used for the GUI slider. For floats, this
                is the number of decimal places to display. For ints this is the step size.
    fixed:     [optional] [train only]. Training configurations are fixed when the model is
                created, and then reloaded from the state file. Marking an item as fixed=False
                indicates that this value can be changed for existing models, and will override
                the value saved in the state file with the updated value in config. If not
                provided this will default to True. </s> remove         s3fd = "s3fd"
        fan = "fan"
        if backend == "cpu":
            default_detector = default_aligner = "cv2-dnn"
        else:
            default_detector = s3fd
            default_aligner = fan
        if backend == "amd":
            default_detector += "-amd"
            default_aligner += "-amd"
            s3fd += "-amd"
            fan += "-amd"

 </s> add 
                    "\nL|mtcnn: Fast on GPU, slow on CPU. Uses fewer resources than other GPU "
                    "detectors but can often return more false positives."
                    "\nL|s3fd: Fast on GPU, slow on CPU. Can detect more faces and "
                      "'/config/extract.ini' or 'Edit > Configure Extract Plugins':"
                      "\nL|'cv2-dnn': A CPU only extractor, is the least reliable, but uses least "
                      "resources and runs fast on CPU. Use this if not using a GPU and time is "
                      "important."
                    "\nL|mtcnn: Fast on GPU, slow on CPU. Uses fewer resources than other GPU "
                    "detectors but can often return more false positives."
                    "\nL|s3fd: Fast on GPU, slow on CPU. Can detect more faces and "
                    "\nL|mtcnn: Fast on GPU, slow on CPU. Uses fewer resources than other GPU "
                    "detectors but can often return more false positives."
                    "\nL|s3fd: Fast on GPU, slow on CPU. Can detect more faces and "
                    "\nL|mtcnn: Fast on GPU, slow on CPU. Uses fewer resources than other GPU "
                    "detectors but can often return more false positives."
                    "\nL|s3fd: Fast on GPU, slow on CPU. Can detect more faces and "
                    "\nL|mtcnn: Fast on GPU, slow on CPU. Uses fewer resources than other GPU "
                    "detectors but can often return more false positives."
                    "\nL|s3fd: Fast on GPU, slow on CPU. Can detect more faces and "
                      "fewer false positives than other GPU detectors, but is a lot more resource "
                      "intensive."})
          argument_list.append({
              "opts": ("-A", "--aligner"),
              "action": Radio,
keep keep keep keep replace replace replace replace keep keep keep keep keep
 De-Multiprocess Extract (#871)

* requirements.txt: - Pin opencv to 4.1.1 (fixes cv2-dnn error)

* lib.face_detect.DetectedFace: change LandmarksXY to landmarks_xy. Add left, right, top, bottom attributes

* lib.model.session: Session manager for loading models into different graphs (for Nvidia + CPU)

* plugins.extract._base: New parent class for all extract plugins

* plugins.extract.pipeline. Remove MultiProcessing. Dynamically limit batchsize for Nvidia cards. Remove loglevel input

* S3FD + FAN plugins. Standardise to Keras version for all backends

* Standardize all extract plugins to new threaded codebase

* Documentation. Start implementing Numpy style docstrings for Sphinx Documentation

* Remove s3fd_amd. Change convert OTF to expect DetectedFace object

* faces_detect - clean up and documentation

* Remove PoolProcess

* Migrate manual tool to new extract workflow

* Remove AMD specific extractor code from cli and plugins

* Sort tool to new extract workflow

* Remove multiprocessing from project

* Remove multiprocessing queues from QueueManager

* Remove multiprocessing support from logger

* Move face_filter to new extraction pipeline

* Alignments landmarksXY > landmarks_xy and legacy handling

* Intercept get_backend for sphinx doc build

# Add Sphinx documentation 
lib/cli.py