CrossAttentionControl

用提示词精准控制扩散模型编辑图像,无需重训练

CrossAttentionControl 是论文《Prompt-to-Prompt Image Editing with Cross Attention Control》的非官方实现,基于 Stable Diffusion 构建。它解决文本到图像生成中难以精确编辑生成图像内容的问题,例如替换物体、改变属性或保持构图不变。核心能力是通过操纵扩散模型中的交叉注意力图,实现提示词引导的图像编辑,支持局部替换、全局风格迁移和结构保持。项目提供 Jupyter Notebook 示例,展示如何利用交叉注意力控制生成过程,使用户无需重新训练模型即可精准编辑图像。其技术栈涵盖深度学习、扩散模型和交叉注意力机制,适合研究图像编辑和生成控制的开发者。

开源 free 图像生成
访问官网 ↗ GitHub ↗ 文档 ↗
GitHub 星标 ★ 1337
维护状态 低维护
是否开源 是
定价模式 free

项目数据

分类图像生成
开发团队bloc97
所属国家
官网地址
定价模式free
价格说明开源项目,MIT许可证,完全免费,可自行部署使用。
访问状态
是否开源是
开源协议MIT
主要语言Jupyter Notebook
技术栈/模型cross-attention,deep-learning,diffusion-models,stable-diffusion
GitHub 星标★ 1337
30天Star增速
HF 下载量
上线时间2022-09-09 00:00:00
最近更新2026-09-22 00:00:00
维护状态低维护
中文支持
访问方式
移动端支持
综合评分
收录时间2026-08-09
浏览次数5

使用教程

难度:进阶 约 15 分钟 部署方式:本地安装 5 步

环境要求

  • Python 环境(建议 3.8+,并已安装 pip)
  • 可运行 Jupyter Notebook 的环境(本地 Jupyter 或 Google Colab)
  • 依赖库:torch、transformers、diffusers==0.4.1、numpy、PIL、tqdm、difflib
  • 建议具备 NVIDIA GPU(Stable Diffusion 推理对显存要求较高)

安装与启动步骤

  1. 1获取项目代码

    从 GitHub 克隆仓库到本地,进入项目目录。README 提供了仓库地址,可用 git clone 拉取。

    git clone https://github.com/bloc97/CrossAttentionControl.git
    cd CrossAttentionControl
  2. 2安装 Python 依赖

    README 说明用 pip 安装所需库,并强调 diffusers 必须锁定 0.4.1 版本,否则会因代码注入模型而报错。

    pip install "diffusers==0.4.1" transformers torch numpy Pillow tqdm
  3. 3启动 Jupyter

    README 说明直接用 pip 装好依赖后运行 Jupyter Notebook,仓库内已提供示例 notebook。

    jupyter notebook
  4. 4打开并运行 notebook

    在浏览器打开的 Jupyter 页面中选择项目内的 notebook,逐个单元格运行,即可看到 Cross Attention Control 的示例编辑效果。

  5. 5备选:Colab 在线运行

    README 推荐了 Lewington-pitsos 整理的 Colab 演示,没有本地 GPU 或不想配置环境时可直接在浏览器运行。

关键配置

配置项必填说明示例
prompt是初始生成图像的文本提示词a cat riding a bicycle
prompt_edit否第二个提示词,通过交叉注意力对第一段提示进行编辑;设为 None 关闭a dog riding a bicycle
prompt_edit_token_weights否以 (token id, strength) 元组列表调整词权重,可用 prompt_token() 查 token 索引[(2, 2.5), (6, -5.0)]
guidance_scale否Stable Diffusion 标准的无分类器引导强度7.5
steps否扩散步数,越高通常画质更好但更慢50
seed否随机种子整数,设为 None 则每次随机126794873

如何确认成功

notebook 单元格正常执行完毕,无版本报错,并在输出中显示出生成的图像,即表示环境配置成功。

常见问题

Q:为什么必须使用 diffusers==0.4.1?

A:notebook 会向模型注入代码,README 明确指出这是最后一个可正常工作的版本,其他版本 diffusers 的代码变动很可能导致兼容性错误。

Q:如何知道某个词对应的 token 索引?

A:项目提供了 prompt_token(...) 函数,用它查看提示词中每个词对应的 token 索引,再把索引填进 prompt_edit_token_weights。

Q:prompt_edit 和普通改提示词有什么区别?

A:它不需要用户输入 mask,通过修改扩散模型内部的注意力图,在保持构图的前提下做更精细的编辑,且无需额外训练或微调。

Q:prompt_edit_tokens_start 和 end 该如何设置?

A:两者控制对初始提示的严格程度,start 必须小于 end。增大 start 让细节纹理更自由,减小 end 让整体构图更自由。

Q:本地没有 GPU 怎么办?

A:可以直接使用 README 中推荐的 Colab 演示链接在浏览器里运行,避免本地装环境与显存不足的问题。

注意事项

  • README 未给出完整安装命令行,此处 pip 命令依据其列出的库名整理;difflib 属 Python 标准库,无需 pip 安装。
  • diffusers 版本是最大坑点,务必固定 0.4.1,升级几乎必然导致 notebook 报错。
  • 本项目为论文的非官方实现,并为适配 Stable Diffusion 对论文方法做了修改;官方实现见 google/prompt-to-prompt。
  • 推理需下载 Stable Diffusion 权重,注意磁盘与显存占用,首次运行耗时较长。

核心亮点

  • 直接实现论文核心算法,交叉注意力控制编辑效果精准
  • 基于 Stable Diffusion,无需额外训练即可应用
  • 提供交互式 Notebook,上手门槛低,便于实验

不足之处

  • 非官方实现,代码维护和文档支持有限
  • 依赖特定模型版本,兼容性需自行调整

适用场景

  • 研究扩散模型的可解释性和编辑机制
  • 快速原型验证提示词编辑效果
  • 教学演示交叉注意力在生成模型中的作用

替代项目

Prompt-to-Prompt、DiffEdit、InstructPix2Pix

项目介绍

CrossAttentionControl 是图像领域的开源项目,由 bloc97 开发,2022 年首次发布。

在全站 13,014 个收录项目中,它的 GitHub 星标数(1,337)位列前 30%,在图像分类的 837 个项目里位列前 13%。

项目已超过三个月没有代码更新,维护节奏明显放缓,最近一次代码更新于 2026-09-22。MIT许可证,完全免费,可自行部署使用。

它主要面向的使用场景是:研究扩散模型的可解释性和编辑机制。同类可对比的替代方案包括 Prompt-to-Prompt、DiffEdit、InstructPix2Pix。

上一篇:sd-webui-depth-lib

下一篇:Stable-Diffusion-KMP

同类项目推荐

satori 开源

网页代码一键变高清图,放大不糊,不用截图

Enlightened library to convert HTML and CSS to SVG

★ 13967 2026-08-09
C2GAN 开源

用关键点精准控制图像生成,让AI画出你想要的结构

[ACM MM 2019 Oral] Cycle In Cycle Generative Adversarial Networks for Keypoint-Guide···

★ 70 2026-08-09
ComfyUI 开源

像搭积木一样连节点,生图流程自己搭

The most powerful and modular diffusion model GUI, api and backend with a graph/node···

★ 134493 2026-08-09