当用户输入的编辑指令为"把第三个红色的苹果变成篮球"时,Instruct-Pix2Pix 模型无法理解指令中的"第三个"和"红色"属性信息,因此无法正确地定位到目标对象。
本项目利用 LLM(Qwen) + Grounded-SAM 实现更精细的目标定位与掩码提取,一定程度上提高了 Instruct-Pix2Pix 模型针对这类编辑指令的性能。
Easy-Edit 的执行逻辑为:
- 理解指令:使用 LLM 理解用户的指令,并解析出待编辑对象及其属性信息(目前只实现了三种属性信息,分别是相对位置、相对大小、颜色信息)。
- 目标定位:使用 Grounded-SAM 精确定位到待编辑对象,并提取其掩码。
- 执行编辑:根据解析的指令,使用预训练的 Instruct-Pix2Pix 进行图像编辑。
在 utils.py 文件中设置您的 LLM API 密钥和阿里云 API 密钥。
- DashScope API Key: 点击此处获取您的
api_key。 - Alibaba Cloud API Keys: 用于访问阿里云相关服务。
# 编辑 utils.py 文件
dashscope.api_key=""
os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'] = ''
os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET'] = ''使用 pip 安装所有必需的 Python 库。
pip install -r requirements.txt下载 spaCy 的英语语言模型,用于自然语言处理。
python -m spacy download en_core_web_smGroundingDINO 用于根据文本描述在图像中定位对象。
# 设置您的 CUDA 安装路径
export CUDA_HOME=/path/to/your/cuda/installation
# 克隆仓库并安装
git clone https://github.com/IDEA-Research/GroundingDINO.git
cd GroundingDINO
python setup.py install
# 创建目录并下载预训练权重
mkdir weights
cd weights
wget https://github.com/IDEA-Research/GroundingDINO/releases/download/v0.1.0-alpha/groundingdino_swint_ogc.pth
cd ../../如果您在安装过程中遇到任何问题,请参考官方的 GroundingDINO 项目仓库。
本项目提供了两种使用方式:
您可以使用提供的 Jupyter Notebook 来进行交互式开发和测试:
# 打开并运行
easy_edit.ipynb此外,项目还包含一个使用 Streamlit 构建的交互式 Web 应用。您可以通过以下命令来启动它:
streamlit run streamlit_edit.py本项目参考了以下项目:

