Upgrade to v1.0.5

This commit is contained in:
yolain
2024-02-07 00:15:06 +08:00
parent 08953d2ce8
commit 86606248f5
8 changed files with 191 additions and 217 deletions
+41 -94
View File
@@ -29,151 +29,97 @@ After installing the node package, the UI interface will be automatically switch
## Changelog
**2024-02-02**
**v1.0.5 (2024-02-07)**
- Added `easy isSDXL`
- `easy svdLoader` add prompt word control, which can be used with open_clip model
**v1.0.4**
- `easy showAnything` Added support for converting other types (e.g., tensor conditions, images, etc.)
**2024-02-02**
- Fixed xyplot replace getfont with getbbox to be compatible with Pillow>9.5
**2024-01-31**
- Fixed `easy wildcards` An error is reported when running with the PS extension
- Added `easy showLoaderSettingsNames` can display the model and VAE name in the output loader assembly
**2024-01-29**
- Changing the first-time install node package no longer automatically replaces the theme, you need to manually adjust and refresh the page
- `easy imageSave` added **only_preivew**
- Added `easy promptList`
- Adjust the `easy latentCompositeMaskedWithCond` node
**v1.0.4(2024-01-28)**
- `easy kSamplerInpainting` Added the **patch** input value to be used with the FooocusInpaintLoader node
- Added `easy fooocusInpaintLoader` (only the process of SDXLModel is supported)
- Added **Logic** nodes
- Added `easy imageSave` - Image saving node with date conversion and aspect and height formatting
- Added `easy joinImageBatch`
- `easy kSamplerInpainting` Added the **patch** input value to be used with the FooocusInpaintLoader node
- Fixed xyplot error when with Pillow>9.5
- Fixed `easy wildcards` An error is reported when running with the PS extension
- Fixed `easy XYInputs: ControlNet` Error
- Fixed `easy loraStack` error when **toggle** is disabled
<details>
<summary><b>2024-01-22</b></summary>
- Fixed `easy XYInputs: Sampler/Scheduler` Error
- Fixed the right menu has a problem when clicking the button
- Adjust the UI theme, divided into two sets of styles: the official default background and the dark black background, which can be switched in the color palette in the settings
</details>
- Changing the first-time install node package no longer automatically replaces the theme, you need to manually adjust and refresh the page
- `easy imageSave` added **only_preivew**
- Adjust the `easy latentCompositeMaskedWithCond` node
<details>
<summary><b>22024-01-21</b></summary>
- Modify the styles path to be compatible with other environments
- Fixed `easy comfyLoader` error
- Fixed xyPlot error when connecting to zero123
</details>
**v1.0.3**
v1.0.3(2024-01-19)**
- Fixed the error message in the loader when the prompt word was component
- Added `easy stylesSelector`
- Added **scale_soft_weights** in `easy controlnetLoader` and `easy controlnetLoaderADV`
- Added the queue progress bar setting item, which is not enabled by default
- Fixed `easy XYInputs: Sampler/Scheduler` Error
- Fixed the right menu has a problem when clicking the button
- Fixed `easy comfyLoader` error
- Fixed xyPlot error when connecting to zero123
- Fixed the error message in the loader when the prompt word was component
- Fixed `easy getNode` and `easy setNode` the title does not change when loading
- Fixed all samplers using subdirectories to store images
<details>
<summary><b>2024-01-12</b></summary>
- Fixed UI loading failure in the new version of ComfyUI
</details>
- Adjust the UI theme, divided into two sets of styles: the official default background and the dark black background, which can be switched in the color palette in the settings
- Modify the styles path to be compatible with other environments
<details>
<summary><b>2024-01-11</b></summary>
- Replaced the font file used in the generation of XY diagrams
</details>
<details>
<summary><b>2024-01-09</b></summary>
- Fixed XYPlot is not working when `a1111_prompt_style` is True
- An `autocomplete` folder has been added, If you have [ComfyUI-Custom-Scripts](https://github.com/pythongosssss/ComfyUI-Custom-Scripts) installed, the txt files in that folder will be merged and overwritten to the autocomplete .txt file of the pyssss package at startup.
- Added a `📜Groups Map(EasyUse)` to the context menu.
</details>
<details>
<summary><b>2024-01-08</b></summary>
- `easy XYInputs ModelMergeBlocks` Values can be imported from CSV files
- Fixed `easy pipeToBasicPipe` Bug
- Removed `easy imageRemBg`
</details>
**v1.0.2(2024-01-05)**
**v1.0.2**
- Added `easy XYPlotAdvanced` and some nodes about `easy XYInputs`
- Added **Alt+1-Alt+9** Shortcut keys to quickly paste node presets for Node templates (corresponding to 1~9 sequences)
- Added a `📜Groups Map(EasyUse)` to the context menu.
- An `autocomplete` folder has been added, If you have [ComfyUI-Custom-Scripts](https://github.com/pythongosssss/ComfyUI-Custom-Scripts) installed, the txt files in that folder will be merged and overwritten to the autocomplete .txt file of the pyssss package at startup.
- Fixed XYPlot is not working when `a1111_prompt_style` is True
- Fixed UI loading failure in the new version of ComfyUI
- `easy XYInputs ModelMergeBlocks` Values can be imported from CSV files
- Fixed `easy pipeToBasicPipe` Bug
- Removed `easy imageRemBg`
- Remove the introductory diagram and workflow files from the package to reduce the package size
- Replaced the font file used in the generation of XY diagrams
<details>
<summary><b>2024-01-03</b></summary>
<summary><b>v1.0.1</b></summary>
- Fixed `easy comfyLoader` error
- Fixed All nodes that contain the value of the image size
- Added `easy kSamplerInpainting`
- Added `easy pipeToBasicPipe`
</details>
<details>
<summary><b>2024-01-02</b></summary>
- Fixed `width` and `height` can not customize in `easy svdLoader`
- Fixed all preview image path (Previously, it was not possible to preview the image on the Mac system)
</details>
<details>
<summary><b>2023-12-31</b></summary>
- Fixed `vae_name` is not working in `easy fullLoader` and `easy a1111Loader` and `easy comfyLoader`
- Fixed `easy fullkSampler` outputs error
</details>
<details>
<summary><b>2023-12-29</b></summary>
- Fixed `model_override` is not working in `easy fullLoader`
- Fixed `easy hiresFix` error
</details>
<details>
<summary><b>2023-12-27</b></summary>
- Fixed `easy xyplot` font file path error
- Fixed seed that cannot be fixed when you convert `seed_num` to `easy seed`
- Fixed `easy pipeIn` inputs bug
- `easy preDetailerFix` have added a new parameter `optional_image`
</details>
**v1.0.1(Updated at 12/26/2023)**
- Fixed `easy zero123Loader` and `easy svdLoader` model into cache.
- Added `easy seed`
- Fixed `image_output` default value is "Preview"
- `easy fullLoader` and `easy a1111Loader` have added a new parameter `a1111_prompt_style`,that can reproduce the same image generated from stable-diffusion-webui on comfyui, but you need to install [ComfyUI_smZNodes](https://github.com/shiimizu/ComfyUI_smZNodes) to use this feature in the current version
<details>
<summary><b>Updated at 2023-12-25</b></summary>
- Fixed `easy globalSeed` is not working
- Fixed an issue where all `seed_num` values were out of order due to [cg-use-everywhere](https://github.com/chrisgoringe/cg-use-everywhere) updating the chart in real time
</details>
<details>
<summary><b>v1.0.0(Updated at 12/24/2023)</b></summary>
<summary><b>v1.0.0</b></summary>
- Added `easy positive` - simple positive prompt text
- Added `easy negative` - simple negative prompt text
@@ -194,7 +140,8 @@ v1.0.3(2024-01-19)**
- Added `easy poseEditor` - Pose editor
- New UI Theme (Obsidian) - Auto-load UI by default, which can also be changed in the settings
- Fixed `easy globalSeed` is not working
- Fixed an issue where all `seed_num` values were out of order due to [cg-use-everywhere](https://github.com/chrisgoringe/cg-use-everywhere) updating the chart in real time
- Fixed `easy imageSize`, `easy imageSizeBySide`, `easy imageSizeByLongerSide` as end nodes
- Fixed the bug that `seed_num` (random seed value) could not be read consistently in history
</details>
+50 -107
View File
@@ -37,151 +37,101 @@
## 更新日志
**2024-02-03**
**v1.0.5 (2024-02-07)**
- `easy showAnything` 增加支持转换其他类型(如:tensor类型的条件、图像等)
- 增加 `easy isSDXL`
- `easy svdLoader` 增加提示词控制, 可配合open_clip模型进行使用
**2024-02-02**
**v1.0.4**
- 修改 xyplot 中 getsize 方法为 getbbox 以兼容 pillow>9.5
**2024-01-31**
- 修复 `easy wildcards` 在使用PS扩展插件运行时报错
- 增加 `easy showLoaderSettingsNames` 可显示与输出加载器部件中的 模型与VAE名称
**2024-01-29**
- 更改首次安装节点包不再自动替换主题,需手动调整并刷新页面
- `easy imageSave` 增加 **only_preivew**
- 增加 `easy promptList` - 提示词列表
- 修改 `easy latentCompositeMaskedWithCond`
**v1.0.4(2024-01-28)**
- `easy kSamplerInpainting` 增加 **patch** 传入值,配合Fooocus内补节点使用
- 增加 `easy fooocusInpaintLoader` - Fooocus内补节点(仅支持XL模型的流程)
- 增加 **Logic** 逻辑类节点 - 包含类型、计算、判断和转换类型等
- 增加 `easy imageSave` - 带日期转换和宽高格式化的图像保存节点
- 增加 `easy joinImageBatch` - 合并图像批次
- `easy showAnything` 增加支持转换其他类型(如:tensor类型的条件、图像等)
- `easy kSamplerInpainting` 增加 **patch** 传入值,配合Fooocus内补节点使用
- `easy imageSave` 增加 **only_preivew**
- 修复 xyplot在pillow>9.5中报错
- 修复 `easy wildcards` 在使用PS扩展插件运行时报错
- 修复 `easy latentCompositeMaskedWithCond`
- 修复 `easy XYInputs: ControlNet` 报错
- 修复 `easy loraStack` **toggle** 为 disabled 时报错
**2024-01-22**
- 修改首次安装节点包不再自动替换主题,需手动调整并刷新页面
**v1.0.3**
- 增加 `easy stylesSelector` 风格化提示词选择器
- 增加队列进度条设置项,默认为未启用状态
- `easy controlnetLoader` 和 `easy controlnetLoaderADV` 增加参数 **scale_soft_weights**
- 修复 `easy XYInputs: Sampler/Scheduler` 报错
- 修复 右侧菜单 点击按钮时老是跑位的问题
- 调整UI主题,分为官方默认背景和深黑色背景两套样式,可在设置里调色板里切换(调整原因:深黑色背景对亮度较暗的用户和UP主不太友好)
<details>
<summary>2024-01-21</summary>>
- 修改 styles 路径以兼容其他环境
- 修复 右侧菜单 点击按钮时老是跑位的问题
- 修复 styles 路径在其他环境报错
- 修复 `easy comfyLoader` 读取错误
- 修复 xyPlot 在连接 zero123 时报错
</details>
**v1.0.3(2024-01-19)**
- 修复加载器中提示词为组件时报错
- 增加 `easy stylesSelector` 风格化提示词选择器
- `easy controlnetLoader` 和 `easy controlnetLoaderADV` 增加参数 **scale_soft_weights**
- 增加队列进度条设置项,默认为未启用状态
- 修复 `easy getNode` 和 `easy setNode` 加载时标题未更改
- 修复所有采样器中存储图片使用子目录前缀不生效的问题
<details>
<summary>2024-01-12</summary>
- 修复在Comfy新版本中UI加载失败
</details>
- 调整UI主题
<details>
<summary>2024-01-11</summary>
<summary><b>v1.0.2</b></summary>
- 替换了XY图生成时的字体文件
</details>
<details>
<summary><b>2024-01-09</b></summary>
- 增加 **autocomplete** 文件夹,如果您安装了 [ComfyUI-Custom-Scripts](https://github.com/pythongosssss/ComfyUI-Custom-Scripts), 将在启动时合并该文件夹下的所有txt文件并覆盖到pyssss包里的autocomplete.txt文件。
- 增加 `easy XYPlotAdvanced` 和 `easy XYInputs` 等相关节点
- 增加 **Alt+1到9** 快捷键,可快速粘贴 Node templates 的节点预设 (对应 1到9 顺序)
- 修复 `easy imageInsetCrop` 测量值为百分比时步进为1
- 修复 开启 `a1111_prompt_style` 时XY图表无法使用的问题
- 增加了一个 **autocomplete** 文件夹,如果您安装了 [ComfyUI-Custom-Scripts](https://github.com/pythongosssss/ComfyUI-Custom-Scripts), 将在启动时合并该文件夹下的所有txt文件并覆盖到pyssss包里的autocomplete.txt文件。
- 右键菜单中增加了一个 `📜Groups Map(EasyUse)`
</details>
<details>
<summary><b>2024-01-08</b></summary>
- 修复在Comfy新版本中UI加载失败
- 修复 `easy pipeToBasicPipe` 报错
- 修改 `easy fullLoader` 和 `easy a1111Loader` 中的 **a1111_prompt_style** 默认值为 False
- `easy XYInputs ModelMergeBlocks` 支持csv文件导入数值
- 修复 `easy pipeToBasicPipe` 报错
- 移除了 `easy imageRemBg` (很多包中都有移除背景的节点,由于比较占用ComfyUI启动加载时间,这次更新中注释掉了其相关代码)
</details>
**v1.0.2(2024-01-05)**
- 替换了XY图生成时的字体文件
- 增加 `easy XYPlotAdvanced` 和 `easy XYInputs` 等相关节点
- 增加 **Alt+1到9** 快捷键,可快速粘贴 Node templates 的节点预设 (对应 1到9 顺序)
- 移除 `easy imageRemBg`
- 移除包中的介绍图和工作流文件,减少包体积
</details>
<details>
<summary><b>2024-01-03</b></summary>
<summary><b>v1.0.1</b></summary>
- 新增 `easy seed` - 简易随机种
- `easy preDetailerFix` 新增了 `optional_image` 传入图像可选,如未传默认取值为pipe里的图像
- 新增 `easy kSamplerInpainting` 用于内补潜空间的采样器
- 新增 `easy pipeToBasicPipe` 用于转换到Impact的某些节点上
- 修复 `easy comfyLoader` 报错
- 修复所有包含输出图片尺寸的节点取值方式无法批处理的问题
- 增加 `easy kSamplerInpainting` 用于内补潜空间的采样器
- 增加 `easy pipeToBasicPipe` 用于转换到Impact的某些节点上
</details>
<details>
<summary><b>2024-01-02</b></summary>
- 修复 `width` 和 `height` 无法在 `easy svdLoader` 自定义的报错问题
- 修复所有采样器预览图片的地址链接 (解决在 MACOS 系统中图片无法在采样器中预览的问题)
</details>
<details>
<summary><b>2023-12-31</b></summary>
- 修复 `vae_name` 在 `easy fullLoader` 和 `easy a1111Loader` 和 `easy comfyLoader` 中选择但未替换原始vae问题
- 修复 `easy fullkSampler` 除pipe外其他输出值的报错
</details>
<details>
<summary><b>2023-12-29</b></summary>
- 修复 `easy hiresFix` 输入连接pipe和image、vae同时存在时报错
- 修复 `easy fullLoader` 中 `model_override` 连接后未执行
</details>
<details>
<summary><b>2023-12-27</b></summary>
- 修复 因新增`easy seed` 导致action错误
- 修复 `easy xyplot` 的字体文件路径读取错误
- 修复 convert 到 `easy seed` 随机种无法固定的问题
- 修复 `easy pipeIn` 值传入的报错问题
- `easy preDetailerFix` 新增了 `optional_image` 传入图像可选,如未传默认取值为pipe里的图像
</details>
**v1.0.1(2023-12-26)**
- 修复 `easy zero123Loader` 和 `easy svdLoader` 读取模型时将模型加入到缓存中
- 新增 `easy seed` - 简易随机种
- 修复 `easy kSampler` `easy kSamplerTiled` `easy detailerFix` 的 `image_output` 默认值为 Preview
- `easy fullLoader` 和 `easy a1111Loader` 新增了 `a1111_prompt_style` 参数可以重现和webui生成相同的图像,当前您需要安装 [ComfyUI_smZNodes](https://github.com/shiimizu/ComfyUI_smZNodes) 才能使用此功能
<details>
<summary><b>2023-12-25</b></summary>
- 修复 `easy globalSeed` 不生效问题
- 修复所有的`seed_num` 因 [cg-use-everywhere](https://github.com/chrisgoringe/cg-use-everywhere) 实时更新图表导致值错乱的问题
</details>
<details>
<summary><b>v1.0.0(2023-12-24)</b></summary>
<summary><b>v1.0.0</b></summary>
- 新增`easy positive` - 简易正面提示词文本
- 新增`easy negative` - 简易负面提示词文本
@@ -202,33 +152,26 @@
- 新增`easy poseEditor` - 姿势编辑器
- 新增UI主题(黑曜石)- 默认自动加载UI, 也可在设置中自行更替
- 修复 `easy globalSeed` 不生效问题
- 修复所有的`seed_num` 因 [cg-use-everywhere](https://github.com/chrisgoringe/cg-use-everywhere) 实时更新图表导致值错乱的问题
- 修复`easy imageSize` `easy imageSizeBySide` `easy imageSizeByLongerSide` 可作为终节点
- 修复 `seed_num` (随机种子值) 在历史记录中读取无法一致的Bug
</details>
<details>
<summary><b>2023-12-14</b></summary>
- `easy a1111Loader` 和 `easy comfyLoader` 新增 `batch_size` 传入参数
<details>
<summary><b>v0.5</b></summary>
- 新增 `easy controlnetLoaderADV` 节点
- 新增 `easy imageSizeBySide` 节点,可选输出为长边或短边
- 新增 `easy LLLiteLoader` 节点,如果您预先安装过 kohya-ss/ControlNet-LLLite-ComfyUI 包,请将 models 里的模型文件移动至 ComfyUI\models\controlnet\ (即comfy默认的controlnet路径里,请勿修改模型的文件名,不然会读取不到)。
- 新增 `easy imageSize` 和 `easy imageSizeByLongerSize` 输出的尺寸显示。
- 新增 `easy showSpentTime` 节点用于展示图片推理花费时间与VAE解码花费时间。
- `easy controlnetLoaderADV` 和 `easy controlnetLoader` 新增 `control_net` 可选传入参数
- `easy preSampling` 和 `easy preSamplingAdvanced` 新增 `image_to_latent` 可选传入参数
- 新增 `easy imageSizeBySide` 节点,可选输出为长边或短边
</details>
- `easy a1111Loader` 和 `easy comfyLoader` 新增 `batch_size` 传入参数
<details>
<summary><b>2023-12-13</b></summary>
- 新增 `easy LLLiteLoader` 节点,如果您预先安装过 kohya-ss/ControlNet-LLLite-ComfyUI 包,请将 models 里的模型文件移动至 ComfyUI\models\controlnet\ (即comfy默认的controlnet路径里,请勿修改模型的文件名,不然会读取不到)。
- 修改 `easy controlnetLoader` 到 loader 分类底下。
- 新增 `easy imageSize` 和 `easy imageSizeByLongerSize` 输出的尺寸显示。
</details>
<details>
<summary><b>2023-12-11</b></summary>
- 新增 `easy showSpentTime` 节点用于展示图片推理花费时间与VAE解码花费时间。
</details>
## 涉及到的相关节点包
+1 -1
View File
@@ -87,4 +87,4 @@ WEB_DIRECTORY = "./web"
__all__ = ['NODE_CLASS_MAPPINGS', 'NODE_DISPLAY_NAME_MAPPINGS', "WEB_DIRECTORY"]
print('\033[34mComfy-Easy-Use (v1.0.4): \033[92mLoaded\033[0m')
print('\033[34mComfy-Easy-Use (v1.0.5): \033[92mLoaded\033[0m')
+1
View File
@@ -1,5 +1,6 @@
import re
import os
import torch
import sys
import json
from server import PromptServer
+4
View File
@@ -56,4 +56,8 @@ FOOOCUS_INPAINT_PATCH = {
"inpaint (1.32GB)": {
"model_url": "https://huggingface.co/lllyasviel/fooocus_inpaint/resolve/main/inpaint.fooocus.patch"
},
}
OPEN_CLIP = {
}
+36 -14
View File
@@ -28,7 +28,7 @@ from typing import Dict, List, Optional, Tuple, Union, Any
from .adv_encode import advanced_encode, advanced_encode_XL
from server import PromptServer
from nodes import VAELoader, MAX_RESOLUTION, RepeatLatentBatch, NODE_CLASS_MAPPINGS as ALL_NODE_CLASS_MAPPINGS, ConditioningSetMask
from nodes import VAELoader, MAX_RESOLUTION, RepeatLatentBatch, NODE_CLASS_MAPPINGS as ALL_NODE_CLASS_MAPPINGS, ConditioningSetMask, ConditioningConcat
from comfy_extras.nodes_mask import LatentCompositeMasked
from .config import BASE_RESOLUTIONS, RESOURCES_DIR, INPAINT_DIR, FOOOCUS_STYLES_DIR, FOOOCUS_INPAINT_HEAD, FOOOCUS_INPAINT_PATCH
from .log import log_node_info, log_node_error, log_node_warn, log_node_success
@@ -2227,20 +2227,26 @@ class svdLoader:
return [file for file in filenames if file != "put_models_here.txt" and "svd" in file]
return {"required": {
"ckpt_name": (get_file_list(folder_paths.get_filename_list("checkpoints")),),
"vae_name": (["Baked VAE"] + folder_paths.get_filename_list("vae"),),
"ckpt_name": (get_file_list(folder_paths.get_filename_list("checkpoints")),),
"vae_name": (["Baked VAE"] + folder_paths.get_filename_list("vae"),),
"clip_name": (["None"] + folder_paths.get_filename_list("clip"),),
"init_image": ("IMAGE",),
"resolution": (resolution_strings, {"default": "1024 x 576"}),
"empty_latent_width": ("INT", {"default": 256, "min": 16, "max": MAX_RESOLUTION, "step": 8}),
"empty_latent_height": ("INT", {"default": 256, "min": 16, "max": MAX_RESOLUTION, "step": 8}),
"init_image": ("IMAGE",),
"resolution": (resolution_strings, {"default": "1024 x 576"}),
"empty_latent_width": ("INT", {"default": 256, "min": 16, "max": MAX_RESOLUTION, "step": 8}),
"empty_latent_height": ("INT", {"default": 256, "min": 16, "max": MAX_RESOLUTION, "step": 8}),
"video_frames": ("INT", {"default": 14, "min": 1, "max": 4096}),
"motion_bucket_id": ("INT", {"default": 127, "min": 1, "max": 1023}),
"fps": ("INT", {"default": 6, "min": 1, "max": 1024}),
"augmentation_level": ("FLOAT", {"default": 0.0, "min": 0.0, "max": 10.0, "step": 0.01})
},
"hidden": {"prompt": "PROMPT"}, "my_unique_id": "UNIQUE_ID"}
"video_frames": ("INT", {"default": 14, "min": 1, "max": 4096}),
"motion_bucket_id": ("INT", {"default": 127, "min": 1, "max": 1023}),
"fps": ("INT", {"default": 6, "min": 1, "max": 1024}),
"augmentation_level": ("FLOAT", {"default": 0.0, "min": 0.0, "max": 10.0, "step": 0.01})
},
"optional": {
"optional_positive": ("STRING", {"default": "", "multiline": True}),
"optional_negative": ("STRING", {"default": "", "multiline": True}),
},
"hidden": {"prompt": "PROMPT", "my_unique_id": "UNIQUE_ID"}
}
RETURN_TYPES = ("PIPE_LINE", "MODEL", "VAE")
RETURN_NAMES = ("pipe", "model", "vae")
@@ -2248,7 +2254,7 @@ class svdLoader:
FUNCTION = "adv_pipeloader"
CATEGORY = "EasyUse/Loaders"
def adv_pipeloader(self, ckpt_name, vae_name, init_image, resolution, empty_latent_width, empty_latent_height, video_frames, motion_bucket_id, fps, augmentation_level, prompt=None, my_unique_id=None):
def adv_pipeloader(self, ckpt_name, vae_name, clip_name, init_image, resolution, empty_latent_width, empty_latent_height, video_frames, motion_bucket_id, fps, augmentation_level, optional_positive=None, optional_negative=None, prompt=None, my_unique_id=None):
model: ModelPatcher | None = None
vae: VAE | None = None
clip: CLIP | None = None
@@ -2282,6 +2288,22 @@ class svdLoader:
negative = [[torch.zeros_like(pooled),
{"motion_bucket_id": motion_bucket_id, "fps": fps, "augmentation_level": augmentation_level,
"concat_latent_image": torch.zeros_like(t)}]]
if clip_name != 'None':
clip_path = folder_paths.get_full_path("clip", clip_name)
clip = comfy.sd.load_clip(ckpt_paths=[clip_path],
embedding_directory=folder_paths.get_folder_paths("embeddings"))
if optional_positive is not None:
tokens = clip.tokenize(optional_positive)
cond, pooled = clip.encode_from_tokens(tokens, return_pooled=True)
positive_embeddings_final = [[cond, {"pooled_output": pooled}]]
positive, = ConditioningConcat().concat(positive, positive_embeddings_final)
if optional_negative is not None:
tokens = clip.tokenize(optional_negative)
cond, pooled = clip.encode_from_tokens(tokens, return_pooled=True)
negative_embeddings_final = [[cond, {"pooled_output": pooled}]]
negative, = ConditioningConcat().concat(negative, negative_embeddings_final)
latent = torch.zeros([video_frames, 4, empty_latent_height // 8, empty_latent_width // 8])
samples = {"samples": latent}
+53
View File
@@ -1,6 +1,7 @@
from typing import Iterator, List, Tuple, Dict, Any, Union, Optional
from _decimal import Context, getcontext
from decimal import Decimal
import torch
import numpy as np
import json
@@ -334,6 +335,34 @@ class If:
def execute(self, *args, **kwargs):
return (kwargs['if'] if kwargs['any'] else kwargs['else'],)
#是否为SDXL
from comfy.sdxl_clip import SDXLClipModel, SDXLRefinerClipModel, SDXLClipG
class isSDXL:
@classmethod
def INPUT_TYPES(s):
return {
"required": {},
"optional": {
"optional_pipe": ("PIPE_LINE",),
"optional_clip": ("CLIP",),
}
}
RETURN_TYPES = ("BOOLEAN",)
RETURN_NAMES = ("boolean",)
FUNCTION = "execute"
CATEGORY = "EasyUse/Logic"
def execute(self, optional_pipe=None, optional_clip=None):
if optional_pipe is None and optional_clip is None:
raise Exception(f"[ERROR] optional_pipe or optional_clip is missing")
clip = optional_clip if optional_clip is not None else optional_pipe['clip']
if isinstance(clip.cond_stage_model, (SDXLClipModel, SDXLRefinerClipModel, SDXLClipG)):
return (True,)
else:
return (False,)
#xy矩阵
class xyAny:
@@ -438,6 +467,26 @@ class showAnything:
return {"ui": {"text": values}}
# cleanGpuUsed
class cleanGPUUsed:
@classmethod
def INPUT_TYPES(s):
return {"required": {"anything": (AlwaysEqualProxy("*"), {})}, "optional": {},
"hidden": {"unique_id": "UNIQUE_ID", "extra_pnginfo": "EXTRA_PNGINFO",
}}
RETURN_TYPES = ()
RETURN_NAMES = ()
OUTPUT_NODE = True
FUNCTION = "empty_cache"
CATEGORY = "EasyUse/Logic"
def empty_cache(self, anything, unique_id=None, extra_pnginfo=None):
if torch.cuda.is_available():
torch.cuda.empty_cache()
return ()
NODE_CLASS_MAPPINGS = {
"easy string": String,
"easy int": Int,
@@ -448,9 +497,11 @@ NODE_CLASS_MAPPINGS = {
"easy compare": Compare,
"easy imageSwitch": imageSwitch,
"easy if": If,
"easy isSDXL": isSDXL,
"easy xyAny": xyAny,
"easy convertAnything": ConvertAnything,
"easy showAnything": showAnything,
"easy cleanGpuUsed": cleanGPUUsed
}
NODE_DISPLAY_NAME_MAPPINGS = {
"easy string": "String",
@@ -462,7 +513,9 @@ NODE_DISPLAY_NAME_MAPPINGS = {
"easy compare": "Compare",
"easy imageSwitch": "Image Switch",
"easy if": "If",
"easy isSDXL": "Is SDXL",
"easy xyAny": "XYAny",
"easy convertAnything": "Convert Any",
"easy showAnything": "Show Any",
"easy cleanGpuUsed": "Clean GPU Used"
}
+5 -1
View File
@@ -39,6 +39,7 @@ function widgetLogic(node, widget) {
toggleWidget(node, findWidgetByName(node, 'lora_model_strength'), true)
toggleWidget(node, findWidgetByName(node, 'lora_clip_strength'), true)
}
updateNodeHeight(node)
}
if (widget.name === 'rescale') {
let rescale_after_model = findWidgetByName(node, 'rescale_after_model').value
@@ -58,6 +59,7 @@ function widgetLogic(node, widget) {
toggleWidget(node, findWidgetByName(node, 'height'))
toggleWidget(node, findWidgetByName(node, 'percent'))
}
updateNodeHeight(node)
}
if (widget.name === 'upscale_method') {
if (widget.value === "None") {
@@ -67,6 +69,7 @@ function widgetLogic(node, widget) {
toggleWidget(node, findWidgetByName(node, 'factor'), true)
toggleWidget(node, findWidgetByName(node, 'crop'), true)
}
updateNodeHeight(node)
}
if (widget.name === 'image_output') {
if (widget.value === 'Sender' || widget.value === 'Sender/Save'){
@@ -96,6 +99,7 @@ function widgetLogic(node, widget) {
toggleWidget(node, findWidgetByName(node, 'seed_num'), true)
toggleWidget(node, findWidgetByName(node, 'control_before_generate'), true)
}
updateNodeHeight(node)
}
if (widget.name === 'num_loras') {
let number_to_show = widget.value + 1
@@ -755,7 +759,7 @@ app.registerExtension({
});
const getSetWidgets = ['rescale_after_model', 'rescale', 'image_output',
const getSetWidgets = ['rescale_after_model', 'rescale', 'image_output',
'lora_name', 'lora1_name', 'lora2_name', 'lora3_name',
'refiner_lora1_name', 'refiner_lora2_name', 'upscale_method',
'image_output', 'add_noise', 'info', 'sampler_name',