本文档全面概述了 Stable Diffusion 中为减少滥用可能性和提高 AI 生成内容透明度而实施的安全机制。安全功能主要侧重于两个组成部分:安全检查器模块和隐形水印系统。有关模型限制和道德考量的详细信息,请参阅许可和使用限制。
Stable Diffusion 包含两个主要的安全功能,它们作为生成管道中的后处理组件。
这些安全功能已集成到参考采样脚本中,并作为图像生成管道的最后步骤。
安全检查器模块旨在降低模型生成和分发露骨或有害内容的概率。它充当一个过滤器,在最终输出图像交付给用户之前对其进行检查。
安全检查器在扩散模型生成原始图像之后,但在水印处理之前执行。如果内容被标记为潜在不当,则可以阻止其交付给用户。
安全检查器模块作为参考采样脚本中的一个组件实现,具体是在 txt2img.py 和 img2img.py 中。该实现旨在平衡内容安全与对合法用例的最小干扰。
使用参考脚本时,安全检查器会自动包含在管道中。安全检查器通过一个拉取请求 (PR #36) 添加到存储库中。
隐形水印功能将人类无法察觉的信息嵌入所有生成的图像中,以便以后识别 AI 生成的内容。随着 AI 生成的图像越来越逼真,这有助于提高透明度。
水印系统使用 invisible-watermark 库来嵌入对人眼不可见但可以通过专用算法检测到的数据。
来源:README.md90-91 scripts/tests/test_watermark.py1-14
该存储库包含一个用于水印检测的测试脚本,该脚本演示了如何验证图像是否由 Stable Diffusion 生成。
来源:scripts/tests/test_watermark.py1-14
水印检测使用 imwatermark 库中的 WatermarkDecoder 类,并使用特定的参数。
来源:scripts/tests/test_watermark.py6-14
两种安全功能都已自动集成到存储库中提供的参考采样脚本里。在使用 txt2img.py 或 img2img.py 时,这些安全机制会默认应用。
来源:README.md86-91 README.md176-177
为确保应用了安全检查器和水印功能,请使用存储库中提供的参考脚本。
python scripts/txt2img.py --prompt "your prompt here" --plms
python scripts/img2img.py --prompt "your prompt here" --init-img path/to/image.jpg --strength 0.8
这些脚本会在处理管道中自动包含这两个安全功能。
来源:README.md93-101 README.md176-177
要使用安全功能,请确保您已安装所有必需的依赖项。
pip install transformers==4.19.2 diffusers invisible-watermark
对于水印功能,特别需要 invisible-watermark 包。
来源:README.md36
需要注意的是,虽然这些安全功能有助于减轻某些风险,但它们并非完美的解决方案。
README 明确指出,商业部署应包含存储库中提供的功能之外的附加安全机制。