{"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/efficient-video-face-enhancement-with","title":"Efficient Video Face Enhancement with Enhanced Spatial-Temporal Consistency","arxiv_id":"2411.16468","date":"2024-11-25","proceeding":"CVPR 2025 1","authors":["Yutong Wang","Jiajie Teng","Jiajiong Cao","Yuming Li","Chenguang Ma","Hongteng Xu","Dixin Luo"],"abstract":"As a very common type of video, face videos often appear in movies, talk shows, live broadcasts, and other scenes. Real-world online videos are often plagued by degradations such as blurring and quantization noise, due to the high compression ratio caused by high communication costs and limited transmission bandwidth. These degradations have a particularly serious impact on face videos because the human visual system is highly sensitive to facial details. Despite the significant advancement in video face enhancement, current methods still suffer from $i)$ long processing time and $ii)$ inconsistent spatial-temporal visual effects (e.g., flickering). This study proposes a novel and efficient blind video face enhancement method to overcome the above two challenges, restoring high-quality videos from their compressed low-quality versions with an effective de-flickering mechanism. In particular, the proposed method develops upon a 3D-VQGAN backbone associated with spatial-temporal codebooks recording high-quality portrait features and residual-based temporal information. We develop a two-stage learning framework for the model. In Stage \\Rmnum{1}, we learn the model with a regularizer mitigating the codebook collapse problem. In Stage \\Rmnum{2}, we learn two transformers to lookup code from the codebooks and further update the encoder of low-quality videos. Experiments conducted on the VFHQ-Test dataset demonstrate that our method surpasses the current state-of-the-art blind face video restoration and de-flickering methods on both efficiency and effectiveness. Code is available at \\url{https://github.com/Dixin-Lab/BFVR-STC}.","url_abs":"https://arxiv.org/abs/2411.16468v1","url_pdf":"https://arxiv.org/pdf/2411.16468v1.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":"efficient-video-face-enhancement-with","repo_url":"https://github.com/dixin-lab/bfvr-stc","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[{"task_slug":"quantization","task_name":"Quantization"},{"task_slug":"video-restoration","task_name":"Video Restoration"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2411.16468","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2411.16468"}},"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/dixin-lab/bfvr-stc","reach":{"status":"ok"}}],"summary":{"ran":1,"ran_fixture":1,"unverified":9},"by_repo_kind":{"official":{"samples":11,"ran":2,"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":"cd569444547de84f","entry":"get_position_from_periods","repo":"dixin-lab/bfvr-stc","repo_kind":"official","path":"basicsr/models/lr_scheduler.py","file_url":"https://github.com/dixin-lab/bfvr-stc/blob/HEAD/basicsr/models/lr_scheduler.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"cd569444547de84f"}},{"code_sha256_prefix":"33b7df59642bf5f9","entry":"trans","repo":"dixin-lab/bfvr-stc","repo_kind":"official","path":"evaluation/eval_fvd.py","file_url":"https://github.com/dixin-lab/bfvr-stc/blob/HEAD/evaluation/eval_fvd.py","link_basis":"plan_row","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"33b7df59642bf5f9"}},{"code_sha256_prefix":"31e3948691d112c1","entry":"calculate_lpips","repo":"dixin-lab/bfvr-stc","repo_kind":"official","path":"evaluation/eval_lpips.py","file_url":"https://github.com/dixin-lab/bfvr-stc/blob/HEAD/evaluation/eval_lpips.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":"31e3948691d112c1"}},{"code_sha256_prefix":"797aac3fdfb626d1","entry":"dis","repo":"dixin-lab/bfvr-stc","repo_kind":"official","path":"evaluation/eval_akd.py","file_url":"https://github.com/dixin-lab/bfvr-stc/blob/HEAD/evaluation/eval_akd.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":"797aac3fdfb626d1"}},{"code_sha256_prefix":"fdeafa15924ed78d","entry":"read_frames","repo":"dixin-lab/bfvr-stc","repo_kind":"official","path":"evaluation/eval_akd.py","file_url":"https://github.com/dixin-lab/bfvr-stc/blob/HEAD/evaluation/eval_akd.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":"fdeafa15924ed78d"}},{"code_sha256_prefix":"dd252abc15bf1b2c","entry":"read_frames","repo":"dixin-lab/bfvr-stc","repo_kind":"official","path":"evaluation/eval_ids.py","file_url":"https://github.com/dixin-lab/bfvr-stc/blob/HEAD/evaluation/eval_ids.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":"dd252abc15bf1b2c"}},{"code_sha256_prefix":"53149f3fc5ac882b","entry":"read_in_video_tensor","repo":"dixin-lab/bfvr-stc","repo_kind":"official","path":"evaluation/eval_fvd.py","file_url":"https://github.com/dixin-lab/bfvr-stc/blob/HEAD/evaluation/eval_fvd.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":"53149f3fc5ac882b"}},{"code_sha256_prefix":"a648a03a952822c0","entry":"reduce_loss","repo":"dixin-lab/bfvr-stc","repo_kind":"official","path":"basicsr/losses/loss_util.py","file_url":"https://github.com/dixin-lab/bfvr-stc/blob/HEAD/basicsr/losses/loss_util.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":"a648a03a952822c0"}},{"code_sha256_prefix":"7da8de5b6482e251","entry":"trans2","repo":"dixin-lab/bfvr-stc","repo_kind":"official","path":"evaluation/eval_fvd.py","file_url":"https://github.com/dixin-lab/bfvr-stc/blob/HEAD/evaluation/eval_fvd.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":"7da8de5b6482e251"}},{"code_sha256_prefix":"1ba39317ea81871a","entry":"weight_reduce_loss","repo":"dixin-lab/bfvr-stc","repo_kind":"official","path":"basicsr/losses/loss_util.py","file_url":"https://github.com/dixin-lab/bfvr-stc/blob/HEAD/basicsr/losses/loss_util.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":"1ba39317ea81871a"}},{"code_sha256_prefix":"cf63f8afc13f62a7","entry":"weighted_loss","repo":"dixin-lab/bfvr-stc","repo_kind":"official","path":"basicsr/losses/loss_util.py","file_url":"https://github.com/dixin-lab/bfvr-stc/blob/HEAD/basicsr/losses/loss_util.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":"cf63f8afc13f62a7"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}