SCEdit:轻量级高效可控的AI图像生成微调框架(附魔搭社区训练实践教程)

简介: SCEdit是一个高效的生成式微调框架,由阿里巴巴通义实验室基础视觉智能团队所提出。

以大规模预训练的图像扩散模型为基础,研究人员专注于各种下游任务和应用,包括文生图、可控图像生成和图像编辑等。然而,在大多数定制化场景中,由于受到训练数据和计算资源的限制,完全微调一个基础图像扩散模型往往是低效甚至不切实际的。

SCEdit是一个高效的生成式微调框架,由阿里巴巴通义实验室基础视觉智能团队所提出。该框架支持文生图下游任务的微调能力,实现快速迁移到特定的生成场景中,可相比LoRA节省30%-50%的训练显存开销;进一步地,还可以直接扩展到可控图像生成任务中,仅需ControlNet条件生成7.9%的参数量并节省30%的显存开销,支持边缘图、深度图、分割图、姿态、颜色图、图像补全等条件生成任务。


目前项目已开源,魔搭社区可体验,本文将提供社区训练教程,欢迎各位开发者小伙伴来玩!



SCEdit技术解析

Paper:SCEdit: Efficient and Controllable Image Diffusion Generation via Skip Connection Editing

arXiv:https://arxiv.org/abs/2312.11392

Project Page:https://scedit.github.io/

Official Repo:https://github.com/ali-vilab/SCEdit




视频链接

https://live.csdn.net/v/357091

图像扩散模型已经被广泛应用于各种任务中,比如文生图、可控图像生成和图像编辑等。最近的研究引入了微调方法,通过对原始模型进行细微的调整,并在基础图像扩散模型的特定应用上取得了不错的结果。尽管如此,许多这类流行的高效微调方法仍然受到因网络扩展导致训练资源消耗大的困扰。


该方法深入研究了扩散模型U-Net中跳跃连接的作用,并揭示了在编码器和解码器之间聚合远距离信息的分层特征对图像生成的内容和质量有着显著的影响。基于这一观察,提出了一个高效的生成微调框架,称为SCEdit (Skip Connection Editing),该框架整合并编辑跳跃连接,并使用了名为SC-Tuner的轻量级微调模块。此外,所提出的框架允许通过可控的SC-Tuner注入不同的条件,直接扩展到可控图像生成任务上,简化并统一了多条件输入的网络设计。 由于采用了轻量级微调器同时反向传播仅经过解码器,SCEdit大幅度降低了训练参数量、内存消耗和计算开销。在文生图和可控图像生成任务上进行的广泛实验证明了我们方法在效率和性能方面的优越性。


图1:SCEdit框架示意图


通过编辑跳跃连接上的中间特征来实现高效的微调,利用 (a) SC-Tuner进行文本到图像生成的微调,进一步可以在 (b) CSC-Tuner 和 (c) 级联稠密卷积的共同作用下实现可控图像合成。


SCEdit可以利用少量可训练参数和较低的内存使用量,实现了对特定数据集的高效微调(图2左上)并支持使用少量样本进行风格等样式的迁移学习(图2右上)。此外,它支持各种条件作为输入以实现高效的可控生成(图2中间),同时单个条件模型可以轻松组合,提供无限的生成可能性(图2底部)。


图2:SCEdit图像生成结果

SCEdit框架能够适应广泛的图像生成任务,并通过将U-Net中的编码器模块解耦,即仅需在解码器中进行反向传播,实现了高效灵活的训练。对于文本到图像生成任务,在COCO2017数据集上的FID得分和质量结果方面优于现有方法,同时在训练阶段减少了52%的内存消耗。同时在可控生成任务上,可以在各种条件输入下实现对生成结果的精准控制,仅需使用ControlNet所需参数的7.9%,并实现了30%的内存使用减少。

图3:文本到图像生成(圆形标记)和可控图像合成(五边形标记)任务的性能和效率比较。标记面积反映了参数量的相对大小。

如需进行快速集成,请参阅SWIFThttps://github.com/modelscope/swift

如需查看完整实现,请参阅SCEPTERhttps://github.com/modelscope/scepter



魔搭社区实践教程

环境配置与安装 


1. python 3.8及以上版本

2. pytorch 1.12及以上版本,推荐2.0及以上版本

3. 建议使用CUDA 11.4及以上

本文主要演示的模型推理代码可在魔搭社区免费实例PAI-DSW的配置下运行(显存24G) :


第一步:点击模型右侧Notebook快速开发按钮,选择GPU环境


第二步:新建Notebook


安装依赖库

pip install ms_swift -U


模型训练

SCEdit的文生图微调训练目前在SWIFT中已经支持。SWIFT是ModelScope提供的LLM&AIGC模型训练和推理框架。


