Stupid is what you think it is. Silly is softer, gentler, almost playfully friendly, at times. A few cultures have words like this, some don't. If you have been forgetful, you can say "I'm silly. I forgot to order the tickets." If your friend has been joking around, you can say: "You're so silly. But seriously, let's get to work." So, silly is rarely seen as insulting, only as a temporary state of mind. Stupid, on the other hand, means a low IQ and no ability to overcome this problem.