Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
93eb3f553b | ||
|
|
3f8651fea2 | ||
|
|
9bc0f3d23d | ||
|
|
a59c79abe7 | ||
|
|
802b8011b9 | ||
|
|
e80cee4af3 | ||
|
|
4084513f72 | ||
|
|
e3b06e9863 | ||
|
|
c514485fd1 | ||
|
|
3d23917893 | ||
|
|
838ca7bed3 | ||
|
|
8fcc318dc0 | ||
|
|
5121da825f | ||
|
|
dceb8dd644 | ||
|
|
c21efaea1f | ||
|
|
b2f6d1adf6 | ||
|
|
74250a52fb | ||
|
|
ec0c82eb87 | ||
|
|
7ebde46f36 | ||
|
|
824a646e31 | ||
|
|
0413b82422 | ||
|
|
1035574185 | ||
|
|
3c149ca288 | ||
|
|
3ec9764a9d | ||
|
|
c7ea1838f1 | ||
|
|
99b767a327 | ||
|
|
6f2cf07334 | ||
|
|
d2ece1b381 | ||
|
|
834c3cdf6c | ||
|
|
cda5e5e28a | ||
|
|
f7349fc5c8 | ||
|
|
adea2994a3 | ||
|
|
7b8a070e5c | ||
|
|
c991b8d843 | ||
|
|
ab1b16382d | ||
|
|
99eceaa88d | ||
|
|
64ce553c1c | ||
|
|
d0891eb04e | ||
|
|
87033271e5 | ||
|
|
d05de84198 | ||
|
|
85d2102cfd | ||
|
|
fca6e09d0d | ||
|
|
6359d87d47 | ||
|
|
3d705ef3e8 | ||
|
|
dc659c88da | ||
|
|
ed50d5bd92 | ||
|
|
1c74cda9e3 | ||
|
|
085bf665dd | ||
|
|
7f40c1b21d | ||
|
|
d348d1f4a7 | ||
|
|
78b75e9944 | ||
|
|
3b64627b01 | ||
|
|
255c521f3e | ||
|
|
030fb2b5bb | ||
|
|
889dfc0a91 | ||
|
|
4712045dbd | ||
|
|
d6de1498a1 | ||
|
|
8b816f0877 | ||
|
|
0443d70bda |
@@ -1,36 +1,173 @@
|
||||
# ComfyUI_Lam
|
||||
|
||||
#### Description
|
||||
{**When you're done, you can delete the content in this README and update the file with details for others getting started with your repository**}
|
||||
### Introduction
|
||||
A plugin developed based on comfyUI.
|
||||
|
||||
#### Software Architecture
|
||||
Software architecture description
|
||||
#### Usage Instructions
|
||||
Download and place in the plugin directory of comfyUI, as shown below:
|
||||
|
||||
#### Installation
|
||||

|
||||
|
||||
1. xxxx
|
||||
2. xxxx
|
||||
3. xxxx
|
||||
##### Special Note for this version, execute the latest version "ComfyUI_windows_portable_nvidia_cu118_or_cpu.7z" with cu118 inside, the address is as follows:
|
||||
https://github.com/comfyanonymous/ComfyUI/releases/download/latest/ComfyUI_windows_portable_nvidia_cu118_or_cpu.7z
|
||||
|
||||
#### Instructions
|
||||
1. Unzip according to the image to the specified plugin directory and name. Extract insightface.rar to the directory ..\ComfyUI_windows_portable\python_embeded\Lib\site-packages. Extract venv.rar to the directory ..\ComfyUI_windows_portable\python_embeded\Lib\site-packages. Then run the install.bat file, and if there are no errors, it's ready.
|
||||
|
||||
1. xxxx
|
||||
2. xxxx
|
||||
3. xxxx
|
||||
2. Model addresses and storage paths:
|
||||
Lama model:
|
||||
https://huggingface.co/lllyasviel/Annotators/resolve/main/ControlNetLama.pth ..\ComfyUI\models\lama\ControlNetLama.pth
|
||||
SadTalker models:
|
||||
https://github.com/OpenTalker/SadTalker/releases/download/v0.0.2-rc/mapping_00109-model.pth.tar ..\ComfyUI\models\SadTalker\mapping_00109-model.pth.tar
|
||||
https://github.com/OpenTalker/SadTalker/releases/download/v0.0.2-rc/mapping_00229-model.pth.tar ..\ComfyUI\models\SadTalker\mapping_00229-model.pth.tar
|
||||
https://github.com/OpenTalker/SadTalker/releases/download/v0.0.2-rc/SadTalker_V0.0.2_256.safetensors ..\ComfyUI\models\SadTalker\SadTalker_V0.0.2_256.safetensors
|
||||
https://github.com/OpenTalker/SadTalker/releases/download/v0.0.2-rc/SadTalker_V0.0.2_512.safetensors ..\ComfyUI\models\SadTalker\SadTalker_V0.0.2_512.safetensors
|
||||
|
||||
#### Contribution
|
||||
3. Gfpgan is based on the startup directory, follow the prompts accordingly.
|
||||
https://github.com/xinntao/facexlib/releases/download/v0.1.0/alignment_WFLW_4HG.pth ..\ComfyUI_windows_portable\gfpgan\weights\alignment_WFLW_4HG.pth
|
||||
https://github.com/xinntao/facexlib/releases/download/v0.1.0/detection_Resnet50_Final.pth ..\ComfyUI_windows_portable\gfpgan\weights\detection_Resnet50_Final.pth
|
||||
https://github.com/TencentARC/GFPGAN/releases/download/v1.3.0/GFPGANv1.4.pth ..\ComfyUI_windows_portable\gfpgan\weights\GFPGANv1.4.pth
|
||||
https://github.com/xinntao/facexlib/releases/download/v0.2.2/parsing_parsenet.pth ..\ComfyUI_windows_portable\gfpgan\weights\parsing_parsenet.pth
|
||||
|
||||
1. Fork the repository
|
||||
2. Create Feat_xxx branch
|
||||
3. Commit your code
|
||||
4. Create Pull Request
|
||||
4. Image-face-fusion model (Face swapping model)
|
||||
Link: https://pan.baidu.com/s/19DOgJQ_RHNAjfNrzSr2uTQ?pwd=gf0p
|
||||
Extraction Code: gf0p
|
||||
Extract to the directory ..\ComfyUI\models\image-face-fusion
|
||||
|
||||
5. Roop-face-swap model (Face swapping model)
|
||||
Link: https://pan.baidu.com/s/1cJeRtqgdeNW21Hljwuv-tA?pwd=b4yy
|
||||
Extraction Code: b4yy
|
||||
Extract to the directory ..\ComfyUI\models\roop-face-swap
|
||||
|
||||
#### Gitee Feature
|
||||
6. Modify the execution.py file in the comfyUI root directory.
|
||||
搜索 “def recursive_execute”
|
||||
位置参考图如下:
|
||||

|
||||
新增内容:
|
||||
```python
|
||||
#循环添加代码----------开始----------
|
||||
def get_del_keys(key, prompt,uniqueIds):
|
||||
keys=[]
|
||||
for k,v in prompt.items():
|
||||
if k in uniqueIds :
|
||||
continue
|
||||
for k1,v1 in v['inputs'].items():
|
||||
if type(v1)==list and v1[0]==key:
|
||||
keys.append(k)
|
||||
keys=keys+get_del_keys(k,prompt,uniqueIds)
|
||||
return keys
|
||||
#循环添加代码-----------结束---------
|
||||
```
|
||||
```python
|
||||
#循环添加代码----------开始----------
|
||||
startNum=None
|
||||
startData={}
|
||||
delKeys=[]
|
||||
backhaul={}
|
||||
clTypes=['ForInnerEnd','IfInnerExecute','DoWhileEnd']
|
||||
oldPrompt=None
|
||||
if class_type in clTypes:
|
||||
oldPrompt=copy.deepcopy(prompt)
|
||||
|
||||
1. You can use Readme\_XXX.md to support different languages, such as Readme\_en.md, Readme\_zh.md
|
||||
2. Gitee blog [blog.gitee.com](https://blog.gitee.com)
|
||||
3. Explore open source project [https://gitee.com/explore](https://gitee.com/explore)
|
||||
4. The most valuable open source project [GVP](https://gitee.com/gvp)
|
||||
5. The manual of Gitee [https://gitee.com/help](https://gitee.com/help)
|
||||
6. The most popular members [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)
|
||||
if class_type=='ForInnerEnd':
|
||||
startNum=prompt[unique_id]['inputs']['total'][0]
|
||||
inputNum=prompt[unique_id]['inputs']['obj'][0]
|
||||
maxKeyStr=sorted(list(prompt.keys()), key=lambda x: int(x.split(':')[0]))[-1]
|
||||
maxKey = int(maxKeyStr.split(':')[0])
|
||||
delKeys=list(set(get_del_keys(startNum,prompt,[startNum,unique_id])))
|
||||
delKeys.append(startNum)
|
||||
delKeys = list(filter(lambda x: x != inputNum, delKeys))
|
||||
for key in delKeys:
|
||||
outputs.pop(key, None)
|
||||
|
||||
startInput=prompt[startNum]['inputs']
|
||||
if isinstance(startInput['total'],list) or isinstance(startInput['stop'],list) or isinstance(startInput['i'],list):
|
||||
result = recursive_execute(server, prompt, outputs, startNum, extra_data, executed, prompt_id, outputs_ui, object_storage)
|
||||
if result[0] is not True:
|
||||
return result
|
||||
|
||||
for x in startInput:
|
||||
input_data = startInput[x]
|
||||
if isinstance(input_data, list):
|
||||
startData[x]=outputs[input_data[0]][input_data[1]][0]
|
||||
else:
|
||||
startData[x]=input_data
|
||||
|
||||
for i in range(startData['i']+1,startData['total'],startData['stop']):
|
||||
prompt[str(maxKey+i)]=prompt[inputNum]
|
||||
prompt[unique_id]['inputs']['obj'+str(i)]=[str(maxKey+i),prompt[unique_id]['inputs']['obj'][-1]]
|
||||
if i==startInput['i']+1:
|
||||
backhaul['obj'+str(i)]=prompt[unique_id]['inputs']['obj']
|
||||
else:
|
||||
backhaul['obj'+str(i)]=[str(maxKey+i-startInput['stop']),prompt[unique_id]['inputs']['obj'][-1]]
|
||||
elif class_type=='DoWhileEnd':
|
||||
startNum=prompt[unique_id]['inputs']['start'][0]
|
||||
inputNum=prompt[unique_id]['inputs']['ANY'][0]
|
||||
delKeys=list(set(get_del_keys(startNum,prompt,[startNum,unique_id])))
|
||||
delKeys.append(startNum)
|
||||
delKeys.append(inputNum)
|
||||
|
||||
#循环添加代码-----------结束---------
|
||||
```
|
||||
```python
|
||||
#循环添加代码----------开始----------
|
||||
if class_type=='ForInnerEnd' and x !='obj' and x.startswith('obj'):
|
||||
if startNum!=None:
|
||||
if isinstance(prompt[startNum]['inputs']['i'],list):
|
||||
prompt[startNum]['inputs']['i']=startData['i']+startData['stop']
|
||||
else:
|
||||
prompt[startNum]['inputs']['i']=prompt[startNum]['inputs']['i']+startData['stop']
|
||||
prompt[startNum]['inputs']['obj']=backhaul[x]
|
||||
for key in delKeys:
|
||||
outputs.pop(key, None)
|
||||
#循环添加代码-----------结束---------
|
||||
```
|
||||
```python
|
||||
#判断选择添加代码-----------开始---------
|
||||
if class_type=='DoWhileEnd' and x == 'ANY':
|
||||
any=outputs[inputNum][prompt[unique_id]['inputs']['ANY'][1]][0]
|
||||
i=0
|
||||
while any:
|
||||
for key in delKeys:
|
||||
outputs.pop(key, None)
|
||||
i=i+1
|
||||
outputs['i']=[[i]]
|
||||
prompt[startNum]['inputs']['i']=['i',0]
|
||||
result = recursive_execute(server, prompt, outputs, input_unique_id, extra_data, executed, prompt_id, outputs_ui, object_storage)
|
||||
if result[0] is not True:
|
||||
return result
|
||||
any=outputs[inputNum][prompt[unique_id]['inputs']['ANY'][1]][0]
|
||||
|
||||
if class_type=='IfInnerExecute' and x=='ANY':
|
||||
if outputs[input_unique_id][output_index][0]:
|
||||
inputs['IF_FALSE']=oldPrompt[unique_id]['inputs']['IF_TRUE']
|
||||
else:
|
||||
inputs['IF_TRUE']=oldPrompt[unique_id]['inputs']['IF_FALSE']
|
||||
#判断选择添加代码-----------结束---------
|
||||
```
|
||||
```python
|
||||
#循环添加代码----------开始----------
|
||||
if class_type=='ForInnerEnd' or class_type=='DoWhileEnd':
|
||||
prompt[startNum]['inputs']=oldPrompt[startNum]['inputs']
|
||||
prompt[unique_id]['inputs']=oldPrompt[unique_id]['inputs']
|
||||
outputs.pop(startNum, None)
|
||||
result = recursive_execute(server, prompt, outputs, startNum, extra_data, executed, prompt_id, outputs_ui, object_storage)
|
||||
if result[0] is not True:
|
||||
return result
|
||||
if class_type=='IfInnerExecute':
|
||||
prompt[unique_id]['inputs']=oldPrompt[unique_id]['inputs']
|
||||
#循环添加代码-----------结束---------
|
||||
```
|
||||
搜索 “def validate_prompt
|
||||
```python
|
||||
'''优化输出开始'''
|
||||
inputKeys=[]
|
||||
for k,v in prompt.items():
|
||||
for k1,v1 in v['inputs'].items():
|
||||
if type(v1)==list and len(v1)==2:
|
||||
inputKeys.append(v1[0])
|
||||
for x in prompt:
|
||||
class_ = nodes.NODE_CLASS_MAPPINGS[prompt[x]['class_type']]
|
||||
if hasattr(class_, 'OUTPUT_NODE') and class_.OUTPUT_NODE == True and x not in inputKeys:
|
||||
outputs.add(x)
|
||||
'''优化输出结束'''
|
||||
```
|
||||
@@ -1,39 +1,177 @@
|
||||
# ComfyUI_Lam
|
||||
|
||||
#### 介绍
|
||||
{**以下是 Gitee 平台说明,您可以替换此简介**
|
||||
Gitee 是 OSCHINA 推出的基于 Git 的代码托管平台(同时支持 SVN)。专为开发者提供稳定、高效、安全的云端软件开发协作平台
|
||||
无论是个人、团队、或是企业,都能够用 Gitee 实现代码托管、项目管理、协作开发。企业项目请看 [https://gitee.com/enterprises](https://gitee.com/enterprises)}
|
||||
|
||||
#### 软件架构
|
||||
软件架构说明
|
||||
|
||||
|
||||
#### 安装教程
|
||||
|
||||
1. xxxx
|
||||
2. xxxx
|
||||
3. xxxx
|
||||
### 介绍
|
||||
基于comfyUI开发的插件
|
||||
|
||||
#### 使用说明
|
||||
下载放到comfyUI的插件目录,如下:
|
||||
|
||||
1. xxxx
|
||||
2. xxxx
|
||||
3. xxxx
|
||||

|
||||
|
||||
#### 参与贡献
|
||||
##### 特别说明该版本执行最新版“ComfyUI_windows_portable_nvidia_cu118_or_cpu.7z” 里面带cu118的版本地址如下:
|
||||
https://github.com/comfyanonymous/ComfyUI/releases/download/latest/ComfyUI_windows_portable_nvidia_cu118_or_cpu.7z
|
||||
|
||||
1. Fork 本仓库
|
||||
2. 新建 Feat_xxx 分支
|
||||
3. 提交代码
|
||||
4. 新建 Pull Request
|
||||
1. 根据图片解压到指定插件目录及名称,
|
||||
将insightface.rar解压到..\ComfyUI_windows_portable\python_embeded\Lib\site-packages目录
|
||||
将venv.rar解压到..\ComfyUI_windows_portable\python_embeded\Lib\site-packages目录
|
||||
然后运行install.bat文件,未报错后就可以了,
|
||||
|
||||
2. 模型地址,及存放路径:
|
||||
lama模型:
|
||||
https://huggingface.co/lllyasviel/Annotators/resolve/main/ControlNetLama.pth ..\ComfyUI\models\lama\ControlNetLama.pth
|
||||
SadTalker模型:
|
||||
https://github.com/OpenTalker/SadTalker/releases/download/v0.0.2-rc/mapping_00109-model.pth.tar ..\ComfyUI\models\SadTalker\mapping_00109-model.pth.tar
|
||||
https://github.com/OpenTalker/SadTalker/releases/download/v0.0.2-rc/mapping_00229-model.pth.tar ..\ComfyUI\models\SadTalker\mapping_00229-model.pth.tar
|
||||
https://github.com/OpenTalker/SadTalker/releases/download/v0.0.2-rc/SadTalker_V0.0.2_256.safetensors ..\ComfyUI\models\SadTalker\SadTalker_V0.0.2_256.safetensors
|
||||
https://github.com/OpenTalker/SadTalker/releases/download/v0.0.2-rc/SadTalker_V0.0.2_512.safetensors ..\ComfyUI\models\SadTalker\SadTalker_V0.0.2_512.safetensors
|
||||
|
||||
3. gfpgan是根据启动目录来的,根据提示对应
|
||||
https://github.com/xinntao/facexlib/releases/download/v0.1.0/alignment_WFLW_4HG.pth ..\ComfyUI_windows_portable\gfpgan\weights\alignment_WFLW_4HG.pth
|
||||
https://github.com/xinntao/facexlib/releases/download/v0.1.0/detection_Resnet50_Final.pth ..\ComfyUI_windows_portable\gfpgan\weights\detection_Resnet50_Final.pth
|
||||
https://github.com/TencentARC/GFPGAN/releases/download/v1.3.0/GFPGANv1.4.pth ..\ComfyUI_windows_portable\gfpgan\weights\GFPGANv1.4.pth
|
||||
https://github.com/xinntao/facexlib/releases/download/v0.2.2/parsing_parsenet.pth ..\ComfyUI_windows_portable\gfpgan\weights\parsing_parsenet.pth
|
||||
|
||||
4. image-face-fusion模型换脸模型
|
||||
链接:https://pan.baidu.com/s/19DOgJQ_RHNAjfNrzSr2uTQ?pwd=gf0p
|
||||
提取码:gf0p
|
||||
解压到 ..\ComfyUI\models\image-face-fusion 目录
|
||||
|
||||
5. roop-face-swap模型换脸模型
|
||||
链接:https://pan.baidu.com/s/1cJeRtqgdeNW21Hljwuv-tA?pwd=b4yy
|
||||
提取码:b4yy
|
||||
解压到 ..\ComfyUI\models\roop-face-swap 目录
|
||||
|
||||
|
||||
#### 特技
|
||||
6. 修改comfyUI根目录下的execution.py文件,修改内容
|
||||
搜索 “def recursive_execute”
|
||||
位置参考图如下:
|
||||

|
||||
新增内容:
|
||||
```python
|
||||
#循环添加代码----------开始----------
|
||||
def get_del_keys(key, prompt,uniqueIds):
|
||||
keys=[]
|
||||
for k,v in prompt.items():
|
||||
if k in uniqueIds :
|
||||
continue
|
||||
for k1,v1 in v['inputs'].items():
|
||||
if type(v1)==list and v1[0]==key:
|
||||
keys.append(k)
|
||||
keys=keys+get_del_keys(k,prompt,uniqueIds)
|
||||
return keys
|
||||
#循环添加代码-----------结束---------
|
||||
```
|
||||
```python
|
||||
#循环添加代码----------开始----------
|
||||
startNum=None
|
||||
startData={}
|
||||
delKeys=[]
|
||||
backhaul={}
|
||||
clTypes=['ForInnerEnd','IfInnerExecute','DoWhileEnd']
|
||||
oldPrompt=None
|
||||
if class_type in clTypes:
|
||||
oldPrompt=copy.deepcopy(prompt)
|
||||
|
||||
1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md
|
||||
2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com)
|
||||
3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目
|
||||
4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目
|
||||
5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help)
|
||||
6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)
|
||||
if class_type=='ForInnerEnd':
|
||||
startNum=prompt[unique_id]['inputs']['total'][0]
|
||||
inputNum=prompt[unique_id]['inputs']['obj'][0]
|
||||
maxKeyStr=sorted(list(prompt.keys()), key=lambda x: int(x.split(':')[0]))[-1]
|
||||
maxKey = int(maxKeyStr.split(':')[0])
|
||||
delKeys=list(set(get_del_keys(startNum,prompt,[startNum,unique_id])))
|
||||
delKeys.append(startNum)
|
||||
delKeys = list(filter(lambda x: x != inputNum, delKeys))
|
||||
for key in delKeys:
|
||||
outputs.pop(key, None)
|
||||
|
||||
startInput=prompt[startNum]['inputs']
|
||||
if isinstance(startInput['total'],list) or isinstance(startInput['stop'],list) or isinstance(startInput['i'],list):
|
||||
result = recursive_execute(server, prompt, outputs, startNum, extra_data, executed, prompt_id, outputs_ui, object_storage)
|
||||
if result[0] is not True:
|
||||
return result
|
||||
|
||||
for x in startInput:
|
||||
input_data = startInput[x]
|
||||
if isinstance(input_data, list):
|
||||
startData[x]=outputs[input_data[0]][input_data[1]][0]
|
||||
else:
|
||||
startData[x]=input_data
|
||||
|
||||
for i in range(startData['i']+1,startData['total'],startData['stop']):
|
||||
prompt[str(maxKey+i)]=prompt[inputNum]
|
||||
prompt[unique_id]['inputs']['obj'+str(i)]=[str(maxKey+i),prompt[unique_id]['inputs']['obj'][-1]]
|
||||
if i==startInput['i']+1:
|
||||
backhaul['obj'+str(i)]=prompt[unique_id]['inputs']['obj']
|
||||
else:
|
||||
backhaul['obj'+str(i)]=[str(maxKey+i-startInput['stop']),prompt[unique_id]['inputs']['obj'][-1]]
|
||||
elif class_type=='DoWhileEnd':
|
||||
startNum=prompt[unique_id]['inputs']['start'][0]
|
||||
inputNum=prompt[unique_id]['inputs']['ANY'][0]
|
||||
delKeys=list(set(get_del_keys(startNum,prompt,[startNum,unique_id])))
|
||||
delKeys.append(startNum)
|
||||
delKeys.append(inputNum)
|
||||
|
||||
#循环添加代码-----------结束---------
|
||||
```
|
||||
```python
|
||||
#循环添加代码----------开始----------
|
||||
if class_type=='ForInnerEnd' and x !='obj' and x.startswith('obj'):
|
||||
if startNum!=None:
|
||||
if isinstance(prompt[startNum]['inputs']['i'],list):
|
||||
prompt[startNum]['inputs']['i']=startData['i']+startData['stop']
|
||||
else:
|
||||
prompt[startNum]['inputs']['i']=prompt[startNum]['inputs']['i']+startData['stop']
|
||||
prompt[startNum]['inputs']['obj']=backhaul[x]
|
||||
for key in delKeys:
|
||||
outputs.pop(key, None)
|
||||
#循环添加代码-----------结束---------
|
||||
```
|
||||
```python
|
||||
#判断选择添加代码-----------开始---------
|
||||
if class_type=='DoWhileEnd' and x == 'ANY':
|
||||
any=outputs[inputNum][prompt[unique_id]['inputs']['ANY'][1]][0]
|
||||
i=0
|
||||
while any:
|
||||
for key in delKeys:
|
||||
outputs.pop(key, None)
|
||||
i=i+1
|
||||
outputs['i']=[[i]]
|
||||
prompt[startNum]['inputs']['i']=['i',0]
|
||||
result = recursive_execute(server, prompt, outputs, input_unique_id, extra_data, executed, prompt_id, outputs_ui, object_storage)
|
||||
if result[0] is not True:
|
||||
return result
|
||||
any=outputs[inputNum][prompt[unique_id]['inputs']['ANY'][1]][0]
|
||||
|
||||
if class_type=='IfInnerExecute' and x=='ANY':
|
||||
if outputs[input_unique_id][output_index][0]:
|
||||
inputs['IF_FALSE']=oldPrompt[unique_id]['inputs']['IF_TRUE']
|
||||
else:
|
||||
inputs['IF_TRUE']=oldPrompt[unique_id]['inputs']['IF_FALSE']
|
||||
#判断选择添加代码-----------结束---------
|
||||
```
|
||||
```python
|
||||
#循环添加代码----------开始----------
|
||||
if class_type=='ForInnerEnd' or class_type=='DoWhileEnd':
|
||||
prompt[startNum]['inputs']=oldPrompt[startNum]['inputs']
|
||||
prompt[unique_id]['inputs']=oldPrompt[unique_id]['inputs']
|
||||
outputs.pop(startNum, None)
|
||||
result = recursive_execute(server, prompt, outputs, startNum, extra_data, executed, prompt_id, outputs_ui, object_storage)
|
||||
if result[0] is not True:
|
||||
return result
|
||||
if class_type=='IfInnerExecute':
|
||||
prompt[unique_id]['inputs']=oldPrompt[unique_id]['inputs']
|
||||
#循环添加代码-----------结束---------
|
||||
```
|
||||
搜索 “def validate_prompt
|
||||
```python
|
||||
'''优化输出开始'''
|
||||
inputKeys=[]
|
||||
for k,v in prompt.items():
|
||||
for k1,v1 in v['inputs'].items():
|
||||
if type(v1)==list and len(v1)==2:
|
||||
inputKeys.append(v1[0])
|
||||
for x in prompt:
|
||||
class_ = nodes.NODE_CLASS_MAPPINGS[prompt[x]['class_type']]
|
||||
if hasattr(class_, 'OUTPUT_NODE') and class_.OUTPUT_NODE == True and x not in inputKeys:
|
||||
outputs.add(x)
|
||||
'''优化输出结束'''
|
||||
```
|
||||
@@ -4,21 +4,22 @@ import os
|
||||
import sys
|
||||
from .lam import init, get_ext_dir
|
||||
|
||||
repo_dir = os.path.dirname(os.path.realpath(__file__))
|
||||
sys.path.insert(0, repo_dir)
|
||||
original_modules = sys.modules.copy()
|
||||
NODE_CLASS_MAPPINGS = {}
|
||||
NODE_DISPLAY_NAME_MAPPINGS = {}
|
||||
|
||||
if init():
|
||||
py = get_ext_dir("py")
|
||||
files = glob.glob("*.py", root_dir=py, recursive=False)
|
||||
files = os.listdir(py)
|
||||
for file in files:
|
||||
if not file.endswith(".py"):
|
||||
continue
|
||||
name = os.path.splitext(file)[0]
|
||||
spec = importlib.util.spec_from_file_location(name, os.path.join(py, file))
|
||||
module = importlib.util.module_from_spec(spec)
|
||||
sys.modules[name] = module
|
||||
spec.loader.exec_module(module)
|
||||
if hasattr(module, "NODE_CLASS_MAPPINGS") and getattr(module, "NODE_CLASS_MAPPINGS") is not None:
|
||||
NODE_CLASS_MAPPINGS.update(module.NODE_CLASS_MAPPINGS)
|
||||
if hasattr(module, "NODE_DISPLAY_NAME_MAPPINGS") and getattr(module, "NODE_DISPLAY_NAME_MAPPINGS") is not None:
|
||||
NODE_DISPLAY_NAME_MAPPINGS.update(module.NODE_DISPLAY_NAME_MAPPINGS)
|
||||
|
||||
__all__ = ["NODE_CLASS_MAPPINGS", "NODE_DISPLAY_NAME_MAPPINGS"]
|
||||
imported_module = importlib.import_module(".py.{}".format(name), __name__)
|
||||
NODE_CLASS_MAPPINGS = {**NODE_CLASS_MAPPINGS, **imported_module.NODE_CLASS_MAPPINGS}
|
||||
NODE_DISPLAY_NAME_MAPPINGS = {**NODE_DISPLAY_NAME_MAPPINGS, **imported_module.NODE_DISPLAY_NAME_MAPPINGS}
|
||||
|
||||
WEB_DIRECTORY = "./js"
|
||||
__all__ = ["NODE_CLASS_MAPPINGS", "NODE_DISPLAY_NAME_MAPPINGS","WEB_DIRECTORY"]
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
{}
|
||||
@@ -0,0 +1,116 @@
|
||||
wechat:
|
||||
appid: wx1c2b19f7af1d6241 #公众号appid
|
||||
secret: 915d587b5ae4e148e100429e11ca4d60 #公众号秘钥
|
||||
serverAddress: http://139.9.53.208/ #服务器地址 微信公众配置地址的前缀
|
||||
freeSize: 3 #免费使用次数
|
||||
isEnterprise: false #是否为企业微信
|
||||
adminNo: b0pOVFM2dnRsZkdLeWl2Zlk2bG9MTFNjUTNGUQ== #管理员微信编号启动会后可发送我的编号获取
|
||||
adminWeChat: yanlang123456 #管理员微信号
|
||||
access_token: '' #不用填系统用于保存临时值
|
||||
access_token_expires_at: 0 #默认0
|
||||
commands: #功能列表
|
||||
图生视频:
|
||||
filename: img2video.json #功能流程图json文件
|
||||
params: #参数列表
|
||||
image: #参数名称(几个固定参数名称必须如下:图片:image 随机种子:seed 正向提示词:prompt 反向提示词:negative)
|
||||
isRequired: true #是否必填
|
||||
keys: #参数对应json中对应的key
|
||||
- '38'
|
||||
- inputs
|
||||
- image_path
|
||||
zhName: 图片 #参数中文名称
|
||||
motion_bucket:
|
||||
default: 127
|
||||
isRequired: true
|
||||
keys:
|
||||
- '12'
|
||||
- inputs
|
||||
- motion_bucket_id
|
||||
max: 200
|
||||
min: 0
|
||||
type: number
|
||||
zhName: 运动量
|
||||
seed:
|
||||
default: -1
|
||||
isRequired: true
|
||||
keys:
|
||||
- '3'
|
||||
- inputs
|
||||
- seed
|
||||
type: text
|
||||
zhName: 随机种子
|
||||
replyText: 请发送您的图片发送“ok”开始任务,如:“ok” #指令说明回复
|
||||
文生图:
|
||||
filename: text2img.json
|
||||
params:
|
||||
ckpt:
|
||||
isRequired: false
|
||||
keys:
|
||||
- '4'
|
||||
- inputs
|
||||
- ckpt_name
|
||||
options: #选项参数
|
||||
冷却混合料SD1.5: chilloutmix_NiPrunedFp32Fix.safetensors #中文名称:英文名称
|
||||
卡通动画片SD1.5: yamer_Cartoon_xenoArcadiaCD.safetensors
|
||||
无法控制的SDXL: juggernautXL_version6Rundiffusion.safetensors
|
||||
梦想塑造者SD1.5: dreamshaper_8.safetensors
|
||||
zhName: 基础模型
|
||||
height:
|
||||
default: 512 #默认值
|
||||
isRequired: false
|
||||
keys:
|
||||
- '14'
|
||||
- inputs
|
||||
- height
|
||||
max: 1024 #最大值
|
||||
min: 512 #最小值
|
||||
type: number #类型(输入型参数目前只支持 number/text)
|
||||
zhName: 高度
|
||||
lora:
|
||||
isRequired: false
|
||||
keys:
|
||||
- '10'
|
||||
- inputs
|
||||
- lora_name
|
||||
options:
|
||||
SD1.5-LCM加速: lcm-lora-sdv1-5.safetensors
|
||||
SDXL-LCM加速: lcm-lora-sdxl.safetensors
|
||||
zhName: LoRA
|
||||
negative:
|
||||
isRequired: false
|
||||
keys:
|
||||
- '7'
|
||||
- inputs
|
||||
- text
|
||||
zhName: 反向提示词
|
||||
prompt:
|
||||
isRequired: true
|
||||
keys:
|
||||
- '20'
|
||||
- inputs
|
||||
- text_trans
|
||||
zhName: 正向提示词
|
||||
seed:
|
||||
default: -1
|
||||
isRequired: true
|
||||
keys:
|
||||
- '3'
|
||||
- inputs
|
||||
- seed
|
||||
type: text
|
||||
zhName: 随机种子
|
||||
width:
|
||||
default: 512
|
||||
isRequired: false
|
||||
keys:
|
||||
- '14'
|
||||
- inputs
|
||||
- width
|
||||
max: 1024
|
||||
min: 512
|
||||
type: number
|
||||
zhName: 宽度
|
||||
replyText: 请发送您的中文或英文提示词用“ok”结束,如:“一只小狗ok”
|
||||
query_commands: #查询指令(固定)
|
||||
- 查询排队情况
|
||||
- 我的编号
|
||||
@@ -0,0 +1,284 @@
|
||||
wechat:
|
||||
appid: wxa50ed345b253964d #公众号appid
|
||||
secret: 327ac9ba06d214d2fcfe2e9ed0520684 #公众号秘钥
|
||||
serverAddress: http://119.123.205.233/ #服务器地址 微信公众配置地址的前缀
|
||||
freeSize: 3 #免费使用次数
|
||||
isEnterprise: true #是否为企业微信
|
||||
adminNo: b0pOVFM2dnRsZkdLeWl2Zlk2bG9MTFNjUTNGUQ== #管理员微信编号启动会后可发送我的编号获取
|
||||
adminWeChat: yanlang123456 #管理员微信号
|
||||
access_token: '' #不用填系统用于保存临时值
|
||||
access_token_expires_at: 0 #默认0
|
||||
commands: #功能列表
|
||||
简笔画:
|
||||
filename: line2drawing.json
|
||||
type: paint-board
|
||||
params:
|
||||
ckpt:
|
||||
isRequired: false
|
||||
keys:
|
||||
- '1'
|
||||
- inputs
|
||||
- ckpt_name
|
||||
options: #选项参数
|
||||
卡通动画片SD1.5: yamer_Cartoon_xenoArcadiaCD.safetensors
|
||||
冷却混合料SD1.5: chilloutmix_NiPrunedFp32Fix.safetensors #中文名称:英文名称
|
||||
梦想塑造者SD1.5: dreamshaper_8.safetensors
|
||||
zhName: 基础模型
|
||||
prompt:
|
||||
isRequired: false
|
||||
keys:
|
||||
- '17'
|
||||
- inputs
|
||||
- text_trans
|
||||
zhName: 正向提示词
|
||||
seed:
|
||||
default: -1
|
||||
isRequired: true
|
||||
keys:
|
||||
- '8'
|
||||
- inputs
|
||||
- seed
|
||||
type: text
|
||||
zhName: 随机种子
|
||||
image:
|
||||
isRequired: true
|
||||
keys:
|
||||
- '15'
|
||||
- inputs
|
||||
- image
|
||||
type: text
|
||||
zhName: 输入图片
|
||||
水彩画:
|
||||
filename: color2painting.json
|
||||
type: paint-board
|
||||
params:
|
||||
ckpt:
|
||||
isRequired: false
|
||||
keys:
|
||||
- '4'
|
||||
- inputs
|
||||
- ckpt_name
|
||||
options: #选项参数
|
||||
卡通动画片SD1.5: yamer_Cartoon_xenoArcadiaCD.safetensors
|
||||
冷却混合料SD1.5: chilloutmix_NiPrunedFp32Fix.safetensors #中文名称:英文名称
|
||||
梦想塑造者SD1.5: dreamshaper_8.safetensors
|
||||
zhName: 基础模型
|
||||
prompt:
|
||||
isRequired: false
|
||||
keys:
|
||||
- '27'
|
||||
- inputs
|
||||
- text_trans
|
||||
zhName: 正向提示词
|
||||
seed:
|
||||
default: -1
|
||||
isRequired: true
|
||||
keys:
|
||||
- '3'
|
||||
- inputs
|
||||
- seed
|
||||
type: text
|
||||
zhName: 随机种子
|
||||
denoise:
|
||||
default: 0.65 #默认值
|
||||
isRequired: false
|
||||
keys:
|
||||
- '3'
|
||||
- inputs
|
||||
- denoise
|
||||
max: 100 #最大值
|
||||
min: 0 #最小值
|
||||
original: 1 #原始最大值(用来换算滑块比例)
|
||||
type: number #类型(输入型参数目前只支持 number/text)
|
||||
zhName: 重绘幅度
|
||||
image:
|
||||
isRequired: true
|
||||
keys:
|
||||
- '25'
|
||||
- inputs
|
||||
- image
|
||||
type: text
|
||||
zhName: 输入图片
|
||||
图片修改:
|
||||
filename: imageEdit.json
|
||||
params:
|
||||
image:
|
||||
isRequired: true
|
||||
keys:
|
||||
- '48'
|
||||
- inputs
|
||||
- image_path
|
||||
zhName: 图片
|
||||
prompt:
|
||||
isRequired: true
|
||||
keys:
|
||||
- '47'
|
||||
- inputs
|
||||
- text_trans
|
||||
zhName: 正向提示词
|
||||
seed:
|
||||
default: -1
|
||||
isRequired: true
|
||||
keys:
|
||||
- '37:1'
|
||||
- inputs
|
||||
- noise_seed
|
||||
type: text
|
||||
zhName: 随机种子
|
||||
replyText: 请发送您的图片发送正向提示词用“ok”结尾开始任务,如:“漫画风格ok”
|
||||
风格转绘:
|
||||
filename: img2imgStyle.json
|
||||
replyText: 请上传需转绘的图片和参考风格图发送“ok”开始任务,如:“ok” #指令说明回复
|
||||
params:
|
||||
image: #参数名称(几个固定参数名称必须如下:图片:image 随机种子:seed 正向提示词:prompt 反向提示词:negative)
|
||||
isRequired: true #是否必填
|
||||
keys: #参数对应json中对应的key
|
||||
- '110'
|
||||
- inputs
|
||||
- image_path
|
||||
zhName: 待转绘图
|
||||
type: image
|
||||
styleImage: #参数名称(几个固定参数名称必须如下:图片:image 随机种子:seed 正向提示词:prompt 反向提示词:negative)
|
||||
isRequired: true #是否必填
|
||||
keys: #参数对应json中对应的key
|
||||
- '111'
|
||||
- inputs
|
||||
- image_path
|
||||
zhName: 风格参考图
|
||||
type: image
|
||||
default: 发送图片
|
||||
文生二维码:
|
||||
filename: text2qrcode.json
|
||||
replyText: 请发送二维码内容,和提示词发送“ok”开始任务,如:“花朵ok” #指令说明回复
|
||||
params:
|
||||
prompt:
|
||||
isRequired: true
|
||||
keys:
|
||||
- '75'
|
||||
- inputs
|
||||
- text_trans
|
||||
zhName: 正向提示词
|
||||
seed:
|
||||
default: -1
|
||||
isRequired: true
|
||||
keys:
|
||||
- '3'
|
||||
- inputs
|
||||
- seed
|
||||
type: text
|
||||
zhName: 随机种子
|
||||
qrText:
|
||||
default: "https://u.wechat.com/EEy4mPvfXdYO-MvStE4S2m0"
|
||||
isRequired: true
|
||||
keys:
|
||||
- '16'
|
||||
- inputs
|
||||
- text
|
||||
type: text
|
||||
zhName: 二维码内容
|
||||
|
||||
图生视频:
|
||||
filename: img2video.json #功能流程图json文件
|
||||
params: #参数列表
|
||||
image: #参数名称(几个固定参数名称必须如下:图片:image 随机种子:seed 正向提示词:prompt 反向提示词:negative)
|
||||
isRequired: true #是否必填
|
||||
keys: #参数对应json中对应的key
|
||||
- '38'
|
||||
- inputs
|
||||
- image_path
|
||||
zhName: 图片 #参数中文名称
|
||||
motion_bucket:
|
||||
default: 127
|
||||
isRequired: true
|
||||
keys:
|
||||
- '12'
|
||||
- inputs
|
||||
- motion_bucket_id
|
||||
max: 200
|
||||
min: 0
|
||||
type: number
|
||||
zhName: 运动量
|
||||
seed:
|
||||
default: -1
|
||||
isRequired: true
|
||||
keys:
|
||||
- '3'
|
||||
- inputs
|
||||
- seed
|
||||
type: text
|
||||
zhName: 随机种子
|
||||
replyText: 请发送您的图片发送“ok”开始任务,如:“ok” #指令说明回复
|
||||
文生图:
|
||||
filename: text2img.json
|
||||
params:
|
||||
ckpt:
|
||||
isRequired: false
|
||||
keys:
|
||||
- '4'
|
||||
- inputs
|
||||
- ckpt_name
|
||||
options: #选项参数
|
||||
冷却混合料SD1.5: chilloutmix_NiPrunedFp32Fix.safetensors #中文名称:英文名称
|
||||
卡通动画片SD1.5: yamer_Cartoon_xenoArcadiaCD.safetensors
|
||||
无法控制的SDXL: juggernautXL_version6Rundiffusion.safetensors
|
||||
梦想塑造者SD1.5: dreamshaper_8.safetensors
|
||||
zhName: 基础模型
|
||||
height:
|
||||
default: 512 #默认值
|
||||
isRequired: false
|
||||
keys:
|
||||
- '14'
|
||||
- inputs
|
||||
- height
|
||||
max: 1024 #最大值
|
||||
min: 512 #最小值
|
||||
type: number #类型(输入型参数目前只支持 number/text)
|
||||
zhName: 高度
|
||||
lora:
|
||||
isRequired: false
|
||||
keys:
|
||||
- '10'
|
||||
- inputs
|
||||
- lora_name
|
||||
options:
|
||||
SD1.5-LCM加速: lcm-lora-sdv1-5.safetensors
|
||||
SDXL-LCM加速: lcm-lora-sdxl.safetensors
|
||||
zhName: LoRA
|
||||
negative:
|
||||
isRequired: false
|
||||
keys:
|
||||
- '7'
|
||||
- inputs
|
||||
- text
|
||||
zhName: 反向提示词
|
||||
prompt:
|
||||
isRequired: true
|
||||
keys:
|
||||
- '20'
|
||||
- inputs
|
||||
- text_trans
|
||||
zhName: 正向提示词
|
||||
seed:
|
||||
default: -1
|
||||
isRequired: true
|
||||
keys:
|
||||
- '3'
|
||||
- inputs
|
||||
- seed
|
||||
type: text
|
||||
zhName: 随机种子
|
||||
width:
|
||||
default: 512
|
||||
isRequired: false
|
||||
keys:
|
||||
- '14'
|
||||
- inputs
|
||||
- width
|
||||
max: 1024
|
||||
min: 512
|
||||
type: number
|
||||
zhName: 宽度
|
||||
replyText: 请发送您的中文或英文提示词用“ok”结束,如:“一只小狗ok”
|
||||
query_commands: #查询指令(固定)
|
||||
- 查询排队情况
|
||||
- 我的编号
|
||||
@@ -0,0 +1,192 @@
|
||||
{
|
||||
"3": {
|
||||
"inputs": {
|
||||
"seed": 611578276912800,
|
||||
"steps": 8,
|
||||
"cfg": 1,
|
||||
"sampler_name": "euler_ancestral",
|
||||
"scheduler": "normal",
|
||||
"denoise": 0.65,
|
||||
"model": [
|
||||
"21",
|
||||
0
|
||||
],
|
||||
"positive": [
|
||||
"6",
|
||||
0
|
||||
],
|
||||
"negative": [
|
||||
"7",
|
||||
0
|
||||
],
|
||||
"latent_image": [
|
||||
"19",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "KSampler",
|
||||
"_meta": {
|
||||
"title": "K采样器"
|
||||
}
|
||||
},
|
||||
"4": {
|
||||
"inputs": {
|
||||
"ckpt_name": "yamer_Cartoon_xenoArcadiaCD.safetensors"
|
||||
},
|
||||
"class_type": "CheckpointLoaderSimple",
|
||||
"_meta": {
|
||||
"title": "Checkpoint加载器(简易)"
|
||||
}
|
||||
},
|
||||
"6": {
|
||||
"inputs": {
|
||||
"text": [
|
||||
"27",
|
||||
0
|
||||
],
|
||||
"clip": [
|
||||
"21",
|
||||
1
|
||||
]
|
||||
},
|
||||
"class_type": "CLIPTextEncode",
|
||||
"_meta": {
|
||||
"title": "CLIP文本编码器"
|
||||
}
|
||||
},
|
||||
"7": {
|
||||
"inputs": {
|
||||
"text": [
|
||||
"28",
|
||||
0
|
||||
],
|
||||
"clip": [
|
||||
"4",
|
||||
1
|
||||
]
|
||||
},
|
||||
"class_type": "CLIPTextEncode",
|
||||
"_meta": {
|
||||
"title": "CLIP文本编码器"
|
||||
}
|
||||
},
|
||||
"8": {
|
||||
"inputs": {
|
||||
"samples": [
|
||||
"3",
|
||||
0
|
||||
],
|
||||
"vae": [
|
||||
"4",
|
||||
2
|
||||
]
|
||||
},
|
||||
"class_type": "VAEDecode",
|
||||
"_meta": {
|
||||
"title": "VAE解码"
|
||||
}
|
||||
},
|
||||
"9": {
|
||||
"inputs": {
|
||||
"filename_prefix": "ComfyUI",
|
||||
"images": [
|
||||
"8",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "SaveImage",
|
||||
"_meta": {
|
||||
"title": "保存图像"
|
||||
}
|
||||
},
|
||||
"10": {
|
||||
"inputs": {
|
||||
"lora_name": "lcm-lora-sdv1-5.safetensors",
|
||||
"strength_model": 1,
|
||||
"strength_clip": 1,
|
||||
"model": [
|
||||
"4",
|
||||
0
|
||||
],
|
||||
"clip": [
|
||||
"4",
|
||||
1
|
||||
]
|
||||
},
|
||||
"class_type": "LoraLoader",
|
||||
"_meta": {
|
||||
"title": "LoRA加载器"
|
||||
}
|
||||
},
|
||||
"19": {
|
||||
"inputs": {
|
||||
"pixels": [
|
||||
"25",
|
||||
0
|
||||
],
|
||||
"vae": [
|
||||
"23",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "VAEEncode",
|
||||
"_meta": {
|
||||
"title": "VAE编码"
|
||||
}
|
||||
},
|
||||
"21": {
|
||||
"inputs": {
|
||||
"lora_name": "可爱少女厚涂风.safetensors",
|
||||
"strength_model": 0,
|
||||
"strength_clip": 1,
|
||||
"model": [
|
||||
"10",
|
||||
0
|
||||
],
|
||||
"clip": [
|
||||
"10",
|
||||
1
|
||||
]
|
||||
},
|
||||
"class_type": "LoraLoader",
|
||||
"_meta": {
|
||||
"title": "LoRA加载器"
|
||||
}
|
||||
},
|
||||
"23": {
|
||||
"inputs": {
|
||||
"vae_name": "clearvae_v23.safetensors"
|
||||
},
|
||||
"class_type": "VAELoader",
|
||||
"_meta": {
|
||||
"title": "VAE加载器"
|
||||
}
|
||||
},
|
||||
"25": {
|
||||
"inputs": {
|
||||
"image": ""
|
||||
},
|
||||
"class_type": "ETN_LoadImageBase64",
|
||||
"_meta": {
|
||||
"title": "Load Image (Base64)"
|
||||
}
|
||||
},
|
||||
"27": {
|
||||
"inputs": {
|
||||
"text_trans": ""
|
||||
},
|
||||
"class_type": "ZhPromptTranslator",
|
||||
"_meta": {
|
||||
"title": "正向提示词"
|
||||
}
|
||||
},
|
||||
"28": {
|
||||
"inputs": {
|
||||
"text_trans": ""
|
||||
},
|
||||
"class_type": "ZhPromptTranslator",
|
||||
"_meta": {
|
||||
"title": "反向提示词"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,262 @@
|
||||
{
|
||||
"4": {
|
||||
"inputs": {
|
||||
"ckpt_name": "cosxl_edit.safetensors"
|
||||
},
|
||||
"class_type": "CheckpointLoaderSimple",
|
||||
"_meta": {
|
||||
"title": "Checkpoint加载器(简易)"
|
||||
}
|
||||
},
|
||||
"6": {
|
||||
"inputs": {
|
||||
"text": [
|
||||
"47",
|
||||
0
|
||||
],
|
||||
"clip": [
|
||||
"4",
|
||||
1
|
||||
]
|
||||
},
|
||||
"class_type": "CLIPTextEncode",
|
||||
"_meta": {
|
||||
"title": "CLIP文本编码器"
|
||||
}
|
||||
},
|
||||
"7": {
|
||||
"inputs": {
|
||||
"text": "",
|
||||
"clip": [
|
||||
"4",
|
||||
1
|
||||
]
|
||||
},
|
||||
"class_type": "CLIPTextEncode",
|
||||
"_meta": {
|
||||
"title": "CLIP文本编码器"
|
||||
}
|
||||
},
|
||||
"8": {
|
||||
"inputs": {
|
||||
"samples": [
|
||||
"37:8",
|
||||
0
|
||||
],
|
||||
"vae": [
|
||||
"4",
|
||||
2
|
||||
]
|
||||
},
|
||||
"class_type": "VAEDecode",
|
||||
"_meta": {
|
||||
"title": "VAE解码"
|
||||
}
|
||||
},
|
||||
"9": {
|
||||
"inputs": {
|
||||
"filename_prefix": "ComfyUI",
|
||||
"images": [
|
||||
"8",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "SaveImage",
|
||||
"_meta": {
|
||||
"title": "保存图像"
|
||||
}
|
||||
},
|
||||
"41": {
|
||||
"inputs": {
|
||||
"width": 960,
|
||||
"height": 0,
|
||||
"interpolation": "nearest",
|
||||
"keep_proportion": true,
|
||||
"condition": "always",
|
||||
"image": [
|
||||
"48",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "ImageResize+",
|
||||
"_meta": {
|
||||
"title": "图像缩放"
|
||||
}
|
||||
},
|
||||
"42": {
|
||||
"inputs": {
|
||||
"image": [
|
||||
"48",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "GetImage_(Width&Height) _O",
|
||||
"_meta": {
|
||||
"title": "GetImage_(Width&Height) _O"
|
||||
}
|
||||
},
|
||||
"44": {
|
||||
"inputs": {
|
||||
"expression": "p0>960",
|
||||
"p0": [
|
||||
"42",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "MultiParamFormula",
|
||||
"_meta": {
|
||||
"title": "多参代码表达式"
|
||||
}
|
||||
},
|
||||
"46": {
|
||||
"inputs": {
|
||||
"ANY": [
|
||||
"44",
|
||||
0
|
||||
],
|
||||
"IF_TRUE": [
|
||||
"41",
|
||||
0
|
||||
],
|
||||
"IF_FALSE": [
|
||||
"48",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "IfInnerExecute",
|
||||
"_meta": {
|
||||
"title": "判断选择"
|
||||
}
|
||||
},
|
||||
"47": {
|
||||
"inputs": {
|
||||
"text_trans": "秋天"
|
||||
},
|
||||
"class_type": "ZhPromptTranslator",
|
||||
"_meta": {
|
||||
"title": "中文翻译"
|
||||
}
|
||||
},
|
||||
"48": {
|
||||
"inputs": {
|
||||
"image_path": "./ComfyUI/input/example.png",
|
||||
"RGBA": "false",
|
||||
"filename_text_extension": "true"
|
||||
},
|
||||
"class_type": "LamLoadPathImage",
|
||||
"_meta": {
|
||||
"title": "加载网络图片或本地图片"
|
||||
}
|
||||
},
|
||||
"37:0": {
|
||||
"inputs": {
|
||||
"sampler_name": "euler"
|
||||
},
|
||||
"class_type": "KSamplerSelect",
|
||||
"_meta": {
|
||||
"title": "K采样器选择"
|
||||
}
|
||||
},
|
||||
"37:1": {
|
||||
"inputs": {
|
||||
"noise_seed": 173148692406184
|
||||
},
|
||||
"class_type": "RandomNoise",
|
||||
"_meta": {
|
||||
"title": "随机噪波"
|
||||
}
|
||||
},
|
||||
"37:3": {
|
||||
"inputs": {
|
||||
"scheduler": "normal",
|
||||
"steps": 20,
|
||||
"denoise": 1,
|
||||
"model": [
|
||||
"4",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "BasicScheduler",
|
||||
"_meta": {
|
||||
"title": "基础调度器"
|
||||
}
|
||||
},
|
||||
"37:6": {
|
||||
"inputs": {
|
||||
"positive": [
|
||||
"6",
|
||||
0
|
||||
],
|
||||
"negative": [
|
||||
"7",
|
||||
0
|
||||
],
|
||||
"vae": [
|
||||
"4",
|
||||
2
|
||||
],
|
||||
"pixels": [
|
||||
"46",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "InstructPixToPixConditioning",
|
||||
"_meta": {
|
||||
"title": "InstructPixToPix条件"
|
||||
}
|
||||
},
|
||||
"37:7": {
|
||||
"inputs": {
|
||||
"cfg_conds": 5,
|
||||
"cfg_cond2_negative": 1.5,
|
||||
"model": [
|
||||
"4",
|
||||
0
|
||||
],
|
||||
"cond1": [
|
||||
"37:6",
|
||||
0
|
||||
],
|
||||
"cond2": [
|
||||
"37:6",
|
||||
1
|
||||
],
|
||||
"negative": [
|
||||
"7",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "DualCFGGuider",
|
||||
"_meta": {
|
||||
"title": "双CFG引导"
|
||||
}
|
||||
},
|
||||
"37:8": {
|
||||
"inputs": {
|
||||
"noise": [
|
||||
"37:1",
|
||||
0
|
||||
],
|
||||
"guider": [
|
||||
"37:7",
|
||||
0
|
||||
],
|
||||
"sampler": [
|
||||
"37:0",
|
||||
0
|
||||
],
|
||||
"sigmas": [
|
||||
"37:3",
|
||||
0
|
||||
],
|
||||
"latent_image": [
|
||||
"37:6",
|
||||
2
|
||||
]
|
||||
},
|
||||
"class_type": "SamplerCustomAdvanced",
|
||||
"_meta": {
|
||||
"title": "自定义采样器(高级)"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,651 @@
|
||||
{
|
||||
"3": {
|
||||
"inputs": {
|
||||
"seed": 20,
|
||||
"steps": 25,
|
||||
"cfg": 6,
|
||||
"sampler_name": "dpmpp_2m",
|
||||
"scheduler": "karras",
|
||||
"denoise": 0.9,
|
||||
"model": [
|
||||
"105",
|
||||
0
|
||||
],
|
||||
"positive": [
|
||||
"64",
|
||||
0
|
||||
],
|
||||
"negative": [
|
||||
"64",
|
||||
1
|
||||
],
|
||||
"latent_image": [
|
||||
"64",
|
||||
2
|
||||
]
|
||||
},
|
||||
"class_type": "KSampler",
|
||||
"_meta": {
|
||||
"title": "K采样器"
|
||||
}
|
||||
},
|
||||
"4": {
|
||||
"inputs": {
|
||||
"ckpt_name": "dreamshaper_8.safetensors"
|
||||
},
|
||||
"class_type": "CheckpointLoaderSimple",
|
||||
"_meta": {
|
||||
"title": "Checkpoint加载器(简易)"
|
||||
}
|
||||
},
|
||||
"6": {
|
||||
"inputs": {
|
||||
"text": [
|
||||
"72",
|
||||
0
|
||||
],
|
||||
"clip": [
|
||||
"4",
|
||||
1
|
||||
]
|
||||
},
|
||||
"class_type": "CLIPTextEncode",
|
||||
"_meta": {
|
||||
"title": "CLIP文本编码器"
|
||||
}
|
||||
},
|
||||
"7": {
|
||||
"inputs": {
|
||||
"text": "blurry, noisy, messy, glitch, distorted, malformed, ill, horror, naked, nipples",
|
||||
"clip": [
|
||||
"4",
|
||||
1
|
||||
]
|
||||
},
|
||||
"class_type": "CLIPTextEncode",
|
||||
"_meta": {
|
||||
"title": "CLIP文本编码器"
|
||||
}
|
||||
},
|
||||
"8": {
|
||||
"inputs": {
|
||||
"samples": [
|
||||
"3",
|
||||
0
|
||||
],
|
||||
"vae": [
|
||||
"4",
|
||||
2
|
||||
]
|
||||
},
|
||||
"class_type": "VAEDecode",
|
||||
"_meta": {
|
||||
"title": "VAE解码"
|
||||
}
|
||||
},
|
||||
"29": {
|
||||
"inputs": {
|
||||
"width": 960,
|
||||
"height": 0,
|
||||
"interpolation": "nearest",
|
||||
"keep_proportion": true,
|
||||
"condition": "always",
|
||||
"multiple_of": 0,
|
||||
"image": [
|
||||
"110",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "ImageResize+",
|
||||
"_meta": {
|
||||
"title": "图像缩放"
|
||||
}
|
||||
},
|
||||
"48": {
|
||||
"inputs": {
|
||||
"preset": "STANDARD (medium strength)",
|
||||
"model": [
|
||||
"4",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "IPAdapterUnifiedLoader",
|
||||
"_meta": {
|
||||
"title": "IPAdapter加载器"
|
||||
}
|
||||
},
|
||||
"50": {
|
||||
"inputs": {
|
||||
"interpolation": "LANCZOS",
|
||||
"crop_position": "pad",
|
||||
"sharpening": 0,
|
||||
"image": [
|
||||
"111",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "PrepImageForClipVision",
|
||||
"_meta": {
|
||||
"title": "CLIP视觉图像处理"
|
||||
}
|
||||
},
|
||||
"51": {
|
||||
"inputs": {
|
||||
"strength": 0.55,
|
||||
"start_percent": 0,
|
||||
"end_percent": 0.75,
|
||||
"positive": [
|
||||
"6",
|
||||
0
|
||||
],
|
||||
"negative": [
|
||||
"7",
|
||||
0
|
||||
],
|
||||
"control_net": [
|
||||
"52",
|
||||
0
|
||||
],
|
||||
"image": [
|
||||
"83",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "ControlNetApplyAdvanced",
|
||||
"_meta": {
|
||||
"title": "ControlNet应用(高级)"
|
||||
}
|
||||
},
|
||||
"52": {
|
||||
"inputs": {
|
||||
"control_net_name": "control_v11p_sd15_lineart.pth"
|
||||
},
|
||||
"class_type": "ControlNetLoader",
|
||||
"_meta": {
|
||||
"title": "ControlNet加载器"
|
||||
}
|
||||
},
|
||||
"55": {
|
||||
"inputs": {
|
||||
"strength": 1,
|
||||
"start_percent": 0,
|
||||
"end_percent": 0.3,
|
||||
"positive": [
|
||||
"51",
|
||||
0
|
||||
],
|
||||
"negative": [
|
||||
"51",
|
||||
1
|
||||
],
|
||||
"control_net": [
|
||||
"56",
|
||||
0
|
||||
],
|
||||
"image": [
|
||||
"57",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "ControlNetApplyAdvanced",
|
||||
"_meta": {
|
||||
"title": "ControlNet应用(高级)"
|
||||
}
|
||||
},
|
||||
"56": {
|
||||
"inputs": {
|
||||
"control_net_name": "control_v11f1p_sd15_depth.pth"
|
||||
},
|
||||
"class_type": "ControlNetLoader",
|
||||
"_meta": {
|
||||
"title": "ControlNet加载器"
|
||||
}
|
||||
},
|
||||
"57": {
|
||||
"inputs": {
|
||||
"ckpt_name": "depth_anything_vits14.pth",
|
||||
"resolution": 960,
|
||||
"image": [
|
||||
"71",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "DepthAnythingPreprocessor",
|
||||
"_meta": {
|
||||
"title": "DA深度预处理器"
|
||||
}
|
||||
},
|
||||
"63": {
|
||||
"inputs": {
|
||||
"interpolation": "LANCZOS",
|
||||
"crop_position": "pad",
|
||||
"sharpening": 0,
|
||||
"image": [
|
||||
"71",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "PrepImageForClipVision",
|
||||
"_meta": {
|
||||
"title": "CLIP视觉图像处理"
|
||||
}
|
||||
},
|
||||
"64": {
|
||||
"inputs": {
|
||||
"positive": [
|
||||
"55",
|
||||
0
|
||||
],
|
||||
"negative": [
|
||||
"55",
|
||||
1
|
||||
],
|
||||
"vae": [
|
||||
"4",
|
||||
2
|
||||
],
|
||||
"pixels": [
|
||||
"71",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "InstructPixToPixConditioning",
|
||||
"_meta": {
|
||||
"title": "InstructPixToPix条件"
|
||||
}
|
||||
},
|
||||
"69": {
|
||||
"inputs": {
|
||||
"image": [
|
||||
"110",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "GetImage_(Width&Height) _O",
|
||||
"_meta": {
|
||||
"title": "GetImage_(Width&Height) _O"
|
||||
}
|
||||
},
|
||||
"70": {
|
||||
"inputs": {
|
||||
"expression": "p0>960",
|
||||
"p0": [
|
||||
"69",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "MultiParamFormula",
|
||||
"_meta": {
|
||||
"title": "多参代码表达式"
|
||||
}
|
||||
},
|
||||
"71": {
|
||||
"inputs": {
|
||||
"ANY": [
|
||||
"70",
|
||||
0
|
||||
],
|
||||
"IF_TRUE": [
|
||||
"29",
|
||||
0
|
||||
],
|
||||
"IF_FALSE": [
|
||||
"110",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "IfInnerExecute",
|
||||
"_meta": {
|
||||
"title": "判断选择"
|
||||
}
|
||||
},
|
||||
"72": {
|
||||
"inputs": {
|
||||
"model": "wd-v1-4-moat-tagger-v2",
|
||||
"threshold": 0.35,
|
||||
"character_threshold": 1,
|
||||
"exclude_tags": "",
|
||||
"image": [
|
||||
"71",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "WD14Tagger|pysssss",
|
||||
"_meta": {
|
||||
"title": "WD14反推提示词"
|
||||
}
|
||||
},
|
||||
"76": {
|
||||
"inputs": {
|
||||
"preset": "PLUS FACE (portraits)",
|
||||
"model": [
|
||||
"103",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "IPAdapterUnifiedLoader",
|
||||
"_meta": {
|
||||
"title": "IPAdapter加载器"
|
||||
}
|
||||
},
|
||||
"83": {
|
||||
"inputs": {
|
||||
"coarse": "disable",
|
||||
"image": [
|
||||
"71",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "LineArtPreprocessor",
|
||||
"_meta": {
|
||||
"title": "LineArt艺术线预处理器"
|
||||
}
|
||||
},
|
||||
"86": {
|
||||
"inputs": {
|
||||
"filename_prefix": "ComfyUI",
|
||||
"images": [
|
||||
"8",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "SaveImage",
|
||||
"_meta": {
|
||||
"title": "保存图像"
|
||||
}
|
||||
},
|
||||
"88": {
|
||||
"inputs": {
|
||||
"expression": "p0[p1:p1+1]",
|
||||
"p0": [
|
||||
"108",
|
||||
0
|
||||
],
|
||||
"p1": [
|
||||
"89",
|
||||
1
|
||||
]
|
||||
},
|
||||
"class_type": "MultiParamFormula",
|
||||
"_meta": {
|
||||
"title": "多参代码表达式"
|
||||
}
|
||||
},
|
||||
"89": {
|
||||
"inputs": {
|
||||
"total": [
|
||||
"90",
|
||||
0
|
||||
],
|
||||
"stop": 1,
|
||||
"i": 0
|
||||
},
|
||||
"class_type": "ForInnerStart",
|
||||
"_meta": {
|
||||
"title": "计次内循环首"
|
||||
}
|
||||
},
|
||||
"90": {
|
||||
"inputs": {
|
||||
"expression": "len(p0)",
|
||||
"p0": [
|
||||
"108",
|
||||
1
|
||||
]
|
||||
},
|
||||
"class_type": "MultiParamFormula",
|
||||
"_meta": {
|
||||
"title": "多参代码表达式"
|
||||
}
|
||||
},
|
||||
"91": {
|
||||
"inputs": {
|
||||
"expression": "p0[p1]",
|
||||
"p0": [
|
||||
"108",
|
||||
1
|
||||
],
|
||||
"p1": [
|
||||
"89",
|
||||
1
|
||||
]
|
||||
},
|
||||
"class_type": "MultiParamFormula",
|
||||
"_meta": {
|
||||
"title": "多参代码表达式"
|
||||
}
|
||||
},
|
||||
"92": {
|
||||
"inputs": {
|
||||
"total": [
|
||||
"89",
|
||||
0
|
||||
],
|
||||
"obj": [
|
||||
"97",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "ForInnerEnd",
|
||||
"_meta": {
|
||||
"title": "计次内循环尾"
|
||||
}
|
||||
},
|
||||
"94": {
|
||||
"inputs": {
|
||||
"ANY": [
|
||||
"95",
|
||||
0
|
||||
],
|
||||
"IF_TRUE": [
|
||||
"96",
|
||||
0
|
||||
],
|
||||
"IF_FALSE": [
|
||||
"89",
|
||||
3
|
||||
]
|
||||
},
|
||||
"class_type": "IfInnerExecute",
|
||||
"_meta": {
|
||||
"title": "判断选择"
|
||||
}
|
||||
},
|
||||
"95": {
|
||||
"inputs": {
|
||||
"expression": "p0==0",
|
||||
"p0": [
|
||||
"89",
|
||||
1
|
||||
]
|
||||
},
|
||||
"class_type": "MultiParamFormula",
|
||||
"_meta": {
|
||||
"title": "多参代码表达式"
|
||||
}
|
||||
},
|
||||
"96": {
|
||||
"inputs": {
|
||||
"preset": "FACEID PLUS V2",
|
||||
"lora_strength": 0.39,
|
||||
"provider": "CPU",
|
||||
"model": [
|
||||
"76",
|
||||
0
|
||||
],
|
||||
"ipadapter": [
|
||||
"76",
|
||||
1
|
||||
]
|
||||
},
|
||||
"class_type": "IPAdapterUnifiedLoaderFaceID",
|
||||
"_meta": {
|
||||
"title": "IPAdapterFaceID加载器"
|
||||
}
|
||||
},
|
||||
"97": {
|
||||
"inputs": {
|
||||
"weight": 1,
|
||||
"weight_faceidv2": 2,
|
||||
"weight_type": "linear",
|
||||
"combine_embeds": "concat",
|
||||
"start_at": 0,
|
||||
"end_at": 1,
|
||||
"embeds_scaling": "V only",
|
||||
"model": [
|
||||
"94",
|
||||
0
|
||||
],
|
||||
"ipadapter": [
|
||||
"96",
|
||||
1
|
||||
],
|
||||
"image": [
|
||||
"88",
|
||||
0
|
||||
],
|
||||
"attn_mask": [
|
||||
"91",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "IPAdapterFaceID",
|
||||
"_meta": {
|
||||
"title": "应用IPAdapterFaceID"
|
||||
}
|
||||
},
|
||||
"102": {
|
||||
"inputs": {
|
||||
"weight": 1,
|
||||
"weight_type": "style transfer",
|
||||
"combine_embeds": "concat",
|
||||
"start_at": 0,
|
||||
"end_at": 1,
|
||||
"embeds_scaling": "V only",
|
||||
"model": [
|
||||
"48",
|
||||
0
|
||||
],
|
||||
"ipadapter": [
|
||||
"48",
|
||||
1
|
||||
],
|
||||
"image": [
|
||||
"50",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "IPAdapterAdvanced",
|
||||
"_meta": {
|
||||
"title": "应用IPAdapter(高级)"
|
||||
}
|
||||
},
|
||||
"103": {
|
||||
"inputs": {
|
||||
"weight": 1,
|
||||
"weight_type": "composition",
|
||||
"combine_embeds": "concat",
|
||||
"start_at": 0,
|
||||
"end_at": 1,
|
||||
"embeds_scaling": "V only",
|
||||
"model": [
|
||||
"102",
|
||||
0
|
||||
],
|
||||
"ipadapter": [
|
||||
"48",
|
||||
1
|
||||
],
|
||||
"image": [
|
||||
"63",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "IPAdapterAdvanced",
|
||||
"_meta": {
|
||||
"title": "应用IPAdapter(高级)"
|
||||
}
|
||||
},
|
||||
"104": {
|
||||
"inputs": {
|
||||
"expression": "len(p0)>0",
|
||||
"p0": [
|
||||
"108",
|
||||
1
|
||||
]
|
||||
},
|
||||
"class_type": "MultiParamFormula",
|
||||
"_meta": {
|
||||
"title": "多参代码表达式"
|
||||
}
|
||||
},
|
||||
"105": {
|
||||
"inputs": {
|
||||
"ANY": [
|
||||
"104",
|
||||
0
|
||||
],
|
||||
"IF_TRUE": [
|
||||
"92",
|
||||
1
|
||||
],
|
||||
"IF_FALSE": [
|
||||
"103",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "IfInnerExecute",
|
||||
"_meta": {
|
||||
"title": "判断选择"
|
||||
}
|
||||
},
|
||||
"108": {
|
||||
"inputs": {
|
||||
"crop_padding_factor": 0.25,
|
||||
"analysis_models": [
|
||||
"109",
|
||||
0
|
||||
],
|
||||
"image": [
|
||||
"71",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "ImageCropFaces",
|
||||
"_meta": {
|
||||
"title": "多人面部裁剪"
|
||||
}
|
||||
},
|
||||
"109": {
|
||||
"inputs": {
|
||||
"library": "insightface",
|
||||
"provider": "CPU"
|
||||
},
|
||||
"class_type": "FaceAnalysisModels",
|
||||
"_meta": {
|
||||
"title": "面部分析模型"
|
||||
}
|
||||
},
|
||||
"110": {
|
||||
"inputs": {
|
||||
"image_path": "./ComfyUI/input/example.png",
|
||||
"RGBA": "false",
|
||||
"filename_text_extension": "true"
|
||||
},
|
||||
"class_type": "LamLoadPathImage",
|
||||
"_meta": {
|
||||
"title": "需转绘的图"
|
||||
}
|
||||
},
|
||||
"111": {
|
||||
"inputs": {
|
||||
"image_path": "./ComfyUI/input/example.png",
|
||||
"RGBA": "false",
|
||||
"filename_text_extension": "true"
|
||||
},
|
||||
"class_type": "LamLoadPathImage",
|
||||
"_meta": {
|
||||
"title": "风格参考图片"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,142 @@
|
||||
{
|
||||
"3": {
|
||||
"inputs": {
|
||||
"seed": 801899397770458,
|
||||
"steps": 4,
|
||||
"cfg": 1,
|
||||
"sampler_name": "lcm",
|
||||
"scheduler": "karras",
|
||||
"denoise": 1,
|
||||
"model": [
|
||||
"14",
|
||||
0
|
||||
],
|
||||
"positive": [
|
||||
"12",
|
||||
0
|
||||
],
|
||||
"negative": [
|
||||
"12",
|
||||
1
|
||||
],
|
||||
"latent_image": [
|
||||
"12",
|
||||
2
|
||||
]
|
||||
},
|
||||
"class_type": "KSampler"
|
||||
},
|
||||
"8": {
|
||||
"inputs": {
|
||||
"samples": [
|
||||
"3",
|
||||
0
|
||||
],
|
||||
"vae": [
|
||||
"15",
|
||||
2
|
||||
]
|
||||
},
|
||||
"class_type": "VAEDecode"
|
||||
},
|
||||
"12": {
|
||||
"inputs": {
|
||||
"width": [
|
||||
"30",
|
||||
0
|
||||
],
|
||||
"height": [
|
||||
"30",
|
||||
1
|
||||
],
|
||||
"video_frames": 25,
|
||||
"motion_bucket_id": 127,
|
||||
"fps": 6,
|
||||
"augmentation_level": 0,
|
||||
"clip_vision": [
|
||||
"15",
|
||||
1
|
||||
],
|
||||
"init_image": [
|
||||
"38",
|
||||
0
|
||||
],
|
||||
"vae": [
|
||||
"15",
|
||||
2
|
||||
]
|
||||
},
|
||||
"class_type": "SVD_img2vid_Conditioning"
|
||||
},
|
||||
"14": {
|
||||
"inputs": {
|
||||
"min_cfg": 1,
|
||||
"model": [
|
||||
"33",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "VideoLinearCFGGuidance"
|
||||
},
|
||||
"15": {
|
||||
"inputs": {
|
||||
"ckpt_name": "AnimateLCM-SVD-xt-1-1_fp16_comfy.safetensors"
|
||||
},
|
||||
"class_type": "ImageOnlyCheckpointLoader"
|
||||
},
|
||||
"25": {
|
||||
"inputs": {
|
||||
"frame_rate": 8,
|
||||
"loop_count": 0,
|
||||
"filename_prefix": "AnimateDiff",
|
||||
"format": "video/h265-mp4",
|
||||
"pingpong": false,
|
||||
"save_image": true,
|
||||
"Sync playback": null,
|
||||
"images": [
|
||||
"8",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "VHS_VideoCombine"
|
||||
},
|
||||
"30": {
|
||||
"inputs": {
|
||||
"image": [
|
||||
"31",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "Get image size"
|
||||
},
|
||||
"31": {
|
||||
"inputs": {
|
||||
"upscale_method": "nearest-exact",
|
||||
"scale_by": 0.7000000000000001,
|
||||
"image": [
|
||||
"38",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "ImageScaleBy"
|
||||
},
|
||||
"33": {
|
||||
"inputs": {
|
||||
"lora_name": "lcm-lora-sdv1-5.safetensors",
|
||||
"strength_model": 1,
|
||||
"model": [
|
||||
"15",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "LoraLoaderModelOnly"
|
||||
},
|
||||
"38": {
|
||||
"inputs": {
|
||||
"image_path": "http://127.0.0.1:8188/view?filename=ComfyUI_00402_.png&type=input&subfolder=&rand=0.9232966295130483",
|
||||
"RGBA": "false",
|
||||
"filename_text_extension": "true"
|
||||
},
|
||||
"class_type": "LamLoadPathImage"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,239 @@
|
||||
{
|
||||
"1": {
|
||||
"inputs": {
|
||||
"ckpt_name": "yamer_Cartoon_xenoArcadiaCD.safetensors"
|
||||
},
|
||||
"class_type": "CheckpointLoaderSimple",
|
||||
"_meta": {
|
||||
"title": "Checkpoint加载器(简易)"
|
||||
}
|
||||
},
|
||||
"2": {
|
||||
"inputs": {
|
||||
"width": [
|
||||
"16",
|
||||
0
|
||||
],
|
||||
"height": [
|
||||
"16",
|
||||
1
|
||||
],
|
||||
"batch_size": 1
|
||||
},
|
||||
"class_type": "EmptyLatentImage",
|
||||
"_meta": {
|
||||
"title": "空Latent"
|
||||
}
|
||||
},
|
||||
"3": {
|
||||
"inputs": {
|
||||
"text": [
|
||||
"17",
|
||||
0
|
||||
],
|
||||
"clip": [
|
||||
"1",
|
||||
1
|
||||
]
|
||||
},
|
||||
"class_type": "CLIPTextEncode",
|
||||
"_meta": {
|
||||
"title": "CLIP文本编码器"
|
||||
}
|
||||
},
|
||||
"4": {
|
||||
"inputs": {
|
||||
"text": [
|
||||
"18",
|
||||
0
|
||||
],
|
||||
"clip": [
|
||||
"1",
|
||||
1
|
||||
]
|
||||
},
|
||||
"class_type": "CLIPTextEncode",
|
||||
"_meta": {
|
||||
"title": "CLIP文本编码器"
|
||||
}
|
||||
},
|
||||
"6": {
|
||||
"inputs": {
|
||||
"control_net_name": "control_v11p_sd15_lineart.pth"
|
||||
},
|
||||
"class_type": "ControlNetLoader",
|
||||
"_meta": {
|
||||
"title": "ControlNet加载器"
|
||||
}
|
||||
},
|
||||
"7": {
|
||||
"inputs": {
|
||||
"strength": 1,
|
||||
"conditioning": [
|
||||
"3",
|
||||
0
|
||||
],
|
||||
"control_net": [
|
||||
"6",
|
||||
0
|
||||
],
|
||||
"image": [
|
||||
"22",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "ControlNetApply",
|
||||
"_meta": {
|
||||
"title": "ControlNet应用"
|
||||
}
|
||||
},
|
||||
"8": {
|
||||
"inputs": {
|
||||
"seed": 275540587861329,
|
||||
"steps": 8,
|
||||
"cfg": 1,
|
||||
"sampler_name": "lcm",
|
||||
"scheduler": "karras",
|
||||
"denoise": 1,
|
||||
"model": [
|
||||
"14",
|
||||
0
|
||||
],
|
||||
"positive": [
|
||||
"7",
|
||||
0
|
||||
],
|
||||
"negative": [
|
||||
"4",
|
||||
0
|
||||
],
|
||||
"latent_image": [
|
||||
"2",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "KSampler",
|
||||
"_meta": {
|
||||
"title": "K采样器"
|
||||
}
|
||||
},
|
||||
"9": {
|
||||
"inputs": {
|
||||
"samples": [
|
||||
"8",
|
||||
0
|
||||
],
|
||||
"vae": [
|
||||
"1",
|
||||
2
|
||||
]
|
||||
},
|
||||
"class_type": "VAEDecode",
|
||||
"_meta": {
|
||||
"title": "VAE解码"
|
||||
}
|
||||
},
|
||||
"14": {
|
||||
"inputs": {
|
||||
"lora_name": "lcm-lora-sdv1-5.safetensors",
|
||||
"strength_model": 1,
|
||||
"model": [
|
||||
"1",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "LoraLoaderModelOnly",
|
||||
"_meta": {
|
||||
"title": "LoRA加载器(仅模型)"
|
||||
}
|
||||
},
|
||||
"15": {
|
||||
"inputs": {
|
||||
"image": ""
|
||||
},
|
||||
"class_type": "ETN_LoadImageBase64",
|
||||
"_meta": {
|
||||
"title": "Load Image (Base64)"
|
||||
}
|
||||
},
|
||||
"16": {
|
||||
"inputs": {
|
||||
"image": [
|
||||
"22",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "GetImage_(Width&Height) _O",
|
||||
"_meta": {
|
||||
"title": "GetImage_(Width&Height) _O"
|
||||
}
|
||||
},
|
||||
"17": {
|
||||
"inputs": {
|
||||
"text_trans": ""
|
||||
},
|
||||
"class_type": "ZhPromptTranslator",
|
||||
"_meta": {
|
||||
"title": "正向提示词"
|
||||
}
|
||||
},
|
||||
"18": {
|
||||
"inputs": {
|
||||
"text_trans": ""
|
||||
},
|
||||
"class_type": "ZhPromptTranslator",
|
||||
"_meta": {
|
||||
"title": "反向提示词"
|
||||
}
|
||||
},
|
||||
"19": {
|
||||
"inputs": {
|
||||
"filename_prefix": "ComfyUI",
|
||||
"images": [
|
||||
"9",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "SaveImage",
|
||||
"_meta": {
|
||||
"title": "保存图像"
|
||||
}
|
||||
},
|
||||
"20": {
|
||||
"inputs": {
|
||||
"channel": "red",
|
||||
"image": [
|
||||
"15",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "ImageToMask",
|
||||
"_meta": {
|
||||
"title": "图像到遮罩"
|
||||
}
|
||||
},
|
||||
"21": {
|
||||
"inputs": {
|
||||
"mask": [
|
||||
"20",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "InvertMask",
|
||||
"_meta": {
|
||||
"title": "遮罩反转"
|
||||
}
|
||||
},
|
||||
"22": {
|
||||
"inputs": {
|
||||
"mask": [
|
||||
"21",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "MaskToImage",
|
||||
"_meta": {
|
||||
"title": "遮罩到图像"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,125 @@
|
||||
{
|
||||
"3": {
|
||||
"inputs": {
|
||||
"seed": 1068764177227380,
|
||||
"steps": 5,
|
||||
"cfg": 1,
|
||||
"sampler_name": "lcm",
|
||||
"scheduler": "normal",
|
||||
"denoise": 1,
|
||||
"model": [
|
||||
"10",
|
||||
0
|
||||
],
|
||||
"positive": [
|
||||
"6",
|
||||
0
|
||||
],
|
||||
"negative": [
|
||||
"7",
|
||||
0
|
||||
],
|
||||
"latent_image": [
|
||||
"5",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "KSampler"
|
||||
},
|
||||
"4": {
|
||||
"inputs": {
|
||||
"ckpt_name": "dreamshaper_8.safetensors"
|
||||
},
|
||||
"class_type": "CheckpointLoaderSimple"
|
||||
},
|
||||
"5": {
|
||||
"inputs": {
|
||||
"width": [
|
||||
"14",
|
||||
0
|
||||
],
|
||||
"height": [
|
||||
"14",
|
||||
1
|
||||
],
|
||||
"batch_size": 1
|
||||
},
|
||||
"class_type": "EmptyLatentImage"
|
||||
},
|
||||
"6": {
|
||||
"inputs": {
|
||||
"text": [
|
||||
"20",
|
||||
0
|
||||
],
|
||||
"clip": [
|
||||
"10",
|
||||
1
|
||||
]
|
||||
},
|
||||
"class_type": "CLIPTextEncode"
|
||||
},
|
||||
"7": {
|
||||
"inputs": {
|
||||
"text": "undefined",
|
||||
"clip": [
|
||||
"4",
|
||||
1
|
||||
]
|
||||
},
|
||||
"class_type": "CLIPTextEncode"
|
||||
},
|
||||
"8": {
|
||||
"inputs": {
|
||||
"samples": [
|
||||
"3",
|
||||
0
|
||||
],
|
||||
"vae": [
|
||||
"4",
|
||||
2
|
||||
]
|
||||
},
|
||||
"class_type": "VAEDecode"
|
||||
},
|
||||
"9": {
|
||||
"inputs": {
|
||||
"filename_prefix": "ComfyUI",
|
||||
"images": [
|
||||
"8",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "SaveImage"
|
||||
},
|
||||
"10": {
|
||||
"inputs": {
|
||||
"lora_name": "lcm-lora-sdv1-5.safetensors",
|
||||
"strength_model": 1,
|
||||
"strength_clip": 1,
|
||||
"model": [
|
||||
"4",
|
||||
0
|
||||
],
|
||||
"clip": [
|
||||
"4",
|
||||
1
|
||||
]
|
||||
},
|
||||
"class_type": "LoraLoader"
|
||||
},
|
||||
"14": {
|
||||
"inputs": {
|
||||
"aspect_ratio": "1152×896 ∣ 9:7",
|
||||
"width": 512,
|
||||
"height": 512
|
||||
},
|
||||
"class_type": "AspectRatio"
|
||||
},
|
||||
"20": {
|
||||
"inputs": {
|
||||
"text_trans": "一只小狗"
|
||||
},
|
||||
"class_type": "ZhPromptTranslator"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,235 @@
|
||||
{
|
||||
"3": {
|
||||
"inputs": {
|
||||
"seed": 1092890374757226,
|
||||
"steps": 8,
|
||||
"cfg": 1,
|
||||
"sampler_name": "lcm",
|
||||
"scheduler": "normal",
|
||||
"denoise": 1,
|
||||
"model": [
|
||||
"74",
|
||||
0
|
||||
],
|
||||
"positive": [
|
||||
"73",
|
||||
0
|
||||
],
|
||||
"negative": [
|
||||
"73",
|
||||
1
|
||||
],
|
||||
"latent_image": [
|
||||
"42",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "KSampler",
|
||||
"_meta": {
|
||||
"title": "K采样器"
|
||||
}
|
||||
},
|
||||
"4": {
|
||||
"inputs": {
|
||||
"ckpt_name": "dreamshaper_8.safetensors"
|
||||
},
|
||||
"class_type": "CheckpointLoaderSimple",
|
||||
"_meta": {
|
||||
"title": "Checkpoint加载器(简易)"
|
||||
}
|
||||
},
|
||||
"6": {
|
||||
"inputs": {
|
||||
"text": [
|
||||
"75",
|
||||
0
|
||||
],
|
||||
"clip": [
|
||||
"4",
|
||||
1
|
||||
]
|
||||
},
|
||||
"class_type": "CLIPTextEncode",
|
||||
"_meta": {
|
||||
"title": "CLIP文本编码器"
|
||||
}
|
||||
},
|
||||
"7": {
|
||||
"inputs": {
|
||||
"text": "",
|
||||
"clip": [
|
||||
"4",
|
||||
1
|
||||
]
|
||||
},
|
||||
"class_type": "CLIPTextEncode",
|
||||
"_meta": {
|
||||
"title": "CLIP文本编码器"
|
||||
}
|
||||
},
|
||||
"8": {
|
||||
"inputs": {
|
||||
"samples": [
|
||||
"3",
|
||||
0
|
||||
],
|
||||
"vae": [
|
||||
"4",
|
||||
2
|
||||
]
|
||||
},
|
||||
"class_type": "VAEDecode",
|
||||
"_meta": {
|
||||
"title": "VAE解码"
|
||||
}
|
||||
},
|
||||
"9": {
|
||||
"inputs": {
|
||||
"filename_prefix": "ComfyUI",
|
||||
"images": [
|
||||
"8",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "SaveImage",
|
||||
"_meta": {
|
||||
"title": "保存图像"
|
||||
}
|
||||
},
|
||||
"16": {
|
||||
"inputs": {
|
||||
"text": "https://u.wechat.com/EEy4mPvfXdYO-MvStE4S2m0",
|
||||
"version": 2,
|
||||
"box_size": 30,
|
||||
"border": 5
|
||||
},
|
||||
"class_type": "QRCode",
|
||||
"_meta": {
|
||||
"title": "二维码生成"
|
||||
}
|
||||
},
|
||||
"35": {
|
||||
"inputs": {
|
||||
"image": [
|
||||
"16",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "GetImage_(Width&Height) _O",
|
||||
"_meta": {
|
||||
"title": "GetImage_(Width&Height) _O"
|
||||
}
|
||||
},
|
||||
"41": {
|
||||
"inputs": {
|
||||
"control_net_name": "明暗控制controlNet.safetensors"
|
||||
},
|
||||
"class_type": "ControlNetLoader",
|
||||
"_meta": {
|
||||
"title": "ControlNet加载器"
|
||||
}
|
||||
},
|
||||
"42": {
|
||||
"inputs": {
|
||||
"width": [
|
||||
"35",
|
||||
0
|
||||
],
|
||||
"height": [
|
||||
"35",
|
||||
1
|
||||
],
|
||||
"batch_size": 1
|
||||
},
|
||||
"class_type": "EmptyLatentImage",
|
||||
"_meta": {
|
||||
"title": "空Latent"
|
||||
}
|
||||
},
|
||||
"47": {
|
||||
"inputs": {
|
||||
"control_net_name": "control_v1p_sd15_qrcode_monster_v2.safetensors"
|
||||
},
|
||||
"class_type": "ControlNetLoader",
|
||||
"_meta": {
|
||||
"title": "ControlNet加载器"
|
||||
}
|
||||
},
|
||||
"72": {
|
||||
"inputs": {
|
||||
"strength": 0.3,
|
||||
"start_percent": 0,
|
||||
"end_percent": 1,
|
||||
"positive": [
|
||||
"6",
|
||||
0
|
||||
],
|
||||
"negative": [
|
||||
"7",
|
||||
0
|
||||
],
|
||||
"control_net": [
|
||||
"47",
|
||||
0
|
||||
],
|
||||
"image": [
|
||||
"16",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "ControlNetApplyAdvanced",
|
||||
"_meta": {
|
||||
"title": "ControlNet应用(高级)"
|
||||
}
|
||||
},
|
||||
"73": {
|
||||
"inputs": {
|
||||
"strength": 0.3,
|
||||
"start_percent": 0.1,
|
||||
"end_percent": 0.9,
|
||||
"positive": [
|
||||
"72",
|
||||
0
|
||||
],
|
||||
"negative": [
|
||||
"72",
|
||||
1
|
||||
],
|
||||
"control_net": [
|
||||
"41",
|
||||
0
|
||||
],
|
||||
"image": [
|
||||
"16",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "ControlNetApplyAdvanced",
|
||||
"_meta": {
|
||||
"title": "ControlNet应用(高级)"
|
||||
}
|
||||
},
|
||||
"74": {
|
||||
"inputs": {
|
||||
"lora_name": "lcm-lora-sdv1-5.safetensors",
|
||||
"strength_model": 1,
|
||||
"model": [
|
||||
"4",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "LoraLoaderModelOnly",
|
||||
"_meta": {
|
||||
"title": "LoRA加载器(仅模型)"
|
||||
}
|
||||
},
|
||||
"75": {
|
||||
"inputs": {
|
||||
"text_trans": "汽车修理店,车轮"
|
||||
},
|
||||
"class_type": "ZhPromptTranslator",
|
||||
"_meta": {
|
||||
"title": "中文翻译"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
After Width: | Height: | Size: 133 KiB |
|
After Width: | Height: | Size: 139 KiB |
|
After Width: | Height: | Size: 138 KiB |
|
After Width: | Height: | Size: 138 KiB |
|
After Width: | Height: | Size: 142 KiB |
|
After Width: | Height: | Size: 143 KiB |
|
After Width: | Height: | Size: 140 KiB |
|
After Width: | Height: | Size: 144 KiB |
|
After Width: | Height: | Size: 139 KiB |
|
After Width: | Height: | Size: 146 KiB |
|
After Width: | Height: | Size: 148 KiB |
|
After Width: | Height: | Size: 152 KiB |
|
After Width: | Height: | Size: 149 KiB |
|
After Width: | Height: | Size: 144 KiB |
|
After Width: | Height: | Size: 139 KiB |
|
After Width: | Height: | Size: 141 KiB |
|
After Width: | Height: | Size: 132 KiB |
|
After Width: | Height: | Size: 131 KiB |
|
After Width: | Height: | Size: 134 KiB |
|
After Width: | Height: | Size: 131 KiB |
|
After Width: | Height: | Size: 125 KiB |
|
After Width: | Height: | Size: 140 KiB |
|
After Width: | Height: | Size: 128 KiB |
|
After Width: | Height: | Size: 126 KiB |
|
After Width: | Height: | Size: 123 KiB |
|
After Width: | Height: | Size: 134 KiB |
|
After Width: | Height: | Size: 139 KiB |
|
After Width: | Height: | Size: 67 KiB |
|
After Width: | Height: | Size: 124 KiB |
|
After Width: | Height: | Size: 135 KiB |
|
After Width: | Height: | Size: 139 KiB |
|
After Width: | Height: | Size: 29 KiB |
|
After Width: | Height: | Size: 28 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 21 KiB |
|
After Width: | Height: | Size: 29 KiB |
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 26 KiB |
|
After Width: | Height: | Size: 30 KiB |
|
After Width: | Height: | Size: 36 KiB |
|
After Width: | Height: | Size: 39 KiB |
|
After Width: | Height: | Size: 42 KiB |
|
After Width: | Height: | Size: 46 KiB |
|
After Width: | Height: | Size: 40 KiB |
|
After Width: | Height: | Size: 28 KiB |
|
After Width: | Height: | Size: 23 KiB |
|
After Width: | Height: | Size: 42 KiB |
|
After Width: | Height: | Size: 38 KiB |
|
After Width: | Height: | Size: 23 KiB |
|
After Width: | Height: | Size: 29 KiB |
|
After Width: | Height: | Size: 39 KiB |
|
After Width: | Height: | Size: 37 KiB |
|
After Width: | Height: | Size: 46 KiB |
|
After Width: | Height: | Size: 25 KiB |
|
After Width: | Height: | Size: 25 KiB |
|
After Width: | Height: | Size: 26 KiB |
|
After Width: | Height: | Size: 27 KiB |
|
After Width: | Height: | Size: 33 KiB |
|
After Width: | Height: | Size: 32 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 33 KiB |
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 25 KiB |
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 30 KiB |
|
After Width: | Height: | Size: 27 KiB |
|
After Width: | Height: | Size: 26 KiB |
|
After Width: | Height: | Size: 25 KiB |