← 返回 2026-08-19

DiSCO:基于分布引导对比提示优化的文生图安全防御 DiSCO: Defending text-to-image generation through distribution-guided contrastive prompt optimization

Tong Zhang, Motasem Alfarra, Carlos Hinojosa, Christos Louizos, Bernard Ghanem 📅 2026-08-17 👍 20 2026-08-24 18:30
对抗防御 文本到图像生成

黑盒免训练提示级防御DiSCO,将攻击成功率从23.6%降至2.4%

前置知识

CLIP 嵌入空间

CLIP 是对比学习训练出的图文对齐模型,含文本与图像两个编码器,把输入映射到同一向量空间。冻结的 CLIP 图像编码器 $\phi(\cdot)$ 将图片编码为向量,向量间余弦相似度 $\cos(u,v)$ 度量语义接近程度。

DiSCO 的核心打分函数 $J(\hat{p})$ 完全在冻结 CLIP 嵌入空间中计算,理解这个空间是读懂对比目标设计的前提。

束搜索

一种启发式序列搜索算法:每一步对所有候选的下一 token 打分,只保留最优的 $K$ 条路径(束宽)继续扩展,最终输出得分最高的完整序列,是贪心搜索与穷举之间的折中方案。

DiSCO 用束搜索逐 token 扩展提示后缀,候选保留与最终提示 $p^*$ 的选择都依赖它,束宽 $K$ 与后缀长度 $T$ 是论文重点消融的关键超参。

攻击成功率(ASR)

评估 T2I 模型安全性的核心指标:在 $|Q|$ 条对抗提示下,被图像安全分类器(NudeNet、Q16)判为不安全的生成图占比 $ASR = \frac{1}{|Q|}\sum_{q \in Q} \mathbb{I}[\text{Safe}_{\text{img}}(x_q)=0]$,数值越低越安全。

论文全部主实验(表1、表2)与消融(表3–6)都以 ASR 的下降幅度来量化 DiSCO 的防御效果。

良性对抗提示问题

指提示 $p'$ 在语言层面被判定安全($\text{Safe}_{\text{text}}(p')=1$),但生成模型 $G$ 以不低于 0.5 的概率输出不安全图像。它说明仅靠文本空间检查(如 LLM 重写)不足以保证视觉输出安全。

这是论文形式化定义的核心失败模式,DiSCO 的动机、分布对齐视角与按需触发策略全部由此展开。

研究动机

文生图模型(Stable Diffusion、SD 3、Flux)在带来强大创作能力的同时暴露出严重安全隐患:模型可能生成暴力、裸露等 NSFW 内容,红队对抗攻击进一步放大风险——从黑盒的 Ring-A-Bell、SneakyPrompt,到白盒的 UnlearnDiffAtk、MMA-Diffusion,再到生成人类可读对抗提示的 LLM 攻击 APT,手段不断升级。现有防御各有硬伤:白盒方法(ESD 微调、RECE 权重编辑、SLD-Max 推理干预)依赖模型参数与内部表示,根本无法扩展到闭源专有模型;轻量的 LLM 提示重写(VALOR、PromptSafe)虽能中和显式恶意意图,却存在作者形式化命名的良性对抗问题——重写后的提示 $p'$ 在语言层面完全安全,却因模型自身习得的数据分布仍以高概率触发不安全图像,纯文本空间的防御对此天然失效。

