❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发感兴趣,我会每日分享大模型与 AI 领域的开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术!
🥦 微信公众号|搜一搜:蚝油菜花 🥦
大家好,我是蚝油菜花,今天跟大家分享一下 ACE++ 这个由阿里巴巴通义实验室推出的升级版图像生成与编辑工具。
🚀 快速阅读
ACE++ 是阿里巴巴通义实验室推出的先进图像生成与编辑工具,通过指令化和上下文感知的内容填充技术,实现了高质量的图像创作和编辑功能。
- 核心功能:ACE++ 提供多种模型,分别针对不同任务,如生成一致的人物肖像、保持主题一致性、重新绘制图像的特定区域等。
- 技术原理:ACE++ 采用改进的长上下文条件单元(LCU++)和两阶段训练方案,提升了模型的适应性和生成质量。
ACE++ 是什么
ACE++ 是阿里巴巴通义实验室推出的一款先进的图像生成与编辑工具。它通过指令化和上下文感知的内容填充技术,能够实现高质量的图像创作和编辑。ACE++ 提供了多种模型,分别针对不同的任务需求:
- ACE++ Portrait:用于生成一致的人物肖像,保持人物面部特征和风格的一致性。
- ACE++ Subject:在不同场景中保持主题一致性,例如将某个标志或物体放置在不同的背景中。
- ACE++ LocalEditing:对图像的特定区域进行重新绘制或修改,同时保留原有图像的结构和风格。
- 即将推出的 ACE++ Fully:支持更多指令化编辑和参考生成任务,进一步提升模型的功能和灵活性。
ACE++ 的主要功能
- 高质量人物肖像生成:通过 ACE++ Portrait 模型,可以根据用户输入的指令生成高质量的人物肖像,同时保持人物面部特征和风格的一致性。
- 主题一致性保持:ACE++ Subject 模型可以在不同的场景中生成具有特定主题的图像,例如将某个标志或物体放置在不同的背景中。
- 局部图像编辑:ACE++ LocalEditing 模型支持对图像的特定区域进行重新绘制或修改,同时保留原有图像的结构和风格。
- 风格化编辑:用户可以通过指令对图像进行风格化处理,例如将普通照片转换为艺术风格或特定的视觉效果。
- 上下文感知内容填充:根据图像的上下文信息,智能地填充缺失或需要修改的部分,确保生成的图像在视觉上自然且一致。
- 指令驱动的交互:用户可以通过简单的自然语言指令来控制图像的生成和编辑过程,例如指定生成特定风格的人物肖像或要求在图像中添加、删除或修改某个元素。
- 多任务支持:ACE++ 支持多种图像处理任务,包括虚拟试穿、标志粘贴、照片修复、电影海报编辑等。
ACE++ 的技术原理
- 改进的长上下文条件单元(LCU++):ACE++ 提出了 LCU++ 输入范式,通过将输入图像、掩码和噪声在通道维度上进行拼接,形成条件单元(CU)特征图,而不是传统的序列拼接方式。这种改进减少了上下文感知框架的干扰,降低了模型适应成本。LCU++ 的输入格式可以扩展到无参考图像(0-ref)任务和多参考图像(N-ref)任务,增强了模型对不同任务的适应性。
- 两阶段训练方案:ACE++ 采用两阶段训练方案。第一阶段,模型基于文本到图像模型进行预训练,专注于 0-ref 任务,基于基础模型的生成能力快速适应条件输入。第二阶段,模型在所有数据上进行微调,支持通用指令,同时优化模型对输入参考图像的重建能力和目标图像的生成能力。
- 模型架构:ACE++ 的整体架构整合了 LCU++ 范式,通过 x-embed 层将 CU 特征图映射为序列化标记,作为 Transformer 层的输入。模型训练目标是最小化预测速度与真实速度之间的均方误差,赋予模型上下文感知的生成能力。
- 任务支持与模型优化:ACE++ 提供了一套工具包,支持多种图像编辑和生成任务,包括肖像一致性、主题一致性、局部编辑等。针对常见应用场景,ACE++ 训练了轻量级的领域稳定微调模型,如 LoRA 策略,提高模型在特定任务中的性能。
如何运行 ACE++
1. 安装依赖
首先,下载代码并安装必要的依赖项:
git clone https://github.com/ali-vilab/ACE_plus.git
cd ACE_plus
pip install -r requirements.txt
ACE++ 依赖于 FLUX.1-Fill-dev 作为其基础模型,可以从 HuggingFace 下载:
export FLUX_FILL_PATH="hf://black-forest-labs/FLUX.1-Fill-dev"
为了正常运行推理代码或 Gradio demo,这里定义了相关的环境变量来指定模型的位置:
export PORTRAIT_MODEL_PATH="ms://iic/ACE_Plus@portrait/comfyui_portrait_lora64.safetensors"
export SUBJECT_MODEL_PATH="ms://iic/ACE_Plus@subject/comfyui_subject_lora16.safetensors"
export LOCAL_MODEL_PATH="ms://iic/ACE_Plus@local_editing/comfyui_local_lora16.safetensors"
2. 运行推理
在设置了环境变量后,用户可以通过执行 infer.py
来运行示例或测试自己的样本:
python infer.py
3. 训练模型
这里提供了训练代码,允许用户在自己的数据上进行训练。参考 data/train.csv
和 data/eval.csv
构建训练数据和测试数据,字段之间用 #;#
分隔。训练所需的参数存储在 train_config/ace_plus_lora.yaml
中,运行训练代码的命令如下:
python run_train.py --cfg train_config/ace_plus_lora.yaml
训练后的模型会保存在 ./examples/exp_example/xxxx/checkpoints/xxxx/0_SwiftLoRA/comfyui_model.safetensors
。
4. 运行 Demo
这里还提供了一个基于 Gradio 的 GUI demo,帮助用户更好地利用 ACE++ 模型。只需执行以下命令即可启动 demo:
python demo.py
资源
- 项目主页:https://ali-vilab.github.io/ACE_plus_page/
- GitHub 仓库:https://github.com/ali-vilab/ACE_plus
- HuggingFace 仓库:https://huggingface.co/ali-vilab/ACE_Plus
❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发感兴趣,我会每日分享大模型与 AI 领域的开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术!
🥦 微信公众号|搜一搜:蚝油菜花 🥦