It would be easy to tell you that you're being superficial and that beauty shouldn't matter, because ultimately it is not the most important thing. However, that isn't helpful because ultimately what matters most is what you are willing to live with and what is important to you. As an outsider I can say whatever I want about you, but you're the one living this relationship and it needs to work for you. If her attractiveness matters a lot to you and you just try to ignore it because you don't want to seem like a jerk, what will happen in the long run? Do you think you'll keep feeling unsatisfied? Do you think you'd be tempted to cheat on her? I think you'd be more of an asshole if you get deeper involved and then break her heart by doing something stupid because you don't really want to be with her. Ideally you want to find someone who is a whole package for you. She is good on paper, but how do you really feel about this relationship? You say gross, and that could be a red flag. 

I don't necessarily think you should keep going further unless you really think your thoughts on this could change. Take a step back and think about how much value this has to you and if you could really see yourself being happy forever because this isn't something that is really going to change. I mean looks do technically change, but I don't necessarily think in a way that will make a big change for you. Some people find people more attractive the more they like them and get involved, but I'm not sure this will happen to you as you already know her well and have so many reasons to think she is a beautiful person. Put some thought into it. She is more likely to get hurt, the more her feelings develop which is something to take into account. 

I don't think you should tell her she is not attractive enough as that seems super painful and not quite necessary. Maybe a more generic, you just don't feel a romantic connection might be better. I don't want to encourage lying by any means, but it just seems harsh and like you'd sound like an asshole being really specifically honest. It does sound superficial and mean. Just a more generic truth I think.