Shot entirely from the lead character's point-of-view, Frank Zito (Elijah Wood) is a mentally disturbed young man who has taken over his family's mannequin sales business after the recent death of his mother Angela (America Olivo), who also moonlighted as a prostitute. Frank has frequent childhood flashbacks of seeing his mother bring home clients or being taken out with her to turn tricks. This has left Frank unable to enter into meaningful relationships with women, and his sexual impulses tend to manifest themselves as violent urges that Frank externalizes as his mother's will. Struggling to come to grips with his mother's mistreatment and abuse of him, and spurred by memories of his mother brushing her long black hair before going out at night, Frank stalks, murders, and scalps a young street walker one night, attaching her hair to a mannequin that he then keeps in his bedroom.
Attempting to enter into a normal relationship with a woman, Frank joins an online dating site, where he befriends a local girl named Lucie (Megan M. Duffy). The two eventually meet for what turns out to be a successful date. The pair return to Lucie's apartment, where she attempts to seduce the virginal Frank. However, Frank, feeling overwhelmed by homicidal impulses, insists that he likes Lucie and that he must leave before something bad happens. Lucie, mistaking Frank's panic for nervousness, becomes sexually aggressive and begins performing fellatio. Though he attempts to control himself, Frank eventually strangles her with his bare hands and then scalps Lucie. Frank takes her hair back to his apartment, where he attaches it to another mannequin.
One morning, Frank awakens to find a young woman named Anna (Nora Arnezeder) taking photos of the mannequins in his storefront. Frank invites her into his store, where she becomes taken with his work restoring antique department store mannequins. The two develop a friendship, with Frank agreeing to help Anna put together an art exhibit using his mannequins. As the two spend more time together, Frank begins to fall in love with Anna, and becomes more aggressive about trying to control his urges to kill, attempting to take pharmaceuticals to quiet his impulses. Nonetheless, one night he follows a woman home from her dance studio and stabs her to death in a garage parking lot. Once again, he scalps her and attaches her hair to a mannequin in his bedroom.
As the date of the exhibit opening approaches, Frank learns that Anna has a boyfriend, sending him into a jealous and emotional tailspin. At the opening of the exhibit, Frank meets Anna's boyfriend, Jason (Sammi Rotibi), in which both men take an instant disliking to each other. Frank also meets Anna's mentor, art director Rita (Jan Broberg), an older woman who encourages Anna to leave Los Angeles to seek more opportunities back in Europe. In a drunken state, Rita later mocks Frank, first sexually propositioning him and then accusing him of being a homosexual and teasing him for his interest in mannequins.
After the exhibition, Frank follows Rita home, subduing her in her bathtub and then hog-tying her on her bed. Frank begins addressing Rita as his mother, expressing his rage for her treatment of him and articulating his feelings of being unloved, unwanted, and abandoned. Remembering a night he begged his mother to stay at home with him, only to be left alone while she went out to prostitute herself, Frank flies into a rage and scalps Rita while she is still alive (very gory and disturbing scene).
Several nights later, Frank calls Anna, who tearfully tells him of Rita's murder and of a fight she had with Jason, resulting in their breakup. Frank comes to Anna's apartment, where his attempts to comfort her lead to them nearly having sex. Anna expresses feelings of guilt for Rita having been murdered following her show, which Frank dismisses by saying that Rita lived nearby and that she knew the risks of her own neighborhood. Anna immediately becomes suspicious that Frank knows where Rita lived. Attempting to cover for himself, Frank inadvertently lets slip further details of Rita's apartment, and Anna comes to realize that Frank is her murderer. The two fight, with Anna stabbing Frank through the hand with a butcher knife before locking herself in her bedroom. Anna's neighbor, Martin (Joshua De La Garza), after hearing the commotion, breaks into the apartment to save her, only for Frank to maim him with a meat cleaver. Martin gets back up only to be knocked back down again and killed. Breaking down Anna's bathroom door, Frank puts her into a choke hold and knocks her unconscious.
At his apartment, Frank attempts to remove Anna from the back of his car. When she regaines consciousness, Anna ambushes Frank and stabs him in the stomach with a piece of rebar attached to a mannequin hand Frank had stored in his back seat. Anna flees down the road and is picked up by a passing pedestrian, who panics at the sight of Frank and runs him down in his car. In the process of hitting Frank, the driver loses control and crashes into a bridge gate, flinging Anna through the windshield. A bloodied Frank hobbles to the mortally wounded Anna and gorly scalps her as she dies.
Frank returns to his apartment, attaching Anna's hair to a mannequin dressed in a bridal gown. In great pain from his injuries, Frank collapses on his bed and suffers hallucinations of the mannequins transforming into his victims and tearing his body apart, finally ripping off his face to reveal a mannequin head. Before he dies, Frank sees Anna (clad in a wedding dress) lower her veil and turn her back on him.
Later that day, a police SWAT team breaks into Frank's apartment and finds him dead in his closet.