Having dealt with bouts of low self-esteem and having a similar situation with my husband, I can relate to what his girlfriend is going through. And I think that we all agree that this is really more her problem than his, in that she needs to learn to communicate her feelings and also to build her self esteem. But I don't think the advice really helps the OP. The best he can do is sit her down and talk all of this out. Not necessarily specifically about what he said, but the larger issues that are impacting this. But he has to try to be calm and non-confrontational about it all, so that she doesn't feel the need to put up her defenses. Depending on how long they've been together and how they both feel about the relationship as a whole, they could also explore the idea of couples counseling (as opposed to suggesting just counseling for her so she doesn't feel ganged up on). Or he could wait some number of years for her to grow out of it, as age does seem to help with self esteem issues... though, that could be an awful long, painful time to wait...
Side note, my husband when we were dating, told me he liked girls with pierced noses. He also has a thing for Indian girls. When he first told me about the pierced nose thing, I was offended and hurt by it because it was not something I was about to run out and do for him, and he knew it was not something I would do. I don't think I made a huge fuss about it, but I can understand the OP's girlfriend's feelings. We can't always help the way we feel, and honestly, I feel bad for her to feel so badly about herself. No one should have to feel that way. But in recent times, my husband has come up with a pretty safe response for any question I may ask... "Do you think that girl is attractive?" "Not as attractive as you!!" with a hug and a kiss. It, at the absolute very least, always brings a smile to my face