In this section we describe the network architectures in depth. Our methods architecture can be broken down into four distinct parts: degradation encoder, feature extractor, geometry encoder, and prediction network. The feature extractor is implemented using the ProSR architecture. The degradation encoder, geometry encoder, and prediction network are implemented as MLPs. A detailed breakdown is shown in Table 1. In total KARL c and KARL k consist of 2909212 and 2914866 parameters respectively.