Put the beans in a large bowl, cover with cold water and let soak overnight.
Drain and rinse the beans, then put them in a large pot. Cover the beans with water and add the chili powder, cumin, paprika, cayenne, bacon, garlic, bay leaves, onion, and some salt and pepper. Bring to a boil, then reduce the heat to low and cook until the beans are tender, 2 to 3 ½ hours.