Giter Site home page Giter Site logo

paddlepaddle / paddlemix Goto Github PK

View Code? Open in Web Editor NEW
229.0 21.0 99.0 80.77 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.08% C++ 0.49% Cuda 0.39% Makefile 0.01% Shell 1.03%
aigc stable-diffusion blip2 clip minigpt4 image-to-text text-to-image ppdiffusers controlnet multimodal

paddlemix's Issues

新增 StableDiffusionXL Reference Control支持

新增 StableDiffusionXL Reference Control支持

任务描述

任务背景

  • 文生图任务

完成步骤

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

提交内容:

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

新增 Mixture Canvas pipeline

新增 Mixture Canvas pipeline

任务描述

任务背景

  • 文生图任务

完成步骤

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

提交内容:

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

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 \,但是没有日志和图像,我没有改动过代码,为什么呢?

instruct_pix2pix 训练支持

instruct_pix2pix 训练支持

任务描述

任务背景

  • PaddleMIX ppdiffusers新增instruct_pix2pix训练流程。

完成步骤

  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'

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更新升级

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更新升级

"_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!

wuerstchen 训练支持

wuerstchen 训练支持

任务描述

任务背景

  • PaddleMIX ppdiffusers新增wuerstchen训练流程。

完成步骤

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

提交内容:

  1. 提交到目录

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更新升级

AudioLDM2模型复现前向推理

AudioLDM2模型复现前向推理

任务描述

任务背景

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

完成步骤

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

提交内容:

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

Kandinsky2.2 训练支持

Kandinsky2.2 训练支持

任务描述

任务背景

  • PaddleMIX ppdiffusers新增kandinsky2_2训练流程。

完成步骤

  1. 参考代码完成对齐

提交内容:

  1. 提交到目录

controlnet训练报错

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

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

活动说明

飞桨套件快乐开源常规赛活动旨在让众多开发者能参与到大模型套件的建设工作中,包括不限于新增基础功能、论文复现、代码升级等,本次活动可以帮助大家在贡献中学习大模型的相关知识,我们有专门的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

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

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更新升级

新增模型vits-svc模型

新增模型vits-svc模型

任务描述

任务背景

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

完成步骤

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

提交内容:

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

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?还是其他。
谢谢。

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项目。

性能这么差,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']

Custom Diffusion 训练支持

Custom Diffusion 训练支持

任务描述

任务背景

  • PaddleMIX ppdiffusers新增custom_diffusion训练流程。

完成步骤

  1. 参考代码完成对齐

提交内容:

  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'

Checkpoint Merger

Checkpoint Merger

任务描述

任务背景

  • PaddleMIX ppdiffusers新增 checkpoint merger pipeline。

完成步骤

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

提交内容:

  1. 提交到目录

【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/微信群或邮件中,也有机会获得更多周边礼品哦~🎁🎁🎉🎉

新增人像美肤模型

新增人像美肤模型

任务描述

任务背景

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

完成步骤

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

提交内容:

  1. 模型和推理脚本。

新增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中升级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更新升级

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更新升级

T2I的数据集怎么做。

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

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)

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更新升级

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更新升级

量化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这种特殊算子的模型?

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'

黑客松-套件方向 Issue征集

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

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

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

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.