1. Cannibalism, for Lecter, is a situational compulsion, not his default setting.
This one seems to be eluding many fans, but Hannibal Lecter does not kill indiscriminately. Lecter has a strict moral code that, when violated by an individual, puts that person on his shit list. This is almost in the same moral vein as Dexter Morgan. Granted, this is not for every situation, and Lecter is not a vigilante, but it applies to his murders more often than not. As seen in the show, Lecter keeps the business cards of people he finds offensive next to his recipe box.
2. Hannibal is able to differentiate between ‘people’ and ‘food’, especially regarding those he cares for.
When Hannibal was obsessed/in love with Clarice Starling, he did not want to eat her. No, instead he assaulted and killed someone that was ‘rude’ to her and tried to feed her that individual’s brain while the man was still alive. Hannibal tried to take care of her, because Clarice was something he cherished. He taunted Clarice, but never intended to consume her.
3. (Not) everything is people.
Hannibal went TWO YEARS without killing anyone as the Chesapeake Ripper. That means, logically, in the context of the show, that Hannibal went without human meat for at least two years…or he at least made Miriam’s body last that long.
4. Hannibal may be a cannibal, but he has good taste.
Human meat is like animal meat. What this means is that there are parts you do not want to eat, even as a psychopathic connoisseur. A sautéed phallus is not going to taste like liver, or heart, or kidney. It just won’t. This also goes for things like lips, nipples, testicles, eyes, ears, and various other ‘romantic’ body parts Hannibal seems to fetishize in a growing number of fics. Use the show as a guide. What has Hannibal harvested/cooked in the show already? Whatever answer you come up with, use that. We’ve been told Hannibal’s favorite foods, let’s appreciate that accordingly.
Now, fabulous Hannibal fandom, have fun and go to town!