Gen Li, Ming-Ming Cheng, Ying Shan, Xintao Wang, Liangbin Xie, Chao Dong, Yuchao Gu
We lifted 15 functions out of this paper's own repositories and ran 9 of them in a sandbox. "Ran" means the function executed on a synthesized input and returned a value. It is not a reproduction of the paper's results.
| Repository | Role | Ran |
|---|---|---|
| tencentarc/vqfr | — | 9 of 15 |
| Function | Status | Where it lives |
|---|---|---|
| DCNv2Pack | Ran | tencentarc/vqfr/vqfr/archs/vqfrv1_arch.py pointer only (licence: NOASSERTION) · get_code("b39cff2183f6ab2c") |
| InpFeatConv | Ran | tencentarc/vqfr/vqfr/archs/vqfrv1_arch.py pointer only (licence: NOASSERTION) · get_code("7b32beb0e745f885") |
| ModulatedDeformConvFunction | Ran | tencentarc/vqfr/vqfr/archs/vqfrv1_arch.py pointer only (licence: NOASSERTION) · get_code("a9032a215717b327") |
| ModulatedDeformConvPack | Ran | tencentarc/vqfr/vqfr/archs/vqfrv1_arch.py pointer only (licence: NOASSERTION) · get_code("78978c97f6293a19") |
| ResnetBlock | Ran | tencentarc/vqfr/vqfr/archs/vqfrv1_arch.py pointer only (licence: NOASSERTION) · get_code("c7e6e97e1951732e") |
| UpDownSample | Ran | tencentarc/vqfr/vqfr/archs/vqfrv1_arch.py pointer only (licence: NOASSERTION) · get_code("0eb17d164a6a2ae8") |
| VQGANDecoder | Ran | tencentarc/vqfr/vqfr/archs/vqfrv1_arch.py pointer only (licence: NOASSERTION) · get_code("1c7b1a47e3f2e5da") |
| VQGANEncoder | Ran | tencentarc/vqfr/vqfr/archs/vqfrv1_arch.py pointer only (licence: NOASSERTION) · get_code("dbdd8d8a22505791") |
| get_root_logger | Ran | tencentarc/vqfr/vqfr/archs/vqfrv1_arch.py pointer only (licence: NOASSERTION) · get_code("56fbc8f16d71801d") |
| GeneralizedQuantizer | Not yet run | tencentarc/vqfr/vqfr/archs/vqfrv1_arch.py pointer only (licence: NOASSERTION) · get_code("954bcb0ab2aff115") |
| MainDecoder | Not yet run | tencentarc/vqfr/vqfr/archs/vqfrv1_arch.py pointer only (licence: NOASSERTION) · get_code("7d041853e05afba5") |
| ModulatedDeformConv | Not yet run | tencentarc/vqfr/vqfr/archs/vqfrv1_arch.py pointer only (licence: NOASSERTION) · get_code("9ad02ae1b92be076") |
| TextureWarpingModule | Not yet run | tencentarc/vqfr/vqfr/archs/vqfrv1_arch.py pointer only (licence: NOASSERTION) · get_code("34f1e2720da9e432") |
| VQFRv1 | Not yet run | tencentarc/vqfr/vqfr/archs/vqfrv1_arch.py pointer only (licence: NOASSERTION) · get_code("a13b8d4c1525ed99") |
| build_quantizer | Not yet run | tencentarc/vqfr/vqfr/archs/vqfrv1_arch.py pointer only (licence: NOASSERTION) · get_code("c48bd8317e02c6f5") |
Some links come from the archived Papers with Code dataset (CC BY-SA 4.0): attribution and licence.
Although generative facial prior and geometric prior have recently demonstrated high-quality results for blind face restoration, producing fine-grained facial details faithful to inputs remains a challenging problem. Motivated by the classical dictionary-based methods and the recent vector quantization (VQ) technique, we propose a VQ-based face restoration method -VQFR. VQFR takes advantage of high-quality low-level feature banks extracted from high-quality faces and can thus help recover realistic facial details. However, the simple application of the VQ codebook cannot achieve good results with faithful details and identity preservation. Therefore, we further introduce two special network designs. 1). We first investigate the compression patch size in the VQ codebook and find that the VQ codebook designed with a proper compression patch size is crucial to balance the quality and fidelity. 2). To further fuse low-level features from inputs while not "contaminating" the realistic details generated from the VQ codebook, we proposed a parallel decoder consisting of a texture decoder and a main decoder. Those two decoders then interact with a texture warping module with deformable convolution. Equipped with the VQ codebook as a facial detail dictionary and the parallel decoder design, the proposed VQFR can largely enhance the restored quality of facial details while keeping the fidelity to previous methods.
The same record, over MCP at https://syntology.ai/mcp:
get_harvested_code_for_paper("2205.06803")
get_code_for_paper("2205.06803")
have("2205.06803")
Connect an agent — have() is free.