PIRenderer: Controllable Portrait Image Generation via Semantic Neural Rendering