Please note, that BPDU filter filters BPDUs in both directions. BPDU filter will prevent inbound and outbound BPDU but will remove portfast state on a port if a BPDU is received. Enabling BPDU filtering on an interface is the same as disabling spanning tree on it and can cause spanning-tree loops.
On the other hand, BPDU Guard keeps an eye open for any BPDU’s entering the interfaces that are enabled this feature. The port will disable as soon as the first BPDU is received, by shutting the port down (err-disabling it)