                  msg = ("Rejecting face as k-nearest neighbors classification is less than "
                         "0.5: {}".format(round(ratio, 2)))
                  retval = False
          else:
              msg = None
              retval = True
          if msg:
 
</s> remove         retval = extension in _image_extensions
 </s> add         retval = extension.lower() in _image_extensions </s> remove         cv2.fillConvexPoly(mask, hull, 1.0, lineType=cv2.LINE_AA)  # pylint: disable=no-member
 </s> add         cv2.fillConvexPoly(mask, hull, 255.0, lineType=cv2.LINE_AA)  # pylint: disable=no-member </s> remove             section=section, title="balance_1",  datatype=float, default=0.0, rounding=1,
 </s> add             section=section, title="balance_1", datatype=float, default=0.0, rounding=1, </s> remove                   "the image differently depending on which colorspace is selected:"
 </s> add                  "the image differently depending on which colorspace is selected:" </s> remove             section=section, title="balance_2",  datatype=float, default=0.0, rounding=1,
 </s> add             section=section, title="balance_2", datatype=float, default=0.0, rounding=1,
            else:
                msg = None
                retval = True

                  msg = ("Rejecting face as k-nearest neighbors classification is less than "
                         "0.5: {}".format(round(ratio, 2)))
                  retval = False
            else:
                msg = None
                retval = True
          else:
              msg = None
              retval = True
          if msg:
keep keep add keep keep keep keep
 Bugfixes

Facefilter - Variable reference before assignment
masks - Facehull initialize to 255.0 instead of 1.0
Alignments tool - Stop tool from ignoring upper case extensions
pep8 fixes 
lib/face_filter.py