fix: complete ComfyUI workflow schema validation
Fix all 20 production workflows to comply with ComfyUI schema requirements: - Add missing 'flags', 'order', 'mode', 'properties', 'size' fields to all nodes - Update deprecated node names: - AnimateDiffLoader → AnimateDiffLoaderV1 - VHSVideoCombine → VHS_VideoCombine - IPAdapterApply → IPAdapter - IPAdapterApplyFace → IPAdapterFaceID - Remove deprecated nodes: PreviewVideo, SaveVideo - Add fix_workflows.py script for future maintenance Changes: - 16 workflows updated with complete schema - 4 workflows (FLUX, SD3.5) were already valid - All workflows now pass zod schema validation 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -5,8 +5,14 @@
|
||||
{
|
||||
"id": 1,
|
||||
"type": "CheckpointLoaderSimple",
|
||||
"pos": [50, 100],
|
||||
"size": {"0": 350, "1": 100},
|
||||
"pos": [
|
||||
50,
|
||||
100
|
||||
],
|
||||
"size": {
|
||||
"0": 350,
|
||||
"1": 100
|
||||
},
|
||||
"flags": {},
|
||||
"order": 0,
|
||||
"mode": 0,
|
||||
@@ -14,33 +20,48 @@
|
||||
{
|
||||
"name": "MODEL",
|
||||
"type": "MODEL",
|
||||
"links": [1],
|
||||
"links": [
|
||||
1
|
||||
],
|
||||
"slot_index": 0
|
||||
},
|
||||
{
|
||||
"name": "CLIP",
|
||||
"type": "CLIP",
|
||||
"links": [2, 3],
|
||||
"links": [
|
||||
2,
|
||||
3
|
||||
],
|
||||
"slot_index": 1
|
||||
},
|
||||
{
|
||||
"name": "VAE",
|
||||
"type": "VAE",
|
||||
"links": [4],
|
||||
"links": [
|
||||
4
|
||||
],
|
||||
"slot_index": 2
|
||||
}
|
||||
],
|
||||
"properties": {
|
||||
"Node name for S&R": "CheckpointLoaderSimple"
|
||||
},
|
||||
"widgets_values": ["diffusers/stable-diffusion-xl-base-1.0"],
|
||||
"widgets_values": [
|
||||
"diffusers/stable-diffusion-xl-base-1.0"
|
||||
],
|
||||
"title": "SDXL Base Checkpoint Loader"
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"type": "LoadImage",
|
||||
"pos": [50, 300],
|
||||
"size": [315, 314],
|
||||
"pos": [
|
||||
50,
|
||||
300
|
||||
],
|
||||
"size": [
|
||||
315,
|
||||
314
|
||||
],
|
||||
"flags": {},
|
||||
"order": 1,
|
||||
"mode": 0,
|
||||
@@ -48,7 +69,9 @@
|
||||
{
|
||||
"name": "IMAGE",
|
||||
"type": "IMAGE",
|
||||
"links": [11],
|
||||
"links": [
|
||||
11
|
||||
],
|
||||
"shape": 3
|
||||
},
|
||||
{
|
||||
@@ -61,14 +84,23 @@
|
||||
"properties": {
|
||||
"Node name for S&R": "LoadImage"
|
||||
},
|
||||
"widgets_values": ["style_reference.png", "image"],
|
||||
"widgets_values": [
|
||||
"style_reference.png",
|
||||
"image"
|
||||
],
|
||||
"title": "API Style Reference Input"
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"type": "IPAdapterUnifiedLoader",
|
||||
"pos": [450, 100],
|
||||
"size": {"0": 315, "1": 78},
|
||||
"pos": [
|
||||
450,
|
||||
100
|
||||
],
|
||||
"size": {
|
||||
"0": 315,
|
||||
"1": 78
|
||||
},
|
||||
"flags": {},
|
||||
"order": 2,
|
||||
"mode": 0,
|
||||
@@ -88,14 +120,18 @@
|
||||
{
|
||||
"name": "model",
|
||||
"type": "MODEL",
|
||||
"links": [12],
|
||||
"links": [
|
||||
12
|
||||
],
|
||||
"shape": 3,
|
||||
"slot_index": 0
|
||||
},
|
||||
{
|
||||
"name": "ipadapter",
|
||||
"type": "IPADAPTER",
|
||||
"links": [13],
|
||||
"links": [
|
||||
13
|
||||
],
|
||||
"shape": 3,
|
||||
"slot_index": 1
|
||||
}
|
||||
@@ -103,14 +139,22 @@
|
||||
"properties": {
|
||||
"Node name for S&R": "IPAdapterUnifiedLoader"
|
||||
},
|
||||
"widgets_values": ["PLUS (high strength)"],
|
||||
"widgets_values": [
|
||||
"PLUS (high strength)"
|
||||
],
|
||||
"title": "IP-Adapter Loader"
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"type": "IPAdapterApply",
|
||||
"pos": [800, 100],
|
||||
"size": {"0": 315, "1": 258},
|
||||
"type": "IPAdapter",
|
||||
"pos": [
|
||||
800,
|
||||
100
|
||||
],
|
||||
"size": {
|
||||
"0": 315,
|
||||
"1": 258
|
||||
},
|
||||
"flags": {},
|
||||
"order": 3,
|
||||
"mode": 0,
|
||||
@@ -140,7 +184,9 @@
|
||||
{
|
||||
"name": "MODEL",
|
||||
"type": "MODEL",
|
||||
"links": [14],
|
||||
"links": [
|
||||
14
|
||||
],
|
||||
"shape": 3,
|
||||
"slot_index": 0
|
||||
}
|
||||
@@ -148,14 +194,27 @@
|
||||
"properties": {
|
||||
"Node name for S&R": "IPAdapterApply"
|
||||
},
|
||||
"widgets_values": [0.75, 0.0, "original", 0.0, 1.0, false],
|
||||
"widgets_values": [
|
||||
0.75,
|
||||
0.0,
|
||||
"original",
|
||||
0.0,
|
||||
1.0,
|
||||
false
|
||||
],
|
||||
"title": "Apply IP-Adapter Style"
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"type": "CLIPTextEncode",
|
||||
"pos": [450, 400],
|
||||
"size": {"0": 400, "1": 200},
|
||||
"pos": [
|
||||
450,
|
||||
400
|
||||
],
|
||||
"size": {
|
||||
"0": 400,
|
||||
"1": 200
|
||||
},
|
||||
"flags": {},
|
||||
"order": 4,
|
||||
"mode": 0,
|
||||
@@ -170,21 +229,31 @@
|
||||
{
|
||||
"name": "CONDITIONING",
|
||||
"type": "CONDITIONING",
|
||||
"links": [5],
|
||||
"links": [
|
||||
5
|
||||
],
|
||||
"slot_index": 0
|
||||
}
|
||||
],
|
||||
"properties": {
|
||||
"Node name for S&R": "CLIPTextEncode"
|
||||
},
|
||||
"widgets_values": ["A portrait of a person, highly detailed, professional photography"],
|
||||
"widgets_values": [
|
||||
"A portrait of a person, highly detailed, professional photography"
|
||||
],
|
||||
"title": "API Positive Prompt"
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"type": "CLIPTextEncode",
|
||||
"pos": [450, 650],
|
||||
"size": {"0": 400, "1": 200},
|
||||
"pos": [
|
||||
450,
|
||||
650
|
||||
],
|
||||
"size": {
|
||||
"0": 400,
|
||||
"1": 200
|
||||
},
|
||||
"flags": {},
|
||||
"order": 5,
|
||||
"mode": 0,
|
||||
@@ -199,21 +268,31 @@
|
||||
{
|
||||
"name": "CONDITIONING",
|
||||
"type": "CONDITIONING",
|
||||
"links": [6],
|
||||
"links": [
|
||||
6
|
||||
],
|
||||
"slot_index": 0
|
||||
}
|
||||
],
|
||||
"properties": {
|
||||
"Node name for S&R": "CLIPTextEncode"
|
||||
},
|
||||
"widgets_values": ["blurry, low quality, distorted, deformed"],
|
||||
"widgets_values": [
|
||||
"blurry, low quality, distorted, deformed"
|
||||
],
|
||||
"title": "API Negative Prompt"
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"type": "EmptyLatentImage",
|
||||
"pos": [800, 450],
|
||||
"size": {"0": 315, "1": 106},
|
||||
"pos": [
|
||||
800,
|
||||
450
|
||||
],
|
||||
"size": {
|
||||
"0": 315,
|
||||
"1": 106
|
||||
},
|
||||
"flags": {},
|
||||
"order": 6,
|
||||
"mode": 0,
|
||||
@@ -221,21 +300,33 @@
|
||||
{
|
||||
"name": "LATENT",
|
||||
"type": "LATENT",
|
||||
"links": [7],
|
||||
"links": [
|
||||
7
|
||||
],
|
||||
"slot_index": 0
|
||||
}
|
||||
],
|
||||
"properties": {
|
||||
"Node name for S&R": "EmptyLatentImage"
|
||||
},
|
||||
"widgets_values": [1024, 1024, 1],
|
||||
"widgets_values": [
|
||||
1024,
|
||||
1024,
|
||||
1
|
||||
],
|
||||
"title": "API Latent Image Config"
|
||||
},
|
||||
{
|
||||
"id": 8,
|
||||
"type": "KSampler",
|
||||
"pos": [1170, 100],
|
||||
"size": {"0": 315, "1": 474},
|
||||
"pos": [
|
||||
1170,
|
||||
100
|
||||
],
|
||||
"size": {
|
||||
"0": 315,
|
||||
"1": 474
|
||||
},
|
||||
"flags": {},
|
||||
"order": 7,
|
||||
"mode": 0,
|
||||
@@ -265,7 +356,9 @@
|
||||
{
|
||||
"name": "LATENT",
|
||||
"type": "LATENT",
|
||||
"links": [8],
|
||||
"links": [
|
||||
8
|
||||
],
|
||||
"slot_index": 0
|
||||
}
|
||||
],
|
||||
@@ -286,8 +379,14 @@
|
||||
{
|
||||
"id": 9,
|
||||
"type": "VAEDecode",
|
||||
"pos": [1540, 100],
|
||||
"size": {"0": 210, "1": 46},
|
||||
"pos": [
|
||||
1540,
|
||||
100
|
||||
],
|
||||
"size": {
|
||||
"0": 210,
|
||||
"1": 46
|
||||
},
|
||||
"flags": {},
|
||||
"order": 8,
|
||||
"mode": 0,
|
||||
@@ -307,7 +406,10 @@
|
||||
{
|
||||
"name": "IMAGE",
|
||||
"type": "IMAGE",
|
||||
"links": [9, 10],
|
||||
"links": [
|
||||
9,
|
||||
10
|
||||
],
|
||||
"slot_index": 0
|
||||
}
|
||||
],
|
||||
@@ -319,8 +421,14 @@
|
||||
{
|
||||
"id": 10,
|
||||
"type": "PreviewImage",
|
||||
"pos": [1800, 100],
|
||||
"size": {"0": 400, "1": 400},
|
||||
"pos": [
|
||||
1800,
|
||||
100
|
||||
],
|
||||
"size": {
|
||||
"0": 400,
|
||||
"1": 400
|
||||
},
|
||||
"flags": {},
|
||||
"order": 9,
|
||||
"mode": 0,
|
||||
@@ -339,8 +447,14 @@
|
||||
{
|
||||
"id": 11,
|
||||
"type": "SaveImage",
|
||||
"pos": [1800, 550],
|
||||
"size": {"0": 400, "1": 100},
|
||||
"pos": [
|
||||
1800,
|
||||
550
|
||||
],
|
||||
"size": {
|
||||
"0": 400,
|
||||
"1": 100
|
||||
},
|
||||
"flags": {},
|
||||
"order": 10,
|
||||
"mode": 0,
|
||||
@@ -354,25 +468,125 @@
|
||||
"properties": {
|
||||
"Node name for S&R": "SaveImage"
|
||||
},
|
||||
"widgets_values": ["ipadapter_style_output"],
|
||||
"widgets_values": [
|
||||
"ipadapter_style_output"
|
||||
],
|
||||
"title": "API Image Output"
|
||||
}
|
||||
],
|
||||
"links": [
|
||||
[1, 1, 0, 3, 0, "MODEL"],
|
||||
[2, 1, 1, 5, 0, "CLIP"],
|
||||
[3, 1, 1, 6, 0, "CLIP"],
|
||||
[4, 1, 2, 9, 1, "VAE"],
|
||||
[5, 5, 0, 8, 1, "CONDITIONING"],
|
||||
[6, 6, 0, 8, 2, "CONDITIONING"],
|
||||
[7, 7, 0, 8, 3, "LATENT"],
|
||||
[8, 8, 0, 9, 0, "LATENT"],
|
||||
[9, 9, 0, 10, 0, "IMAGE"],
|
||||
[10, 9, 0, 11, 0, "IMAGE"],
|
||||
[11, 2, 0, 4, 2, "IMAGE"],
|
||||
[12, 3, 0, 4, 3, "MODEL"],
|
||||
[13, 3, 1, 4, 0, "IPADAPTER"],
|
||||
[14, 4, 0, 8, 0, "MODEL"]
|
||||
[
|
||||
1,
|
||||
1,
|
||||
0,
|
||||
3,
|
||||
0,
|
||||
"MODEL"
|
||||
],
|
||||
[
|
||||
2,
|
||||
1,
|
||||
1,
|
||||
5,
|
||||
0,
|
||||
"CLIP"
|
||||
],
|
||||
[
|
||||
3,
|
||||
1,
|
||||
1,
|
||||
6,
|
||||
0,
|
||||
"CLIP"
|
||||
],
|
||||
[
|
||||
4,
|
||||
1,
|
||||
2,
|
||||
9,
|
||||
1,
|
||||
"VAE"
|
||||
],
|
||||
[
|
||||
5,
|
||||
5,
|
||||
0,
|
||||
8,
|
||||
1,
|
||||
"CONDITIONING"
|
||||
],
|
||||
[
|
||||
6,
|
||||
6,
|
||||
0,
|
||||
8,
|
||||
2,
|
||||
"CONDITIONING"
|
||||
],
|
||||
[
|
||||
7,
|
||||
7,
|
||||
0,
|
||||
8,
|
||||
3,
|
||||
"LATENT"
|
||||
],
|
||||
[
|
||||
8,
|
||||
8,
|
||||
0,
|
||||
9,
|
||||
0,
|
||||
"LATENT"
|
||||
],
|
||||
[
|
||||
9,
|
||||
9,
|
||||
0,
|
||||
10,
|
||||
0,
|
||||
"IMAGE"
|
||||
],
|
||||
[
|
||||
10,
|
||||
9,
|
||||
0,
|
||||
11,
|
||||
0,
|
||||
"IMAGE"
|
||||
],
|
||||
[
|
||||
11,
|
||||
2,
|
||||
0,
|
||||
4,
|
||||
2,
|
||||
"IMAGE"
|
||||
],
|
||||
[
|
||||
12,
|
||||
3,
|
||||
0,
|
||||
4,
|
||||
3,
|
||||
"MODEL"
|
||||
],
|
||||
[
|
||||
13,
|
||||
3,
|
||||
1,
|
||||
4,
|
||||
0,
|
||||
"IPADAPTER"
|
||||
],
|
||||
[
|
||||
14,
|
||||
4,
|
||||
0,
|
||||
8,
|
||||
0,
|
||||
"MODEL"
|
||||
]
|
||||
],
|
||||
"groups": [],
|
||||
"config": {},
|
||||
@@ -383,10 +597,21 @@
|
||||
"author": "RunPod AI Model Orchestrator",
|
||||
"description": "Style transfer using IP-Adapter. Apply the visual style from a reference image to generate new images matching that aesthetic.",
|
||||
"category": "image-to-image",
|
||||
"tags": ["ipadapter", "style-transfer", "i2i", "production", "sdxl"],
|
||||
"tags": [
|
||||
"ipadapter",
|
||||
"style-transfer",
|
||||
"i2i",
|
||||
"production",
|
||||
"sdxl"
|
||||
],
|
||||
"requirements": {
|
||||
"models": ["stable-diffusion-xl-base-1.0", "ip-adapter-plus"],
|
||||
"custom_nodes": ["ComfyUI_IPAdapter_plus"],
|
||||
"models": [
|
||||
"stable-diffusion-xl-base-1.0",
|
||||
"ip-adapter-plus"
|
||||
],
|
||||
"custom_nodes": [
|
||||
"ComfyUI_IPAdapter_plus"
|
||||
],
|
||||
"vram_min": "16GB",
|
||||
"vram_recommended": "24GB"
|
||||
},
|
||||
@@ -497,4 +722,4 @@
|
||||
}
|
||||
},
|
||||
"version": 0.4
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user