granite model with upload