 James Francos hair was dyed brown to give him some resemblance to  Willem Dafoe, his screen father. This decision was only made after  filming had begun. Indeed, in the scene where Harry visits Aunt May  in hospital, you can see that Francos hair is his usual black.