训练代码可参照如下:https://github.com/modelscope/swift/blob/main/examples/pytorch/multi_modal/notebook/text_to_image_synthesis.py


在SWIFT中我们基于 风格迁移数据集https://modelscope.cn/datasets/damo/style_custom_dataset/dataPeview提供的30张3D风格数据进行了训练,并使用相同的`Prompt: A boy in a camouflage jacket with a scarf`进行测试,具体的定性和定量的结果如下:


Method

Bs

Ep

Target 

Module

Param. 

(M)

Mem.

 (MiB)

3D style

LoRA/r=64

1

50

q/k/v/out/mlp

23.94

 (2.20%)

8440

SCEdit/rto=1

1

50

up_blocks

19.68

 (1.81%)

7556

LoRA/r=64

10

100

q/k/v/out/mlp

23.94

 (2.20%)

26300

SCEdit/rto=1

10

100

up_blocks

19.68

 (1.81%)

18634

LoRA/r=64

30

200

q/k/v/out/mlp

23.94

 (2.20%)

69554

SCEdit/rto=1

30

200

up_blocks

19.68

 (1.81%)

43350


点击直达训练实践教程~

https://github.com/modelscope/swift/blob/main/examples/pytorch/multi_modal/notebook/text_to_image_synthesis.py

相关文章
|
20天前
招募!阿里云x魔搭社区发起Create@AI创客松邀你探索下一代多维智能体应用
招募!阿里云x魔搭社区发起Create@AI创客松邀你探索下一代多维智能体应用
303 0
|
1月前
|
机器学习/深度学习 人工智能 算法
AI加速引擎PAI-TorchAcc:OLMo训练加速最佳实践
阿里云机器学习平台PAI开发的Pytorch训练加速框架PAI-TorchAcc已接入最新开源的大语言模型 OLMo。在保证模型效果和易用性的前提下,PAI-TorchAcc相对 PyTorch 性能在 OLMo 1B 上加速比达到 1.64X,在 OLMo 7B 上加速比达到 1.52X。本文分析了 PAI-TorchAcc 的性能收益来源。
|
1月前
|
人工智能 编解码 物联网
Stability AI推出新的AI图像生成模型Stable Cascade,对比 SD2.1 的算力成本降低了10倍左右!
Stability AI推出新的AI图像生成模型Stable Cascade,对比 SD2.1 的算力成本降低了10倍左右!
|
1月前
|
人工智能 JSON 前端开发
【Spring boot实战】Springboot+对话ai模型整体框架+高并发线程机制处理优化+提示词工程效果展示(按照框架自己修改可对接市面上百分之99的模型)
【Spring boot实战】Springboot+对话ai模型整体框架+高并发线程机制处理优化+提示词工程效果展示(按照框架自己修改可对接市面上百分之99的模型)
|
29天前
|
机器学习/深度学习 人工智能 运维
【人工智能技术专题】「入门到精通系列教程」打好AI基础带你进军人工智能领域的全流程技术体系(机器学习知识导论)(二)
【人工智能技术专题】「入门到精通系列教程」打好AI基础带你进军人工智能领域的全流程技术体系(机器学习知识导论)
59 1
|
29天前
|
机器学习/深度学习 人工智能 自然语言处理
【人工智能技术专题】「入门到精通系列教程」打好AI基础带你进军人工智能领域的全流程技术体系(机器学习知识导论)(一)
【人工智能技术专题】「入门到精通系列教程」打好AI基础带你进军人工智能领域的全流程技术体系(机器学习知识导论)
74 1
|
2天前
|
人工智能 移动开发 小程序
uniapp框架——vue3+uniFilePicker+fastapi实现文件上传(搭建ai项目第二步)
uniapp框架——vue3+uniFilePicker+fastapi实现文件上传(搭建ai项目第二步)
12 2
|
2天前
|
人工智能 小程序 前端开发
uniapp框架——初始化vue3项目(搭建ai项目第一步)
uniapp框架——初始化vue3项目(搭建ai项目第一步)
14 1
|
4天前
|
人工智能 决策智能 C++
【AI Agent系列】【阿里AgentScope框架】5. Pipeline模块的组合使用及Pipeline模块总结
【AI Agent系列】【阿里AgentScope框架】5. Pipeline模块的组合使用及Pipeline模块总结
20 1
|
4天前
|
人工智能 搜索推荐 决策智能
【AI Agent系列】【阿里AgentScope框架】1. 深入源码:详细解读AgentScope中的智能体定义以及模型配置的流程
【AI Agent系列】【阿里AgentScope框架】1. 深入源码:详细解读AgentScope中的智能体定义以及模型配置的流程
37 0