{"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/gaussian-shading-provable-performance","title":"Gaussian Shading: Provable Performance-Lossless Image Watermarking for Diffusion Models","arxiv_id":"2404.04956","date":"2024-04-07","proceeding":"CVPR 2024 1","authors":["Zijin Yang","Kai Zeng","Kejiang Chen","Han Fang","Weiming Zhang","Nenghai Yu"],"abstract":"Ethical concerns surrounding copyright protection and inappropriate content generation pose challenges for the practical implementation of diffusion models. One effective solution involves watermarking the generated images. However, existing methods often compromise the model performance or require additional training, which is undesirable for operators and users. To address this issue, we propose Gaussian Shading, a diffusion model watermarking technique that is both performance-lossless and training-free, while serving the dual purpose of copyright protection and tracing of offending content. Our watermark embedding is free of model parameter modifications and thus is plug-and-play. We map the watermark to latent representations following a standard Gaussian distribution, which is indistinguishable from latent representations obtained from the non-watermarked diffusion model. Therefore we can achieve watermark embedding with lossless performance, for which we also provide theoretical proof. Furthermore, since the watermark is intricately linked with image semantics, it exhibits resilience to lossy processing and erasure attempts. The watermark can be extracted by Denoising Diffusion Implicit Models (DDIM) inversion and inverse sampling. We evaluate Gaussian Shading on multiple versions of Stable Diffusion, and the results demonstrate that Gaussian Shading not only is performance-lossless but also outperforms existing methods in terms of robustness.","url_abs":"https://arxiv.org/abs/2404.04956v3","url_pdf":"https://arxiv.org/pdf/2404.04956v3.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":"gaussian-shading-provable-performance","repo_url":"https://github.com/bsmhmmlf/Gaussian-Shading","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"denoising","task_name":"Denoising"}],"methods":[{"method_slug":"diffusion","method_name":"Diffusion"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2404.04956","atlas_url":"https://app.syntology.ai/?focus=2404.04956","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2404.04956"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+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/bsmhmmlf/Gaussian-Shading","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran_violates":1,"ran_draft_wrong":1,"ran":3,"unverified":9},"by_repo_kind":{"official":{"samples":14,"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":"f19962ebb134b3d7","entry":"convert_to_custom_text_state_dict","repo":"bsmhmmlf/Gaussian-Shading","repo_kind":"official","path":"open_clip/model.py","file_url":"https://github.com/bsmhmmlf/Gaussian-Shading/blob/HEAD/open_clip/model.py","link_basis":"harvester_set","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"f19962ebb134b3d7"}},{"code_sha256_prefix":"dcd422d66b0581d8","entry":"get_cast_dtype","repo":"bsmhmmlf/Gaussian-Shading","repo_kind":"official","path":"open_clip/model.py","file_url":"https://github.com/bsmhmmlf/Gaussian-Shading/blob/HEAD/open_clip/model.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"dcd422d66b0581d8"}},{"code_sha256_prefix":"5fa7b8bcd038a010","entry":"image_distortion","repo":"bsmhmmlf/Gaussian-Shading","repo_kind":"official","path":"image_utils.py","file_url":"https://github.com/bsmhmmlf/Gaussian-Shading/blob/HEAD/image_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"5fa7b8bcd038a010"}},{"code_sha256_prefix":"82db872730553ad6","entry":"latents_to_imgs","repo":"bsmhmmlf/Gaussian-Shading","repo_kind":"official","path":"image_utils.py","file_url":"https://github.com/bsmhmmlf/Gaussian-Shading/blob/HEAD/image_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"82db872730553ad6"}},{"code_sha256_prefix":"f2eed600b6113eb3","entry":"transform_img","repo":"bsmhmmlf/Gaussian-Shading","repo_kind":"official","path":"image_utils.py","file_url":"https://github.com/bsmhmmlf/Gaussian-Shading/blob/HEAD/image_utils.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"f2eed600b6113eb3"}},{"code_sha256_prefix":"b9d521d7021e46bb","entry":"backward_ddim","repo":"bsmhmmlf/Gaussian-Shading","repo_kind":"official","path":"inverse_stable_diffusion.py","file_url":"https://github.com/bsmhmmlf/Gaussian-Shading/blob/HEAD/inverse_stable_diffusion.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"b9d521d7021e46bb"}},{"code_sha256_prefix":"57f1602ed20a9c21","entry":"build_model_from_openai_state_dict","repo":"bsmhmmlf/Gaussian-Shading","repo_kind":"official","path":"open_clip/model.py","file_url":"https://github.com/bsmhmmlf/Gaussian-Shading/blob/HEAD/open_clip/model.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"57f1602ed20a9c21"}},{"code_sha256_prefix":"3b89ab9f937dccdd","entry":"forward_ddim","repo":"bsmhmmlf/Gaussian-Shading","repo_kind":"official","path":"inverse_stable_diffusion.py","file_url":"https://github.com/bsmhmmlf/Gaussian-Shading/blob/HEAD/inverse_stable_diffusion.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"3b89ab9f937dccdd"}},{"code_sha256_prefix":"ddcbd45e940484ee","entry":"gather_features","repo":"bsmhmmlf/Gaussian-Shading","repo_kind":"official","path":"open_clip/loss.py","file_url":"https://github.com/bsmhmmlf/Gaussian-Shading/blob/HEAD/open_clip/loss.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"ddcbd45e940484ee"}},{"code_sha256_prefix":"075fbc6126eeefe6","entry":"hf_read_jsonlines","repo":"bsmhmmlf/Gaussian-Shading","repo_kind":"official","path":"io_utils.py","file_url":"https://github.com/bsmhmmlf/Gaussian-Shading/blob/HEAD/io_utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"075fbc6126eeefe6"}},{"code_sha256_prefix":"81cef8be4a138b63","entry":"load_jsonlines","repo":"bsmhmmlf/Gaussian-Shading","repo_kind":"official","path":"io_utils.py","file_url":"https://github.com/bsmhmmlf/Gaussian-Shading/blob/HEAD/io_utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"81cef8be4a138b63"}},{"code_sha256_prefix":"fb651d0a97fd4d3f","entry":"prepare_inputs_for_generation","repo":"bsmhmmlf/Gaussian-Shading","repo_kind":"official","path":"open_clip/coca_model.py","file_url":"https://github.com/bsmhmmlf/Gaussian-Shading/blob/HEAD/open_clip/coca_model.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"fb651d0a97fd4d3f"}},{"code_sha256_prefix":"2a377da4a76a2d44","entry":"register_pooler","repo":"bsmhmmlf/Gaussian-Shading","repo_kind":"official","path":"open_clip/hf_model.py","file_url":"https://github.com/bsmhmmlf/Gaussian-Shading/blob/HEAD/open_clip/hf_model.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"2a377da4a76a2d44"}},{"code_sha256_prefix":"afbb28c04b32db08","entry":"resolve_globs","repo":"bsmhmmlf/Gaussian-Shading","repo_kind":"official","path":"io_utils.py","file_url":"https://github.com/bsmhmmlf/Gaussian-Shading/blob/HEAD/io_utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"afbb28c04b32db08"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}