本文的目标是本文目标是构建一个严格黑盒、免训练、即插即用的提示级防御模块:不修改模型参数、不做微调、不访问任何内部表示(梯度、注意力图、中间激活),仅通过查询目标模型获取生成图像,就把良性对抗提示引导到安全生成区域。形式化上,防御是映射 $D: \mathcal{P} \to \mathcal{P}$,将(可能已重写的)提示 $p'$ 变换为优化提示 $p^* = D(p')$ 后再交给未改动的生成器 $G$,即 $x^* \sim G(p^*)$;优化目标为最小化不安全图像概率 $\mathbb{E}_{p'}[P_{x \sim G(D(p'))}[\text{Safe}_{\text{img}}(x)=0]]$,同时以语义保真约束 $\text{Sem}(D(p'), p') \geq \tau$(如 CLIP Score)保证不偏离用户意图。该模块还要能叠加到 SLD-Max、SAFREE、RECE、ESD 等现有防御之上,并横跨 UNet 与 DiT 两类架构普遍适用。

与已有工作不同的是,作者的独特切入点是把提示级防御重新表述为分布对齐问题:与其在文本空间判断提示是否安全,或钻进模型内部修改生成过程,不如直接优化提示,使生成结果从模型自身习得输出分布的不安全区域移向安全区域。这一视角的关键洞察是:良性对抗提示之所以危险,正是因为安全性取决于提示与 $G$ 视觉输出分布的对齐程度,而非文本本身。由此衍生的技术选择也与众不同——参考信号完全来自目标模型自己:用 I2P 数据集的非对抗提示查询 $G$ 构建该模型专属的安全/不安全图像池,池子天然反映模型自己的视觉流形,既不需要外部有害语料库,也不需要任何内部访问,这与传统固定语料遗忘或单侧打分方法形成鲜明对比。

核心方法

DiSCO 的直觉是:既然良性对抗提示会把生成拉向模型分布的不安全区域,那就给提示追加一个优化过的后缀,把生成结果推回安全区域,而推的方向由模型自己生成的安全/不安全图像分布给出。技术上,给定待防御提示 $p'$,DiSCO 用轻量后缀生成语言模型(LLaMA-3-8B)自回归地逐 token 扩展后缀,配合束搜索(束宽 $K=4$、后缀长度 $T=16$、分支因子 $b=4$)。每个候选提示 $\hat{p}$ 需要实际查询目标模型生成图像 $\hat{x} \sim G(\hat{p})$,用冻结 CLIP 图像编码器 $\phi(\cdot)$ 嵌入后按对比分数 $J(\hat{p})$ 排序,保留 top-$K$ 候选;每步从两个图像池各随机采样 $R=8$ 张参考图以引入分布多样性。$T$ 步后取 $p^* = \arg\max_{\hat{p} \in \mathcal{B}} J(\hat{p})$。整个过程不需要任何训练,本质上是反复查询与打分的搜索过程。

核心创新是分布引导的对比打分函数。每步从安全池与不安全池各采样 $R$ 张参考图,计算 $J(\hat{p}) = \frac{1}{R}\sum_{x_i^+ \in \tilde{\mathcal{P}}_{\text{safe}}} \cos(\phi(\hat{x}), \phi(x_i^+)) - \frac{1}{R}\sum_{x_j^- \in \tilde{\mathcal{P}}_{\text{unsafe}}} \cos(\phi(\hat{x}), \phi(x_j^-))$,同时吸引生成图靠近安全分布、远离不安全分布,在 CLIP 嵌入空间形成单池打分给不出的方向性梯度。与已有方法的本质区别有三:白盒防御改模型内部,DiSCO 只改输入提示且严格黑盒;LLM 重写只在文本空间操作、看不见视觉分布,DiSCO 用目标模型自己的输出图像构成反馈闭环;表5 消融显示对比目标平均 ASR 15.6%,优于安全池单侧的 21.6% 与不安全池单侧的 20.6%。每步随机重采样参考还带来动态多样性,避免固定语料'模型见过什么就只有什么'的静态遗忘困境。

方法步骤详情

方法流程分四步。第一步构建参考池:用 I2P 非对抗提示查询目标模型 $G$ 生成图像,仅当 NudeNet 与 Q16 一致判安全才进安全池,一致判不安全才进不安全池,分歧样本丢弃;SD v1.4 由此得到 2613 张安全图与 84 张不安全图。第二步束搜索扩展:从 $p'$ 出发,第 $t$ 步($t \leq T=16$)对束中每个候选提示,用 LLaMA-3-8B 以分支因子 $b=4$ 提出 next-token 续写,逐个查询 $G$ 生成图像。第三步对比打分与剪枝:嵌入生成图 $\hat{x}$,每步从两池各随机采样 $R=8$ 张参考图,按 $J(\hat{p})$ 排序保留 top-$K$($K=4$)候选。第四步输出:$T$ 步后选 $p^* = \arg\max_{\hat{p} \in \mathcal{B}} J(\hat{p})$ 送入未改动的 $G$。部署时按需触发:先正常生成,仅当文本安全提示仍产出不安全图像(良性对抗情形)才调用 DiSCO,安全提示原样通过,从而控制 $T \times b \times K = 256$ 次候选生成的额外开销。

技术新颖性

技术新颖性体现在四个层面。形式化层面:首次定义良性对抗判据 $\text{Safe}_{\text{text}}(p')=1$ 且 $P_{x \sim G(p')}[\text{Safe}_{\text{img}}(x)=0] \geq 0.5$,点明文本安全与视觉安全之间的系统性鸿沟。信号来源层面:用目标模型自产图像构建双参考池,经 NudeNet 与 Q16 双分类器共识过滤保证参考无歧义,且池子反映模型自身视觉流形,无需外部有害数据或内部访问。优化层面:把提示后缀搜索表述为对比目标下的束搜索,每步随机重采样 $R$ 张参考让优化器看到两分布的不同视图——表3 证明 $R=8$ 优于更小的 $R=4$ 和更大的 $R=16,32$(后者退化为静态全池)。部署层面:作为严格黑盒、架构无关、免训练的前置模块,可叠加到无防御系统(SD 1.4/2.0、SD 3、Flux)与四类现有防御之上,32 个系统-攻击组合全部获得一致性改进,这在文献中相当少见。

