SYNTOLOGY HomeExplorerAtlasCodeMethodologyAboutDevelopersFeedPricing
Paper · 2411.03862 · NeurIPS · 2024

ROBIN: Robust and Invisible Watermarks for Diffusion Models with Adversarial Optimization

Yu Wu, Qian Wang, Huayang Huang

arXiv · PDF · Open in the Atlas

Code that ran

We lifted 16 functions out of this paper's own repositories and ran 5 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.

RepositoryRoleRan
Hannah1102/ROBIN canonical 5 of 16
FunctionStatusWhere it lives
approx_standard_normal_cdf Ran Hannah1102/ROBIN/guided_diffusion/losses.py
pointer only (licence: NONE) · get_code("cfd76fd0d89574a4")
convert_to_custom_text_state_dict Ran Hannah1102/ROBIN/open_clip/model.py
pointer only (licence: NONE) · get_code("f19962ebb134b3d7")
discretized_gaussian_log_likelihood Ran Hannah1102/ROBIN/guided_diffusion/losses.py
pointer only (licence: NONE) · get_code("cd33283d615fb3d7")
get_cast_dtype Ran Hannah1102/ROBIN/open_clip/model.py
pointer only (licence: NONE) · get_code("dcd422d66b0581d8")
normal_kl Ran Hannah1102/ROBIN/guided_diffusion/losses.py
pointer only (licence: NONE) · get_code("cf2798b666b231ca")
backward_ddim Not yet run Hannah1102/ROBIN/inverse_stable_diffusion.py
pointer only (licence: NONE) · get_code("b9d521d7021e46bb")
build_model_from_openai_state_dict Not yet run Hannah1102/ROBIN/open_clip/model.py
pointer only (licence: NONE) · get_code("57f1602ed20a9c21")
create_dataloader Not yet run Hannah1102/ROBIN/gen_watermark.py
pointer only (licence: NONE) · get_code("c00a1b3a3bfccabb")
forward_ddim Not yet run Hannah1102/ROBIN/inverse_stable_diffusion.py
pointer only (licence: NONE) · get_code("3b89ab9f937dccdd")
gather_features Not yet run Hannah1102/ROBIN/open_clip/loss.py
pointer only (licence: NONE) · get_code("ddcbd45e940484ee")
get_pred_ori Not yet run Hannah1102/ROBIN/stable_diffusion_robin.py
pointer only (licence: NONE) · get_code("8c930cf169a119b1")
hf_read_jsonlines Not yet run Hannah1102/ROBIN/io_utils.py
pointer only (licence: NONE) · get_code("075fbc6126eeefe6")
load_jsonlines Not yet run Hannah1102/ROBIN/io_utils.py
pointer only (licence: NONE) · get_code("81cef8be4a138b63")
prepare_inputs_for_generation Not yet run Hannah1102/ROBIN/open_clip/coca_model.py
pointer only (licence: NONE) · get_code("fb651d0a97fd4d3f")
register_pooler Not yet run Hannah1102/ROBIN/open_clip/hf_model.py
pointer only (licence: NONE) · get_code("2a377da4a76a2d44")
resolve_globs Not yet run Hannah1102/ROBIN/io_utils.py
pointer only (licence: NONE) · get_code("afbb28c04b32db08")

Repositories linked to this paper

Some links come from the archived Papers with Code dataset (CC BY-SA 4.0): attribution and licence.

Abstract

Watermarking generative content serves as a vital tool for authentication, ownership protection, and mitigation of potential misuse. Existing watermarking methods face the challenge of balancing robustness and concealment. They empirically inject a watermark that is both invisible and robust and passively achieve concealment by limiting the strength of the watermark, thus reducing the robustness. In this paper, we propose to explicitly introduce a watermark hiding process to actively achieve concealment, thus allowing the embedding of stronger watermarks. To be specific, we implant a robust watermark in an intermediate diffusion state and then guide the model to hide the watermark in the final generated image. We employ an adversarial optimization algorithm to produce the optimal hiding prompt guiding signal for each watermark. The prompt embedding is optimized to minimize artifacts in the generated image, while the watermark is optimized to achieve maximum strength. The watermark can be verified by reversing the generation process. Experiments on various diffusion models demonstrate the watermark remains verifiable even under significant image tampering and shows superior invisibility compared to other state-of-the-art robust watermarking methods. Code is available at https://github.com/Hannah1102/ROBIN.

For agents

The same record, over MCP at https://syntology.ai/mcp:

get_harvested_code_for_paper("2411.03862")
get_code_for_paper("2411.03862")
have("2411.03862")

Connect an agent — have() is free.