4 Commits
Author SHA1 Message Date
Anh71meandgubei 8eddf6ed3d Merge pull request #24 from longgui0318/main
* diffusers 0.26 support . from https://github.com/levihsu/OOTDiffusion/issues/44#issuecomment-1968365131

---------

Co-authored-by: gubei <>
2024-03-14 11:45:36 +08:00
gubei c17a198800 fix diffusers minimum version requirement 2024-03-14 09:34:12 +08:00
gubei feb9d28f1d Add diffusers minimum version requirement
PixArtAlphaTextProjection renamed in version 0.25.0 issues id 6212
GLIGENTextBoundingboxProjection added in version 0.25.1 issues id 6244
2024-03-13 18:09:17 +08:00
gubei c5abb6f538 fix diffusers verison . from https://github.com/levihsu/OOTDiffusion/issues/44#issuecomment-1968365131 2024-03-13 16:14:15 +08:00
6 changed files with 25 additions and 48 deletions
+16 -39
View File
@@ -45,6 +45,8 @@ conda install cuda-nvcc -c nvidia
```
![](./assets/tutorial_windows_install.png)
![](./assets/tutorial_windows_install_1.png)
![](./assets/tutorial_windows_install_2.png)
![](./assets/tutorial_windows_install_3.png)
根据自己系统选择 Windows 10 SDK / Windows 11 SDK.
@@ -64,38 +66,15 @@ vcvars64.bat
编译完成,成功启动。
## diffusers 版本
`main` 分支锁定 diffusers==0.24
`diffusers-0.26` 分支锁定 diffusers==0.26.x
要切换分支,请使用下面命令:
```
git switch diffusers-0.26
```
并重新安装依赖:
```
pip install --force-reinstall -r custom_nodes/ComfyUI-OOTDiffusion/requirements.txt
```
## FAQ 常见错误
```
fatal error: cuda_runtime.h: No such file or directory compilation terminated.
ninja: build stopped: subcommand failed.
```
> fatal error: cuda_runtime.h: No such file or directory compilation terminated. ninja: build stopped: subcommand failed.
>
> 解决办法:`conda install cuda-toolkit=12.1 -c nvidia`
解决办法:`conda install cuda-toolkit=12.1 -c nvidia` 并覆写 `CUDA_HOME` `CUDA_PATH` 环境变量
```
subprocess.CalledProcessError: Command '['where', 'cl']' returned non-zero exit status 1.
```
解决办法:仅在 Windows 下出现,根据 [Windows 配置教程](#Windows-指南)
> subprocess.CalledProcessError: Command '['where', 'cl']' returned non-zero exit status 1.
>
> 解决办法:仅在 Windows 下出现,根据 [Windows 配置教程](#Windows-指南)
## Node 节点
@@ -105,8 +84,6 @@ Load OOTDiffusion from Hub: 从 huggingface 自动下载并加载 OOTDiffusion P
OOTDiffusion Generate: 生成图像
参数:
cfg: 输出图像和输入衣服的贴合程度
## Example image 示例图片
@@ -117,16 +94,16 @@ Full body 全身: [模特](./assets/model_fullbody_1.png) [裤子](./assets/clot
Full body 裙子: [模特](./assets/model_dress_1.png) [裙子](./assets/cloth_dress_1.jpg)
## Detail 细节
目前此项目只是对 OOTDiffusion 的功能做了个简单的迁移。
OOTDiffusion 本体依赖于 `diffusers==0.24.0` 实现,所以假如有其他节点的依赖冲突是没办法解决的(本就不该依赖 diffusers)。
靠 vendor 也能解决,所以也不是大问题。
在 `Ubuntu 22.02` / `Python 3.10.x` 下可以正常运行。Windows 没有测试过。
## 更新日志 Release Note
2024-03-14:
添加 `diffusers-0.26` 分支
2024-03-10:
添加 humanparsing onnx 支持
2024-03-04:
添加 Full body 模型
+2 -2
View File
@@ -26,7 +26,7 @@ from diffusers.configuration_utils import ConfigMixin, register_to_config
from diffusers.models.embeddings import ImagePositionalEmbeddings
from diffusers.utils import USE_PEFT_BACKEND, BaseOutput, deprecate
# from diffusers.models.attention import BasicTransformerBlock
from diffusers.models.embeddings import CaptionProjection, PatchEmbed
from diffusers.models.embeddings import PixArtAlphaTextProjection, PatchEmbed
from diffusers.models.lora import LoRACompatibleConv, LoRACompatibleLinear
from diffusers.models.modeling_utils import ModelMixin
from diffusers.models.normalization import AdaLayerNormSingle
@@ -237,7 +237,7 @@ class Transformer2DModel(ModelMixin, ConfigMixin):
self.caption_projection = None
if caption_channels is not None:
self.caption_projection = CaptionProjection(in_features=caption_channels, hidden_size=inner_dim)
self.caption_projection = PixArtAlphaTextProjection(in_features=caption_channels, hidden_size=inner_dim)
self.gradient_checkpointing = False
+2 -2
View File
@@ -26,7 +26,7 @@ from diffusers.configuration_utils import ConfigMixin, register_to_config
from diffusers.models.embeddings import ImagePositionalEmbeddings
from diffusers.utils import USE_PEFT_BACKEND, BaseOutput, deprecate
# from diffusers.models.attention import BasicTransformerBlock
from diffusers.models.embeddings import CaptionProjection, PatchEmbed
from diffusers.models.embeddings import PixArtAlphaTextProjection, PatchEmbed
from diffusers.models.lora import LoRACompatibleConv, LoRACompatibleLinear
from diffusers.models.modeling_utils import ModelMixin
from diffusers.models.normalization import AdaLayerNormSingle
@@ -237,7 +237,7 @@ class Transformer2DModel(ModelMixin, ConfigMixin):
self.caption_projection = None
if caption_channels is not None:
self.caption_projection = CaptionProjection(in_features=caption_channels, hidden_size=inner_dim)
self.caption_projection = PixArtAlphaTextProjection(in_features=caption_channels, hidden_size=inner_dim)
self.gradient_checkpointing = False
+2 -2
View File
@@ -44,7 +44,7 @@ from diffusers.models.embeddings import (
ImageHintTimeEmbedding,
ImageProjection,
ImageTimeEmbedding,
PositionNet,
GLIGENTextBoundingboxProjection,
TextImageProjection,
TextImageTimeEmbedding,
TextTimeEmbedding,
@@ -624,7 +624,7 @@ class UNetGarm2DConditionModel(ModelMixin, ConfigMixin, UNet2DConditionLoadersMi
positive_len = cross_attention_dim[0]
feature_type = "text-only" if attention_type == "gated" else "text-image"
self.position_net = PositionNet(
self.position_net = GLIGENTextBoundingboxProjection(
positive_len=positive_len, out_dim=cross_attention_dim, feature_type=feature_type
)
+2 -2
View File
@@ -44,7 +44,7 @@ from diffusers.models.embeddings import (
ImageHintTimeEmbedding,
ImageProjection,
ImageTimeEmbedding,
PositionNet,
GLIGENTextBoundingboxProjection,
TextImageProjection,
TextImageTimeEmbedding,
TextTimeEmbedding,
@@ -624,7 +624,7 @@ class UNetVton2DConditionModel(ModelMixin, ConfigMixin, UNet2DConditionLoadersMi
positive_len = cross_attention_dim[0]
feature_type = "text-only" if attention_type == "gated" else "text-image"
self.position_net = PositionNet(
self.position_net = GLIGENTextBoundingboxProjection(
positive_len=positive_len, out_dim=cross_attention_dim, feature_type=feature_type
)
+1 -1
View File
@@ -5,7 +5,7 @@ scipy
scikit-image
opencv-python
pillow
diffusers==0.24.0
diffusers>=0.26.0
transformers
accelerate
matplotlib