{"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/pixel-level-and-semantic-level-adjustable","title":"Pixel-level and Semantic-level Adjustable Super-resolution: A Dual-LoRA Approach","arxiv_id":"2412.03017","date":"2024-12-04","proceeding":"CVPR 2025 1","authors":["Lingchen Sun","Rongyuan Wu","Zhiyuan Ma","Shuaizheng Liu","Qiaosi Yi","Lei Zhang"],"abstract":"Diffusion prior-based methods have shown impressive results in real-world image super-resolution (SR). However, most existing methods entangle pixel-level and semantic-level SR objectives in the training process, struggling to balance pixel-wise fidelity and perceptual quality. Meanwhile, users have varying preferences on SR results, thus it is demanded to develop an adjustable SR model that can be tailored to different fidelity-perception preferences during inference without re-training. We present Pixel-level and Semantic-level Adjustable SR (PiSA-SR), which learns two LoRA modules upon the pre-trained stable-diffusion (SD) model to achieve improved and adjustable SR results. We first formulate the SD-based SR problem as learning the residual between the low-quality input and the high-quality output, then show that the learning objective can be decoupled into two distinct LoRA weight spaces: one is characterized by the $\\ell_2$-loss for pixel-level regression, and another is characterized by the LPIPS and classifier score distillation losses to extract semantic information from pre-trained classification and SD models. In its default setting, PiSA-SR can be performed in a single diffusion step, achieving leading real-world SR results in both quality and efficiency. By introducing two adjustable guidance scales on the two LoRA modules to control the strengths of pixel-wise fidelity and semantic-level details during inference, PiSASR can offer flexible SR results according to user preference without re-training. Codes and models can be found at https://github.com/csslc/PiSA-SR.","url_abs":"https://arxiv.org/abs/2412.03017v1","url_pdf":"https://arxiv.org/pdf/2412.03017v1.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":"pixel-level-and-semantic-level-adjustable","repo_url":"https://github.com/csslc/pisa-sr","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}},{"paper_slug":"pixel-level-and-semantic-level-adjustable","repo_url":"https://github.com/cswry/osediff","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"image-super-resolution","task_name":"Image Super-Resolution"},{"task_slug":"super-resolution","task_name":"Super-Resolution"}],"methods":[{"method_slug":"diffusion","method_name":"Diffusion"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2412.03017","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2412.03017"}},"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/csslc/pisa-sr","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/cswry/osediff","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"ran_honours":2,"ran_fixture":1,"ran_draft_wrong":5,"ran_violates":1,"unverified":15},"by_repo_kind":{"official":{"samples":11,"ran":4,"repositories":1},"listed":{"samples":13,"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":11,"samples":[{"code_sha256_prefix":"8bc0bbc72282d3f8","entry":"parse_float_list","repo":"cswry/osediff","repo_kind":"listed","path":"train_osediff.py","file_url":"https://github.com/cswry/osediff/blob/HEAD/train_osediff.py","link_basis":"plan_row","language":"python","status":"ran_honours","verification_level":2,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"8bc0bbc72282d3f8"}},{"code_sha256_prefix":"b2d5ad9f0fef3e14","entry":"parse_int_list","repo":"cswry/osediff","repo_kind":"listed","path":"train_osediff.py","file_url":"https://github.com/cswry/osediff/blob/HEAD/train_osediff.py","link_basis":"plan_row","language":"python","status":"ran_honours","verification_level":2,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"b2d5ad9f0fef3e14"}},{"code_sha256_prefix":"144d10b49baeb8a6","entry":"window_partition","repo":"csslc/pisa-sr","repo_kind":"official","path":"ram/models/swin_transformer.py","file_url":"https://github.com/csslc/pisa-sr/blob/HEAD/ram/models/swin_transformer.py","link_basis":"harvester_set","language":"python","status":"ran_fixture","verification_level":2,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"144d10b49baeb8a6"}},{"code_sha256_prefix":"4c8c3d07d7aa35cb","entry":"calc_mean_std","repo":"cswry/osediff","repo_kind":"listed","path":"my_utils/wavelet_color_fix.py","file_url":"https://github.com/cswry/osediff/blob/HEAD/my_utils/wavelet_color_fix.py","link_basis":"harvester_set","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":"4c8c3d07d7aa35cb"}},{"code_sha256_prefix":"76a017e88938061d","entry":"inplace_nonlinearity","repo":"cswry/osediff","repo_kind":"listed","path":"my_utils/vaehook.py","file_url":"https://github.com/cswry/osediff/blob/HEAD/my_utils/vaehook.py","link_basis":"harvester_set","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":"76a017e88938061d"}},{"code_sha256_prefix":"4d1d9c47619920ba","entry":"is_url","repo":"csslc/pisa-sr","repo_kind":"official","path":"ram/models/utils.py","file_url":"https://github.com/csslc/pisa-sr/blob/HEAD/ram/models/utils.py","link_basis":"plan_row","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"4d1d9c47619920ba"}},{"code_sha256_prefix":"fa3b3cc4f07c4a0f","entry":"parse_str_list","repo":"cswry/osediff","repo_kind":"listed","path":"train_osediff.py","file_url":"https://github.com/cswry/osediff/blob/HEAD/train_osediff.py","link_basis":"plan_row","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"fa3b3cc4f07c4a0f"}},{"code_sha256_prefix":"e1cf6464da33ec0c","entry":"read_json","repo":"csslc/pisa-sr","repo_kind":"official","path":"ram/models/utils.py","file_url":"https://github.com/csslc/pisa-sr/blob/HEAD/ram/models/utils.py","link_basis":"plan_row","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"e1cf6464da33ec0c"}},{"code_sha256_prefix":"61bf152e6a42a184","entry":"window_reverse","repo":"csslc/pisa-sr","repo_kind":"official","path":"ram/models/swin_transformer.py","file_url":"https://github.com/csslc/pisa-sr/blob/HEAD/ram/models/swin_transformer.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"61bf152e6a42a184"}},{"code_sha256_prefix":"d9c806cdedc044ef","entry":"adain_color_fix","repo":"cswry/osediff","repo_kind":"listed","path":"my_utils/wavelet_color_fix.py","file_url":"https://github.com/cswry/osediff/blob/HEAD/my_utils/wavelet_color_fix.py","link_basis":"harvester_set","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":"d9c806cdedc044ef"}},{"code_sha256_prefix":"174fab602409ffc2","entry":"attn_forward","repo":"cswry/osediff","repo_kind":"listed","path":"my_utils/vaehook.py","file_url":"https://github.com/cswry/osediff/blob/HEAD/my_utils/vaehook.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":"174fab602409ffc2"}},{"code_sha256_prefix":"08822a10826682a0","entry":"attn_forward_new","repo":"cswry/osediff","repo_kind":"listed","path":"my_utils/vaehook.py","file_url":"https://github.com/cswry/osediff/blob/HEAD/my_utils/vaehook.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":"08822a10826682a0"}},{"code_sha256_prefix":"a1316b96fc0dc988","entry":"cond_cast_float","repo":"cswry/osediff","repo_kind":"listed","path":"my_utils/devices.py","file_url":"https://github.com/cswry/osediff/blob/HEAD/my_utils/devices.py","link_basis":"harvester_set","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":"a1316b96fc0dc988"}},{"code_sha256_prefix":"6e1abd17fa1ce3b2","entry":"cond_cast_unet","repo":"cswry/osediff","repo_kind":"listed","path":"my_utils/devices.py","file_url":"https://github.com/cswry/osediff/blob/HEAD/my_utils/devices.py","link_basis":"harvester_set","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":"6e1abd17fa1ce3b2"}},{"code_sha256_prefix":"f837c334ddfa8af4","entry":"create_vit","repo":"csslc/pisa-sr","repo_kind":"official","path":"ram/models/utils.py","file_url":"https://github.com/csslc/pisa-sr/blob/HEAD/ram/models/utils.py","link_basis":"plan_row","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"f837c334ddfa8af4"}},{"code_sha256_prefix":"6145c0b4a5012336","entry":"find_filepath","repo":"csslc/pisa-sr","repo_kind":"official","path":"pisasr.py","file_url":"https://github.com/csslc/pisa-sr/blob/HEAD/pisasr.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"6145c0b4a5012336"}},{"code_sha256_prefix":"a861df384ac42eeb","entry":"get_device_for","repo":"cswry/osediff","repo_kind":"listed","path":"my_utils/devices.py","file_url":"https://github.com/cswry/osediff/blob/HEAD/my_utils/devices.py","link_basis":"harvester_set","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":"a861df384ac42eeb"}},{"code_sha256_prefix":"7ea931fd6b54f5cf","entry":"inference_ram","repo":"csslc/pisa-sr","repo_kind":"official","path":"ram/inference.py","file_url":"https://github.com/csslc/pisa-sr/blob/HEAD/ram/inference.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"7ea931fd6b54f5cf"}},{"code_sha256_prefix":"cc4cd40ee7f7cce8","entry":"inference_ram_openset","repo":"csslc/pisa-sr","repo_kind":"official","path":"ram/inference.py","file_url":"https://github.com/csslc/pisa-sr/blob/HEAD/ram/inference.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"cc4cd40ee7f7cce8"}},{"code_sha256_prefix":"3d89c9c107a089ad","entry":"inference_tag2text","repo":"csslc/pisa-sr","repo_kind":"official","path":"ram/inference.py","file_url":"https://github.com/csslc/pisa-sr/blob/HEAD/ram/inference.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"3d89c9c107a089ad"}},{"code_sha256_prefix":"199b2766250bd139","entry":"interpolate_relative_pos_embed","repo":"csslc/pisa-sr","repo_kind":"official","path":"ram/models/swin_transformer.py","file_url":"https://github.com/csslc/pisa-sr/blob/HEAD/ram/models/swin_transformer.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"199b2766250bd139"}},{"code_sha256_prefix":"fce64ea4638101fc","entry":"opt_parse","repo":"cswry/osediff","repo_kind":"listed","path":"dataloaders/codeformer.py","file_url":"https://github.com/cswry/osediff/blob/HEAD/dataloaders/codeformer.py","link_basis":"harvester_set","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":"fce64ea4638101fc"}},{"code_sha256_prefix":"4fb85a5d5907d6dd","entry":"read_yaml","repo":"csslc/pisa-sr","repo_kind":"official","path":"pisasr.py","file_url":"https://github.com/csslc/pisa-sr/blob/HEAD/pisasr.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"4fb85a5d5907d6dd"}},{"code_sha256_prefix":"2353cdd05b03300f","entry":"wavelet_color_fix","repo":"cswry/osediff","repo_kind":"listed","path":"my_utils/wavelet_color_fix.py","file_url":"https://github.com/cswry/osediff/blob/HEAD/my_utils/wavelet_color_fix.py","link_basis":"harvester_set","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":"2353cdd05b03300f"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}