Compare commits
15
Commits
main
...
5290fc974a
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5290fc974a | ||
|
|
ea55aaa0eb | ||
|
|
9a28b272aa | ||
|
|
7ac1bdde41 | ||
|
|
8b55a66079 | ||
|
|
30c624e5af | ||
|
|
742974a786 | ||
|
|
7a08f7eca8 | ||
|
|
9dad88f8be | ||
|
|
276066cabb | ||
|
|
1104fb54d9 | ||
|
|
4784464a5f | ||
|
|
b92fd5e782 | ||
|
|
a592c4a552 | ||
|
|
b9f85fc0df |
@@ -26,7 +26,7 @@ def queue_prompt(prompt):
|
||||
request.urlopen(req)
|
||||
|
||||
|
||||
with open('/home/szlc/code/ComfyUI/change_cloth/basic_api.json', 'r', encoding='utf-8') as file:
|
||||
with open('/home/xsl/code/ComfyUI/change_cloth/basic_api.json', 'r', encoding='utf-8') as file:
|
||||
prompt_text = file.read()
|
||||
|
||||
prompt = json.loads(prompt_text)
|
||||
|
||||
+120
-34
@@ -1,7 +1,7 @@
|
||||
import os
|
||||
import uuid
|
||||
import requests
|
||||
from flask import Flask, request, jsonify
|
||||
from flask import Flask, request, jsonify, Response
|
||||
from urllib.parse import urlparse
|
||||
import json
|
||||
import base64
|
||||
@@ -14,7 +14,10 @@ import oss2
|
||||
import redis
|
||||
# from check_img_body import is_thigh_visible
|
||||
import logging
|
||||
from config import QUEUE_NAME, DEFAULT_TIMEOUT, KEY_QUEUE_LOCK_NAME, acquire_lock
|
||||
from config import *
|
||||
import websockets
|
||||
import asyncio
|
||||
import traceback
|
||||
|
||||
|
||||
APP_ROOT = os.path.dirname(os.path.abspath(__file__))
|
||||
@@ -123,12 +126,12 @@ def GetHumanDesDesc(img_url):
|
||||
return text
|
||||
|
||||
def takeoff_cloth_first(human_name, is_girl):
|
||||
print('换泳装')
|
||||
print(f'换泳装 {change_with_add_cloth}')
|
||||
queue = requests.get("http://localhost:8188/queue").json()
|
||||
if queue["queue_running"] or queue["queue_pending"]:
|
||||
return None, "cur gpu is busy"
|
||||
|
||||
with open('/home/szlc/code/ComfyUI/change_cloth/change_new.json', 'r', encoding='utf-8') as file:
|
||||
with open(f'{APP_ROOT}/{change_with_add_cloth}', 'r', encoding='utf-8') as file:
|
||||
prompt_text = file.read()
|
||||
|
||||
prompt = json.loads(prompt_text)
|
||||
@@ -140,9 +143,10 @@ def takeoff_cloth_first(human_name, is_girl):
|
||||
|
||||
#input cloth img
|
||||
if is_girl:
|
||||
prompt["22"]["inputs"]["image"] = 'girl_cloth.jpg'
|
||||
prompt["22"]["inputs"]["image"] = 'girl_cloth_new.jpg'
|
||||
else:
|
||||
prompt["22"]["inputs"]["image"] = 'man_cloth.jpg'
|
||||
prompt["22"]["inputs"]["image"] = 'man_cloth_new.jpg'
|
||||
# prompt["22"]["inputs"]["image"] = 'man_cloth.jpg'
|
||||
|
||||
#input human img
|
||||
prompt["61"]["inputs"]["image"] = human_name
|
||||
@@ -181,12 +185,12 @@ def takeoff_cloth_first(human_name, is_girl):
|
||||
return None
|
||||
|
||||
def generate_from_face(human_name, sex_girl):
|
||||
print('生成写真')
|
||||
print(f'生成写真 {xiezhen_name}')
|
||||
queue = requests.get("http://localhost:8188/queue").json()
|
||||
if queue["queue_running"] or queue["queue_pending"]:
|
||||
return None, "cur gpu is busy"
|
||||
|
||||
with open('/home/szlc/code/ComfyUI/change_cloth/xiezhen_girl.json', 'r', encoding='utf-8') as file:
|
||||
with open(f'{APP_ROOT}/{xiezhen_name}', 'r', encoding='utf-8') as file:
|
||||
prompt_text = file.read()
|
||||
|
||||
prompt = json.loads(prompt_text)
|
||||
@@ -195,9 +199,9 @@ def generate_from_face(human_name, sex_girl):
|
||||
prompt["93"]["inputs"]["image"] = human_name
|
||||
|
||||
if sex_girl:
|
||||
prompt["6"]["inputs"]["text"] = "asian girl,full body shot(1.9),complete figure,front-facing,model pose,hands are at the sides of the body,smile,wearing black tube top and micro skirt,simple ,white background,32k,high detail,and face is illuminated by soft side light and natural light. The sunlight spills over the white wall behind."
|
||||
prompt["6"]["inputs"]["text"] = "asian girl,full body shot(1.9), 8-head tall, complete figure,front-facing,model pose,hands are at the sides of the body,smile,wearing black tube top and micro skirt,simple ,white background,32k,high detail,and face is illuminated by soft side light and natural light. The sunlight spills over the white wall behind."
|
||||
else:
|
||||
prompt["6"]["inputs"]["text"] = "asian man,full body shot(1.9),complete figure,front-facing,model pose,hands are at the sides of the body,smile,wearing black tight shortst,simple white background,32k,high detail,and face is illuminated by soft side light and natural light. The sunlight spills over the white wall behind."
|
||||
prompt["6"]["inputs"]["text"] = "asian man,full body shot(1.9), 8-head tall, complete figure,front-facing,model pose,hands are at the sides of the body,smile,wearing black tight shortst,simple white background,32k,high detail,and face is illuminated by soft side light and natural light. The sunlight spills over the white wall behind."
|
||||
|
||||
#out put name
|
||||
out_img_name = str(uuid.uuid4())[:8]
|
||||
@@ -256,16 +260,16 @@ def change(human_name, cloth_name, c_width, c_height, cloth_url, human_url, no2)
|
||||
print(f'不用第二部 no2{no2}')
|
||||
else:
|
||||
print(f'要第二部 no2{no2} 先搞第一步')
|
||||
# thigh_visible = is_thigh_visible(f"/home/szlc/code/ComfyUI/input/{human_name}")
|
||||
if sgwzd >= 0.5:
|
||||
if sgwzd >= 0.55:
|
||||
#脱衣服
|
||||
takeoff_file_name = takeoff_cloth_first(human_name, sex_girl)
|
||||
print(f"takeoff_file_name:{takeoff_file_name} human_name:{human_name} sex_girl:{sex_girl}")
|
||||
if takeoff_file_name == None:
|
||||
return None, None, sex_girl, f"takeoff_cloth_first error {human_name}"
|
||||
else:
|
||||
human_name = takeoff_file_name
|
||||
takeoff_file_path_name = os.path.join('/home/szlc/code/ComfyUI/output', takeoff_file_name)
|
||||
takeoff_file_path_name_input = os.path.join('/home/szlc/code/ComfyUI/input', takeoff_file_name)
|
||||
takeoff_file_path_name = os.path.join(f'{APP_ROOT}/../output', takeoff_file_name)
|
||||
takeoff_file_path_name_input = os.path.join(f'{APP_ROOT}/../input', takeoff_file_name)
|
||||
shutil.copy(takeoff_file_path_name, takeoff_file_path_name_input)
|
||||
else:
|
||||
#生成写真
|
||||
@@ -274,16 +278,16 @@ def change(human_name, cloth_name, c_width, c_height, cloth_url, human_url, no2)
|
||||
return None, None, sex_girl, f"xiezhen error {human_name}"
|
||||
else:
|
||||
human_name = generate_name
|
||||
generate_name_file_path_name = os.path.join('/home/szlc/code/ComfyUI/output', generate_name)
|
||||
generate_name_file_path_name_input = os.path.join('/home/szlc/code/ComfyUI/input', generate_name)
|
||||
generate_name_file_path_name = os.path.join(f'{APP_ROOT}/../output', generate_name)
|
||||
generate_name_file_path_name_input = os.path.join(f'{APP_ROOT}/../input', generate_name)
|
||||
shutil.copy(generate_name_file_path_name, generate_name_file_path_name_input)
|
||||
|
||||
queue = requests.get("http://localhost:8188/queue").json()
|
||||
if queue["queue_running"] or queue["queue_pending"]:
|
||||
return None, None, sex_girl, "cur gpu is busy, Shou not happen"
|
||||
|
||||
print('开始换衣服')
|
||||
with open('/home/szlc/code/ComfyUI/change_cloth/change_new.json', 'r', encoding='utf-8') as file:
|
||||
print(f'开始换衣服 {change_only_name}')
|
||||
with open(f'{APP_ROOT}/{change_only_name}', 'r', encoding='utf-8') as file:
|
||||
prompt_text = file.read()
|
||||
|
||||
prompt = json.loads(prompt_text)
|
||||
@@ -311,8 +315,75 @@ def change(human_name, cloth_name, c_width, c_height, cloth_url, human_url, no2)
|
||||
prompt_id = response.json()["prompt_id"]
|
||||
|
||||
|
||||
# 2. 轮询队列,直到任务完成
|
||||
async def listen_node_output(prompt_id, target_node_id):
|
||||
uri = "ws://localhost:8188/ws"
|
||||
async with websockets.connect(uri) as websocket:
|
||||
await websocket.send(json.dumps({"prompt_id": prompt_id}))
|
||||
|
||||
while True:
|
||||
message = await websocket.recv()
|
||||
|
||||
# 1. 处理二进制数据
|
||||
if isinstance(message, bytes):
|
||||
try:
|
||||
message = message.decode("utf-8")
|
||||
except UnicodeDecodeError:
|
||||
print(f"[{datetime.now().strftime('%H:%M:%S')}] 收到二进制数据 (长度: {len(message)} bytes)")
|
||||
continue
|
||||
|
||||
# 2. 解析JSON
|
||||
try:
|
||||
data = json.loads(message)
|
||||
print(f"cur data {data}")
|
||||
except json.JSONDecodeError:
|
||||
print(f"[{datetime.now().strftime('%H:%M:%S')}] 非JSON数据: {message[:100]}...")
|
||||
continue
|
||||
|
||||
if data.get("type") == "progress":
|
||||
pdata = data.get('data', {})
|
||||
print(f"cur progress {pdata}")
|
||||
# if value >= max:
|
||||
# return f"finished value:{value} max:{max}"
|
||||
|
||||
if data.get("type") == "progress_state":
|
||||
nodes = data.get('data', {}).get('nodes', {})
|
||||
for node in nodes:
|
||||
if node.get("state", None) != 'finished':
|
||||
print(f"progress_state node:{node}")
|
||||
|
||||
# 3. 输出运行状态
|
||||
if data.get("type") == "status":
|
||||
print(f"[{datetime.now().strftime('%H:%M:%S')}] 系统状态: {data.get('data', {}).get('status', {})}")
|
||||
status = data.get('data', {}).get('status', None)
|
||||
print(f"statue:{status}")
|
||||
if status:
|
||||
exec_info = status.get('exec_info', None)
|
||||
print(f"exec_info:{exec_info}")
|
||||
if exec_info:
|
||||
queue_remaining = exec_info.get('queue_remaining', None)
|
||||
print(f"queue_remaining:{queue_remaining}")
|
||||
if queue_remaining == 0:
|
||||
return "process end"
|
||||
continue
|
||||
|
||||
if data.get("type") == "executing":
|
||||
node_id = data.get("data", {}).get("node")
|
||||
progress = data.get("data", {}).get("progress", 0)
|
||||
print(f"[{datetime.now().strftime('%H:%M:%S')}] 正在执行节点 {node_id} (进度: {progress:.0%})")
|
||||
|
||||
# 4. 目标节点完成
|
||||
if data.get("type") == "executed" and data.get("data", {}).get("node") == target_node_id:
|
||||
output = data.get("data", {}).get("output")
|
||||
print(f"[{datetime.now().strftime('%H:%M:%S')}] 节点 {target_node_id} 完成!")
|
||||
return output
|
||||
|
||||
|
||||
|
||||
# output = asyncio.run(listen_node_output(prompt_id, "104"))
|
||||
# print("最终输出:", output)
|
||||
|
||||
while True:
|
||||
# response = requests.post("http://localhost:8188/interrupt")
|
||||
queue = requests.get("http://localhost:8188/queue").json()
|
||||
# print(queue)
|
||||
if not queue["queue_running"] and not queue["queue_pending"]:
|
||||
@@ -360,13 +431,13 @@ def save_base64_image(base64_str, prefix):
|
||||
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
|
||||
unique_id = str(uuid.uuid4())[:8]
|
||||
filename = f"{prefix}_{timestamp}_{unique_id}{file_ext}"
|
||||
filepath = os.path.join('/home/szlc/code/ComfyUI/change_cloth/static/imgs', filename)
|
||||
filepath = os.path.join(f'{APP_ROOT}/static/imgs', filename)
|
||||
|
||||
# 解码并保存图片
|
||||
with open(filepath, 'wb') as f:
|
||||
f.write(base64.b64decode(data))
|
||||
|
||||
input_filepath = os.path.join('/home/szlc/code/ComfyUI/input', filename)
|
||||
input_filepath = os.path.join(f'{APP_ROOT}/../input', filename)
|
||||
# 解码并保存图片
|
||||
with open(input_filepath, 'wb') as f:
|
||||
f.write(base64.b64decode(data))
|
||||
@@ -439,7 +510,7 @@ def upload_to_oss(image_path, object_name=None):
|
||||
|
||||
|
||||
def process_change_cloth(human_filename, cloth_filename, output_format, img_url, human_url, no2):
|
||||
w,h = get_image_dimensions(f'/home/szlc/code/ComfyUI/input/{human_filename}')
|
||||
w,h = get_image_dimensions(f'{APP_ROOT}/../input/{human_filename}')
|
||||
|
||||
out_put_name, out_human_name, is_girl, msg = change(human_filename, cloth_filename, w, h, img_url, human_url, no2)
|
||||
if out_put_name == None:
|
||||
@@ -449,19 +520,19 @@ def process_change_cloth(human_filename, cloth_filename, output_format, img_url,
|
||||
if no2:
|
||||
out_human_https_url = human_url
|
||||
else:
|
||||
out_human_image = Image.open(f'/home/szlc/code/ComfyUI/output/{out_human_name}')
|
||||
out_human_image = Image.open(f'{APP_ROOT}/../output/{out_human_name}')
|
||||
out_human_jpg_name = out_human_name.replace(".png", ".jpg")
|
||||
out_human_jpg_path_name = f'/home/szlc/code/ComfyUI/change_cloth/static/imgs/{out_human_jpg_name}'
|
||||
out_human_image.save(out_human_jpg_path_name, quality=95)
|
||||
out_human_jpg_path_name = f'{APP_ROOT}/static/imgs/{out_human_jpg_name}'
|
||||
out_human_image.save(out_human_jpg_path_name, quality=90)
|
||||
upload_to_oss(out_human_jpg_path_name, out_human_jpg_name) # 第二个参数可选,指定OSS上的路径
|
||||
out_human_https_url = f'https://llyz.oss-cn-beijing.aliyuncs.com/{out_human_jpg_name}'
|
||||
print(f"生成的第一步图片 HTTPS URL: {out_human_https_url}")
|
||||
|
||||
|
||||
image = Image.open(f'/home/szlc/code/ComfyUI/output/{out_put_name}')
|
||||
image = Image.open(f'{APP_ROOT}/../output/{out_put_name}')
|
||||
jpg_name = out_put_name.replace(".png", ".jpg")
|
||||
jpg_path_name = f'/home/szlc/code/ComfyUI/change_cloth/static/imgs/{jpg_name}'
|
||||
image.save(jpg_path_name, quality=95)
|
||||
jpg_path_name = f'{APP_ROOT}/static/imgs/{jpg_name}'
|
||||
image.save(jpg_path_name, quality=90)
|
||||
|
||||
|
||||
upload_to_oss(jpg_path_name, jpg_name) # 第二个参数可选,指定OSS上的路径
|
||||
@@ -510,13 +581,13 @@ def save_image_from_url(image_url):
|
||||
# 获取原始图片格式
|
||||
ext = get_file_extension(image_url)
|
||||
filename = f"{uuid.uuid4()}{ext}"
|
||||
filepath = os.path.join('/home/szlc/code/ComfyUI/change_cloth/static/imgs', filename)
|
||||
filepath = os.path.join(f'{APP_ROOT}/static/imgs', filename)
|
||||
|
||||
with open(filepath, "wb") as f:
|
||||
for chunk in response.iter_content(1024):
|
||||
f.write(chunk)
|
||||
|
||||
input_filepath = os.path.join('/home/szlc/code/ComfyUI/input', filename)
|
||||
input_filepath = os.path.join(f'{APP_ROOT}/../input', filename)
|
||||
shutil.copy(filepath, input_filepath)
|
||||
|
||||
return filename
|
||||
@@ -556,7 +627,9 @@ def do_change_cloth():
|
||||
|
||||
try:
|
||||
return process_change_cloth(human_filename, cloth_filename, output_format, cloth_url, human_url, no2)
|
||||
except:
|
||||
except Exception as e:
|
||||
traceback.print_exc()
|
||||
print(f"错误详情:{e}")
|
||||
return jsonify({
|
||||
"ret":-1,
|
||||
"state": -1,
|
||||
@@ -655,7 +728,7 @@ def change_cloth_base64():
|
||||
return jsonify({"ret":-1, 'msg': 'Failed to save human image'}), 500
|
||||
data['human_img'] = None
|
||||
|
||||
human_url = f"http://112.126.94.241:18888/static/imgs/{human_filename}"
|
||||
human_url = f"http://112.126.94.241:{base64_test_port}/static/imgs/{human_filename}"
|
||||
|
||||
# 保存服装图片
|
||||
cloth_filename = save_base64_image(cloth_img, 'cloth')
|
||||
@@ -663,7 +736,7 @@ def change_cloth_base64():
|
||||
return jsonify({"ret":-1, 'msg': 'Failed to save cloth image'}), 500
|
||||
data['cloth_img'] = None
|
||||
|
||||
cloth_url = f"http://112.126.94.241:18888/static/imgs/{cloth_filename}"
|
||||
cloth_url = f"http://112.126.94.241:{base64_test_port}/static/imgs/{cloth_filename}"
|
||||
|
||||
data["human_url"] = human_url
|
||||
data["cloth_url"] = cloth_url
|
||||
@@ -672,7 +745,20 @@ def change_cloth_base64():
|
||||
if not no2:
|
||||
data['no2'] = False
|
||||
|
||||
return queueCall(data)
|
||||
# 在内部调用第二个HTTP请求
|
||||
try:
|
||||
# 调用第二个API(可以是外部服务或自己的另一个端点)
|
||||
response = requests.post(f'http://112.126.94.241:{base64_test_port}/do_change_cloth', json=data)
|
||||
|
||||
return Response(
|
||||
response=response.content,
|
||||
status=response.status_code,
|
||||
headers=dict(response.headers)
|
||||
)
|
||||
except requests.exceptions.RequestException as e:
|
||||
data['second_api_error'] = str(e)
|
||||
|
||||
return jsonify("error"), 500
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
+16
-16
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"3": {
|
||||
"inputs": {
|
||||
"seed": 154943414582783,
|
||||
"seed": 940724765309123,
|
||||
"steps": 20,
|
||||
"cfg": 1,
|
||||
"sampler_name": "euler",
|
||||
@@ -73,7 +73,7 @@
|
||||
},
|
||||
"10": {
|
||||
"inputs": {
|
||||
"strength": 1,
|
||||
"strength": 1.0000000000000002,
|
||||
"strength_type": "multiply",
|
||||
"conditioning": [
|
||||
"11",
|
||||
@@ -196,7 +196,7 @@
|
||||
},
|
||||
"22": {
|
||||
"inputs": {
|
||||
"image": "cloth_20250715_232138_50414b8f.jpg"
|
||||
"image": "0b0a7d75-3241-49b5-be98-5dc87838322c.jpg"
|
||||
},
|
||||
"class_type": "LoadImage",
|
||||
"_meta": {
|
||||
@@ -254,7 +254,7 @@
|
||||
"27": {
|
||||
"inputs": {
|
||||
"context_expand_pixels": 20,
|
||||
"context_expand_factor": 1,
|
||||
"context_expand_factor": 1.0000000000000002,
|
||||
"fill_mask_holes": true,
|
||||
"blur_mask_pixels": 10,
|
||||
"invert_mask": false,
|
||||
@@ -263,7 +263,7 @@
|
||||
"mode": "ranged size",
|
||||
"force_width": 1024,
|
||||
"force_height": 1024,
|
||||
"rescale_factor": 1,
|
||||
"rescale_factor": 1.0000000000000002,
|
||||
"min_width": 512,
|
||||
"min_height": 512,
|
||||
"max_width": 1800,
|
||||
@@ -467,9 +467,9 @@
|
||||
"59": {
|
||||
"inputs": {
|
||||
"brightness": -1,
|
||||
"contrast": 1,
|
||||
"saturation": 1,
|
||||
"sharpness": 1,
|
||||
"contrast": 1.0000000000000002,
|
||||
"saturation": 1.0000000000000002,
|
||||
"sharpness": 1.0000000000000002,
|
||||
"blur": 0,
|
||||
"gaussian_blur": 48.1,
|
||||
"edge_enhance": 0,
|
||||
@@ -486,7 +486,7 @@
|
||||
},
|
||||
"61": {
|
||||
"inputs": {
|
||||
"image": "75857233_00001_.png"
|
||||
"image": "c599a298-2992-487d-95f0-be5e6c08e8c8.png"
|
||||
},
|
||||
"class_type": "LoadImage",
|
||||
"_meta": {
|
||||
@@ -495,7 +495,7 @@
|
||||
},
|
||||
"75": {
|
||||
"inputs": {
|
||||
"model_path": "svdq-int4-flux.1-fill-dev",
|
||||
"model_path": "svdq-fp4_r32-flux.1-fill-dev.safetensors",
|
||||
"cache_threshold": 0,
|
||||
"attention": "nunchaku-fp16",
|
||||
"cpu_offload": "auto",
|
||||
@@ -639,7 +639,7 @@
|
||||
},
|
||||
"94": {
|
||||
"inputs": {
|
||||
"value": 1024
|
||||
"value": 2048
|
||||
},
|
||||
"class_type": "PrimitiveInt",
|
||||
"_meta": {
|
||||
@@ -668,7 +668,7 @@
|
||||
"96": {
|
||||
"inputs": {
|
||||
"cloth_len": "小腿",
|
||||
"line_len": 0.6000000000000001,
|
||||
"line_len": 0.4,
|
||||
"cloth_short": true,
|
||||
"kps": [
|
||||
"95",
|
||||
@@ -819,7 +819,7 @@
|
||||
},
|
||||
"110": {
|
||||
"inputs": {
|
||||
"preview": "1180672",
|
||||
"preview": "855040",
|
||||
"source": [
|
||||
"106",
|
||||
0
|
||||
@@ -832,7 +832,7 @@
|
||||
},
|
||||
"111": {
|
||||
"inputs": {
|
||||
"preview": "768",
|
||||
"preview": "522",
|
||||
"source": [
|
||||
"108",
|
||||
0
|
||||
@@ -858,7 +858,7 @@
|
||||
},
|
||||
"113": {
|
||||
"inputs": {
|
||||
"preview": "1793",
|
||||
"preview": "1547",
|
||||
"source": [
|
||||
"107",
|
||||
0
|
||||
@@ -975,7 +975,7 @@
|
||||
"71:2": {
|
||||
"inputs": {
|
||||
"prompt": "cloth",
|
||||
"threshold": 0.3,
|
||||
"threshold": 0.30000000000000004,
|
||||
"sam_model": [
|
||||
"71:0",
|
||||
0
|
||||
|
||||
Executable
+961
@@ -0,0 +1,961 @@
|
||||
{
|
||||
"3": {
|
||||
"inputs": {
|
||||
"seed": 133974548609577,
|
||||
"steps": 20,
|
||||
"cfg": 1,
|
||||
"sampler_name": "euler",
|
||||
"scheduler": "simple",
|
||||
"denoise": 1,
|
||||
"model": [
|
||||
"13",
|
||||
0
|
||||
],
|
||||
"positive": [
|
||||
"17",
|
||||
0
|
||||
],
|
||||
"negative": [
|
||||
"17",
|
||||
1
|
||||
],
|
||||
"latent_image": [
|
||||
"17",
|
||||
2
|
||||
]
|
||||
},
|
||||
"class_type": "KSampler",
|
||||
"_meta": {
|
||||
"title": "KSampler"
|
||||
}
|
||||
},
|
||||
"6": {
|
||||
"inputs": {
|
||||
"text": "",
|
||||
"clip": [
|
||||
"12",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "CLIPTextEncode",
|
||||
"_meta": {
|
||||
"title": "CLIP Text Encode (Prompt)"
|
||||
}
|
||||
},
|
||||
"7": {
|
||||
"inputs": {
|
||||
"text": "",
|
||||
"clip": [
|
||||
"12",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "CLIPTextEncode",
|
||||
"_meta": {
|
||||
"title": "CLIP Text Encode (Prompt)"
|
||||
}
|
||||
},
|
||||
"8": {
|
||||
"inputs": {
|
||||
"samples": [
|
||||
"3",
|
||||
0
|
||||
],
|
||||
"vae": [
|
||||
"16",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "VAEDecode",
|
||||
"_meta": {
|
||||
"title": "VAE Decode"
|
||||
}
|
||||
},
|
||||
"10": {
|
||||
"inputs": {
|
||||
"strength": 1.0000000000000002,
|
||||
"strength_type": "multiply",
|
||||
"conditioning": [
|
||||
"11",
|
||||
0
|
||||
],
|
||||
"style_model": [
|
||||
"79",
|
||||
0
|
||||
],
|
||||
"clip_vision_output": [
|
||||
"20",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "StyleModelApply",
|
||||
"_meta": {
|
||||
"title": "Apply Style Model"
|
||||
}
|
||||
},
|
||||
"11": {
|
||||
"inputs": {
|
||||
"guidance": 30,
|
||||
"conditioning": [
|
||||
"6",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "FluxGuidance",
|
||||
"_meta": {
|
||||
"title": "FluxGuidance"
|
||||
}
|
||||
},
|
||||
"12": {
|
||||
"inputs": {
|
||||
"clip_name1": "flux/t5xxl_fp16.safetensors",
|
||||
"clip_name2": "clip_l.safetensors",
|
||||
"type": "flux",
|
||||
"device": "default"
|
||||
},
|
||||
"class_type": "DualCLIPLoader",
|
||||
"_meta": {
|
||||
"title": "DualCLIPLoader"
|
||||
}
|
||||
},
|
||||
"13": {
|
||||
"inputs": {
|
||||
"model": [
|
||||
"75",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "DifferentialDiffusion",
|
||||
"_meta": {
|
||||
"title": "Differential Diffusion"
|
||||
}
|
||||
},
|
||||
"16": {
|
||||
"inputs": {
|
||||
"vae_name": "ae.safetensors"
|
||||
},
|
||||
"class_type": "VAELoader",
|
||||
"_meta": {
|
||||
"title": "Load VAE"
|
||||
}
|
||||
},
|
||||
"17": {
|
||||
"inputs": {
|
||||
"noise_mask": false,
|
||||
"positive": [
|
||||
"10",
|
||||
0
|
||||
],
|
||||
"negative": [
|
||||
"7",
|
||||
0
|
||||
],
|
||||
"vae": [
|
||||
"16",
|
||||
0
|
||||
],
|
||||
"pixels": [
|
||||
"27",
|
||||
1
|
||||
],
|
||||
"mask": [
|
||||
"27",
|
||||
2
|
||||
]
|
||||
},
|
||||
"class_type": "InpaintModelConditioning",
|
||||
"_meta": {
|
||||
"title": "InpaintModelConditioning"
|
||||
}
|
||||
},
|
||||
"20": {
|
||||
"inputs": {
|
||||
"crop": "center",
|
||||
"clip_vision": [
|
||||
"21",
|
||||
0
|
||||
],
|
||||
"image": [
|
||||
"25",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "CLIPVisionEncode",
|
||||
"_meta": {
|
||||
"title": "CLIP Vision Encode"
|
||||
}
|
||||
},
|
||||
"21": {
|
||||
"inputs": {
|
||||
"clip_name": "sigclip_vision_patch14_384.safetensors"
|
||||
},
|
||||
"class_type": "CLIPVisionLoader",
|
||||
"_meta": {
|
||||
"title": "Load CLIP Vision"
|
||||
}
|
||||
},
|
||||
"22": {
|
||||
"inputs": {
|
||||
"image": "man_cloth.jpg"
|
||||
},
|
||||
"class_type": "LoadImage",
|
||||
"_meta": {
|
||||
"title": "Load Image"
|
||||
}
|
||||
},
|
||||
"25": {
|
||||
"inputs": {
|
||||
"width": [
|
||||
"94",
|
||||
0
|
||||
],
|
||||
"height": [
|
||||
"94",
|
||||
0
|
||||
],
|
||||
"interpolation": "nearest",
|
||||
"method": "keep proportion",
|
||||
"condition": "always",
|
||||
"multiple_of": 0,
|
||||
"image": [
|
||||
"22",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "ImageResize+",
|
||||
"_meta": {
|
||||
"title": "🔧 Image Resize"
|
||||
}
|
||||
},
|
||||
"26": {
|
||||
"inputs": {
|
||||
"width": [
|
||||
"94",
|
||||
0
|
||||
],
|
||||
"height": [
|
||||
"94",
|
||||
0
|
||||
],
|
||||
"interpolation": "nearest",
|
||||
"method": "keep proportion",
|
||||
"condition": "always",
|
||||
"multiple_of": 0,
|
||||
"image": [
|
||||
"61",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "ImageResize+",
|
||||
"_meta": {
|
||||
"title": "🔧 Image Resize"
|
||||
}
|
||||
},
|
||||
"27": {
|
||||
"inputs": {
|
||||
"context_expand_pixels": 20,
|
||||
"context_expand_factor": 1.0000000000000002,
|
||||
"fill_mask_holes": true,
|
||||
"blur_mask_pixels": 10,
|
||||
"invert_mask": false,
|
||||
"blend_pixels": 16,
|
||||
"rescale_algorithm": "bicubic",
|
||||
"mode": "ranged size",
|
||||
"force_width": 1024,
|
||||
"force_height": 1024,
|
||||
"rescale_factor": 1.0000000000000002,
|
||||
"min_width": 512,
|
||||
"min_height": 512,
|
||||
"max_width": 1800,
|
||||
"max_height": 1800,
|
||||
"padding": 32,
|
||||
"image": [
|
||||
"42",
|
||||
0
|
||||
],
|
||||
"mask": [
|
||||
"30",
|
||||
0
|
||||
],
|
||||
"optional_context_mask": [
|
||||
"40",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "InpaintCrop",
|
||||
"_meta": {
|
||||
"title": "(OLD 💀, use the new ✂️ Inpaint Crop node)"
|
||||
}
|
||||
},
|
||||
"28": {
|
||||
"inputs": {
|
||||
"mask": [
|
||||
"127",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "MaskToImage",
|
||||
"_meta": {
|
||||
"title": "Convert Mask to Image"
|
||||
}
|
||||
},
|
||||
"29": {
|
||||
"inputs": {
|
||||
"width": [
|
||||
"94",
|
||||
0
|
||||
],
|
||||
"height": [
|
||||
"94",
|
||||
0
|
||||
],
|
||||
"interpolation": "nearest",
|
||||
"method": "keep proportion",
|
||||
"condition": "always",
|
||||
"multiple_of": 0,
|
||||
"image": [
|
||||
"28",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "ImageResize+",
|
||||
"_meta": {
|
||||
"title": "🔧 Image Resize"
|
||||
}
|
||||
},
|
||||
"30": {
|
||||
"inputs": {
|
||||
"channel": "red",
|
||||
"image": [
|
||||
"43",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "ImageToMask",
|
||||
"_meta": {
|
||||
"title": "Convert Image to Mask"
|
||||
}
|
||||
},
|
||||
"34": {
|
||||
"inputs": {
|
||||
"rescale_algorithm": "bislerp",
|
||||
"stitch": [
|
||||
"27",
|
||||
0
|
||||
],
|
||||
"inpainted_image": [
|
||||
"8",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "InpaintStitch",
|
||||
"_meta": {
|
||||
"title": "(OLD 💀, use the new ✂️ Inpaint Stitch node)"
|
||||
}
|
||||
},
|
||||
"37": {
|
||||
"inputs": {
|
||||
"direction": "right",
|
||||
"match_image_size": true,
|
||||
"image1": [
|
||||
"38",
|
||||
0
|
||||
],
|
||||
"image2": [
|
||||
"57",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "ImageConcanate",
|
||||
"_meta": {
|
||||
"title": "Image Concatenate"
|
||||
}
|
||||
},
|
||||
"38": {
|
||||
"inputs": {
|
||||
"mask": [
|
||||
"71:2",
|
||||
1
|
||||
]
|
||||
},
|
||||
"class_type": "MaskToImage",
|
||||
"_meta": {
|
||||
"title": "Convert Mask to Image"
|
||||
}
|
||||
},
|
||||
"40": {
|
||||
"inputs": {
|
||||
"channel": "red",
|
||||
"image": [
|
||||
"37",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "ImageToMask",
|
||||
"_meta": {
|
||||
"title": "Convert Image to Mask"
|
||||
}
|
||||
},
|
||||
"42": {
|
||||
"inputs": {
|
||||
"direction": "right",
|
||||
"match_image_size": true,
|
||||
"image1": [
|
||||
"25",
|
||||
0
|
||||
],
|
||||
"image2": [
|
||||
"26",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "ImageConcanate",
|
||||
"_meta": {
|
||||
"title": "Image Concatenate"
|
||||
}
|
||||
},
|
||||
"43": {
|
||||
"inputs": {
|
||||
"direction": "right",
|
||||
"match_image_size": true,
|
||||
"image1": [
|
||||
"59",
|
||||
0
|
||||
],
|
||||
"image2": [
|
||||
"29",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "ImageConcanate",
|
||||
"_meta": {
|
||||
"title": "Image Concatenate"
|
||||
}
|
||||
},
|
||||
"45": {
|
||||
"inputs": {
|
||||
"images": [
|
||||
"42",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "PreviewImage",
|
||||
"_meta": {
|
||||
"title": "Preview Image"
|
||||
}
|
||||
},
|
||||
"57": {
|
||||
"inputs": {
|
||||
"brightness": -1,
|
||||
"contrast": 0,
|
||||
"saturation": 0,
|
||||
"sharpness": 0,
|
||||
"blur": 0,
|
||||
"gaussian_blur": 0,
|
||||
"edge_enhance": 0,
|
||||
"detail_enhance": "false",
|
||||
"image": [
|
||||
"26",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "Image Filter Adjustments",
|
||||
"_meta": {
|
||||
"title": "Image Filter Adjustments"
|
||||
}
|
||||
},
|
||||
"59": {
|
||||
"inputs": {
|
||||
"brightness": -1,
|
||||
"contrast": 1.0000000000000002,
|
||||
"saturation": 1.0000000000000002,
|
||||
"sharpness": 1.0000000000000002,
|
||||
"blur": 0,
|
||||
"gaussian_blur": 48.1,
|
||||
"edge_enhance": 0,
|
||||
"detail_enhance": "false",
|
||||
"image": [
|
||||
"25",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "Image Filter Adjustments",
|
||||
"_meta": {
|
||||
"title": "Image Filter Adjustments"
|
||||
}
|
||||
},
|
||||
"61": {
|
||||
"inputs": {
|
||||
"image": "微信图片_20250808213937_73.png"
|
||||
},
|
||||
"class_type": "LoadImage",
|
||||
"_meta": {
|
||||
"title": "Load Image"
|
||||
}
|
||||
},
|
||||
"75": {
|
||||
"inputs": {
|
||||
"model_path": "svdq-int4-flux.1-fill-dev",
|
||||
"cache_threshold": 0,
|
||||
"attention": "nunchaku-fp16",
|
||||
"cpu_offload": "auto",
|
||||
"device_id": 0,
|
||||
"data_type": "bfloat16",
|
||||
"i2f_mode": "enabled"
|
||||
},
|
||||
"class_type": "NunchakuFluxDiTLoader",
|
||||
"_meta": {
|
||||
"title": "Nunchaku FLUX DiT Loader"
|
||||
}
|
||||
},
|
||||
"79": {
|
||||
"inputs": {
|
||||
"style_model_name": "flux1-redux-dev.safetensors"
|
||||
},
|
||||
"class_type": "StyleModelLoader",
|
||||
"_meta": {
|
||||
"title": "Load Style Model"
|
||||
}
|
||||
},
|
||||
"83": {
|
||||
"inputs": {
|
||||
"images": [
|
||||
"29",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "PreviewImage",
|
||||
"_meta": {
|
||||
"title": "Preview Image"
|
||||
}
|
||||
},
|
||||
"84": {
|
||||
"inputs": {
|
||||
"images": [
|
||||
"43",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "PreviewImage",
|
||||
"_meta": {
|
||||
"title": "Preview Image"
|
||||
}
|
||||
},
|
||||
"85": {
|
||||
"inputs": {
|
||||
"mask": [
|
||||
"30",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "MaskPreview",
|
||||
"_meta": {
|
||||
"title": "MaskPreview"
|
||||
}
|
||||
},
|
||||
"86": {
|
||||
"inputs": {
|
||||
"mask": [
|
||||
"71:2",
|
||||
1
|
||||
]
|
||||
},
|
||||
"class_type": "MaskPreview+",
|
||||
"_meta": {
|
||||
"title": "🔧 Mask Preview"
|
||||
}
|
||||
},
|
||||
"87": {
|
||||
"inputs": {
|
||||
"images": [
|
||||
"38",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "PreviewImage",
|
||||
"_meta": {
|
||||
"title": "Preview Image"
|
||||
}
|
||||
},
|
||||
"88": {
|
||||
"inputs": {
|
||||
"images": [
|
||||
"37",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "PreviewImage",
|
||||
"_meta": {
|
||||
"title": "Preview Image"
|
||||
}
|
||||
},
|
||||
"89": {
|
||||
"inputs": {
|
||||
"images": [
|
||||
"57",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "PreviewImage",
|
||||
"_meta": {
|
||||
"title": "Preview Image"
|
||||
}
|
||||
},
|
||||
"90": {
|
||||
"inputs": {
|
||||
"images": [
|
||||
"59",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "PreviewImage",
|
||||
"_meta": {
|
||||
"title": "Preview Image"
|
||||
}
|
||||
},
|
||||
"91": {
|
||||
"inputs": {
|
||||
"images": [
|
||||
"27",
|
||||
1
|
||||
]
|
||||
},
|
||||
"class_type": "PreviewImage",
|
||||
"_meta": {
|
||||
"title": "Preview Image"
|
||||
}
|
||||
},
|
||||
"93": {
|
||||
"inputs": {
|
||||
"mask": [
|
||||
"27",
|
||||
2
|
||||
]
|
||||
},
|
||||
"class_type": "MaskPreview",
|
||||
"_meta": {
|
||||
"title": "MaskPreview"
|
||||
}
|
||||
},
|
||||
"94": {
|
||||
"inputs": {
|
||||
"value": 1536
|
||||
},
|
||||
"class_type": "PrimitiveInt",
|
||||
"_meta": {
|
||||
"title": "Int"
|
||||
}
|
||||
},
|
||||
"95": {
|
||||
"inputs": {
|
||||
"detect_hand": "disable",
|
||||
"detect_body": "enable",
|
||||
"detect_face": "disable",
|
||||
"resolution": 512,
|
||||
"bbox_detector": "yolo_nas_m_fp16.onnx",
|
||||
"pose_estimator": "dw-ll_ucoco_384.onnx",
|
||||
"scale_stick_for_xinsr_cn": "disable",
|
||||
"image": [
|
||||
"61",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "DWPreprocessor",
|
||||
"_meta": {
|
||||
"title": "DWPose Estimator"
|
||||
}
|
||||
},
|
||||
"96": {
|
||||
"inputs": {
|
||||
"cloth_len": "拖地",
|
||||
"line_len": 0.4000000000000001,
|
||||
"cloth_short": true,
|
||||
"kps": [
|
||||
"95",
|
||||
1
|
||||
]
|
||||
},
|
||||
"class_type": "RenderPeopleKpsMask",
|
||||
"_meta": {
|
||||
"title": "My RenderPeopleKps Mask"
|
||||
}
|
||||
},
|
||||
"98": {
|
||||
"inputs": {
|
||||
"mask": [
|
||||
"96",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "MaskPreview",
|
||||
"_meta": {
|
||||
"title": "MaskPreview"
|
||||
}
|
||||
},
|
||||
"99": {
|
||||
"inputs": {
|
||||
"width": [
|
||||
"108",
|
||||
0
|
||||
],
|
||||
"height": [
|
||||
"107",
|
||||
1
|
||||
],
|
||||
"x": [
|
||||
"109",
|
||||
0
|
||||
],
|
||||
"y": 0,
|
||||
"image": [
|
||||
"34",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "ImageCrop",
|
||||
"_meta": {
|
||||
"title": "Image Crop"
|
||||
}
|
||||
},
|
||||
"102": {
|
||||
"inputs": {
|
||||
"filename_prefix": "my_test_out",
|
||||
"images": [
|
||||
"99",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "SaveImage",
|
||||
"_meta": {
|
||||
"title": "Save Image"
|
||||
}
|
||||
},
|
||||
"104": {
|
||||
"inputs": {
|
||||
"image": [
|
||||
"61",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "GetImageSize",
|
||||
"_meta": {
|
||||
"title": "Get Image Size"
|
||||
}
|
||||
},
|
||||
"106": {
|
||||
"inputs": {
|
||||
"op": "Mul",
|
||||
"a": [
|
||||
"107",
|
||||
1
|
||||
],
|
||||
"b": [
|
||||
"104",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "CM_IntBinaryOperation",
|
||||
"_meta": {
|
||||
"title": "IntBinaryOperation"
|
||||
}
|
||||
},
|
||||
"107": {
|
||||
"inputs": {
|
||||
"image": [
|
||||
"34",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "GetImageSize",
|
||||
"_meta": {
|
||||
"title": "Get Image Size"
|
||||
}
|
||||
},
|
||||
"108": {
|
||||
"inputs": {
|
||||
"op": "Div",
|
||||
"a": [
|
||||
"106",
|
||||
0
|
||||
],
|
||||
"b": [
|
||||
"104",
|
||||
1
|
||||
]
|
||||
},
|
||||
"class_type": "CM_IntBinaryOperation",
|
||||
"_meta": {
|
||||
"title": "IntBinaryOperation"
|
||||
}
|
||||
},
|
||||
"109": {
|
||||
"inputs": {
|
||||
"op": "Sub",
|
||||
"a": [
|
||||
"107",
|
||||
0
|
||||
],
|
||||
"b": [
|
||||
"108",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "CM_IntBinaryOperation",
|
||||
"_meta": {
|
||||
"title": "IntBinaryOperation"
|
||||
}
|
||||
},
|
||||
"119": {
|
||||
"inputs": {
|
||||
"anything": [
|
||||
"10",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "easy cleanGpuUsed",
|
||||
"_meta": {
|
||||
"title": "Clean VRAM Used"
|
||||
}
|
||||
},
|
||||
"120": {
|
||||
"inputs": {
|
||||
"anything": [
|
||||
"10",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "easy clearCacheAll",
|
||||
"_meta": {
|
||||
"title": "Clear Cache All"
|
||||
}
|
||||
},
|
||||
"124": {
|
||||
"inputs": {
|
||||
"images": [
|
||||
"95",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "PreviewImage",
|
||||
"_meta": {
|
||||
"title": "Preview Image"
|
||||
}
|
||||
},
|
||||
"125": {
|
||||
"inputs": {
|
||||
"prompt": "cloth",
|
||||
"threshold": 0.30000000000000004,
|
||||
"sam_model": [
|
||||
"71:0",
|
||||
0
|
||||
],
|
||||
"grounding_dino_model": [
|
||||
"71:1",
|
||||
0
|
||||
],
|
||||
"image": [
|
||||
"61",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "GroundingDinoSAMSegment (segment anything)",
|
||||
"_meta": {
|
||||
"title": "GroundingDinoSAMSegment (segment anything)"
|
||||
}
|
||||
},
|
||||
"126": {
|
||||
"inputs": {
|
||||
"mask": [
|
||||
"125",
|
||||
1
|
||||
]
|
||||
},
|
||||
"class_type": "MaskPreview",
|
||||
"_meta": {
|
||||
"title": "MaskPreview"
|
||||
}
|
||||
},
|
||||
"127": {
|
||||
"inputs": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"operation": "add",
|
||||
"destination": [
|
||||
"96",
|
||||
0
|
||||
],
|
||||
"source": [
|
||||
"125",
|
||||
1
|
||||
]
|
||||
},
|
||||
"class_type": "MaskComposite",
|
||||
"_meta": {
|
||||
"title": "MaskComposite"
|
||||
}
|
||||
},
|
||||
"128": {
|
||||
"inputs": {
|
||||
"mask": [
|
||||
"127",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "MaskPreview",
|
||||
"_meta": {
|
||||
"title": "MaskPreview"
|
||||
}
|
||||
},
|
||||
"71:1": {
|
||||
"inputs": {
|
||||
"model_name": "GroundingDINO_SwinT_OGC (694MB)"
|
||||
},
|
||||
"class_type": "GroundingDinoModelLoader (segment anything)",
|
||||
"_meta": {
|
||||
"title": "GroundingDinoModelLoader (segment anything)"
|
||||
}
|
||||
},
|
||||
"71:0": {
|
||||
"inputs": {
|
||||
"model_name": "sam_vit_h (2.56GB)"
|
||||
},
|
||||
"class_type": "SAMModelLoader (segment anything)",
|
||||
"_meta": {
|
||||
"title": "SAMModelLoader (segment anything)"
|
||||
}
|
||||
},
|
||||
"71:2": {
|
||||
"inputs": {
|
||||
"prompt": "cloth",
|
||||
"threshold": 0.30000000000000004,
|
||||
"sam_model": [
|
||||
"71:0",
|
||||
0
|
||||
],
|
||||
"grounding_dino_model": [
|
||||
"71:1",
|
||||
0
|
||||
],
|
||||
"image": [
|
||||
"25",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "GroundingDinoSAMSegment (segment anything)",
|
||||
"_meta": {
|
||||
"title": "GroundingDinoSAMSegment (segment anything)"
|
||||
}
|
||||
},
|
||||
"71:3": {
|
||||
"inputs": {
|
||||
"images": [
|
||||
"71:2",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "PreviewImage",
|
||||
"_meta": {
|
||||
"title": "Preview Image"
|
||||
}
|
||||
}
|
||||
}
|
||||
Executable
+961
@@ -0,0 +1,961 @@
|
||||
{
|
||||
"3": {
|
||||
"inputs": {
|
||||
"seed": 627869097640777,
|
||||
"steps": 20,
|
||||
"cfg": 1,
|
||||
"sampler_name": "euler",
|
||||
"scheduler": "simple",
|
||||
"denoise": 1,
|
||||
"model": [
|
||||
"13",
|
||||
0
|
||||
],
|
||||
"positive": [
|
||||
"17",
|
||||
0
|
||||
],
|
||||
"negative": [
|
||||
"17",
|
||||
1
|
||||
],
|
||||
"latent_image": [
|
||||
"17",
|
||||
2
|
||||
]
|
||||
},
|
||||
"class_type": "KSampler",
|
||||
"_meta": {
|
||||
"title": "KSampler"
|
||||
}
|
||||
},
|
||||
"6": {
|
||||
"inputs": {
|
||||
"text": "",
|
||||
"clip": [
|
||||
"12",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "CLIPTextEncode",
|
||||
"_meta": {
|
||||
"title": "CLIP Text Encode (Prompt)"
|
||||
}
|
||||
},
|
||||
"7": {
|
||||
"inputs": {
|
||||
"text": "",
|
||||
"clip": [
|
||||
"12",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "CLIPTextEncode",
|
||||
"_meta": {
|
||||
"title": "CLIP Text Encode (Prompt)"
|
||||
}
|
||||
},
|
||||
"8": {
|
||||
"inputs": {
|
||||
"samples": [
|
||||
"3",
|
||||
0
|
||||
],
|
||||
"vae": [
|
||||
"16",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "VAEDecode",
|
||||
"_meta": {
|
||||
"title": "VAE Decode"
|
||||
}
|
||||
},
|
||||
"10": {
|
||||
"inputs": {
|
||||
"strength": 1.0000000000000002,
|
||||
"strength_type": "multiply",
|
||||
"conditioning": [
|
||||
"11",
|
||||
0
|
||||
],
|
||||
"style_model": [
|
||||
"79",
|
||||
0
|
||||
],
|
||||
"clip_vision_output": [
|
||||
"20",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "StyleModelApply",
|
||||
"_meta": {
|
||||
"title": "Apply Style Model"
|
||||
}
|
||||
},
|
||||
"11": {
|
||||
"inputs": {
|
||||
"guidance": 30,
|
||||
"conditioning": [
|
||||
"6",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "FluxGuidance",
|
||||
"_meta": {
|
||||
"title": "FluxGuidance"
|
||||
}
|
||||
},
|
||||
"12": {
|
||||
"inputs": {
|
||||
"clip_name1": "flux/t5xxl_fp16.safetensors",
|
||||
"clip_name2": "clip_l.safetensors",
|
||||
"type": "flux",
|
||||
"device": "default"
|
||||
},
|
||||
"class_type": "DualCLIPLoader",
|
||||
"_meta": {
|
||||
"title": "DualCLIPLoader"
|
||||
}
|
||||
},
|
||||
"13": {
|
||||
"inputs": {
|
||||
"model": [
|
||||
"75",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "DifferentialDiffusion",
|
||||
"_meta": {
|
||||
"title": "Differential Diffusion"
|
||||
}
|
||||
},
|
||||
"16": {
|
||||
"inputs": {
|
||||
"vae_name": "ae.safetensors"
|
||||
},
|
||||
"class_type": "VAELoader",
|
||||
"_meta": {
|
||||
"title": "Load VAE"
|
||||
}
|
||||
},
|
||||
"17": {
|
||||
"inputs": {
|
||||
"noise_mask": false,
|
||||
"positive": [
|
||||
"10",
|
||||
0
|
||||
],
|
||||
"negative": [
|
||||
"7",
|
||||
0
|
||||
],
|
||||
"vae": [
|
||||
"16",
|
||||
0
|
||||
],
|
||||
"pixels": [
|
||||
"27",
|
||||
1
|
||||
],
|
||||
"mask": [
|
||||
"27",
|
||||
2
|
||||
]
|
||||
},
|
||||
"class_type": "InpaintModelConditioning",
|
||||
"_meta": {
|
||||
"title": "InpaintModelConditioning"
|
||||
}
|
||||
},
|
||||
"20": {
|
||||
"inputs": {
|
||||
"crop": "center",
|
||||
"clip_vision": [
|
||||
"21",
|
||||
0
|
||||
],
|
||||
"image": [
|
||||
"25",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "CLIPVisionEncode",
|
||||
"_meta": {
|
||||
"title": "CLIP Vision Encode"
|
||||
}
|
||||
},
|
||||
"21": {
|
||||
"inputs": {
|
||||
"clip_name": "sigclip_vision_patch14_384.safetensors"
|
||||
},
|
||||
"class_type": "CLIPVisionLoader",
|
||||
"_meta": {
|
||||
"title": "Load CLIP Vision"
|
||||
}
|
||||
},
|
||||
"22": {
|
||||
"inputs": {
|
||||
"image": "man_cloth.jpg"
|
||||
},
|
||||
"class_type": "LoadImage",
|
||||
"_meta": {
|
||||
"title": "Load Image"
|
||||
}
|
||||
},
|
||||
"25": {
|
||||
"inputs": {
|
||||
"width": [
|
||||
"94",
|
||||
0
|
||||
],
|
||||
"height": [
|
||||
"94",
|
||||
0
|
||||
],
|
||||
"interpolation": "nearest",
|
||||
"method": "keep proportion",
|
||||
"condition": "always",
|
||||
"multiple_of": 0,
|
||||
"image": [
|
||||
"22",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "ImageResize+",
|
||||
"_meta": {
|
||||
"title": "🔧 Image Resize"
|
||||
}
|
||||
},
|
||||
"26": {
|
||||
"inputs": {
|
||||
"width": [
|
||||
"94",
|
||||
0
|
||||
],
|
||||
"height": [
|
||||
"94",
|
||||
0
|
||||
],
|
||||
"interpolation": "nearest",
|
||||
"method": "keep proportion",
|
||||
"condition": "always",
|
||||
"multiple_of": 0,
|
||||
"image": [
|
||||
"61",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "ImageResize+",
|
||||
"_meta": {
|
||||
"title": "🔧 Image Resize"
|
||||
}
|
||||
},
|
||||
"27": {
|
||||
"inputs": {
|
||||
"context_expand_pixels": 20,
|
||||
"context_expand_factor": 1.0000000000000002,
|
||||
"fill_mask_holes": true,
|
||||
"blur_mask_pixels": 10,
|
||||
"invert_mask": false,
|
||||
"blend_pixels": 16,
|
||||
"rescale_algorithm": "bicubic",
|
||||
"mode": "ranged size",
|
||||
"force_width": 1024,
|
||||
"force_height": 1024,
|
||||
"rescale_factor": 1.0000000000000002,
|
||||
"min_width": 512,
|
||||
"min_height": 512,
|
||||
"max_width": 1800,
|
||||
"max_height": 1800,
|
||||
"padding": 32,
|
||||
"image": [
|
||||
"42",
|
||||
0
|
||||
],
|
||||
"mask": [
|
||||
"30",
|
||||
0
|
||||
],
|
||||
"optional_context_mask": [
|
||||
"40",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "InpaintCrop",
|
||||
"_meta": {
|
||||
"title": "(OLD 💀, use the new ✂️ Inpaint Crop node)"
|
||||
}
|
||||
},
|
||||
"28": {
|
||||
"inputs": {
|
||||
"mask": [
|
||||
"127",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "MaskToImage",
|
||||
"_meta": {
|
||||
"title": "Convert Mask to Image"
|
||||
}
|
||||
},
|
||||
"29": {
|
||||
"inputs": {
|
||||
"width": [
|
||||
"94",
|
||||
0
|
||||
],
|
||||
"height": [
|
||||
"94",
|
||||
0
|
||||
],
|
||||
"interpolation": "nearest",
|
||||
"method": "keep proportion",
|
||||
"condition": "always",
|
||||
"multiple_of": 0,
|
||||
"image": [
|
||||
"28",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "ImageResize+",
|
||||
"_meta": {
|
||||
"title": "🔧 Image Resize"
|
||||
}
|
||||
},
|
||||
"30": {
|
||||
"inputs": {
|
||||
"channel": "red",
|
||||
"image": [
|
||||
"43",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "ImageToMask",
|
||||
"_meta": {
|
||||
"title": "Convert Image to Mask"
|
||||
}
|
||||
},
|
||||
"34": {
|
||||
"inputs": {
|
||||
"rescale_algorithm": "bislerp",
|
||||
"stitch": [
|
||||
"27",
|
||||
0
|
||||
],
|
||||
"inpainted_image": [
|
||||
"8",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "InpaintStitch",
|
||||
"_meta": {
|
||||
"title": "(OLD 💀, use the new ✂️ Inpaint Stitch node)"
|
||||
}
|
||||
},
|
||||
"37": {
|
||||
"inputs": {
|
||||
"direction": "right",
|
||||
"match_image_size": true,
|
||||
"image1": [
|
||||
"38",
|
||||
0
|
||||
],
|
||||
"image2": [
|
||||
"57",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "ImageConcanate",
|
||||
"_meta": {
|
||||
"title": "Image Concatenate"
|
||||
}
|
||||
},
|
||||
"38": {
|
||||
"inputs": {
|
||||
"mask": [
|
||||
"71:2",
|
||||
1
|
||||
]
|
||||
},
|
||||
"class_type": "MaskToImage",
|
||||
"_meta": {
|
||||
"title": "Convert Mask to Image"
|
||||
}
|
||||
},
|
||||
"40": {
|
||||
"inputs": {
|
||||
"channel": "red",
|
||||
"image": [
|
||||
"37",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "ImageToMask",
|
||||
"_meta": {
|
||||
"title": "Convert Image to Mask"
|
||||
}
|
||||
},
|
||||
"42": {
|
||||
"inputs": {
|
||||
"direction": "right",
|
||||
"match_image_size": true,
|
||||
"image1": [
|
||||
"25",
|
||||
0
|
||||
],
|
||||
"image2": [
|
||||
"26",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "ImageConcanate",
|
||||
"_meta": {
|
||||
"title": "Image Concatenate"
|
||||
}
|
||||
},
|
||||
"43": {
|
||||
"inputs": {
|
||||
"direction": "right",
|
||||
"match_image_size": true,
|
||||
"image1": [
|
||||
"59",
|
||||
0
|
||||
],
|
||||
"image2": [
|
||||
"29",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "ImageConcanate",
|
||||
"_meta": {
|
||||
"title": "Image Concatenate"
|
||||
}
|
||||
},
|
||||
"45": {
|
||||
"inputs": {
|
||||
"images": [
|
||||
"42",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "PreviewImage",
|
||||
"_meta": {
|
||||
"title": "Preview Image"
|
||||
}
|
||||
},
|
||||
"57": {
|
||||
"inputs": {
|
||||
"brightness": -1,
|
||||
"contrast": 0,
|
||||
"saturation": 0,
|
||||
"sharpness": 0,
|
||||
"blur": 0,
|
||||
"gaussian_blur": 0,
|
||||
"edge_enhance": 0,
|
||||
"detail_enhance": "false",
|
||||
"image": [
|
||||
"26",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "Image Filter Adjustments",
|
||||
"_meta": {
|
||||
"title": "Image Filter Adjustments"
|
||||
}
|
||||
},
|
||||
"59": {
|
||||
"inputs": {
|
||||
"brightness": -1,
|
||||
"contrast": 1.0000000000000002,
|
||||
"saturation": 1.0000000000000002,
|
||||
"sharpness": 1.0000000000000002,
|
||||
"blur": 0,
|
||||
"gaussian_blur": 48.1,
|
||||
"edge_enhance": 0,
|
||||
"detail_enhance": "false",
|
||||
"image": [
|
||||
"25",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "Image Filter Adjustments",
|
||||
"_meta": {
|
||||
"title": "Image Filter Adjustments"
|
||||
}
|
||||
},
|
||||
"61": {
|
||||
"inputs": {
|
||||
"image": "微信图片_20250808213937_73.png"
|
||||
},
|
||||
"class_type": "LoadImage",
|
||||
"_meta": {
|
||||
"title": "Load Image"
|
||||
}
|
||||
},
|
||||
"75": {
|
||||
"inputs": {
|
||||
"model_path": "svdq-fp4_r32-flux.1-fill-dev.safetensors",
|
||||
"cache_threshold": 0,
|
||||
"attention": "nunchaku-fp16",
|
||||
"cpu_offload": "auto",
|
||||
"device_id": 0,
|
||||
"data_type": "bfloat16",
|
||||
"i2f_mode": "enabled"
|
||||
},
|
||||
"class_type": "NunchakuFluxDiTLoader",
|
||||
"_meta": {
|
||||
"title": "Nunchaku FLUX DiT Loader"
|
||||
}
|
||||
},
|
||||
"79": {
|
||||
"inputs": {
|
||||
"style_model_name": "flux1-redux-dev.safetensors"
|
||||
},
|
||||
"class_type": "StyleModelLoader",
|
||||
"_meta": {
|
||||
"title": "Load Style Model"
|
||||
}
|
||||
},
|
||||
"83": {
|
||||
"inputs": {
|
||||
"images": [
|
||||
"29",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "PreviewImage",
|
||||
"_meta": {
|
||||
"title": "Preview Image"
|
||||
}
|
||||
},
|
||||
"84": {
|
||||
"inputs": {
|
||||
"images": [
|
||||
"43",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "PreviewImage",
|
||||
"_meta": {
|
||||
"title": "Preview Image"
|
||||
}
|
||||
},
|
||||
"85": {
|
||||
"inputs": {
|
||||
"mask": [
|
||||
"30",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "MaskPreview",
|
||||
"_meta": {
|
||||
"title": "MaskPreview"
|
||||
}
|
||||
},
|
||||
"86": {
|
||||
"inputs": {
|
||||
"mask": [
|
||||
"71:2",
|
||||
1
|
||||
]
|
||||
},
|
||||
"class_type": "MaskPreview+",
|
||||
"_meta": {
|
||||
"title": "🔧 Mask Preview"
|
||||
}
|
||||
},
|
||||
"87": {
|
||||
"inputs": {
|
||||
"images": [
|
||||
"38",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "PreviewImage",
|
||||
"_meta": {
|
||||
"title": "Preview Image"
|
||||
}
|
||||
},
|
||||
"88": {
|
||||
"inputs": {
|
||||
"images": [
|
||||
"37",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "PreviewImage",
|
||||
"_meta": {
|
||||
"title": "Preview Image"
|
||||
}
|
||||
},
|
||||
"89": {
|
||||
"inputs": {
|
||||
"images": [
|
||||
"57",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "PreviewImage",
|
||||
"_meta": {
|
||||
"title": "Preview Image"
|
||||
}
|
||||
},
|
||||
"90": {
|
||||
"inputs": {
|
||||
"images": [
|
||||
"59",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "PreviewImage",
|
||||
"_meta": {
|
||||
"title": "Preview Image"
|
||||
}
|
||||
},
|
||||
"91": {
|
||||
"inputs": {
|
||||
"images": [
|
||||
"27",
|
||||
1
|
||||
]
|
||||
},
|
||||
"class_type": "PreviewImage",
|
||||
"_meta": {
|
||||
"title": "Preview Image"
|
||||
}
|
||||
},
|
||||
"93": {
|
||||
"inputs": {
|
||||
"mask": [
|
||||
"27",
|
||||
2
|
||||
]
|
||||
},
|
||||
"class_type": "MaskPreview",
|
||||
"_meta": {
|
||||
"title": "MaskPreview"
|
||||
}
|
||||
},
|
||||
"94": {
|
||||
"inputs": {
|
||||
"value": 2048
|
||||
},
|
||||
"class_type": "PrimitiveInt",
|
||||
"_meta": {
|
||||
"title": "Int"
|
||||
}
|
||||
},
|
||||
"95": {
|
||||
"inputs": {
|
||||
"detect_hand": "disable",
|
||||
"detect_body": "enable",
|
||||
"detect_face": "disable",
|
||||
"resolution": 512,
|
||||
"bbox_detector": "yolo_nas_m_fp16.onnx",
|
||||
"pose_estimator": "dw-ll_ucoco_384.onnx",
|
||||
"scale_stick_for_xinsr_cn": "disable",
|
||||
"image": [
|
||||
"61",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "DWPreprocessor",
|
||||
"_meta": {
|
||||
"title": "DWPose Estimator"
|
||||
}
|
||||
},
|
||||
"96": {
|
||||
"inputs": {
|
||||
"cloth_len": "拖地",
|
||||
"line_len": 0.4000000000000001,
|
||||
"cloth_short": true,
|
||||
"kps": [
|
||||
"95",
|
||||
1
|
||||
]
|
||||
},
|
||||
"class_type": "RenderPeopleKpsMask",
|
||||
"_meta": {
|
||||
"title": "My RenderPeopleKps Mask"
|
||||
}
|
||||
},
|
||||
"98": {
|
||||
"inputs": {
|
||||
"mask": [
|
||||
"96",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "MaskPreview",
|
||||
"_meta": {
|
||||
"title": "MaskPreview"
|
||||
}
|
||||
},
|
||||
"99": {
|
||||
"inputs": {
|
||||
"width": [
|
||||
"108",
|
||||
0
|
||||
],
|
||||
"height": [
|
||||
"107",
|
||||
1
|
||||
],
|
||||
"x": [
|
||||
"109",
|
||||
0
|
||||
],
|
||||
"y": 0,
|
||||
"image": [
|
||||
"34",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "ImageCrop",
|
||||
"_meta": {
|
||||
"title": "Image Crop"
|
||||
}
|
||||
},
|
||||
"102": {
|
||||
"inputs": {
|
||||
"filename_prefix": "my_test_out",
|
||||
"images": [
|
||||
"99",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "SaveImage",
|
||||
"_meta": {
|
||||
"title": "Save Image"
|
||||
}
|
||||
},
|
||||
"104": {
|
||||
"inputs": {
|
||||
"image": [
|
||||
"61",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "GetImageSize",
|
||||
"_meta": {
|
||||
"title": "Get Image Size"
|
||||
}
|
||||
},
|
||||
"106": {
|
||||
"inputs": {
|
||||
"op": "Mul",
|
||||
"a": [
|
||||
"107",
|
||||
1
|
||||
],
|
||||
"b": [
|
||||
"104",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "CM_IntBinaryOperation",
|
||||
"_meta": {
|
||||
"title": "IntBinaryOperation"
|
||||
}
|
||||
},
|
||||
"107": {
|
||||
"inputs": {
|
||||
"image": [
|
||||
"34",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "GetImageSize",
|
||||
"_meta": {
|
||||
"title": "Get Image Size"
|
||||
}
|
||||
},
|
||||
"108": {
|
||||
"inputs": {
|
||||
"op": "Div",
|
||||
"a": [
|
||||
"106",
|
||||
0
|
||||
],
|
||||
"b": [
|
||||
"104",
|
||||
1
|
||||
]
|
||||
},
|
||||
"class_type": "CM_IntBinaryOperation",
|
||||
"_meta": {
|
||||
"title": "IntBinaryOperation"
|
||||
}
|
||||
},
|
||||
"109": {
|
||||
"inputs": {
|
||||
"op": "Sub",
|
||||
"a": [
|
||||
"107",
|
||||
0
|
||||
],
|
||||
"b": [
|
||||
"108",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "CM_IntBinaryOperation",
|
||||
"_meta": {
|
||||
"title": "IntBinaryOperation"
|
||||
}
|
||||
},
|
||||
"119": {
|
||||
"inputs": {
|
||||
"anything": [
|
||||
"10",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "easy cleanGpuUsed",
|
||||
"_meta": {
|
||||
"title": "Clean VRAM Used"
|
||||
}
|
||||
},
|
||||
"120": {
|
||||
"inputs": {
|
||||
"anything": [
|
||||
"10",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "easy clearCacheAll",
|
||||
"_meta": {
|
||||
"title": "Clear Cache All"
|
||||
}
|
||||
},
|
||||
"124": {
|
||||
"inputs": {
|
||||
"images": [
|
||||
"95",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "PreviewImage",
|
||||
"_meta": {
|
||||
"title": "Preview Image"
|
||||
}
|
||||
},
|
||||
"125": {
|
||||
"inputs": {
|
||||
"prompt": "cloth",
|
||||
"threshold": 0.30000000000000004,
|
||||
"sam_model": [
|
||||
"71:0",
|
||||
0
|
||||
],
|
||||
"grounding_dino_model": [
|
||||
"71:1",
|
||||
0
|
||||
],
|
||||
"image": [
|
||||
"61",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "GroundingDinoSAMSegment (segment anything)",
|
||||
"_meta": {
|
||||
"title": "GroundingDinoSAMSegment (segment anything)"
|
||||
}
|
||||
},
|
||||
"126": {
|
||||
"inputs": {
|
||||
"mask": [
|
||||
"125",
|
||||
1
|
||||
]
|
||||
},
|
||||
"class_type": "MaskPreview",
|
||||
"_meta": {
|
||||
"title": "MaskPreview"
|
||||
}
|
||||
},
|
||||
"127": {
|
||||
"inputs": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"operation": "add",
|
||||
"destination": [
|
||||
"96",
|
||||
0
|
||||
],
|
||||
"source": [
|
||||
"125",
|
||||
1
|
||||
]
|
||||
},
|
||||
"class_type": "MaskComposite",
|
||||
"_meta": {
|
||||
"title": "MaskComposite"
|
||||
}
|
||||
},
|
||||
"128": {
|
||||
"inputs": {
|
||||
"mask": [
|
||||
"127",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "MaskPreview",
|
||||
"_meta": {
|
||||
"title": "MaskPreview"
|
||||
}
|
||||
},
|
||||
"71:1": {
|
||||
"inputs": {
|
||||
"model_name": "GroundingDINO_SwinT_OGC (694MB)"
|
||||
},
|
||||
"class_type": "GroundingDinoModelLoader (segment anything)",
|
||||
"_meta": {
|
||||
"title": "GroundingDinoModelLoader (segment anything)"
|
||||
}
|
||||
},
|
||||
"71:0": {
|
||||
"inputs": {
|
||||
"model_name": "sam_vit_h (2.56GB)"
|
||||
},
|
||||
"class_type": "SAMModelLoader (segment anything)",
|
||||
"_meta": {
|
||||
"title": "SAMModelLoader (segment anything)"
|
||||
}
|
||||
},
|
||||
"71:2": {
|
||||
"inputs": {
|
||||
"prompt": "cloth",
|
||||
"threshold": 0.30000000000000004,
|
||||
"sam_model": [
|
||||
"71:0",
|
||||
0
|
||||
],
|
||||
"grounding_dino_model": [
|
||||
"71:1",
|
||||
0
|
||||
],
|
||||
"image": [
|
||||
"25",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "GroundingDinoSAMSegment (segment anything)",
|
||||
"_meta": {
|
||||
"title": "GroundingDinoSAMSegment (segment anything)"
|
||||
}
|
||||
},
|
||||
"71:3": {
|
||||
"inputs": {
|
||||
"images": [
|
||||
"71:2",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "PreviewImage",
|
||||
"_meta": {
|
||||
"title": "Preview Image"
|
||||
}
|
||||
}
|
||||
}
|
||||
Executable
+908
@@ -0,0 +1,908 @@
|
||||
{
|
||||
"3": {
|
||||
"inputs": {
|
||||
"seed": 953738907275871,
|
||||
"steps": 20,
|
||||
"cfg": 1,
|
||||
"sampler_name": "euler",
|
||||
"scheduler": "simple",
|
||||
"denoise": 1,
|
||||
"model": [
|
||||
"13",
|
||||
0
|
||||
],
|
||||
"positive": [
|
||||
"17",
|
||||
0
|
||||
],
|
||||
"negative": [
|
||||
"17",
|
||||
1
|
||||
],
|
||||
"latent_image": [
|
||||
"17",
|
||||
2
|
||||
]
|
||||
},
|
||||
"class_type": "KSampler",
|
||||
"_meta": {
|
||||
"title": "KSampler"
|
||||
}
|
||||
},
|
||||
"6": {
|
||||
"inputs": {
|
||||
"text": "",
|
||||
"clip": [
|
||||
"12",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "CLIPTextEncode",
|
||||
"_meta": {
|
||||
"title": "CLIP Text Encode (Prompt)"
|
||||
}
|
||||
},
|
||||
"7": {
|
||||
"inputs": {
|
||||
"text": "",
|
||||
"clip": [
|
||||
"12",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "CLIPTextEncode",
|
||||
"_meta": {
|
||||
"title": "CLIP Text Encode (Prompt)"
|
||||
}
|
||||
},
|
||||
"8": {
|
||||
"inputs": {
|
||||
"samples": [
|
||||
"3",
|
||||
0
|
||||
],
|
||||
"vae": [
|
||||
"16",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "VAEDecode",
|
||||
"_meta": {
|
||||
"title": "VAE Decode"
|
||||
}
|
||||
},
|
||||
"10": {
|
||||
"inputs": {
|
||||
"strength": 1.0000000000000002,
|
||||
"strength_type": "multiply",
|
||||
"conditioning": [
|
||||
"11",
|
||||
0
|
||||
],
|
||||
"style_model": [
|
||||
"79",
|
||||
0
|
||||
],
|
||||
"clip_vision_output": [
|
||||
"20",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "StyleModelApply",
|
||||
"_meta": {
|
||||
"title": "Apply Style Model"
|
||||
}
|
||||
},
|
||||
"11": {
|
||||
"inputs": {
|
||||
"guidance": 30,
|
||||
"conditioning": [
|
||||
"6",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "FluxGuidance",
|
||||
"_meta": {
|
||||
"title": "FluxGuidance"
|
||||
}
|
||||
},
|
||||
"12": {
|
||||
"inputs": {
|
||||
"clip_name1": "flux/t5xxl_fp16.safetensors",
|
||||
"clip_name2": "clip_l.safetensors",
|
||||
"type": "flux",
|
||||
"device": "default"
|
||||
},
|
||||
"class_type": "DualCLIPLoader",
|
||||
"_meta": {
|
||||
"title": "DualCLIPLoader"
|
||||
}
|
||||
},
|
||||
"13": {
|
||||
"inputs": {
|
||||
"model": [
|
||||
"75",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "DifferentialDiffusion",
|
||||
"_meta": {
|
||||
"title": "Differential Diffusion"
|
||||
}
|
||||
},
|
||||
"16": {
|
||||
"inputs": {
|
||||
"vae_name": "ae.safetensors"
|
||||
},
|
||||
"class_type": "VAELoader",
|
||||
"_meta": {
|
||||
"title": "Load VAE"
|
||||
}
|
||||
},
|
||||
"17": {
|
||||
"inputs": {
|
||||
"noise_mask": false,
|
||||
"positive": [
|
||||
"10",
|
||||
0
|
||||
],
|
||||
"negative": [
|
||||
"7",
|
||||
0
|
||||
],
|
||||
"vae": [
|
||||
"16",
|
||||
0
|
||||
],
|
||||
"pixels": [
|
||||
"27",
|
||||
1
|
||||
],
|
||||
"mask": [
|
||||
"27",
|
||||
2
|
||||
]
|
||||
},
|
||||
"class_type": "InpaintModelConditioning",
|
||||
"_meta": {
|
||||
"title": "InpaintModelConditioning"
|
||||
}
|
||||
},
|
||||
"20": {
|
||||
"inputs": {
|
||||
"crop": "center",
|
||||
"clip_vision": [
|
||||
"21",
|
||||
0
|
||||
],
|
||||
"image": [
|
||||
"25",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "CLIPVisionEncode",
|
||||
"_meta": {
|
||||
"title": "CLIP Vision Encode"
|
||||
}
|
||||
},
|
||||
"21": {
|
||||
"inputs": {
|
||||
"clip_name": "sigclip_vision_patch14_384.safetensors"
|
||||
},
|
||||
"class_type": "CLIPVisionLoader",
|
||||
"_meta": {
|
||||
"title": "Load CLIP Vision"
|
||||
}
|
||||
},
|
||||
"22": {
|
||||
"inputs": {
|
||||
"image": "微信图片_20250810123345_95.jpg"
|
||||
},
|
||||
"class_type": "LoadImage",
|
||||
"_meta": {
|
||||
"title": "Load Image"
|
||||
}
|
||||
},
|
||||
"25": {
|
||||
"inputs": {
|
||||
"width": [
|
||||
"94",
|
||||
0
|
||||
],
|
||||
"height": [
|
||||
"94",
|
||||
0
|
||||
],
|
||||
"interpolation": "nearest",
|
||||
"method": "keep proportion",
|
||||
"condition": "always",
|
||||
"multiple_of": 0,
|
||||
"image": [
|
||||
"22",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "ImageResize+",
|
||||
"_meta": {
|
||||
"title": "🔧 Image Resize"
|
||||
}
|
||||
},
|
||||
"26": {
|
||||
"inputs": {
|
||||
"width": [
|
||||
"94",
|
||||
0
|
||||
],
|
||||
"height": [
|
||||
"94",
|
||||
0
|
||||
],
|
||||
"interpolation": "nearest",
|
||||
"method": "keep proportion",
|
||||
"condition": "always",
|
||||
"multiple_of": 0,
|
||||
"image": [
|
||||
"61",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "ImageResize+",
|
||||
"_meta": {
|
||||
"title": "🔧 Image Resize"
|
||||
}
|
||||
},
|
||||
"27": {
|
||||
"inputs": {
|
||||
"context_expand_pixels": 20,
|
||||
"context_expand_factor": 1.0000000000000002,
|
||||
"fill_mask_holes": true,
|
||||
"blur_mask_pixels": 10,
|
||||
"invert_mask": false,
|
||||
"blend_pixels": 16,
|
||||
"rescale_algorithm": "bicubic",
|
||||
"mode": "ranged size",
|
||||
"force_width": 1024,
|
||||
"force_height": 1024,
|
||||
"rescale_factor": 1.0000000000000002,
|
||||
"min_width": 512,
|
||||
"min_height": 512,
|
||||
"max_width": 1800,
|
||||
"max_height": 1800,
|
||||
"padding": 32,
|
||||
"image": [
|
||||
"42",
|
||||
0
|
||||
],
|
||||
"mask": [
|
||||
"30",
|
||||
0
|
||||
],
|
||||
"optional_context_mask": [
|
||||
"40",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "InpaintCrop",
|
||||
"_meta": {
|
||||
"title": "(OLD 💀, use the new ✂️ Inpaint Crop node)"
|
||||
}
|
||||
},
|
||||
"28": {
|
||||
"inputs": {
|
||||
"mask": [
|
||||
"96",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "MaskToImage",
|
||||
"_meta": {
|
||||
"title": "Convert Mask to Image"
|
||||
}
|
||||
},
|
||||
"29": {
|
||||
"inputs": {
|
||||
"width": [
|
||||
"94",
|
||||
0
|
||||
],
|
||||
"height": [
|
||||
"94",
|
||||
0
|
||||
],
|
||||
"interpolation": "nearest",
|
||||
"method": "keep proportion",
|
||||
"condition": "always",
|
||||
"multiple_of": 0,
|
||||
"image": [
|
||||
"28",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "ImageResize+",
|
||||
"_meta": {
|
||||
"title": "🔧 Image Resize"
|
||||
}
|
||||
},
|
||||
"30": {
|
||||
"inputs": {
|
||||
"channel": "red",
|
||||
"image": [
|
||||
"43",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "ImageToMask",
|
||||
"_meta": {
|
||||
"title": "Convert Image to Mask"
|
||||
}
|
||||
},
|
||||
"34": {
|
||||
"inputs": {
|
||||
"rescale_algorithm": "bislerp",
|
||||
"stitch": [
|
||||
"27",
|
||||
0
|
||||
],
|
||||
"inpainted_image": [
|
||||
"8",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "InpaintStitch",
|
||||
"_meta": {
|
||||
"title": "(OLD 💀, use the new ✂️ Inpaint Stitch node)"
|
||||
}
|
||||
},
|
||||
"37": {
|
||||
"inputs": {
|
||||
"direction": "right",
|
||||
"match_image_size": true,
|
||||
"image1": [
|
||||
"38",
|
||||
0
|
||||
],
|
||||
"image2": [
|
||||
"57",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "ImageConcanate",
|
||||
"_meta": {
|
||||
"title": "Image Concatenate"
|
||||
}
|
||||
},
|
||||
"38": {
|
||||
"inputs": {
|
||||
"mask": [
|
||||
"71:2",
|
||||
1
|
||||
]
|
||||
},
|
||||
"class_type": "MaskToImage",
|
||||
"_meta": {
|
||||
"title": "Convert Mask to Image"
|
||||
}
|
||||
},
|
||||
"40": {
|
||||
"inputs": {
|
||||
"channel": "red",
|
||||
"image": [
|
||||
"37",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "ImageToMask",
|
||||
"_meta": {
|
||||
"title": "Convert Image to Mask"
|
||||
}
|
||||
},
|
||||
"42": {
|
||||
"inputs": {
|
||||
"direction": "right",
|
||||
"match_image_size": true,
|
||||
"image1": [
|
||||
"25",
|
||||
0
|
||||
],
|
||||
"image2": [
|
||||
"26",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "ImageConcanate",
|
||||
"_meta": {
|
||||
"title": "Image Concatenate"
|
||||
}
|
||||
},
|
||||
"43": {
|
||||
"inputs": {
|
||||
"direction": "right",
|
||||
"match_image_size": true,
|
||||
"image1": [
|
||||
"59",
|
||||
0
|
||||
],
|
||||
"image2": [
|
||||
"29",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "ImageConcanate",
|
||||
"_meta": {
|
||||
"title": "Image Concatenate"
|
||||
}
|
||||
},
|
||||
"45": {
|
||||
"inputs": {
|
||||
"images": [
|
||||
"42",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "PreviewImage",
|
||||
"_meta": {
|
||||
"title": "Preview Image"
|
||||
}
|
||||
},
|
||||
"57": {
|
||||
"inputs": {
|
||||
"brightness": -1,
|
||||
"contrast": 0,
|
||||
"saturation": 0,
|
||||
"sharpness": 0,
|
||||
"blur": 0,
|
||||
"gaussian_blur": 0,
|
||||
"edge_enhance": 0,
|
||||
"detail_enhance": "false",
|
||||
"image": [
|
||||
"26",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "Image Filter Adjustments",
|
||||
"_meta": {
|
||||
"title": "Image Filter Adjustments"
|
||||
}
|
||||
},
|
||||
"59": {
|
||||
"inputs": {
|
||||
"brightness": -1,
|
||||
"contrast": 1.0000000000000002,
|
||||
"saturation": 1.0000000000000002,
|
||||
"sharpness": 1.0000000000000002,
|
||||
"blur": 0,
|
||||
"gaussian_blur": 48.1,
|
||||
"edge_enhance": 0,
|
||||
"detail_enhance": "false",
|
||||
"image": [
|
||||
"25",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "Image Filter Adjustments",
|
||||
"_meta": {
|
||||
"title": "Image Filter Adjustments"
|
||||
}
|
||||
},
|
||||
"61": {
|
||||
"inputs": {
|
||||
"image": "微信图片_20250809133614_84.jpg"
|
||||
},
|
||||
"class_type": "LoadImage",
|
||||
"_meta": {
|
||||
"title": "Load Image"
|
||||
}
|
||||
},
|
||||
"75": {
|
||||
"inputs": {
|
||||
"model_path": "svdq-fp4_r32-flux.1-fill-dev.safetensors",
|
||||
"cache_threshold": 0,
|
||||
"attention": "nunchaku-fp16",
|
||||
"cpu_offload": "auto",
|
||||
"device_id": 0,
|
||||
"data_type": "bfloat16",
|
||||
"i2f_mode": "enabled"
|
||||
},
|
||||
"class_type": "NunchakuFluxDiTLoader",
|
||||
"_meta": {
|
||||
"title": "Nunchaku FLUX DiT Loader"
|
||||
}
|
||||
},
|
||||
"79": {
|
||||
"inputs": {
|
||||
"style_model_name": "flux1-redux-dev.safetensors"
|
||||
},
|
||||
"class_type": "StyleModelLoader",
|
||||
"_meta": {
|
||||
"title": "Load Style Model"
|
||||
}
|
||||
},
|
||||
"83": {
|
||||
"inputs": {
|
||||
"images": [
|
||||
"29",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "PreviewImage",
|
||||
"_meta": {
|
||||
"title": "Preview Image"
|
||||
}
|
||||
},
|
||||
"84": {
|
||||
"inputs": {
|
||||
"images": [
|
||||
"43",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "PreviewImage",
|
||||
"_meta": {
|
||||
"title": "Preview Image"
|
||||
}
|
||||
},
|
||||
"85": {
|
||||
"inputs": {
|
||||
"mask": [
|
||||
"30",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "MaskPreview",
|
||||
"_meta": {
|
||||
"title": "MaskPreview"
|
||||
}
|
||||
},
|
||||
"86": {
|
||||
"inputs": {
|
||||
"mask": [
|
||||
"71:2",
|
||||
1
|
||||
]
|
||||
},
|
||||
"class_type": "MaskPreview+",
|
||||
"_meta": {
|
||||
"title": "🔧 Mask Preview"
|
||||
}
|
||||
},
|
||||
"87": {
|
||||
"inputs": {
|
||||
"images": [
|
||||
"38",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "PreviewImage",
|
||||
"_meta": {
|
||||
"title": "Preview Image"
|
||||
}
|
||||
},
|
||||
"88": {
|
||||
"inputs": {
|
||||
"images": [
|
||||
"37",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "PreviewImage",
|
||||
"_meta": {
|
||||
"title": "Preview Image"
|
||||
}
|
||||
},
|
||||
"89": {
|
||||
"inputs": {
|
||||
"images": [
|
||||
"57",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "PreviewImage",
|
||||
"_meta": {
|
||||
"title": "Preview Image"
|
||||
}
|
||||
},
|
||||
"90": {
|
||||
"inputs": {
|
||||
"images": [
|
||||
"59",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "PreviewImage",
|
||||
"_meta": {
|
||||
"title": "Preview Image"
|
||||
}
|
||||
},
|
||||
"91": {
|
||||
"inputs": {
|
||||
"images": [
|
||||
"27",
|
||||
1
|
||||
]
|
||||
},
|
||||
"class_type": "PreviewImage",
|
||||
"_meta": {
|
||||
"title": "Preview Image"
|
||||
}
|
||||
},
|
||||
"93": {
|
||||
"inputs": {
|
||||
"mask": [
|
||||
"27",
|
||||
2
|
||||
]
|
||||
},
|
||||
"class_type": "MaskPreview",
|
||||
"_meta": {
|
||||
"title": "MaskPreview"
|
||||
}
|
||||
},
|
||||
"94": {
|
||||
"inputs": {
|
||||
"value": 2048
|
||||
},
|
||||
"class_type": "PrimitiveInt",
|
||||
"_meta": {
|
||||
"title": "Int"
|
||||
}
|
||||
},
|
||||
"95": {
|
||||
"inputs": {
|
||||
"detect_hand": "disable",
|
||||
"detect_body": "enable",
|
||||
"detect_face": "disable",
|
||||
"resolution": 512,
|
||||
"bbox_detector": "yolo_nas_m_fp16.onnx",
|
||||
"pose_estimator": "dw-ll_ucoco_384.onnx",
|
||||
"scale_stick_for_xinsr_cn": "disable",
|
||||
"image": [
|
||||
"61",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "DWPreprocessor",
|
||||
"_meta": {
|
||||
"title": "DWPose Estimator"
|
||||
}
|
||||
},
|
||||
"96": {
|
||||
"inputs": {
|
||||
"cloth_len": "腰",
|
||||
"line_len": 0.4000000000000001,
|
||||
"cloth_short": true,
|
||||
"kps": [
|
||||
"95",
|
||||
1
|
||||
]
|
||||
},
|
||||
"class_type": "RenderPeopleKpsMask",
|
||||
"_meta": {
|
||||
"title": "My RenderPeopleKps Mask"
|
||||
}
|
||||
},
|
||||
"98": {
|
||||
"inputs": {
|
||||
"mask": [
|
||||
"96",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "MaskPreview",
|
||||
"_meta": {
|
||||
"title": "MaskPreview"
|
||||
}
|
||||
},
|
||||
"99": {
|
||||
"inputs": {
|
||||
"width": [
|
||||
"108",
|
||||
0
|
||||
],
|
||||
"height": [
|
||||
"107",
|
||||
1
|
||||
],
|
||||
"x": [
|
||||
"109",
|
||||
0
|
||||
],
|
||||
"y": 0,
|
||||
"image": [
|
||||
"34",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "ImageCrop",
|
||||
"_meta": {
|
||||
"title": "Image Crop"
|
||||
}
|
||||
},
|
||||
"102": {
|
||||
"inputs": {
|
||||
"filename_prefix": "my_test_out",
|
||||
"images": [
|
||||
"99",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "SaveImage",
|
||||
"_meta": {
|
||||
"title": "Save Image"
|
||||
}
|
||||
},
|
||||
"104": {
|
||||
"inputs": {
|
||||
"image": [
|
||||
"61",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "GetImageSize",
|
||||
"_meta": {
|
||||
"title": "Get Image Size"
|
||||
}
|
||||
},
|
||||
"106": {
|
||||
"inputs": {
|
||||
"op": "Mul",
|
||||
"a": [
|
||||
"107",
|
||||
1
|
||||
],
|
||||
"b": [
|
||||
"104",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "CM_IntBinaryOperation",
|
||||
"_meta": {
|
||||
"title": "IntBinaryOperation"
|
||||
}
|
||||
},
|
||||
"107": {
|
||||
"inputs": {
|
||||
"image": [
|
||||
"34",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "GetImageSize",
|
||||
"_meta": {
|
||||
"title": "Get Image Size"
|
||||
}
|
||||
},
|
||||
"108": {
|
||||
"inputs": {
|
||||
"op": "Div",
|
||||
"a": [
|
||||
"106",
|
||||
0
|
||||
],
|
||||
"b": [
|
||||
"104",
|
||||
1
|
||||
]
|
||||
},
|
||||
"class_type": "CM_IntBinaryOperation",
|
||||
"_meta": {
|
||||
"title": "IntBinaryOperation"
|
||||
}
|
||||
},
|
||||
"109": {
|
||||
"inputs": {
|
||||
"op": "Sub",
|
||||
"a": [
|
||||
"107",
|
||||
0
|
||||
],
|
||||
"b": [
|
||||
"108",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "CM_IntBinaryOperation",
|
||||
"_meta": {
|
||||
"title": "IntBinaryOperation"
|
||||
}
|
||||
},
|
||||
"119": {
|
||||
"inputs": {
|
||||
"anything": [
|
||||
"10",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "easy cleanGpuUsed",
|
||||
"_meta": {
|
||||
"title": "Clean VRAM Used"
|
||||
}
|
||||
},
|
||||
"120": {
|
||||
"inputs": {
|
||||
"anything": [
|
||||
"10",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "easy clearCacheAll",
|
||||
"_meta": {
|
||||
"title": "Clear Cache All"
|
||||
}
|
||||
},
|
||||
"124": {
|
||||
"inputs": {
|
||||
"images": [
|
||||
"95",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "PreviewImage",
|
||||
"_meta": {
|
||||
"title": "Preview Image"
|
||||
}
|
||||
},
|
||||
"128": {
|
||||
"inputs": {
|
||||
"mask": [
|
||||
"96",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "MaskPreview",
|
||||
"_meta": {
|
||||
"title": "MaskPreview"
|
||||
}
|
||||
},
|
||||
"71:1": {
|
||||
"inputs": {
|
||||
"model_name": "GroundingDINO_SwinT_OGC (694MB)"
|
||||
},
|
||||
"class_type": "GroundingDinoModelLoader (segment anything)",
|
||||
"_meta": {
|
||||
"title": "GroundingDinoModelLoader (segment anything)"
|
||||
}
|
||||
},
|
||||
"71:0": {
|
||||
"inputs": {
|
||||
"model_name": "sam_vit_h (2.56GB)"
|
||||
},
|
||||
"class_type": "SAMModelLoader (segment anything)",
|
||||
"_meta": {
|
||||
"title": "SAMModelLoader (segment anything)"
|
||||
}
|
||||
},
|
||||
"71:2": {
|
||||
"inputs": {
|
||||
"prompt": "cloth",
|
||||
"threshold": 0.30000000000000004,
|
||||
"sam_model": [
|
||||
"71:0",
|
||||
0
|
||||
],
|
||||
"grounding_dino_model": [
|
||||
"71:1",
|
||||
0
|
||||
],
|
||||
"image": [
|
||||
"25",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "GroundingDinoSAMSegment (segment anything)",
|
||||
"_meta": {
|
||||
"title": "GroundingDinoSAMSegment (segment anything)"
|
||||
}
|
||||
},
|
||||
"71:3": {
|
||||
"inputs": {
|
||||
"images": [
|
||||
"71:2",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "PreviewImage",
|
||||
"_meta": {
|
||||
"title": "Preview Image"
|
||||
}
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -36,4 +36,4 @@ import mediapipe as mp
|
||||
|
||||
# return left_thigh_visible and right_thigh_visible
|
||||
|
||||
# print(is_thigh_visible("/home/szlc/code/ComfyUI/change_cloth/static/imgs/fc74eded_00001_.jpg"))
|
||||
# print(is_thigh_visible("/home/xsl/code/ComfyUI/change_cloth/static/imgs/fc74eded_00001_.jpg"))
|
||||
@@ -4,7 +4,7 @@ import logging
|
||||
|
||||
QUEUE_NAME = 'task_queue'
|
||||
# 配置
|
||||
REDIS_HOST = '127.0.0.1'
|
||||
REDIS_HOST = '192.168.101.118'
|
||||
REDIS_PORT = 6379
|
||||
REDIS_DB = 0
|
||||
DEFAULT_TIMEOUT = (60*20)
|
||||
@@ -37,6 +37,23 @@ console_handler.setFormatter(console_formatter)
|
||||
logger.addHandler(file_handler)
|
||||
logger.addHandler(console_handler)
|
||||
|
||||
selfComputer = "5090"
|
||||
|
||||
if selfComputer == "5090":
|
||||
change_only_name = "change_new_only_change.json"
|
||||
# change_with_add_cloth = "change_new_debug.json"
|
||||
change_with_add_cloth = change_only_name
|
||||
xiezhen_name = "xiezhen_girl.json"
|
||||
base64_test_port = 28888
|
||||
else:
|
||||
change_only_name = "change_new_only_3090.json"
|
||||
# change_with_add_cloth = "change_new_3090.json"
|
||||
change_with_add_cloth = change_only_name
|
||||
xiezhen_name = "xiezhen_girl.json"
|
||||
base64_test_port = 18888
|
||||
|
||||
|
||||
|
||||
def acquire_lock(redis_client, lock_name):
|
||||
lock = Lock(
|
||||
redis_client,
|
||||
|
||||
@@ -0,0 +1,212 @@
|
||||
{
|
||||
"6": {
|
||||
"inputs": {
|
||||
"text": "Using this elegant style, create a portrait of a swan wearing a pearl tiara and lace collar, maintaining the same refined quality and soft color tones.",
|
||||
"clip": [
|
||||
"38",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "CLIPTextEncode",
|
||||
"_meta": {
|
||||
"title": "CLIP Text Encode (Positive Prompt)"
|
||||
}
|
||||
},
|
||||
"8": {
|
||||
"inputs": {
|
||||
"samples": [
|
||||
"31",
|
||||
0
|
||||
],
|
||||
"vae": [
|
||||
"39",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "VAEDecode",
|
||||
"_meta": {
|
||||
"title": "VAE Decode"
|
||||
}
|
||||
},
|
||||
"31": {
|
||||
"inputs": {
|
||||
"seed": 331754788447825,
|
||||
"steps": 20,
|
||||
"cfg": 1,
|
||||
"sampler_name": "euler",
|
||||
"scheduler": "simple",
|
||||
"denoise": 1,
|
||||
"model": [
|
||||
"37",
|
||||
0
|
||||
],
|
||||
"positive": [
|
||||
"35",
|
||||
0
|
||||
],
|
||||
"negative": [
|
||||
"135",
|
||||
0
|
||||
],
|
||||
"latent_image": [
|
||||
"124",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "KSampler",
|
||||
"_meta": {
|
||||
"title": "KSampler"
|
||||
}
|
||||
},
|
||||
"35": {
|
||||
"inputs": {
|
||||
"guidance": 2.5,
|
||||
"conditioning": [
|
||||
"177",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "FluxGuidance",
|
||||
"_meta": {
|
||||
"title": "FluxGuidance"
|
||||
}
|
||||
},
|
||||
"37": {
|
||||
"inputs": {
|
||||
"unet_name": "flux1-dev-kontext_fp8_scaled.safetensors",
|
||||
"weight_dtype": "default"
|
||||
},
|
||||
"class_type": "UNETLoader",
|
||||
"_meta": {
|
||||
"title": "Load Diffusion Model"
|
||||
}
|
||||
},
|
||||
"38": {
|
||||
"inputs": {
|
||||
"clip_name1": "clip_l.safetensors",
|
||||
"clip_name2": "t5xxl_fp8_e4m3fn_scaled.safetensors",
|
||||
"type": "flux",
|
||||
"device": "default"
|
||||
},
|
||||
"class_type": "DualCLIPLoader",
|
||||
"_meta": {
|
||||
"title": "DualCLIPLoader"
|
||||
}
|
||||
},
|
||||
"39": {
|
||||
"inputs": {
|
||||
"vae_name": "ae.safetensors"
|
||||
},
|
||||
"class_type": "VAELoader",
|
||||
"_meta": {
|
||||
"title": "Load VAE"
|
||||
}
|
||||
},
|
||||
"42": {
|
||||
"inputs": {
|
||||
"image": [
|
||||
"146",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "FluxKontextImageScale",
|
||||
"_meta": {
|
||||
"title": "FluxKontextImageScale"
|
||||
}
|
||||
},
|
||||
"124": {
|
||||
"inputs": {
|
||||
"pixels": [
|
||||
"42",
|
||||
0
|
||||
],
|
||||
"vae": [
|
||||
"39",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "VAEEncode",
|
||||
"_meta": {
|
||||
"title": "VAE Encode"
|
||||
}
|
||||
},
|
||||
"135": {
|
||||
"inputs": {
|
||||
"conditioning": [
|
||||
"6",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "ConditioningZeroOut",
|
||||
"_meta": {
|
||||
"title": "ConditioningZeroOut"
|
||||
}
|
||||
},
|
||||
"136": {
|
||||
"inputs": {
|
||||
"filename_prefix": "ComfyUI",
|
||||
"images": [
|
||||
"8",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "SaveImage",
|
||||
"_meta": {
|
||||
"title": "Save Image"
|
||||
}
|
||||
},
|
||||
"142": {
|
||||
"inputs": {
|
||||
"image": "ComfyUI_00441_.png [output]",
|
||||
"refresh": "refresh"
|
||||
},
|
||||
"class_type": "LoadImageOutput",
|
||||
"_meta": {
|
||||
"title": "Load Image (from Outputs)"
|
||||
}
|
||||
},
|
||||
"146": {
|
||||
"inputs": {
|
||||
"direction": "right",
|
||||
"match_image_size": true,
|
||||
"spacing_width": 0,
|
||||
"spacing_color": "white",
|
||||
"image1": [
|
||||
"142",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "ImageStitch",
|
||||
"_meta": {
|
||||
"title": "Image Stitch"
|
||||
}
|
||||
},
|
||||
"173": {
|
||||
"inputs": {
|
||||
"images": [
|
||||
"42",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "PreviewImage",
|
||||
"_meta": {
|
||||
"title": "Preview Image"
|
||||
}
|
||||
},
|
||||
"177": {
|
||||
"inputs": {
|
||||
"conditioning": [
|
||||
"6",
|
||||
0
|
||||
],
|
||||
"latent": [
|
||||
"124",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "ReferenceLatent",
|
||||
"_meta": {
|
||||
"title": "ReferenceLatent"
|
||||
}
|
||||
}
|
||||
}
|
||||
Executable
BIN
Binary file not shown.
|
After Width: | Height: | Size: 180 KiB |
+11
-11
@@ -56,7 +56,7 @@ def takeoff_cloth_first(human_name):
|
||||
if queue["queue_running"] or queue["queue_pending"]:
|
||||
return None, "cur gpu is busy"
|
||||
|
||||
with open('/home/szlc/code/ComfyUI/change_cloth/change_new.json', 'r', encoding='utf-8') as file:
|
||||
with open('/home/xsl/code/ComfyUI/change_cloth/change_new.json', 'r', encoding='utf-8') as file:
|
||||
prompt_text = file.read()
|
||||
|
||||
prompt = json.loads(prompt_text)
|
||||
@@ -122,15 +122,15 @@ def change(human_name, cloth_name, c_width, c_height, cloth_url, is_generated):
|
||||
return None, f"takeoff_cloth_first error {human_name}"
|
||||
else:
|
||||
human_name = takeoff_file_name
|
||||
takeoff_file_path_name = os.path.join('/home/szlc/code/ComfyUI/output', takeoff_file_name)
|
||||
takeoff_file_path_name_input = os.path.join('/home/szlc/code/ComfyUI/input', takeoff_file_name)
|
||||
takeoff_file_path_name = os.path.join('/home/xsl/code/ComfyUI/output', takeoff_file_name)
|
||||
takeoff_file_path_name_input = os.path.join('/home/xsl/code/ComfyUI/input', takeoff_file_name)
|
||||
shutil.copy(takeoff_file_path_name, takeoff_file_path_name_input)
|
||||
|
||||
queue = requests.get("http://localhost:8188/queue").json()
|
||||
if queue["queue_running"] or queue["queue_pending"]:
|
||||
return None, "cur gpu is busy"
|
||||
|
||||
with open('/home/szlc/code/ComfyUI/change_cloth/change_new.json', 'r', encoding='utf-8') as file:
|
||||
with open('/home/xsl/code/ComfyUI/change_cloth/change_new.json', 'r', encoding='utf-8') as file:
|
||||
prompt_text = file.read()
|
||||
|
||||
prompt = json.loads(prompt_text)
|
||||
@@ -207,13 +207,13 @@ def save_base64_image(base64_str, prefix):
|
||||
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
|
||||
unique_id = str(uuid.uuid4())[:8]
|
||||
filename = f"{prefix}_{timestamp}_{unique_id}{file_ext}"
|
||||
filepath = os.path.join('/home/szlc/code/ComfyUI/change_cloth/static/imgs', filename)
|
||||
filepath = os.path.join('/home/xsl/code/ComfyUI/change_cloth/static/imgs', filename)
|
||||
|
||||
# 解码并保存图片
|
||||
with open(filepath, 'wb') as f:
|
||||
f.write(base64.b64decode(data))
|
||||
|
||||
input_filepath = os.path.join('/home/szlc/code/ComfyUI/input', filename)
|
||||
input_filepath = os.path.join('/home/xsl/code/ComfyUI/input', filename)
|
||||
# 解码并保存图片
|
||||
with open(input_filepath, 'wb') as f:
|
||||
f.write(base64.b64decode(data))
|
||||
@@ -286,16 +286,16 @@ def upload_to_oss(image_path, object_name=None):
|
||||
|
||||
|
||||
def process_change_cloth(human_filename, cloth_filename, output_format, img_url, is_generated):
|
||||
w,h = get_image_dimensions(f'/home/szlc/code/ComfyUI/input/{human_filename}')
|
||||
w,h = get_image_dimensions(f'/home/xsl/code/ComfyUI/input/{human_filename}')
|
||||
|
||||
out_put_name, msg = change(human_filename, cloth_filename, w, h, img_url, is_generated)
|
||||
if out_put_name == None:
|
||||
print(f'Failed to change cloth {msg}')
|
||||
return jsonify({"ret":-1, 'msg': f'Failed to change cloth {msg}'}), 200
|
||||
|
||||
image = Image.open(f'/home/szlc/code/ComfyUI/output/{out_put_name}')
|
||||
image = Image.open(f'/home/xsl/code/ComfyUI/output/{out_put_name}')
|
||||
jpg_name = out_put_name.replace(".png", ".jpg")
|
||||
jpg_path_name = f'/home/szlc/code/ComfyUI/change_cloth/static/imgs/{jpg_name}'
|
||||
jpg_path_name = f'/home/xsl/code/ComfyUI/change_cloth/static/imgs/{jpg_name}'
|
||||
image.save(jpg_path_name, quality=95)
|
||||
|
||||
|
||||
@@ -376,13 +376,13 @@ def save_image_from_url(image_url):
|
||||
# 获取原始图片格式
|
||||
ext = get_file_extension(image_url)
|
||||
filename = f"{uuid.uuid4()}{ext}"
|
||||
filepath = os.path.join('/home/szlc/code/ComfyUI/change_cloth/static/imgs', filename)
|
||||
filepath = os.path.join('/home/xsl/code/ComfyUI/change_cloth/static/imgs', filename)
|
||||
|
||||
with open(filepath, "wb") as f:
|
||||
for chunk in response.iter_content(1024):
|
||||
f.write(chunk)
|
||||
|
||||
input_filepath = os.path.join('/home/szlc/code/ComfyUI/input', filename)
|
||||
input_filepath = os.path.join('/home/xsl/code/ComfyUI/input', filename)
|
||||
shutil.copy(filepath, input_filepath)
|
||||
|
||||
return filename
|
||||
|
||||
Executable
BIN
Binary file not shown.
|
After Width: | Height: | Size: 42 KiB |
+1
-1
@@ -32,7 +32,7 @@ def upload_to_oss(image_path, object_name=None):
|
||||
return None
|
||||
|
||||
# 使用示例
|
||||
image_path = '/home/szlc/code/ComfyUI/change_cloth/girl8010.jpg' # 本地图片路径
|
||||
image_path = '/home/xsl/code/ComfyUI/change_cloth/girl8010.jpg' # 本地图片路径
|
||||
upload_to_oss(image_path, 'girl8011.jpg') # 第二个参数可选,指定OSS上的路径
|
||||
https_url = f'https://llyz.oss-cn-beijing.aliyuncs.com/girl8011.jpg'
|
||||
print(f"生成的HTTPS URL: {https_url}")
|
||||
|
||||
+1
-1
@@ -171,7 +171,7 @@
|
||||
console.log("准备发送的数据:", data); // 调试用
|
||||
|
||||
// 调用API
|
||||
fetch('http://112.126.94.241:18888/change_cloth_base64', {
|
||||
fetch('http://112.126.94.241:28888/change_cloth_base64', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@ import json
|
||||
|
||||
# 1. 提交任务
|
||||
|
||||
with open('/home/szlc/code/ComfyUI/change_cloth/basic_api.json', 'r', encoding='utf-8') as file:
|
||||
with open('/home/xsl/code/ComfyUI/change_cloth/basic_api.json', 'r', encoding='utf-8') as file:
|
||||
prompt_text = file.read()
|
||||
|
||||
prompt = json.loads(prompt_text)
|
||||
|
||||
@@ -29,11 +29,11 @@ def image_to_base64(file_path, mime_type=None):
|
||||
if __name__ == '__main__':
|
||||
url = 'http://112.126.94.241:18018/change_cloth_base64'
|
||||
headers = {'Content-Type': 'application/json'}
|
||||
img64_human_str = image_to_base64("/home/szlc/code/ComfyUI/input/girl_full.jpg")
|
||||
img64_human_str = image_to_base64("/home/xsl/code/ComfyUI/input/girl_full.jpg")
|
||||
data = {}
|
||||
data['human_img'] = img64_human_str
|
||||
|
||||
img64_cloth_str = image_to_base64("/home/szlc/code/ComfyUI/input/cloth_short.jpg")
|
||||
img64_cloth_str = image_to_base64("/home/xsl/code/ComfyUI/input/cloth_short.jpg")
|
||||
data['cloth_img'] = img64_cloth_str
|
||||
|
||||
data['output_format'] = "url"
|
||||
|
||||
@@ -307,7 +307,7 @@ def main_worker():
|
||||
serverindex = 0
|
||||
def regServer(instance, ip):
|
||||
global serverindex
|
||||
registerGpuServer(f"s{serverindex}_1_{instance}", f"http://{ip}:8888", True)
|
||||
registerGpuServer(f"s{serverindex}_1_{instance}", f"http://{ip}", True)
|
||||
serverindex += 1
|
||||
|
||||
|
||||
@@ -316,7 +316,8 @@ if __name__ == '__main__':
|
||||
print(f"[Worker] Starting with PID: {os.getpid()}")
|
||||
redis_conn.set(GPU_SERVER_LIST, "[]")
|
||||
|
||||
regServer("一号", "192.168.101.118")
|
||||
regServer("二号", "192.168.101.221")
|
||||
# regServer("5090", "112.126.94.241:28888")
|
||||
regServer("一号", "192.168.101.118:8888")
|
||||
# regServer("二号", "192.168.101.221:8888")
|
||||
|
||||
main_worker()
|
||||
@@ -0,0 +1,345 @@
|
||||
{
|
||||
"6": {
|
||||
"inputs": {
|
||||
"text": "asian girl,knee-length shot ,model pose,hands are at the sides of the body,smile,wearing black tube top and micro skirt,simple ,white background,32k,high detail,and face is illuminated by soft side light and natural light. The sunlight spills over the white wall behind.",
|
||||
"clip": [
|
||||
"68",
|
||||
1
|
||||
]
|
||||
},
|
||||
"class_type": "CLIPTextEncode",
|
||||
"_meta": {
|
||||
"title": "CLIP Text Encode (Prompt)"
|
||||
}
|
||||
},
|
||||
"10": {
|
||||
"inputs": {
|
||||
"vae_name": "ae.safetensors"
|
||||
},
|
||||
"class_type": "VAELoader",
|
||||
"_meta": {
|
||||
"title": "Load VAE"
|
||||
}
|
||||
},
|
||||
"16": {
|
||||
"inputs": {
|
||||
"sampler_name": "dpmpp_2m"
|
||||
},
|
||||
"class_type": "KSamplerSelect",
|
||||
"_meta": {
|
||||
"title": "KSamplerSelect"
|
||||
}
|
||||
},
|
||||
"17": {
|
||||
"inputs": {
|
||||
"scheduler": "sgm_uniform",
|
||||
"steps": 30,
|
||||
"denoise": 1,
|
||||
"model": [
|
||||
"63",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "BasicScheduler",
|
||||
"_meta": {
|
||||
"title": "BasicScheduler"
|
||||
}
|
||||
},
|
||||
"25": {
|
||||
"inputs": {
|
||||
"noise_seed": 817211431292667
|
||||
},
|
||||
"class_type": "RandomNoise",
|
||||
"_meta": {
|
||||
"title": "RandomNoise"
|
||||
}
|
||||
},
|
||||
"26": {
|
||||
"inputs": {
|
||||
"guidance": 10,
|
||||
"conditioning": [
|
||||
"6",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "FluxGuidance",
|
||||
"_meta": {
|
||||
"title": "FluxGuidance"
|
||||
}
|
||||
},
|
||||
"27": {
|
||||
"inputs": {
|
||||
"width": 768,
|
||||
"height": 1024,
|
||||
"batch_size": 1
|
||||
},
|
||||
"class_type": "EmptySD3LatentImage",
|
||||
"_meta": {
|
||||
"title": "EmptySD3LatentImage"
|
||||
}
|
||||
},
|
||||
"45": {
|
||||
"inputs": {
|
||||
"pulid_file": "pulid_flux_v0.9.1.safetensors"
|
||||
},
|
||||
"class_type": "PulidFluxModelLoader",
|
||||
"_meta": {
|
||||
"title": "Load PuLID Flux Model"
|
||||
}
|
||||
},
|
||||
"47": {
|
||||
"inputs": {
|
||||
"model": [
|
||||
"62",
|
||||
0
|
||||
],
|
||||
"conditioning": [
|
||||
"26",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "BasicGuider",
|
||||
"_meta": {
|
||||
"title": "BasicGuider"
|
||||
}
|
||||
},
|
||||
"48": {
|
||||
"inputs": {
|
||||
"noise": [
|
||||
"25",
|
||||
0
|
||||
],
|
||||
"guider": [
|
||||
"47",
|
||||
0
|
||||
],
|
||||
"sampler": [
|
||||
"16",
|
||||
0
|
||||
],
|
||||
"sigmas": [
|
||||
"17",
|
||||
0
|
||||
],
|
||||
"latent_image": [
|
||||
"27",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "SamplerCustomAdvanced",
|
||||
"_meta": {
|
||||
"title": "SamplerCustomAdvanced"
|
||||
}
|
||||
},
|
||||
"49": {
|
||||
"inputs": {
|
||||
"samples": [
|
||||
"48",
|
||||
0
|
||||
],
|
||||
"vae": [
|
||||
"10",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "VAEDecode",
|
||||
"_meta": {
|
||||
"title": "VAE Decode"
|
||||
}
|
||||
},
|
||||
"51": {
|
||||
"inputs": {},
|
||||
"class_type": "PulidFluxEvaClipLoader",
|
||||
"_meta": {
|
||||
"title": "Load Eva Clip (PuLID Flux)"
|
||||
}
|
||||
},
|
||||
"53": {
|
||||
"inputs": {
|
||||
"provider": "CUDA"
|
||||
},
|
||||
"class_type": "PulidFluxInsightFaceLoader",
|
||||
"_meta": {
|
||||
"title": "Load InsightFace (PuLID Flux)"
|
||||
}
|
||||
},
|
||||
"62": {
|
||||
"inputs": {
|
||||
"weight": 1.0000000000000002,
|
||||
"start_at": 0,
|
||||
"end_at": 1,
|
||||
"model": [
|
||||
"68",
|
||||
0
|
||||
],
|
||||
"pulid_flux": [
|
||||
"45",
|
||||
0
|
||||
],
|
||||
"eva_clip": [
|
||||
"51",
|
||||
0
|
||||
],
|
||||
"face_analysis": [
|
||||
"53",
|
||||
0
|
||||
],
|
||||
"image": [
|
||||
"93",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "ApplyPulidFlux",
|
||||
"_meta": {
|
||||
"title": "Apply PuLID Flux"
|
||||
}
|
||||
},
|
||||
"63": {
|
||||
"inputs": {
|
||||
"unet_name": "flux1-dev-fp8.safetensors",
|
||||
"weight_dtype": "fp8_e4m3fn"
|
||||
},
|
||||
"class_type": "UNETLoader",
|
||||
"_meta": {
|
||||
"title": "Load Diffusion Model"
|
||||
}
|
||||
},
|
||||
"64": {
|
||||
"inputs": {
|
||||
"clip_name1": "flux/t5xxl_fp16.safetensors",
|
||||
"clip_name2": "ViT-L-14-TEXT-detail-improved-hiT-GmP-HF.safetensors",
|
||||
"type": "flux",
|
||||
"device": "default"
|
||||
},
|
||||
"class_type": "DualCLIPLoader",
|
||||
"_meta": {
|
||||
"title": "DualCLIPLoader"
|
||||
}
|
||||
},
|
||||
"65": {
|
||||
"inputs": {
|
||||
"filename_prefix": "ComfyUI",
|
||||
"images": [
|
||||
"49",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "SaveImage",
|
||||
"_meta": {
|
||||
"title": "Save Image"
|
||||
}
|
||||
},
|
||||
"68": {
|
||||
"inputs": {
|
||||
"PowerLoraLoaderHeaderWidget": {
|
||||
"type": "PowerLoraLoaderHeaderWidget"
|
||||
},
|
||||
"➕ Add Lora": "",
|
||||
"model": [
|
||||
"63",
|
||||
0
|
||||
],
|
||||
"clip": [
|
||||
"64",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "Power Lora Loader (rgthree)",
|
||||
"_meta": {
|
||||
"title": "Power Lora Loader (rgthree)"
|
||||
}
|
||||
},
|
||||
"86": {
|
||||
"inputs": {
|
||||
"anything": [
|
||||
"17",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "easy cleanGpuUsed",
|
||||
"_meta": {
|
||||
"title": "Clean VRAM Used"
|
||||
}
|
||||
},
|
||||
"87": {
|
||||
"inputs": {
|
||||
"anything": [
|
||||
"68",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "easy cleanGpuUsed",
|
||||
"_meta": {
|
||||
"title": "Clean VRAM Used"
|
||||
}
|
||||
},
|
||||
"88": {
|
||||
"inputs": {
|
||||
"anything": [
|
||||
"62",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "easy cleanGpuUsed",
|
||||
"_meta": {
|
||||
"title": "Clean VRAM Used"
|
||||
}
|
||||
},
|
||||
"89": {
|
||||
"inputs": {
|
||||
"anything": [
|
||||
"47",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "easy cleanGpuUsed",
|
||||
"_meta": {
|
||||
"title": "Clean VRAM Used"
|
||||
}
|
||||
},
|
||||
"90": {
|
||||
"inputs": {
|
||||
"anything": [
|
||||
"48",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "easy cleanGpuUsed",
|
||||
"_meta": {
|
||||
"title": "Clean VRAM Used"
|
||||
}
|
||||
},
|
||||
"91": {
|
||||
"inputs": {
|
||||
"anything": [
|
||||
"49",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "easy cleanGpuUsed",
|
||||
"_meta": {
|
||||
"title": "Clean VRAM Used"
|
||||
}
|
||||
},
|
||||
"92": {
|
||||
"inputs": {
|
||||
"anything": [
|
||||
"49",
|
||||
0
|
||||
]
|
||||
},
|
||||
"class_type": "easy clearCacheAll",
|
||||
"_meta": {
|
||||
"title": "Clear Cache All"
|
||||
}
|
||||
},
|
||||
"93": {
|
||||
"inputs": {
|
||||
"image": "qwerqwe.jpg"
|
||||
},
|
||||
"class_type": "LoadImage",
|
||||
"_meta": {
|
||||
"title": "Load Image"
|
||||
}
|
||||
}
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user