# A Multi-Scale Deep Back-Projection Backbone for Face Super-Resolution with Diffusion Models
## 4 Base Networks
### Deep Back-Projection Networks  
DBPN utilizes iterative up- and down-sampling layers to achieve SISR reconstruction.  
We noticed that DBPN has strong pre- and post-text connections: unlike the U-Net that concatenates feedback after some iterations, the alternating up and down structure of DBPN links the high-frequency and low-frequency information of the image during the iteration process, providing some error feedback mechanism.  
We extend the idea of U-Net and used the DBPN modules to transfer information from the shallow to the deep part of the network. To avoid affecting the distribution of noise in the forward and backward process of the diffusion model, we reversed the order of ascending and descending in the original DBPN. This helps prevent the introduction of new noise due to image distortion at the beginning due to zooming in and out, and also reduces the overall image size, making fewer parameters to be trained and reducing the computational cost. The operation flow of the single DBPN module is depicted in Figure 3:  
We denote the basic channel number, the scaling factor, the transition feature number, and the total number of stages as \(N_{BC}\), \(s\), \(F\), and \(NS\), respectively. The whole SR process consists of a feature extraction module, a Scale \(s\) module (including numerous multiple stages of down-sampling and up-sampling), and a reconstruction module.  
First, the image passes through the feature extraction stage, where it uses convolution to extract \(F\) and \(N_{BC}\) features sequentially. Next, the feature will be subjected to continuous up-and-down sampling layers. These are layers that alternately up-sample and down-sample the feature by using convolution operations. This allows the model to learn from multiple scales and refine the output progressively. For example, if \(NS\) = 1, an \(h\times h\) feature map is down-sampled to a size of \((h/s)\times(h/s)\) through convolution, and then up-sampled back to its original size through another convolution. This is repeated for multiple stages, with the number of output features remaining constant at \(N_{BC}\), but the number of input features increases to \(N_{BC}\times(1+NS)\) at each stage. Finally, a transition convolution converts the output to three channels.  
The \(s\) in the Scale \(s\) module determines the size of \(h/s\) shown in Figure 3. If \(s\) is 2, the size of the image will be transformed between \(h/2\) and \(h\). We can vary the length of the Scale \(s\) module to trade-off between feature richness and computational cost. In the BPSR3 proposed in Section 4.3.3 of this paper, we took three modules with \(s\) being 2, 4, and 8, respectively, and each module has six stages.  
The DownBlock and UpBlock modules in DBPN, used for scaling, are mainly composed of convolutions. In Section 4.3, we provide a detailed description of these modules, combined with temporal encoding using the diffusion model.  
We also tried to use the single DBPN directly as the base network of the diffusion model, but found an obvious failure phenomenon; this paper will not delve into this unsuccessful approach. In addition, in Section 5.3, we set up an ablation study to discuss the necessity of using multi-scale DBPN.