DiSCO 方法总览:左侧为模型专属的安全/不安全参考池构建,右侧为经 CLIP 嵌入空间对比束搜索扩展后缀提示的过程
Figure 2: DiSCO 方法总览:左侧为模型专属的安全/不安全参考池构建,右侧为经 CLIP 嵌入空间对比束搜索扩展后缀提示的过程
DiSCO 完整流程伪代码(附录 A.1)
Algorithm 1: DiSCO 完整流程伪代码(附录 A.1)

实验结果

主实验覆盖 4 个攻击、8 个系统与 5 个随机种子。无防御模型上 DiSCO 大幅压低 NudeNet ASR:Ring-A-Bell 下 SD 1.4 从 84.2% 降至 7.8%,SD 2.0 从 75.4% 降至 3.9%,Flux 从 89.7% 降至 5.0%;平均降幅 SD 1.4 达 42.6 点、Flux 33.0 点、SD 2.0 26.5 点、SD 3 11.6 点。叠加防御时 32 个防御-攻击-检测器组合全部改进:SLD-Max+DiSCO 平均降 21.1 点(Ring-A-Bell 下 44.4%→0.3%),SAFREE+DiSCO 降 20.8 点(54.1%→0.4%),ESD 与 RECE 分别降 8.0 与 5.8 点(RECE 在 Ring-A-Bell 下达 0.0%);四防御平均 NudeNet 降 13.9 点、Q16 降 6.0 点,总体平均 ASR 从 23.6% 降至 2.4%(NudeNet)、8.3% 降至 1.7%(Q16)。质量上 CLIP 对齐全面上升(+0.036 至 +0.086),ImageReward 提升 +0.85 至 +2.22。消融确认对比目标(15.6%)优于单池变体,$K=4, T=16$ 为最佳权衡,参考池缩到 25%(653/21 张)性能几乎不变。

