use python pillow for filtering

this will allow checkpoints to update even if there are no matching docs