{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/hierarchical-conditional-flow-a-unified","title":"Hierarchical Conditional Flow: A Unified Framework for Image Super-Resolution and Image Rescaling","arxiv_id":"2108.05301","date":"2021-08-11","proceeding":"ICCV 2021 10","authors":["Jingyun Liang","Andreas Lugmayr","Kai Zhang","Martin Danelljan","Luc van Gool","Radu Timofte"],"abstract":"Normalizing flows have recently demonstrated promising results for low-level vision tasks. For image super-resolution (SR), it learns to predict diverse photo-realistic high-resolution (HR) images from the low-resolution (LR) image rather than learning a deterministic mapping. For image rescaling, it achieves high accuracy by jointly modelling the downscaling and upscaling processes. While existing approaches employ specialized techniques for these two tasks, we set out to unify them in a single formulation. In this paper, we propose the hierarchical conditional flow (HCFlow) as a unified framework for image SR and image rescaling. More specifically, HCFlow learns a bijective mapping between HR and LR image pairs by modelling the distribution of the LR image and the rest high-frequency component simultaneously. In particular, the high-frequency component is conditional on the LR image in a hierarchical manner. To further enhance the performance, other losses such as perceptual loss and GAN loss are combined with the commonly used negative log-likelihood loss in training. Extensive experiments on general image SR, face image SR and image rescaling have demonstrated that the proposed HCFlow achieves state-of-the-art performance in terms of both quantitative metrics and visual quality.","url_abs":"https://arxiv.org/abs/2108.05301v1","url_pdf":"https://arxiv.org/pdf/2108.05301v1.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"hierarchical-conditional-flow-a-unified","repo_url":"https://github.com/jingyunliang/hcflow","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"image-rescaling","task_name":"Image Rescaling"},{"task_slug":"image-super-resolution","task_name":"Image Super-Resolution"},{"task_slug":"super-resolution","task_name":"Super-Resolution"},{"task_slug":"video-super-resolution","task_name":"Video Super-Resolution"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/image-rescaling-on-div2k-val-q30-4x","task":"Image Rescaling","dataset":"DIV2K val-q30-4x","model":"HCFlow","rank_in_archive_order":4,"of":4,"metrics":{"PSNR":"25.89","SSIM":"0.6838"},"uses_additional_data":false},{"leaderboard":"/sota/image-rescaling-on-div2k-val-q50-4x","task":"Image Rescaling","dataset":"DIV2K val-q50-4x","model":"HCFlow","rank_in_archive_order":4,"of":4,"metrics":{"PSNR":"26.38","SSIM":"0.7029"},"uses_additional_data":false},{"leaderboard":"/sota/image-rescaling-on-div2k-val-q70-4x","task":"Image Rescaling","dataset":"DIV2K val-q70-4x","model":"HCFlow","rank_in_archive_order":4,"of":4,"metrics":{"PSNR":"26.79","SSIM":"0.7204"},"uses_additional_data":false},{"leaderboard":"/sota/image-rescaling-on-div2k-val-q90-4x","task":"Image Rescaling","dataset":"DIV2K val-q90-4x","model":"HCFlow","rank_in_archive_order":4,"of":4,"metrics":{"PSNR":"27.41","SSIM":"0.7485"},"uses_additional_data":false},{"leaderboard":"/sota/video-super-resolution-on-msu-vsr-benchmark","task":"Video Super-Resolution","dataset":"MSU Video Super Resolution Benchmark: Detail Restoration","model":"HCFlow","rank_in_archive_order":25,"of":32,"metrics":{"1 - LPIPS":"0.923","ERQAv1.0":"0.713","FPS":"0.066","PSNR":"26.067","QRCRv1.0":"0","SSIM":"0.791","Subjective score":"4.262"},"uses_additional_data":false}],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=2108.05301","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2108.05301"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/jingyunliang/hcflow","reach":null}],"summary":{"ran":3,"ran_fixture":1,"ran_draft_wrong":1,"unverified":2},"by_repo_kind":{"official":{"samples":7,"ran":5,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"9048ddc0aef90852","entry":"GaussianDiag","repo":"jingyunliang/hcflow","repo_kind":"official","path":"codes/models/modules/HCFlowNet_SR_arch.py","file_url":"https://github.com/jingyunliang/hcflow/blob/HEAD/codes/models/modules/HCFlowNet_SR_arch.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"9048ddc0aef90852"}},{"code_sha256_prefix":"cf0f8f38c39cc77f","entry":"Quantization","repo":"jingyunliang/hcflow","repo_kind":"official","path":"codes/models/modules/HCFlowNet_SR_arch.py","file_url":"https://github.com/jingyunliang/hcflow/blob/HEAD/codes/models/modules/HCFlowNet_SR_arch.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"cf0f8f38c39cc77f"}},{"code_sha256_prefix":"e5786fcae2918427","entry":"mean","repo":"jingyunliang/hcflow","repo_kind":"official","path":"codes/models/modules/HCFlowNet_SR_arch.py","file_url":"https://github.com/jingyunliang/hcflow/blob/HEAD/codes/models/modules/HCFlowNet_SR_arch.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"e5786fcae2918427"}},{"code_sha256_prefix":"908afed5427b63e8","entry":"pixels","repo":"jingyunliang/hcflow","repo_kind":"official","path":"codes/models/modules/HCFlowNet_SR_arch.py","file_url":"https://github.com/jingyunliang/hcflow/blob/HEAD/codes/models/modules/HCFlowNet_SR_arch.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"908afed5427b63e8"}},{"code_sha256_prefix":"2a514ab150c75974","entry":"sum","repo":"jingyunliang/hcflow","repo_kind":"official","path":"codes/models/modules/HCFlowNet_SR_arch.py","file_url":"https://github.com/jingyunliang/hcflow/blob/HEAD/codes/models/modules/HCFlowNet_SR_arch.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"2a514ab150c75974"}},{"code_sha256_prefix":"f1cf0e4b5695123c","entry":"HCFlowNet_SR","repo":"jingyunliang/hcflow","repo_kind":"official","path":"codes/models/modules/HCFlowNet_SR_arch.py","file_url":"https://github.com/jingyunliang/hcflow/blob/HEAD/codes/models/modules/HCFlowNet_SR_arch.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"f1cf0e4b5695123c"}},{"code_sha256_prefix":"32d7d7fbcdeee35b","entry":"Quant","repo":"jingyunliang/hcflow","repo_kind":"official","path":"codes/models/modules/HCFlowNet_SR_arch.py","file_url":"https://github.com/jingyunliang/hcflow/blob/HEAD/codes/models/modules/HCFlowNet_SR_arch.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"32d7d7fbcdeee35b"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}