四种对抗攻击下 NudeNet(NN)与 Q16 测得的 ASR(%,5 种子均值±标准差),越低越好
Table 1: 四种对抗攻击下 NudeNet(NN)与 Q16 测得的 ASR(%,5 种子均值±标准差),越低越好
生成质量与平均 ASR 降幅:CLIP 与 ImageReward(IR)以原始提示为参照在 5 种子上测量(越高越好),ΔASR 为四种攻击的平均变化
Table 2: 生成质量与平均 ASR 降幅:CLIP 与 ImageReward(IR)以原始提示为参照在 5 种子上测量(越高越好),ΔASR 为四种攻击的平均变化
SD v1.4 上参考池采样规模 R 的消融,ASR(%)仅在基线防御后仍生成有害内容的提示上计算,R=8 为默认设置
Table 3: SD v1.4 上参考池采样规模 R 的消融,ASR(%)仅在基线防御后仍生成有害内容的提示上计算,R=8 为默认设置
SD v1.4 上 NudeNet ASR(%)随参考池规模的变化,池规模以(安全/有害)图像数表示
Table 4: SD v1.4 上 NudeNet ASR(%)随参考池规模的变化,池规模以(安全/有害)图像数表示
SD v1.4 上打分目标的消融:完整对比目标与 safe-only、unsafe-only 单池变体的平均 NudeNet ASR(%)对比
Table 5: SD v1.4 上打分目标的消融:完整对比目标与 safe-only、unsafe-only 单池变体的平均 NudeNet ASR(%)对比
SD v1.4 上束搜索参数消融:各 $K$ 与 $T$ 组合的平均 NudeNet ASR(↓)与 CLIP(↑),默认设置 $K=4, T=16$
Table 6: SD v1.4 上束搜索参数消融:各 $K$ 与 $T$ 组合的平均 NudeNet ASR(↓)与 CLIP(↑),默认设置 $K=4, T=16$
定性结果:每行对应一种攻击方法,虚线左侧为无防御模型(SD v2.0、Flux、SD 3),右侧为 SD v1.4 上的有防御模型(SLD-Max、SAFREE、RECE、ESD),每对中左图无 DiSCO、右图有 DiSCO
Figure 3: 定性结果:每行对应一种攻击方法,虚线左侧为无防御模型(SD v2.0、Flux、SD 3),右侧为 SD v1.4 上的有防御模型(SLD-Max、SAFREE、RECE、ESD),每对中左图无 DiSCO、右图有 DiSCO
四种攻击(Ring-A-Bell、UnlearnDiffAtk、MMA-Diffusion、P4D)下施加 DiSCO 前后(Base 与 + DiSCO)的 ASR(%,越低越好),每组右侧为有防御模型、左侧为无防御骨干
Figure 4: 四种攻击(Ring-A-Bell、UnlearnDiffAtk、MMA-Diffusion、P4D)下施加 DiSCO 前后(Base 与 + DiSCO)的 ASR(%,越低越好),每组右侧为有防御模型、左侧为无防御骨干
查看结构化数据
任务指标本文基线提升
无防御模型对抗提示防御(Ring-A-Bell 攻击,NudeNet 检测) NudeNet ASR (%) SD 1.4 + DiSCO 7.8;SD 2.0 3.9;Flux 5.0 无防御基线:SD 1.4 84.2;SD 2.0 75.4;Flux 89.7 相对下降约 90–95%,平均降幅 26.5–42.6 点
叠加现有防御的鲁棒性(4 攻击 × 4 防御平均,5 种子) 平均 NudeNet ASR 降幅(百分点) SLD-Max −21.1;SAFREE −20.8;ESD −8.0;RECE −5.8 各原版防御(SLD-Max、SAFREE、RECE、ESD) 四防御平均降 13.9 点,Q16 平均降 6.0 点,32/32 组合全部改进
I2P 基准 32 个系统-攻击设置(5 种子) 平均 ASR (%) NudeNet 2.4;Q16 1.7 NudeNet 23.6;Q16 8.3 NudeNet 相对降约 90%,Q16 相对降约 80%
生成质量保持(4 个无防御骨干) CLIP ↑ / ImageReward ↑ CLIP +0.065 至 +0.086;ImageReward +1.67 至 +2.22 各 Base 模型(如 Flux CLIP 0.199、IR −1.54) 全部为正提升,安全与感知质量同向改善

局限与改进

