i use a few red eye tetras. they only will eat the babies. they are slow fish and relatively inexpensive ( about a dollar and change each). i originally bought them because they look really stunning to me, then they helped control my platy populations. they never even look at the adults and aare usually timid and hide. angelfish get too big for a 20 gallon and eventually become big enough to take on adult guppies. catfish will eat whatever will fit in their mouths. look at different mid sized tetras and rasboras since they normally eat baby fish and other aquatic fast moving prey.