# Step1X-Edit
## 论文
`
Step1X-Edit: A Practical Framework for General Image Editing
`
- https://arxiv.org/abs/2504.17761
## 模型结构
Step1X-Edit通过结合多模态大语言模型(MLLM)和扩散图像解码器来处理参考图像和用户的编辑指令,提取潜在嵌入以获得目标图像。
## 算法原理
Step1X-Edit的核心在于结合多模态大语言模型(MLLM)和扩散Transformer(DiT)架构。 具体来说:
- 输入的编辑指令和参考图像首先由MLLM(如Qwen-VL)处理,生成与编辑任务直接对齐的令牌嵌入。
- 提取的嵌入随后被输入到一个轻量级的连接模块(如令牌细化器),重新结构化为更紧凑的文本特征表示。
- 进一步,通过计算Qwen所有输出嵌入的平均值并将其投影到线性层,生成全局视觉引导向量,以增强模型的语义理解能力。
- 在训练过程中,采用联合学习设置,同时优化连接模块和下游DiT,初始权重来自预训练的Qwen和DiT文本到图像模型。
## 环境配置
### Docker(方法一)
```
docker pull image.sourcefind.cn:5000/dcu/admin/base/pytorch:2.4.1-ubuntu22.04-dtk25.04-py3.10-fixpy
# 为以上拉取的docker的镜像ID替换
docker run -it --shm-size=64G -v $PWD/Step1X-Edit_pytorch:/home/Step1X-Edit_pytorch -v /opt/hyhal:/opt/hyhal:ro --privileged=true --device=/dev/kfd --device=/dev/dri/ --group-add video --name step1x_edit bash
cd /home/Step1X-Edit_pytorch
pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple
wget --content-disposition 'https://download.sourcefind.cn:65024/file/4/triton/DAS1.5/triton-3.0.0+das.opt4.dtk2504-cp310-cp310-manylinux_2_28_x86_64.whl'
pip install triton-3.0.0+das.opt4.dtk2504-cp310-cp310-manylinux_2_28_x86_64.whl
#注意如果torch被替换了需要重新安装适配版本的torch
wget --content-disposition 'https://download.sourcefind.cn:65024/file/4/pytorch/DAS1.5/torch-2.4.1+das.opt2.dtk2504-cp310-cp310-manylinux_2_28_x86_64.whl'
pip install torch-2.4.1+das.opt2.dtk2504-cp310-cp310-manylinux_2_28_x86_64.whl
```
### Dockerfile(方法二)
```
cd /home/Step1X-Edit_pytorch/docker
docker build --no-cache -t step1x_edit:latest .
docker run --shm-size=64G --name step1x_edit -v /opt/hyhal:/opt/hyhal:ro --privileged=true --device=/dev/kfd --device=/dev/dri/ --group-add video -v $PWD/Step1X-Edit_pytorch:/home/Step1X-Edit_pytorch -it step1x_edit bash
pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple
wget --content-disposition 'https://download.sourcefind.cn:65024/file/4/triton/DAS1.5/triton-3.0.0+das.opt4.dtk2504-cp310-cp310-manylinux_2_28_x86_64.whl'
pip install triton-3.0.0+das.opt4.dtk2504-cp310-cp310-manylinux_2_28_x86_64.whl
#注意如果torch被替换了需要重新安装适配版本的torch
wget --content-disposition 'https://download.sourcefind.cn:65024/file/4/pytorch/DAS1.5/torch-2.4.1+das.opt2.dtk2504-cp310-cp310-manylinux_2_28_x86_64.whl'
pip install torch-2.4.1+das.opt2.dtk2504-cp310-cp310-manylinux_2_28_x86_64.whl
```
### Anaconda(方法三)
1、关于本项目DCU显卡所需的特殊深度学习库可从光合开发者社区下载安装:
- https://developer.sourcefind.cn/tool/
```
DTK驱动:dtk25.04
python:python3.10
torch:2.4.1
torchvision:0.19.1
triton:3.0.0
flash-attn:2.6.1
```
`Tips:以上dtk驱动、python、torch等DCU相关工具版本需要严格一一对应。`
2、其它非特殊库参照requirements.txt安装
```
cd /home/Step1X-Edit_pytorch
pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple
wget --content-disposition 'https://download.sourcefind.cn:65024/file/4/triton/DAS1.5/triton-3.0.0+das.opt4.dtk2504-cp310-cp310-manylinux_2_28_x86_64.whl'
pip install triton-3.0.0+das.opt4.dtk2504-cp310-cp310-manylinux_2_28_x86_64.whl
#注意如果torch被替换了需要重新安装适配版本的torch
wget --content-disposition 'https://download.sourcefind.cn:65024/file/4/pytorch/DAS1.5/torch-2.4.1+das.opt2.dtk2504-cp310-cp310-manylinux_2_28_x86_64.whl'
pip install torch-2.4.1+das.opt2.dtk2504-cp310-cp310-manylinux_2_28_x86_64.whl
```
## 数据集
`无`
## 训练
`无`
## 推理
预训练权重目录结构:
```
/home/Step1X-Edit_pytorch
└── Qwen/Qwen2.5-VL-7B-Instruct
└── meimeilook/Step1X-Edit-FP8
```
### 单机单卡
```
bash scripts/run_examples.sh
```
更多资料可参考源项目中的[`README_orgin`](./README_orgin.md)。
## result
图像编辑效果示例:
输入:
- `prompt:给这个女生的脖子上戴一个带有红宝石的吊坠。 `
- `prompt:让她哭。 `
输出:
### 精度
`DCU与GPU精度一致,推理框架pytorch。`
## 应用场景
### 算法类别
`多模态`
### 热点应用行业
`绘画,动漫,媒体,制造,广媒,家居,教育`
## 预训练权重
huggingface权重下载地址为:
- [meimeilook/Step1X-Edit-FP8](https://huggingface.co/meimeilook/Step1X-Edit-FP8)
- [Qwen/Qwen2.5-VL-7B-Instruct](https://huggingface.co/Qwen/Qwen2.5-VL-7B-Instruct)
`注:建议加镜像源下载:export HF_ENDPOINT=https://hf-mirror.com`
## 源码仓库及问题反馈
- http://developer.sourcefind.cn/codes/modelzoo/Step1X-Edit_pytorch.git
## 参考资料
- https://github.com/stepfun-ai/Step1X-Edit