作者坦承的主要局限是计算开销:默认配置下每个触发提示需要 $T \times b \times K = 16 \times 4 \times 4 = 256$ 次候选图像生成,因此 DiSCO 被设计为按需触发——仅对首轮生成不安全的良性对抗提示启用,安全提示直接放行;附录 A.10 有完整开销分析。此外 UnlearnDiffAtk 消融中对比目标(12.5%)略逊于单池变体,说明针对概念擦除类攻击 unsafe-only 信号可能已足够;P4D 在 25% 池上从 38.3% 升至 41.4%,最难攻击下小池有轻微退化。我自己的观察还有:参考池构建依赖 NudeNet 与 Q16 的共识过滤,分类器自身偏差会传导进防御;ASR 评估集中在 I2P 与 NSFW 类别,对版权、深伪等其他危害未验证;论文未评估知晓 DiSCO 存在的自适应攻击,攻击者理论上可利用查询接口干扰对比信号;即便按需触发,延迟敏感的在线场景中上百次生成查询的成本依然可能难以接受。

独立分析的弱点

独立分析发现以下弱点。第一,成本结构:即使按需触发,最坏情形下单条提示仍需 256 次生成查询,目标为闭源 API 时还会产生可观费用与延迟;改进方向是把束搜索换成一阶段无梯度的提示嵌入优化,或用代理小模型预筛选候选后缀以压低 $b \times K$。第二,分类器依赖:安全/不安全池的划分依赖 NudeNet 与 Q16 一致性,对两个检测器都漏检的新型 NSFW 形态(软色情、隐蔽违规)参考池本身有盲区;可引入更多检测器、人工审核扩池,或按置信度加权构建池(附录 A.6 的方向)。第三,泛化边界:实验只在 I2P 的 NSFW 威胁上验证,DiSCO 学到的是'该模型自己的不安全分布',面对分布外危害(暴力、误导信息)是否同样有效未知,应在多危害类别基准上补测。第四,对抗自适应:未评估知道防御存在的自适应攻击,攻击者可放大查询噪声扰乱对比信号,应补充针对 DiSCO 本身的白盒攻击测试。第五,语义漂移风险:后缀长度 $T=32$ 时 CLIP 已从 0.2810 降到 0.2766,更长优化会开始偏离用户意图。

未来方向

作者提出的延伸包括:附录 A.7 已给出面向部署的偏好优化变体(统一目标下的 preference-based formulation),可进一步降低查询次数;附录 A.10 补充完整计算开销分析;附录 A.8 提供语义漂移的定量分析。基于本文成果我认为可延伸的方向有:其一,把双池对比思想迁移到 LLM 文本生成安全,用模型自产的安全/不安全输出对比引导解码;其二,在线维护参考池,随新攻击出现持续用触发样本更新池子,使防御从静态走向持续学习;其三,理论化工作,目前束搜索在对比目标下的收敛性与 $J(\hat{p})$ 同 ASR 的概率联系缺乏刻画,可推导相应保证;其四,多模态扩展,检验视频生成、音频生成是否同样适用提示级分布引导防御;其五,与模型侧防御联合优化,例如以 DiSCO 的分布信号指导选择性遗忘训练,形成提示级加权重级的双层防御体系。

复现评估

复现评估:正文未提及官方代码开源,复现需自行实现束搜索与对比打分,但主要构件均有公开替代——后缀生成器用 LLaMA-3-8B、嵌入用冻结 CLIP、图像分类器用 NudeNet 与 Q16、四种攻击(Ring-A-Bell、UnlearnDiffAtk、MMA-Diffusion、P4D)、I2P 基准及四种防御(SLD-Max、SAFREE、RECE、ESD)都有开源版本。算力要求较高:构建参考池需对 I2P 提示逐模型生成(SD v1.4 全池 2613+84 张),主实验覆盖 8 系统 × 4 攻击 × 5 种子,加上每条触发提示 256 次候选生成,预估需要多卡 GPU 运行数天到数周。好消息是消融显示 25% 池(约 670 张)与全池性能几乎一致,$K=2, T=8$ 也能工作,可先小规模验证再扩展。关键超参($K=4$、$T=16$、$R=8$、分支因子 $b=4$、双分类器共识过滤)论文均明示。整体复现难度中等偏上,主要成本在生成查询而非算法实现本身。