LyCORIS: 一种革命性的Stable Diffusion微调方法

RayRay
LyCORISStable Diffusionfine-tuningLoRAAI模型Github开源项目

LyCORIS

LyCORIS简介

LyCORIS(Lora beYond Conventional methods, Other Rank adaptation Implementations for Stable diffusion)是一个为Stable Diffusion模型设计的参数高效微调框架。它源于LoRA(Low-Rank Adaptation)技术,但远远超越了传统的LoRA方法,实现了多种创新的低秩适应算法。

LyCORIS项目最初源于LoCon,但现已发展成为一个功能丰富的微调工具集。它实现了包括LoRA(LoCon)、LoHa、LoKr、(IA)^3、DyLoRA等在内的多种算法,为用户提供了更多的选择和更强大的微调能力。

LyCORIS banner

作为一个开源项目,LyCORIS得到了社区的广泛关注和支持。目前该项目在GitHub上已获得超过2100颗星,吸引了140多个分支。活跃的社区不仅推动了项目的持续发展,也为用户提供了丰富的资源和支持。

LyCORIS的核心优势

相比传统的微调方法,LyCORIS具有以下几个显著优势:

  1. 算法多样性:实现了多种先进的参数高效微调算法,如LoHa、LoKr等,为不同场景提供更多选择。

  2. 高效性:通过低秩表示等技术,大幅降低了微调所需的计算资源和存储空间。

  3. 灵活性:支持对模型的不同部分进行有针对性的微调,可以更精准地调整模型行为。

  4. 通用性:不仅适用于Stable Diffusion,还可用于其他深度学习模型的微调。

  5. 易用性:提供了多种训练和推理接口,方便集成到现有工作流程中。

主要算法对比

LyCORIS实现的多种算法各有特点,下面对其中几种主要算法进行简要对比:

算法保真度灵活性多样性模型大小训练速度(线性层)训练速度(卷积层)
Full★★★★★★★★★★▲▲▲▲★★★★★●●
LoRA●●●●●●◉◉◉●●●●●●★★★★★
LoHa▲▲▲◉◉◉◉★★★★★●●●●●●▲▲▲
LoKr(低因子)◉◉◉◉▲▲▲●●●●●●★★★★★●●●
LoKr(高因子)▲▲▲●●●★★★★★★★★★★★★★★★●●●

★ > ◉ > ● > ▲ (★表示最好,▲表示最差)

需要注意的是,各算法的实际表现可能因数据集、任务和超参数设置而有所不同。建议用户根据具体需求进行实验,以找到最适合的算法和参数配置。

LyCORIS的使用方法

图像生成

LyCORIS模型可以在多个主流的Stable Diffusion WebUI和在线生成服务中使用:

  1. SD WebUI: 从1.5.0版本开始,SD WebUI原生支持LyCORIS模型。用户只需将模型文件放入models/Loramodels/LyCORIS目录,然后使用<lora:filename:multiplier>语法即可触发。

  2. 其他界面: ComfyUI、InvokeAI等项目也支持LyCORIS模型。

  3. 在线服务: CivitAI、Tensor.Art等平台已集成LyCORIS支持。

模型训练

LyCORIS提供了多种训练方式:

  1. kohya-ss/sd-scripts: 这是最常用的训练方法,支持命令行参数和toml配置文件两种方式。

    accelerate launch train_network.py \ --network_module lycoris.kohya \ --network_dim "DIM_FOR_LINEAR" --network_alpha "ALPHA_FOR_LINEAR"\ --network_args "conv_dim=DIM_FOR_CONV" "conv_alpha=ALPHA_FOR_CONV" \ "dropout=DROPOUT_RATE" "algo=locon"
  2. Naifu-Diffusion: 另一个支持LyCORIS训练的框架。

  3. 独立包装器: LyCORIS可以作为独立的包装器用于任何PyTorch模块。

    from lycoris import create_lycoris, LycorisNetwork LycorisNetwork.apply_preset( {"target_name": [".*attn.*"]} ) lycoris_net = create_lycoris( your_model, 1.0, linear_dim=16, linear_alpha=2.0, algo="lokr" ) lycoris_net.apply_to()
  4. 图形界面和Colab: 多个项目提供了基于kohya trainer的图形界面和Colab笔记本,如bmaltais/kohya_ss、Linaqruf/kohya-trainer等。

