Giter Site home page Giter Site logo

paddlepaddle / paddlemix Goto Github PK

View Code? Open in Web Editor NEW
226.0 21.0 93.0 73.42 MB

Paddle Multimodal Integration and eXploration, supporting mainstream multi-modal tasks, including end-to-end large-scale multi-modal pretrain models and diffusion model toolbox. Equipped with high performance and flexibility.

License: Apache License 2.0

Python 98.04% C++ 0.50% Cuda 0.40% Makefile 0.01% Shell 1.05%
aigc stable-diffusion blip2 clip minigpt4 image-to-text text-to-image ppdiffusers controlnet multimodal

paddlemix's Introduction



English Document

简介

PaddleMIX是基于飞桨的跨模态大模型开发套件,聚合图像、文本、视频等多种模态,覆盖视觉语言预训练,文生图,文生视频等丰富的跨模态任务。提供开箱即用的开发体验,同时满足开发者灵活定制需求,探索通用人工智能。

最新进展

2024.04.17 发布 PPDiffusers v0.24.0

  • PPDiffusers发布 v0.24.0 版本,支持DiT等Sora相关技术,支持SVD等多款视频生成模型

2023.10.7 发布 PaddleMIX v1.0

  • 新增图文预训练模型分布式训练能力,BLIP-2支持千亿规模训练
  • 新增跨模态应用流水线AppFlow,一键支持自动标注,图像编辑,音生图等11种跨模态应用
  • PPDiffusers发布 0.19.3 版本,新增SDXL及相关任务

2023.7.31 发布 PaddleMIX v0.1

  • 首次发布PaddleMIX跨模态大模型开发套件,融合PPDiffusers多模态扩散模型工具箱,广泛支持PaddleNLP大语言模型
  • 新增EVA-CLIP,BLIP-2,miniGPT-4,Stable Diffusion,ControlNet等12个跨模态大模型

主要特性

  • 丰富的多模态功能: 覆盖图文预训练,文生图,跨模态视觉任务,实现图像编辑、图像描述、数据标注等多样功能
  • 简洁的开发体验: 模型统一开发接口,高效实现自定义模型开发和功能实现
  • 高效的训推流程: 全量模型打通训练推理一站式开发流程,BLIP-2,Stable Diffusion等重点模型训推性能业界领先
  • 超大规模训练支持: 可训练千亿规模图文预训练模型,百亿规模文生图底座模型

任务展示

  • 视频Demo展示(video Demo)
PaddleMix.mp4

安装

  1. 环境依赖
pip install -r requirements.txt

关于PaddlePaddle安装的详细教程请查看Installation

注:ppdiffusers部分模型需要依赖 CUDA 11.2 及以上版本,如果本地机器不符合要求,建议前往 AI Studio 进行模型训练、推理任务。

如果希望使用bf16训练推理,请使用支持bf16的GPU,如A100。

  1. 手动安装
git clone https://github.com/PaddlePaddle/PaddleMIX
cd PaddleMIX
pip install -e .

#ppdiffusers 安装
cd ppdiffusers
pip install -e .

教程

特色应用

  1. 艺术风格二维码模型
  1. Mix叠图

模型库

