
CrossAttentionControl
用提示词精准控制扩散模型编辑图像,无需重训练
项目预览
项目数据
项目介绍
Star 增长趋势
本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整
数据来源:GitHub API 逐日快照 · 收录于 2026-08-09 · 当前星标 ★ 1337
使用教程
环境要求
- Python 环境(建议 3.8+,并已安装 pip)
- 可运行 Jupyter Notebook 的环境(本地 Jupyter 或 Google Colab)
- 依赖库:torch、transformers、diffusers==0.4.1、numpy、PIL、tqdm、difflib
- 建议具备 NVIDIA GPU(Stable Diffusion 推理对显存要求较高)
安装与启动步骤
-
1获取项目代码
从 GitHub 克隆仓库到本地,进入项目目录。README 提供了仓库地址,可用 git clone 拉取。
git clone https://github.com/bloc97/CrossAttentionControl.git cd CrossAttentionControl -
2安装 Python 依赖
README 说明用 pip 安装所需库,并强调 diffusers 必须锁定 0.4.1 版本,否则会因代码注入模型而报错。
pip install "diffusers==0.4.1" transformers torch numpy Pillow tqdm -
3启动 Jupyter
README 说明直接用 pip 装好依赖后运行 Jupyter Notebook,仓库内已提供示例 notebook。
jupyter notebook -
4打开并运行 notebook
在浏览器打开的 Jupyter 页面中选择项目内的 notebook,逐个单元格运行,即可看到 Cross Attention Control 的示例编辑效果。
-
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
同类项目推荐
RCDMs
开源
让AI画故事连环画,上下文连贯不跳戏
[AAAI 2025] RCDMs: Boosting Consistency in Story Visualization with Rich-Contextual ···
HunyuanImage-2.1
开源
一键生成2K高清图像,文本描述秒变大片
HunyuanImage-2.1: An Efficient Diffusion Model for High-Resolution (2K) Text-to-Imag···
Handwriting-simulator
开源
输入文字,一键生成以假乱真的手写图片
把普通文本变成以假乱真的手写体图片:手写字体 + 信纸背景 + 字距/行距/笔画随机扰动。GU···
com.doji.diffusers
开源
在Unity里直接跑Stable Diffusion,无需后端
A Unity package to run pretrained diffusion models with Unity Sentis
ComfyUI-Easy-Use
开源
少连线少配参,ComfyUI 新手也能快速出图
In order to make it easier to use the ComfyUI, I have made some optimizations and in···
DemoFusion
开源
用低显存生成高分辨率图像,细节更丰富
Let us democratise high-resolution generation! (CVPR 2024)
diffusion-client
开源
在手机上轻松调用 Stable Diffusion 生成图像
a powerful stable-diffusion-webui client for android
gespensterfelder
开源
用代码生成幽灵般的动态视觉场域
A small generative system in clojurescript and Three.js.
character_select_stand_alone_app
开源
桌面角色选择器,一键调用 ComfyUI/WebUI 生成 AI 图像
Character Select Stand Alone App with AI prompt and ComfyUI/WebUI API support for wa···