Would it be faster, for example, to create a dictionary of loaded portraits at run time and load them by reference?
ie
portraits = {"happy": preload("happyface.png"), "sad": preload("sadface.png")}
func set_expression(expression: string): texture_rect.texture = portraits[expression]