多模态预训练 扩散类模型
  • 图文预训练
  • 开放世界视觉模型
  • 更多模态预训练模型
  • 文生图
  • 文生视频
  • 音频生成
  • 更多模型能力,可参考模型能力矩阵

    许可证书

    本项目的发布受Apache 2.0 license许可认证。

    paddlemix's People

    Contributors

    1649759610 avatar co63oc avatar cocoshe avatar crazyboym avatar cyber-pioneer avatar extremelydarksun avatar fbnoodle avatar feixliu avatar forfishes avatar guoshengcs avatar jerrywgz avatar junnyu avatar kpcofgs avatar ligoml avatar liujun121533 avatar liyulingyue avatar lokezhou avatar luyao-cv avatar lyuwenyu avatar mmglove avatar nemonameless avatar niuliling123 avatar pkhk-1 avatar sanbuphy avatar shiyutang avatar sneaxiy avatar tsaiyue avatar westfish avatar wjm202 avatar zhiboniu avatar

    Stargazers

     avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

    Watchers

     avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

    paddlemix's Issues

    PaddleMIX ppdiffusers中models模块升级controlnet代码

    PaddleMIX ppdiffusers中models模块升级controlnet代码

    任务描述

    任务背景

    • models模块代码升级。
    • 升级脚本:
      • models/controlnet.py

    完成步骤

    1. 对比ppdiffusers (v0.19.3)和diffusers (v0.21.1)的代码差异,可使用页面diff工具
    2. fork PaddleMix仓库并对题目中提到的代码文件进行更新
    3. 学习掌握pytest测试工具的使用,并确保升级后的代码文件能够通过tests/models目录下的单元测试用例(如有单测代码更新需要先进行对应单测升级再测试),确保升级后的代码正确。
    4. 提交PR到主仓库的develop分支,并描述任务具体完成情况(附上测试信息、推理用例)

    提交内容:

    1. 升级后的代码文件。
    2. 测试情况。

    题目更新:

    1. 对比ppdiffusers (v0.19.3)和diffusers (v0.21.1)的代码差异,可使用页面diff工具

    当前还请按照diffusers最新稳定版本0.23.1更新升级

    train_dreambooth_lora.py BAAI/AltDiffusion-m9 报错KeyError: 'XLMRobertaTokenizer'

    使用如下脚本,训练BAAI/AltDiffusion-m9 LORA :

    export MODEL_NAME="BAAI/AltDiffusion-m9"
    export INSTANCE_DIR="dog"
    export OUTPUT_DIR="alt-lora-model"

    python train_dreambooth_lora.py
    --pretrained_model_name_or_path=$MODEL_NAME
    --instance_data_dir=$INSTANCE_DIR
    --output_dir=$OUTPUT_DIR
    --instance_prompt="一张<鸣人>的图片"
    --resolution=512
    --train_batch_size=1
    --gradient_accumulation_steps=1
    --checkpointing_steps=100
    --learning_rate=1e-4
    --report_to="visualdl"
    --lr_scheduler="constant"
    --lr_warmup_steps=0
    --max_train_steps=500
    --validation_prompt="一张<鸣人>在篮子里面的图片"
    --validation_epochs=50
    --lora_rank=4
    --seed=0

    详细错误如下:
    100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 564/564 [00:00<00:00, 2.49MB/s]
    Traceback (most recent call last):
    File "/home/ai/robert/PaddleMIX/ppdiffusers/examples/dreambooth/train_dreambooth_lora.py", line 1158, in
    main()
    File "/home/ai/robert/PaddleMIX/ppdiffusers/examples/dreambooth/train_dreambooth_lora.py", line 690, in main
    tokenizer = AutoTokenizer.from_pretrained(
    File "/home/ai/anaconda3/envs/paddlenlp/lib/python3.10/site-packages/paddlenlp/transformers/auto/tokenizer.py", line 363, in from_pretrained
    tokenizer_class = cls._get_tokenizer_class_from_config(
    File "/home/ai/anaconda3/envs/paddlenlp/lib/python3.10/site-packages/paddlenlp/transformers/auto/tokenizer.py", line 197, in _get_tokenizer_class_from_config
    class_name = cls._name_mapping[init_class]
    KeyError: 'XLMRobertaTokenizer'

    【PaddleMIX 热身打卡】跑通 Stable-Diffusion 训练推理

    PaddleMIX作为跨模态大模型开发套件,提供了一系列的多模态模型,包括文生图、图像编辑、图文预训练模型等,为了让大家能快速上手PaddleMIX,我们举办了一个热身打卡活动🎡。

    参与热身打卡活动并按照邮件模板格式将截图发送至 [email protected],即可获得精美的飞桨黑客松周边礼品!数量有限,赶快行动起来吧~😊

    热身打卡活动简介

    为了让大家能快速上手PaddleMIX,我们举办了一个热身打卡活动,即跑通PaddleMIX中模型的训练推理流程。PaddleMIX聚合图像、文本、视频等多种模态,覆盖视觉语言预训练,文生图,文生视频等丰富的跨模态任务,本次打卡活动建议大家跑通文生图模型Stable-Diffusion训练推理打卡作为打卡任务。

    完成步骤:

    1. 通过 github 拉取 PaddlePaddle/PaddleMIX 仓库代码;
    2. 参考Stable-Diffusion训练推理打卡 进行数据准备、Stable Diffusion模型的训练(跑通即可)和推理;
    3. 发送邮件:将完成结果进行截图,即终端的训练成功截图、推理成功结果,以及根据文字生成的推理后图片(可参考下方示例生成对应文字的图片),参考如下格式向[email protected]发送邮件;
    4. 如果邮件回复打卡成功,即可获得精美的飞桨黑客松周边礼品!

    PaddleMIX文档链接:

    邮件格式

    标题: [Hackathon 大模型热身打卡]

    内容:

    飞桨团队你好,

    【GitHub ID】:XXX

    【打卡内容】:大模型xxx模型训练推理打卡

    【打卡截图】:

    如:

    标题: [Hackathon 大模型热身打卡]

    内容:

    飞桨团队你好,

    【GitHub ID】:paddle-hack

    【打卡内容】 :大模型文生图模型[Stable-Diffusion训练推理打卡](https://github.com/PaddlePaddle/P a d d le MIX/blob/develop/ppdiffusers/examples/stable_diffusion/README.md)

    【打卡截图】:

    1. 训练正确截图

    image

    1. 推理正确截图

    image

    1. 根据输入文本获得的生成图片
      (prompt = "a photograph of an astronaut riding a horse")
      astrounaut

    礼品发放

    打卡确认后,你会收到一封回复邮件,收集你的邮寄地址,请提供准确的邮寄地址,以便小礼品🎁可以飞速送到你的手上!
    在编译过程中有任何的问题或建议,都可以提交 issue 到PaddleMIX,在标题注明 PaddlePaddle Hackathon,经飞桨团队确认是 bug 或有效建议后,可额外获得精美小礼品一份~。
    将本次活动或活动奖品分享到社交平台(如B站、微博、小红书、朋友圈等),截图发在QQ/微信群或邮件中,也有机会获得更多周边礼品哦~🎁🎁🎉🎉

    黑客松-套件方向 Issue征集

    在参与黑客松时,是否遇到了各类问题无法解决?我们现在向大家征集Issue,并提供为大家高效解决的方式!

    请将自己的问题新开一个Issue,并将链接comment到下方。

    新增 StableDiffusionXL Reference Control支持

    新增 StableDiffusionXL Reference Control支持

    任务描述

    任务背景

    • 文生图任务

    完成步骤

    1. 模型、代码已经开源。
    2. 根据PaddleMIX ppdiffusers的pipeline,参考HF实现pipeline。
    3. 保证生成效果相当。
    4. 提交代码PR到PaddleMIX

    提交内容:

    1. 提交到PaddleMIX/ppdiffusers/ppdiffusers/pipelines

    PaddleMIX ppdiffusers中升级attention相关代码

    PaddleMIX ppdiffusers中升级attention相关代码

    任务描述

    任务背景

    • models模块代码升级。
    • 升级脚本:
      • models/attention.py
      • models/attention_processor.py

    完成步骤

    1. 对比ppdiffusers (v0.19.3)和diffusers (v0.21.1)的代码差异,可使用页面diff工具
    2. fork PaddleMix仓库并对题目中提到的代码文件进行更新
    3. 学习掌握pytest测试工具的使用,并确保升级后的代码文件能够通过tests/models目录下的单元测试用例(如有单测代码更新需要先进行对应单测升级再测试),确保升级后的代码正确。
    4. 提交PR到主仓库的develop分支,并描述任务具体完成情况(附上测试信息、推理用例)

    提交内容:

    1. 升级后的代码文件。
    2. 测试情况。

    题目更新:

    1. 对比ppdiffusers (v0.19.3)和diffusers (v0.21.1)的代码差异,可使用页面diff工具

    当前还请按照diffusers最新稳定版本0.23.1更新升级

    AudioLDM2模型复现前向推理

    AudioLDM2模型复现前向推理

    任务描述

    任务背景

    • AudioLDM2支持文本到音频和文本到语音的生成

    完成步骤

    1. 模型、代码已经开源。
    2. 根据开源代码进行网络结构转换,前向推理代码链接
    3. 前向推理跑通即可。
    4. 提交代码PR到PaddleMIX

    提交内容:

    1. 模型脚本提交到paddlemix/models。
    2. 推理脚本提交到paddlemix/examples。

    PaddleMIX ppdiffusers中models模块升级自编码器相关代码

    PaddleMIX ppdiffusers中models模块升级自编码器相关代码

    任务描述

    任务背景

    • models模块代码升级。
    • 升级脚本:
      • models/autoencoder_asym_kl.py
      • models/autoencoder_kl.py
      • models/autoencoder_tiny.py
      • models/vae.py
      • models/vq_model.py

    完成步骤

    1. 对比ppdiffusers (v0.19.3)和diffusers (v0.21.1)的代码差异,可使用页面diff工具
    2. fork PaddleMix仓库并对题目中提到的代码文件进行更新
    3. 学习掌握pytest测试工具的使用,并确保升级后的代码文件能够通过tests/models目录下的单元测试用例(如有单测代码更新需要先进行对应单测升级再测试),确保升级后的代码正确。
    4. 提交PR到主仓库的develop分支,并描述任务具体完成情况(附上测试信息、推理用例)

    提交内容:

    1. 升级后的代码文件。
    2. 测试情况。

    题目更新:

    1. 对比ppdiffusers (v0.19.3)和diffusers (v0.21.1)的代码差异,可使用页面diff工具

    当前还请按照diffusers最新稳定版本0.23.1更新升级

    instruct_pix2pix 训练支持

    instruct_pix2pix 训练支持

    任务描述

    任务背景

    • PaddleMIX ppdiffusers新增instruct_pix2pix训练流程。

    完成步骤

    1. 参考代码完成对齐

    提交内容:

    1. 提交到目录

    🏅️飞桨大模型套件快乐开源常规赛

    活动说明

    飞桨套件快乐开源常规赛活动旨在让众多开发者能参与到大模型套件的建设工作中,包括不限于新增基础功能、论文复现、代码升级等,本次活动可以帮助大家在贡献中学习大模型的相关知识,我们有专门的mentor指导大家任务的完成,让大家升级打怪不缺帮手。让我们共同成长为成为飞桨大模型套件的重要contributors吧!🎉🎉

    在套件快乐开源常规赛活动中,我们同步发布启航计划,启航计划会结合技术研讨和任务发布两种活动形式互相促进。任何愿意参与大模型社区贡献,对增长在大模型方向知识感兴趣的开发者都可以报名😊。

    如果你对PaddleMix尚不熟悉但也很想参与? 没关系,我们为你准备了热身打卡活动上手,完成任务的还也获得我们为你准备的精美的飞桨周边~ 欢迎参与呀。

    活动价值

    完成任务的贡献者可以获得:

    1. 技术提升:学习大模型的最新动态和方向,让自己的技术实力得以提升;
    2. 荣誉奖励:
      a. 成为极具影响力的大模型套件的重要contributor。
      b. 获得开源贡献证书、社区曝光度、奖状徽章等;
      c. 快乐开源奖品。
    3. 优秀的开源贡献者可以获得实习内推机会,成为飞桨模型套件方向实习生;

    任务攻克排行榜(Issue解答、代码开发)

    开发者github id 完成命题任务的数量 (:dart:)
    co63oc 🎯 🎯 🎯 🎯 🎯 🎯 🎯

    任务列表

    命题任务:

    命题任务是我们总结整理大模型套件的需求得出,每个任务上标注了任务难度,大家可以选择参与。欢迎对这些需求感兴趣的开发者参与到这些任务的开发✌️✌️。在开发过程中,你能进行包括任务分解、代码撰写等工作,还会有飞桨的研发全程和你一起解决可能遇到的问题。还等什么,快来参与吧。🎉🎉

    • 做任务流程:

      1. 在本条Issue页面进行报名。
      2. 加一下飞桨套件研发的微信:transy-k,加入到大模型开发者总群,在完成任务中有任何问题都可以进行反馈,会有模型套件方向的RD进行解答。
      3. 完成任务后,在任务对应跟踪Issue页面进行回复完成,RD验收通过后即视作完成,并在当天更新在排行榜。
    • 任务达成标准:完成尽可能多的任务,完成情况每天都会更新到任务攻克总榜(Issue解答、代码开发),完成命题任务的数量由:dart:认证

    • 任务列表

    任务名称 难度 任务描述 tracking issue 报名
    cogVLM模型复现向前推理 🌟 CogVLM 是一个强大的开源视觉语言模型,利用视觉专家模块深度整合语言编码和视觉编码,在10项权威跨模态基准上取得了SOTA性能 PaddleMIX#249 @Zero-Ding
    AudioLDM2模型复现前向推理 🌟 AudioLDM2支持文本到音频和文本到语音的生成 PaddleMIX#250 @NKNaN @challengewly
    新增模型vits-svc模型 🌟🌟 vits-svc支持是歌声转换和歌声克隆 PaddleMIX#251 @jingsongliujing @unicornshell
    新增 StableDiffusionXL Reference Control支持 🌟 文生图任务 PaddleMIX#252 @jiongjiongli @Kaedeharai
    新增Mixture Canvas pipeline 🌟 文生图任务 PaddleMIX#253 @Kaedeharai @Turingg
    新增grounding_dion微调能力 🌟🌟 Grounding_dino是开放集合的目标检测模型,paddlemix已实现前向推理 PaddleMIX#254 @Atlantisming @jiangziyan-693
    新增人像美肤模型 🌟 人像美肤模型可用于对图像中的人体皮肤进行处理,实现匀肤(处理痘印、肤色不均等)、去瑕疵(脂肪粒、斑点、痣等)以及美白等功能。模型仅对裸露的皮肤进行修饰美化,不影响其他区域。当前Paddle仓库中缺少关于人脸美肤的能力,因此需要开发者进行添加 PaddleMIX#255 @YangWulve @Hhankyangg @jiangziyan-693 @wyyang23
    fastdeploy版的sd15模型添加gradio界面 🌟 FastDeploy是一款面向全场景、易用且灵活、高效的AI推理部署工具,它支持云端和边缘端的部署,并为开发者提供超过160种文本、视觉、语音和跨模态模型。PPDiffusers中的StableDiffusion模型已经能够与FastDeploy兼容,实现推理操作,然而当前阶段,仍缺少一个可交互的Gradio调用界面,因此需要开发者进行相应的界面添加 PaddleMIX#256 @sanbuphy
    新增音乐生成(Music Generation)gradio应用(@LokeZhou 🌟🌟 为音乐生成应用新增gradio demo,参考Gradio应用介绍image-to-music_AI应用 PaddleMIX#257 @sanbuphy
    新增音频生成图像(Audio-to-Image Generation) 🌟 为音乐生成应用新增gradio demo,参考Gradio应用介绍image-to-music_AI应用-飞桨AI Studio星河社区 PaddleMIX#258 @sanbuphy @wyyang23
    PaddleMIX ppdiffusers中升级LoRA部分代码 🌟 lora代码升级 PaddleMIX#259 @isLinXu @shiofjsaio @rhmaaa @co63oc(已完成)
    PaddleMIX ppdiffusers中升级embeddings代码 🌟 models模块代码升级 PaddleMIX#260 @isLinXu @shiofjsaio @zoey333 @co63oc(已完成)
    PaddleMIX ppdiffusers中升级adapter代码 🌟 models模块代码升级 PaddleMIX#261 @isLinXu @shiofjsaio @co63oc(已完成)
    PaddleMIX ppdiffusers中升级attention相关代码 🌟 models模块代码升级 PaddleMIX#262 @isLinXu @shiofjsaio @unicornshell @co63oc(已完成)
    PaddleMIX ppdiffusers中models模块升级自编码器相关代码 🌟🌟 models模块代码升级 PaddleMIX#263 @co63oc(已完成)
    PaddleMIX ppdiffusers中models模块升级unet相关代码 🌟🌟 models模块代码升级 PaddleMIX#264 @co63oc(已完成)
    PaddleMIX ppdiffusers中升级prior模块 🌟 models模块代码升级 PaddleMIX#265 @co63oc(已完成)
    PaddleMIX ppdiffusers中models模块升级controlnet代码 🌟 models模块代码升级 PaddleMIX#266 @Olive-2019 @co63oc(已完成)
    Custom Diffusion 训练支持 🌟🌟 PaddleMIX ppdiffusers新增custom_diffusion训练流程 PaddleMIX#267
    Kandinsky2.2 训练支持 🌟🌟 PaddleMIX ppdiffusers新增kandinsky2_2训练流程 PaddleMIX#268 @Tsaiyue
    wuerstchen 训练支持 🌟🌟 PaddleMIX ppdiffusers新增wuerstchen训练流程 PaddleMIX#269
    instruct_pix2pix 训练支持 🌟🌟 PaddleMIX ppdiffusers新增instruct_pix2pix训练流程 PaddleMIX#270
    Checkpoint Merger 🌟 PaddleMIX ppdiffusers新增 checkpoint merger pipeline PaddleMIX#271 @zade23
    StableDiffusion Pipeline 升级 🌟🌟 PaddleMIX ppdiffusers升级 StableDiffusion Pipeline PaddleMIX#377

    ControlNet Reference Only这个社区实例无法运行,希望得到解决

    代码运行后报错
    Traceback (most recent call last): File "/disk2T/xxz/TextureRecommend/scripts/referrence.py", line 14, in <module> image = pipe(prompt, File "/home/xxz/.conda/envs/SD/lib/python3.10/site-packages/decorator.py", line 232, in fun return caller(func, *(extras + args), **kw) File "/home/xxz/.conda/envs/SD/lib/python3.10/site-packages/paddle/fluid/dygraph/base.py", line 347, in _decorate_function return func(*args, **kwargs) File "/disk2T/xxz/TextureRecommend/scripts/reference_only.py", line 1111, in __call__ noise_pred = self.unet( File "/home/xxz/.conda/envs/SD/lib/python3.10/site-packages/paddle/nn/layer/layers.py", line 1254, in __call__ return self.forward(*inputs, **kwargs) File "/home/xxz/.conda/envs/SD/lib/python3.10/site-packages/ppdiffusers/models/unet_2d_condition.py", line 931, in forward sample, res_samples = downsample_block( File "/home/xxz/.conda/envs/SD/lib/python3.10/site-packages/paddle/nn/layer/layers.py", line 1254, in __call__ return self.forward(*inputs, **kwargs) File "/home/xxz/.conda/envs/SD/lib/python3.10/site-packages/ppdiffusers/models/unet_2d_blocks.py", line 1036, in forward hidden_states = attn( File "/home/xxz/.conda/envs/SD/lib/python3.10/site-packages/paddle/nn/layer/layers.py", line 1254, in __call__ return self.forward(*inputs, **kwargs) TypeError: transformer_2d_model_forward() got an unexpected keyword argument 'attention_mask'
    报错显示这个attention_mask参数有问题

    为什么训练时没有保存图像

    训练ControlNet时,设置了 --logging_steps 5 \和--image_logging_steps 10 \,但是没有日志和图像,我没有改动过代码,为什么呢?

    Checkpoint Merger

    Checkpoint Merger

    任务描述

    任务背景

    • PaddleMIX ppdiffusers新增 checkpoint merger pipeline。

    完成步骤

    1.参考代码,新增 checkpoint merger pipeline
    2.支持合并和保存多个不同权重 ,保证合并后生成结果对齐

    提交内容:

    1. 提交到目录

    Kandinsky2.2 训练支持

    Kandinsky2.2 训练支持

    任务描述

    任务背景

    • PaddleMIX ppdiffusers新增kandinsky2_2训练流程。

    完成步骤

    1. 参考代码完成对齐

    提交内容:

    1. 提交到目录

    Custom Diffusion 训练支持

    Custom Diffusion 训练支持

    任务描述

    任务背景

    • PaddleMIX ppdiffusers新增custom_diffusion训练流程。

    完成步骤

    1. 参考代码完成对齐

    提交内容:

    1. 提交到目录

    bilp2 语言模型换为 THUDM/chatglm2-6b stage2 无法训练

    /root/PaddleMIX/paddlemix/models/blip2/modeling.py 文件中,以下语句报错:
    with paddle.amp.auto_cast(level="O2"):
    outputs = self.language_model(
    inputs_embeds=inputs_embeds,
    attention_mask=attention_mask,
    return_dict=True,
    labels=labels,
    )
    loss = outputs.loss
    报错信息如下:
    *** TypeError: ChatGLMv2Model.forward() got an unexpected keyword argument 'labels'

    量化GroundingDINO提示没注册ms_deformable_attn

    你好,我在尝试用PaddleSlim对GroundingDINO进行量化,发现如下报错:
    RuntimeError: (NotFound) Operator (ms_deformable_attn) is not registered.
    [Hint: op_info_ptr should not be null.] (at ../paddle/fluid/framework/op_info.h:151)

    请问这个可以解决吗?还是说不支持含ms_deformable_attn这种特殊算子的模型?

    cogVLM模型复现向前推理

    cogVLM模型复现向前推理

    任务描述

    任务背景

    • CogVLM 是一个强大的开源视觉语言模型,利用视觉专家模块深度整合语言编码和视觉编码,在10项权威跨模态基准上取得了SOTA性能

    完成步骤

    1. 模型、代码已经开源。
    2. 根据开源代码进行网络结构转换,前向推理代码链接
    3. 要求输入相同的图像与prompt,效果与web demo(测试网址)相当。
    4. 提交代码PR到PaddleMIX

    提交内容:

    1. 模型脚本提交到paddlemix/models。
    2. 推理脚本提交到paddlemix/examples。

    PaddleMIX ppdiffusers中升级LoRA部分代码

    PaddleMIX ppdiffusers中升级LoRA部分代码

    任务描述

    任务背景

    • lora代码升级。
    • 升级脚本:
      • models/lora.py
      • tests/models/test_lora_layers.py

    完成步骤

    1. 对比ppdiffusers (v0.19.3)和diffusers (v0.21.1)的代码差异,可使用页面diff工具
    2. fork PaddleMix仓库并对题目中提到的代码文件进行更新
    3. 学习掌握pytest测试工具的使用,并确保升级后的代码文件能够通过tests/models目录下的单元测试用例(如有单测代码更新需要先进行对应单测升级再测试),确保升级后的代码正确。
    4. 提交PR到主仓库的develop分支,并描述任务具体完成情况(附上测试信息、推理用例)

    提交内容:

    1. 升级后的代码文件。
    2. 测试情况。

    题目更新:

    1. 对比ppdiffusers (v0.19.3)和diffusers (v0.21.1)的代码差异,可使用页面diff工具

    当前还请按照diffusers最新稳定版本0.23.1更新升级

    PaddleMIX ppdiffusers中升级adapter代码

    PaddleMIX ppdiffusers中升级adapter代码

    任务描述

    任务背景

    • models模块代码升级。
    • 升级脚本:
      • models/adapter.py

    完成步骤

    1. 对比ppdiffusers (v0.19.3)和diffusers (v0.21.1)的代码差异,可使用页面diff工具
    2. fork PaddleMix仓库并对题目中提到的代码文件进行更新
    3. 学习掌握pytest测试工具的使用,并确保升级后的代码文件能够通过tests/models目录下的单元测试用例(如有单测代码更新需要先进行对应单测升级再测试),确保升级后的代码正确。
    4. 提交PR到主仓库的develop分支,并描述任务具体完成情况(附上测试信息、推理用例)

    提交内容:

    1. 升级后的代码文件。
    2. 测试情况。

    题目更新:

    1. 对比ppdiffusers (v0.19.3)和diffusers (v0.21.1)的代码差异,可使用页面diff工具

    当前还请按照diffusers最新稳定版本0.23.1更新升级

    新增模型vits-svc模型

    新增模型vits-svc模型

    任务描述

    任务背景

    • vits-svc支持是歌声转换和歌声克隆

    完成步骤

    1. 模型、代码已经开源。
    2. 根据开源代码进行网络结构转换,训练、推理,代码链接
    3. 前向推理和训练跑通即可。
    4. 提交代码PR到PaddleMIX

    提交内容:

    1. 模型脚本提交到paddlemix/models。
    2. 推理脚本提交到paddlemix/examples。

    新增grounding_dion微调能力

    新增grounding_dion微调能力

    任务描述

    任务背景

    • Grounding_dino是开放集合的目标检测模型,paddlemix已实现前向推理

    完成步骤

    1. 模型、代码已实现。
    2. 参考grounding_dino微调,基于paddlemix实现微调功能。
    3. 无具体指标,在finetune数据集指标相比baseline高即可,开放性题目。
    4. 提交代码PR到PaddleMIX

    提交内容:

    1. 提交一个finetune.py脚本到paddlemix/models/groundingdino。

    PaddleMIX ppdiffusers中models模块升级unet相关代码

    PaddleMIX ppdiffusers中models模块升级unet相关代码

    任务描述

    任务背景

    • models模块代码升级。
    • 升级脚本:
      • models/unet_1d.py
      • models/unet_2d.py
      • models/unet_2d_blocks.py
      • models/unet_2d_condition.py
      • models/unet_3d_condition.py

    完成步骤

    1. 对比ppdiffusers (v0.19.3)和diffusers (v0.21.1)的代码差异,可使用页面diff工具
    2. fork PaddleMix仓库并对题目中提到的代码文件进行更新
    3. 学习掌握pytest测试工具的使用,并确保升级后的代码文件能够通过tests/models目录下的单元测试用例(如有单测代码更新需要先进行对应单测升级再测试),确保升级后的代码正确。
    4. 提交PR到主仓库的develop分支,并描述任务具体完成情况(附上测试信息、推理用例)

    提交内容:

    1. 升级后的代码文件。
    2. 测试情况。

    题目更新:

    1. 对比ppdiffusers (v0.19.3)和diffusers (v0.21.1)的代码差异,可使用页面diff工具

    当前还请按照diffusers最新稳定版本0.23.1更新升级

    新增人像美肤模型

    新增人像美肤模型

    任务描述

    任务背景

    • 人像美肤模型可用于对图像中的人体皮肤进行处理,实现匀肤(处理痘印、肤色不均等)、去瑕疵(脂肪粒、斑点、痣等)以及美白等功能。模型仅对裸露的皮肤进行修饰美化,不影响其他区域。当前Paddle仓库中缺少关于人脸美肤的能力,因此需要开发者进行添加。

    完成步骤

    1. 模型和代码已经开源,代码链接
    2. 根据代码进行权重以及网络结构转换。
    3. 验证模型,仅要求前向推理输出结果一致。
    4. 提交代码至目录

    提交内容:

    1. 模型和推理脚本。

    No such file or directory

    在百度的aistudio平台上运行,报如下错误:
    : '/opt/conda/envs/python35-paddle120-env/lib/python3.10/site-packages/paddlemix-0.1.0-py3.10.egg/paddlemix/processors/bpe_simple_vocab_16e6.txt.gz'

    wuerstchen 训练支持

    wuerstchen 训练支持

    任务描述

    任务背景

    • PaddleMIX ppdiffusers新增wuerstchen训练流程。

    完成步骤

    1. 参考代码完成对齐,若缺少相应的models部分需实现并添加到ppdiffusers

    提交内容:

    1. 提交到目录

    fastdeploy版的sd15模型添加gradio界面

    fastdeploy版的sd15模型添加gradio界面

    任务描述

    任务背景

    • FastDeploy是一款面向全场景、易用且灵活、高效的AI推理部署工具,它支持云端和边缘端的部署,并为开发者提供超过160种文本、视觉、语音和跨模态模型。PPDiffusers中的StableDiffusion模型已经能够与FastDeploy兼容,实现推理操作,然而当前阶段,仍缺少一个可交互的Gradio调用界面,因此需要开发者进行相应的界面添加。

    完成步骤

    1. 熟悉 ppdiffusers部署中的部署流程。
    2. 编写文生图、图生图、inpaint_legacy、inpaint、controlnet+canny的gradio界面。
    3. 要求推理后端使用paddle-trt。
    4. 在aistudio平台上搭建Gradio项目,参考Gradio应用介绍
    5. 提交代码PR到 PPDiffusers中deploy目录

    建议版本:

    • paddlepaddle 2.5.2
    • fastdeploy-python-gpu 1.0.7
    • ppdiffusers==0.16.3
    • python 3.10

    推理时候请确保--scheduler "euler-ancestral" --infer_op raw --backend paddle_tensorrt --use_fp16 True --device gpu

    # 1. sd1-5导出模型
    # 关闭ppxformers,否则会导致模型导出失败
    export USE_PPXFORMERS=False
    python export_model.py --pretrained_model_name_or_path runwayml/stable-diffusion-v1-5 --output_path stable-diffusion-v1-5
    
    ## 文生图推理
    python infer.py --model_dir stable-diffusion-v1-5/ --scheduler "euler-ancestral" --infer_op raw --backend paddle_tensorrt --use_fp16 True --device gpu --task_name text2img
    
    ## 图生图推理
    python infer.py --model_dir stable-diffusion-v1-5/ --scheduler "euler-ancestral" --infer_op raw --backend paddle_tensorrt --use_fp16 True --device gpu --task_name img2img
    
    ## inpaint_legacy
    python infer.py --model_dir stable-diffusion-v1-5/ --scheduler euler-ancestral --infer_op raw --backend paddle_tensorrt --use_fp16 True --device gpu --task_name inpaint_legacy
    # 2. sd1-5 inpaint 导出模型
    # 关闭ppxformers,否则会导致模型导出失败
    export USE_PPXFORMERS=False
    python export_model.py --pretrained_model_name_or_path runwayml/stable-diffusion-inpainting --output_path stable-diffusion-v1-5-inpainting
    
    ## inpaint
    python infer.py --model_dir stable-diffusion-v1-5-inpainting/ --scheduler euler-ancestral --infer_op raw --backend paddle_tensorrt --use_fp16 True --device gpu --task_name inpaint
    # 3. sd15 controlnet导出
    # 关闭ppxformers,否则会导致模型导出失败
    export USE_PPXFORMERS=False
    python export_model.py --pretrained_model_name_or_path runwayml/stable-diffusion-v1-5 --controlnet_pretrained_model_name_or_path  lllyasviel/sd-controlnet-canny --output_path control_sd15_canny
    
    ## controlnet canny
    python infer.py --model_dir control_sd15_canny --scheduler "euler-ancestral" --infer_op raw --backend paddle_tensorrt --device gpu --benchmark_steps 10 --use_fp16 True --task text2img_control

    提交内容:

    1. 单个gradio.py文件,里面支持文生图、图生图、inpaint_legacy、inpaint、controlnet+canny的推理。
    2. aistudio上的gradio项目。

    import paddlemix 报错

    import paddlemix 报错

    git下载2023.8.18日PaddleMIX库文件,cd PaddleMIX && pip install -e . 安装。

    使用的是启智平台:
    Python 3.10.10
    NVIDIA-SMI 450.80.02 Driver Version: 450.80.02 CUDA Version: 11.0

    pip库情况:

    paddle-bfloat                  0.1.7
    paddle-pipelines               0.5.3
    paddle2onnx                    1.0.8
    paddlefsl                      1.1.0
    paddlemix                      0.1.0          /code/PaddleMIX
    paddlenlp                      2.6.0rc0.post0
    paddleocr                      2.6.1.3
    paddlepaddle-gpu               2.5.1.post117
    numpy                          1.24.3
    

    报错信息

    ---------------------------------------------------------------------------
    AttributeError                            Traceback (most recent call last)
    Cell In[1], line 1
    ----> 1 from paddlemix import Appflow
    
    File /code/PaddleMIX/paddlemix/__init__.py:16
          1 # copyright (c) 2023 paddlepaddle authors. all rights reserved.
          2 # copyright 2023 the salesforce team authors and the huggingface team. all rights reserved.
          3 #
       (...)
         13 # see the license for the specific language governing permissions and
         14 # limitations under the license.
    ---> 16 from .appflow import *
         17 from .datasets import *
         18 from .models import *
    
    File /code/PaddleMIX/paddlemix/appflow/__init__.py:15
          1 # Copyright (c) 2023 PaddlePaddle Authors. All Rights Reserved.
          2 #
          3 # Licensed under the Apache License, Version 2.0 (the "License");
       (...)
         12 # See the License for the specific language governing permissions and
         13 # limitations under the License.
    ---> 15 from .appflow import Appflow
    
    File /code/PaddleMIX/paddlemix/appflow/appflow.py:20
         16 import paddle
         18 from paddlemix.utils.tools import get_env_device
    ---> 20 from .configuration import APPLICATIONS
         23 class Appflow(object):
         24     """
         25     Args:
         26         app (str): The app name for the Appflow, and get the task class from the name.
       (...)
         32 
         33     """
    
    File /code/PaddleMIX/paddlemix/appflow/configuration.py:20
         15 from .image2image_text_guided_generation import (
         16     StableDiffusionImg2ImgTask,
         17     StableDiffusionUpscaleTask,
         18 )
         19 from .image2text_generation import Blip2CaptionTask
    ---> 20 from .openset_det_sam import OpenSetDetTask, OpenSetSegTask
         21 from .text2image_generation import StableDiffusionTask, VersatileDiffusionDualGuidedTask
         22 from .text2image_inpaiting import StableDiffusionInpaintTask
    
    File /code/PaddleMIX/paddlemix/appflow/openset_det_sam.py:18
         15 import paddle
         16 import paddle.nn.functional as F
    ---> 18 from paddlemix.models.groundingdino.modeling import GroundingDinoModel
         19 from paddlemix.models.sam.modeling import SamModel
         20 from paddlemix.processors.groundingdino_processing import GroudingDinoProcessor
    
    File /code/PaddleMIX/paddlemix/models/groundingdino/modeling.py:26
         23 from paddlenlp.utils.initializer import constant_, xavier_uniform_
         25 from .backbone import build_backbone
    ---> 26 from .bertwarper import BertModelWarper
         27 from .configuration import GroundingDinoConfig
         28 from .transformer import build_transformer
    
    File /code/PaddleMIX/paddlemix/models/groundingdino/bertwarper.py:21
         16 import paddle.nn as nn
         17 from paddlenlp.transformers.model_outputs import (
         18     BaseModelOutputWithPoolingAndCrossAttentions,
         19 )
    ---> 21 from .bert_model import BertModel
         24 class BertModelWarper(nn.Layer):
         25     def __init__(self, bert_model):
    
    File /code/PaddleMIX/paddlemix/models/groundingdino/bert_model.py:455
        451         pooled_output = self.activation(pooled_output)
        452         return pooled_output
    --> 455 class BertModel(nn.Layer):
        456     """
        457 
        458     The model can behave as an encoder (with only self-attention) as well as a decoder, in which case a layer of
       (...)
        465     `add_cross_attention` set to `True`; an `encoder_hidden_states` is then expected as an input to the forward pass.
        466     """
        468     def __init__(self, config, add_pooling_layer=True):
    
    File /code/PaddleMIX/paddlemix/models/groundingdino/bert_model.py:495, in BertModel()
        487     for layer, heads in heads_to_prune.items():
        488         self.encoder.layer[layer].attention.prune_heads(heads)
        490 def get_extended_attention_mask(
        491     self,
        492     attention_mask: paddle.Tensor,
        493     input_shape: Tuple[int],
        494     device: str = None,
    --> 495     dtype: np.float = None,
        496 ) -> paddle.Tensor:
        497     if dtype is None:
        498         dtype = np.float32
    
    File /opt/conda/lib/python3.10/site-packages/numpy/__init__.py:305, in __getattr__(attr)
        300     warnings.warn(
        301         f"In the future `np.{attr}` will be defined as the "
        302         "corresponding NumPy scalar.", FutureWarning, stacklevel=2)
        304 if attr in __former_attrs__:
    --> 305     raise AttributeError(__former_attrs__[attr])
        307 # Importing Tester requires importing all of UnitTest which is not a
        308 # cheap import Since it is mainly used in test suits, we lazy import it
        309 # here to save on the order of 10 ms of import time for most users
        310 #
        311 # The previous way Tester was imported also had a side effect of adding
        312 # the full `numpy.testing` namespace
        313 if attr == 'testing':
    
    AttributeError: module 'numpy' has no attribute 'float'.
    `np.float` was a deprecated alias for the builtin `float`. To avoid this error in existing code, use `float` by itself. Doing this will not modify any behavior and is safe. If you specifically wanted the numpy scalar type, use `np.float64` here.
    The aliases was originally deprecated in NumPy 1.20; for more details and guidance see the original release note at:
        https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations
    

    controlnet训练报错

    controlnet 可以自定义训练sd2的模型吗?我使用md中的教程一直出现错误。

    ckpt怎么转化为ppdiffusers格式?

    如题,ckpt怎么转化为ppdiffusers格式,相反ppdiffusers格式怎么转化为ckpt格式。
    另外训练出的Lora模型怎么和基础模型合并?
    还有训练controlnet时,--pretrained_model_name_or_path runwayml/stable-diffusion-v1-5 \这里是填写基础模型,还是要训练的controlnet模型。如果是基础模型的话,假如我想训练controlnet的ip2p,那ip2p模型需要怎么填写,再加入一个pretrained_model_name_or_path?还是其他。
    谢谢。

    性能这么差,sd1.5 16G显存都运行不了?

    Out of memory error on GPU 0. Cannot allocate 5.062500GB memory on GPU 0, 12.043945GB memory has been allocated and available memory is only 2.956055GB.

    官方demo:
    from paddlemix import Appflow import paddle paddle.seed(1024) task = Appflow(app="text2image_generation", models=["stabilityai/stable-diffusion-v1-5"] ) prompt = "a photo of an astronaut riding a horse on mars." result = task(prompt=prompt)['result']

    T2I的数据集怎么做。

    我看了下代码,需要转化为base64编码字符串格式,不会啊。。。而且我看到里面提到的text都是对图片的描述,如果是要风格转化模型呢,难道需要原图像的描述和目标图像描述?prompt怎么做呢?我尝试用Fill50k数据集试一下,果然报错。。。

    "_CudaDeviceProperties" is already registered

    运行示例代码会报错,看起来是因为同时引用了pd和torch
    import paddle
    from ppdiffusers import StableDiffusionPipeline

    Traceback (most recent call last):
    File "", line 1, in
    File "/opt/conda/lib/python3.8/site-packages/ppdiffusers/init.py", line 17, in
    from . import patches
    File "/opt/conda/lib/python3.8/site-packages/ppdiffusers/patches/init.py", line 15, in
    from . import ppnlp_patch_utils, tomesd_patch_utils, webui_lora_patch_utils
    File "/opt/conda/lib/python3.8/site-packages/ppdiffusers/patches/ppnlp_patch_utils.py", line 26, in
    from ..utils import (
    File "/opt/conda/lib/python3.8/site-packages/ppdiffusers/utils/init.py", line 93, in
    from .load_utils import is_torch_file, safetensors_load, smart_load, torch_load
    File "/opt/conda/lib/python3.8/site-packages/ppdiffusers/utils/load_utils.py", line 50, in
    import torch
    File "/opt/conda/lib/python3.8/site-packages/torch/init.py", line 199, in
    from torch._C import * # noqa: F403
    RuntimeError: generic_type: type "_CudaDeviceProperties" is already registered!

    PaddleMIX ppdiffusers中升级prior模块

    PaddleMIX ppdiffusers中升级prior模块

    任务描述

    任务背景

    • models模块代码升级。
    • 升级脚本:
      • models/prior_transformer.py
      • models/transformer_2d.py
      • models/resnet.py

    完成步骤

    1. 对比ppdiffusers (v0.19.3)和diffusers (v0.21.1)的代码差异,可使用页面diff工具
    2. fork PaddleMix仓库并对题目中提到的代码文件进行更新
    3. 学习掌握pytest测试工具的使用,并确保升级后的代码文件能够通过tests/models目录下的单元测试用例(如有单测代码更新需要先进行对应单测升级再测试),确保升级后的代码正确。
    4. 提交PR到主仓库的develop分支,并描述任务具体完成情况(附上测试信息、推理用例)

    提交内容:

    1. 升级后的代码文件。
    2. 测试情况。

    题目更新:

    1. 对比ppdiffusers (v0.19.3)和diffusers (v0.21.1)的代码差异,可使用页面diff工具

    当前还请按照diffusers最新稳定版本0.23.1更新升级

    Aistudio 平台运行paddlemix下面的文生图例子出错

    ['OpenCC', 'CONFIGS', 'version'] 10 version = opencc_clib.version ImportError: /usr/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by /opt/conda/envs/python35-paddle120-env/lib/python3.10/site-packages/opencc/clib/opencc_clib.cpython-310-x86_64-linux-gnu.so)

    新增 Mixture Canvas pipeline

    新增 Mixture Canvas pipeline

    任务描述

    任务背景

    • 文生图任务

    完成步骤

    1. 模型、代码已经开源。
    2. 根据PaddleMIX ppdiffusers的pipeline,参考HF实现pipeline。
    3. 保证生成效果相当。
    4. 提交代码PR到PaddleMIX

    提交内容:

    1. 提交到PaddleMIX/ppdiffusers/ppdiffusers/pipelines。

    add some example

    text_to_image_generation-stable_diffusion_xl
    image

    text_to_image_generation-kandinsky2_2
    image

    text_to_image_generation-unidiffuser
    image

    image_to_image_text_guided_generation-stable_diffusion_xl
    image
    image

    image_to_image_text_guided_generation-kandinsky2_2
    image
    image

    text_guided_image_inpainting-kandinsky2_2
    image
    image

    PaddleMIX ppdiffusers中升级embeddings代码

    PaddleMIX ppdiffusers中升级embeddings代码

    任务描述

    任务背景

    • models模块代码升级。
    • 升级脚本:
      • models/embeddings.py

    完成步骤

    1. 对比ppdiffusers (v0.19.3)和diffusers (v0.21.1)的代码差异,可使用页面diff工具
    2. fork PaddleMix仓库并对题目中提到的代码文件进行更新
    3. 学习掌握pytest测试工具的使用,并确保升级后的代码文件能够通过tests/models目录下的单元测试用例(如有单测代码更新需要先进行对应单测升级再测试),确保升级后的代码正确。
    4. 提交PR到主仓库的develop分支,并描述任务具体完成情况(附上测试信息、推理用例)

    提交内容:

    1. 升级后的代码文件。
    2. 测试情况。

    题目更新:

    1. 对比ppdiffusers (v0.19.3)和diffusers (v0.21.1)的代码差异,可使用页面diff工具

    当前还请按照diffusers最新稳定版本0.23.1更新升级

    Recommend Projects

    • React photo React

      A declarative, efficient, and flexible JavaScript library for building user interfaces.

    • Vue.js photo Vue.js

      🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

    • Typescript photo Typescript

      TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

    • TensorFlow photo TensorFlow

      An Open Source Machine Learning Framework for Everyone

    • Django photo Django

      The Web framework for perfectionists with deadlines.

    • D3 photo D3

      Bring data to life with SVG, Canvas and HTML. 📊📈🎉

    Recommend Topics

    • javascript

      JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

    • web

      Some thing interesting about web. New door for the world.

    • server

      A server is a program made to process requests and deliver data to clients.

    • Machine learning

      Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

    • Game

      Some thing interesting about game, make everyone happy.

    Recommend Org

    • Facebook photo Facebook

      We are working to build community through open source technology. NB: members must have two-factor auth.

    • Microsoft photo Microsoft

      Open source projects and samples from Microsoft.

    • Google photo Google

      Google ❤️ Open Source for everyone.

    • D3 photo D3

      Data-Driven Documents codes.