Here, we present two flattening methods with hard constraints. The hard constraints can be manually picked horizons or individual picks. Both methods require regularization in time (or depth) which carries along with it certain disadvantages as compared to unregularized methods. The largest disadvantage being that increasing regularization reduces local accuracy. In one method the hard constraints are implemented as model mask within the inversion. In the other method, the hard constraints are set as lower and upper bounds of a Limited-memory BFGS with Bounds (L-BFGS-B) algorithm Zhu et al. (1997). We envision a tool that interpretors can run once completely unconstrained, then quality control the results. The interpreter can then adjust some horizons and then run the flattening method again honoring their changes. The algorithm is fast enough so that this process can be repeated several times. In the future, computational and algorithmic improvements can result in a flattening method that is so efficient that the flattening process can be run between picks. This method also has the potential of combining other information into the flattening such as well log picks.