This paper presents two fast cycle canceling algorithms for the submodular flow problem. The first uses an assignment problem whose optimal solution identifies most negative node-disjoint cycles in an auxiliary network. Canceling these cycles lexicographically makes it possible to obtain an optimal submodular flow in O(n 4 h log(nC)) time, which almost matches the current fastest weakly polynomial time for submodular flow (where n is the number of nodes, h is the time for computing an exchange capacity, and C is the maximum absolute value of arc costs). The second algorithm generalizes Goldberg's cycle canceling algorithm for min cost flow to submodular flow to also get a running time of O(n 4 h log(nC)). We show how to modify these algorithms to make them strongly polynomial, with running times of O(n 6 h log n), which matches the fastest strongly polynomial time bound for submodular flow. We also show how to extend both algorithms to solve submodular flow with separable convex objectives.