工具和实用程序

LyCORIS项目还提供了一些实用工具:

  1. 提取LoCon: 从Dreambooth模型中提取LoCon。

    python3 extract_locon.py <settings> <base_model> <db_model> <output>
  2. 合并LyCORIS: 将LyCORIS模型合并回基础模型。

    python3 merge.py <settings> <base_model> <lycoris_model> <output>
  3. 格式转换: 提供了在HCP和sd-webui格式之间转换LoRA、LyCORIS和完整模型的脚本。

    python3 batch_hcp_convert.py \ --network_path /path/to/ckpts \ --dst_dir /path/to/stable-diffusion-webui/models/Lora \ --output_prefix something \ --auto_scale_alpha --to_webui
  4. Bundle格式转换: 特别适用于关键调优(pivotal tuning)场景。

    python3 batch_bundle_convert.py \ --network_path /path/to/sd-webui-ssd/models/Lora \ --emb_path /path/to/ckpts \ --dst_dir /path/to/sd-webui-ssd/models/Lora/bundle \ --to_bundle --verbose 2

最新进展

LyCORIS项目一直在快速发展。最近的3.0.0版本带来了重大更新:

  1. 新的API: 引入了功能API、参数化API和模块API,为开发者提供更多灵活性。

  2. 更好的兼容性: 移除了可选依赖,使库更易于集成。

  3. 算法改进: 重写了DyLoRA、(IA)^3、GLoRA等算法,并增加了对Conv1d和Conv3d模块的支持。

  4. 新特性: 添加了HunYuan DiT支持,修复了多个问题并改进了日志记录。

未来展望

LyCORIS团队计划在以下方面继续努力:

  1. 自动算法选择: 根据特定的秩要求自动选择最佳算法。

  2. 扩展应用范围: 探索在大型语言模型等其他任务上的应用。

  3. 新算法研究: 探索其他低秩表示或参数高效方法。

  4. 完善文档: 为整个库提供全面的文档。

结语

LyCORIS为Stable Diffusion和其他深度学习模型的微调带来了新的可能性。通过提供多种高效算法和灵活的使用方式,它使得模型定制变得更加简单和强大。无论是对于研究人员还是实践者,LyCORIS都是一个值得关注和尝试的项目。

随着项目的不断发展和社区的持续贡献,我们可以期待LyCORIS在未来带来更多创新和突破,为AI模型的微调和应用开辟新的道路。

编辑推荐精选

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

AI办公办公工具AI工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图热门
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

热门AI开发模型训练AI工具讯飞星火大模型智能问答内容创作多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

Trae

Trae

字节跳动发布的AI编程神器IDE

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
咔片PPT

咔片PPT

AI助力,做PPT更简单!

咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

热门AI辅助写作AI工具讯飞绘文内容运营AI创作个性化文章多平台分发AI助手
材料星

材料星

专业的AI公文写作平台,公文写作神器

AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。

openai-agents-python

openai-agents-python

OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。

openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。

Hunyuan3D-2

Hunyuan3D-2

高分辨率纹理 3D 资产生成

Hunyuan3D-2 是腾讯开发的用于 3D 资产生成的强大工具,支持从文本描述、单张图片或多视角图片生成 3D 模型,具备快速形状生成能力,可生成带纹理的高质量 3D 模型,适用于多个领域,为 3D 创作提供了高效解决方案。

3FS

3FS

一个具备存储、管理和客户端操作等多种功能的分布式文件系统相关项目。

3FS 是一个功能强大的分布式文件系统项目,涵盖了存储引擎、元数据管理、客户端工具等多个模块。它支持多种文件操作,如创建文件和目录、设置布局等,同时具备高效的事件循环、节点选择和协程池管理等特性。适用于需要大规模数据存储和管理的场景,能够提高系统的性能和可靠性,是分布式存储领域的优质解决方案。

下拉加载更多