Rinse beans and remove any particles or bad beans; place in a saucepan and cover with 2 inches water. Add celery and bay leaves. Bring to a boil and cook over high heat, adding more water as necessary, for 10 minutes. Drain beans and remove and discard celery.
Meanwhile, heat oil in a large skillet over medium high heat. Add onion, bell pepper, and carrot; saute until onions are fairly translucent, about 5 minutes. Add garlic, cumin, and chile flakes; continue to cook until heated through and fragrant, 1 to 2 minutes. Remove from the heat.
Place tomatoes and water in a slow cooker. Add onion mixture, beans, and bay leaves.
Cook until beans are tender enough that you can easily smash one between your tongue and the top of your mouth, on Low for 6 hours or High for 4 hours. Add vinegar. Taste to adjust seasonings and add hot pepper sauce.