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:
2025-11-22 15:30:08 +01:00
parent 19d82108b0
commit 2213ed3c85
17 changed files with 3727 additions and 300 deletions

View File

@@ -1,21 +1,134 @@
{
"last_node_id": 6,
"nodes": [
{"id": 1, "type": "MusicGenLoader", "pos": [50, 100], "widgets_values": ["facebook/musicgen-large"], "title": "MusicGen Large Loader"},
{"id": 2, "type": "MusicGenTextEncode", "pos": [400, 100], "widgets_values": ["Upbeat electronic dance music"], "title": "API Music Prompt"},
{"id": 3, "type": "MusicGenSampler", "pos": [750, 100], "widgets_values": [42, "fixed", 30.0, 250, 3.0], "title": "MusicGen Sampler"},
{"id": 4, "type": "AudioSave", "pos": [1100, 100], "widgets_values": ["musicgen_large_output", "wav"], "title": "API Audio Output"}
{
"id": 1,
"type": "MusicGenLoader",
"pos": [
50,
100
],
"widgets_values": [
"facebook/musicgen-large"
],
"title": "MusicGen Large Loader",
"flags": {},
"order": 0,
"mode": 0,
"properties": {
"Node name for S&R": "MusicGenLoader"
},
"size": {
"0": 350,
"1": 100
}
},
{
"id": 2,
"type": "MusicGenTextEncode",
"pos": [
400,
100
],
"widgets_values": [
"Upbeat electronic dance music"
],
"title": "API Music Prompt",
"flags": {},
"order": 1,
"mode": 0,
"properties": {
"Node name for S&R": "MusicGenTextEncode"
},
"size": {
"0": 400,
"1": 200
}
},
{
"id": 3,
"type": "MusicGenSampler",
"pos": [
750,
100
],
"widgets_values": [
42,
"fixed",
30.0,
250,
3.0
],
"title": "MusicGen Sampler",
"flags": {},
"order": 2,
"mode": 0,
"properties": {
"Node name for S&R": "MusicGenSampler"
},
"size": {
"0": 315,
"1": 474
}
},
{
"id": 4,
"type": "AudioSave",
"pos": [
1100,
100
],
"widgets_values": [
"musicgen_large_output",
"wav"
],
"title": "API Audio Output",
"flags": {},
"order": 3,
"mode": 0,
"properties": {
"Node name for S&R": "AudioSave"
},
"size": {
"0": 315,
"1": 100
}
}
],
"extra": {
"workflow_info": {
"name": "MusicGen Large Text-to-Music",
"version": "1.0.0",
"category": "text-to-music",
"tags": ["musicgen", "large", "t2m"],
"requirements": {"models": ["musicgen-large"], "custom_nodes": ["comfyui-sound-lab"], "vram_min": "16GB"},
"parameters": {"prompt": {"node_id": 2, "type": "string"}, "duration": {"node_id": 3, "default": 30.0}},
"performance": {"avg_generation_time": "45-70 seconds", "vram_usage": "~14-16GB"}
"tags": [
"musicgen",
"large",
"t2m"
],
"requirements": {
"models": [
"musicgen-large"
],
"custom_nodes": [
"comfyui-sound-lab"
],
"vram_min": "16GB"
},
"parameters": {
"prompt": {
"node_id": 2,
"type": "string"
},
"duration": {
"node_id": 3,
"default": 30.0
}
},
"performance": {
"avg_generation_time": "45-70 seconds",
"vram_usage": "~14-16GB"
}
}
},
"version": 0.4
}
}

View File

@@ -1,21 +1,134 @@
{
"last_node_id": 6,
"nodes": [
{"id": 1, "type": "MusicGenLoader", "pos": [50, 100], "widgets_values": ["facebook/musicgen-medium"], "title": "MusicGen Medium Loader"},
{"id": 2, "type": "MusicGenTextEncode", "pos": [400, 100], "widgets_values": ["Upbeat electronic dance music"], "title": "API Music Prompt"},
{"id": 3, "type": "MusicGenSampler", "pos": [750, 100], "widgets_values": [42, "fixed", 30.0, 250, 3.0], "title": "MusicGen Sampler"},
{"id": 4, "type": "AudioSave", "pos": [1100, 100], "widgets_values": ["musicgen_medium_output", "wav"], "title": "API Audio Output"}
{
"id": 1,
"type": "MusicGenLoader",
"pos": [
50,
100
],
"widgets_values": [
"facebook/musicgen-medium"
],
"title": "MusicGen Medium Loader",
"flags": {},
"order": 0,
"mode": 0,
"properties": {
"Node name for S&R": "MusicGenLoader"
},
"size": {
"0": 350,
"1": 100
}
},
{
"id": 2,
"type": "MusicGenTextEncode",
"pos": [
400,
100
],
"widgets_values": [
"Upbeat electronic dance music"
],
"title": "API Music Prompt",
"flags": {},
"order": 1,
"mode": 0,
"properties": {
"Node name for S&R": "MusicGenTextEncode"
},
"size": {
"0": 400,
"1": 200
}
},
{
"id": 3,
"type": "MusicGenSampler",
"pos": [
750,
100
],
"widgets_values": [
42,
"fixed",
30.0,
250,
3.0
],
"title": "MusicGen Sampler",
"flags": {},
"order": 2,
"mode": 0,
"properties": {
"Node name for S&R": "MusicGenSampler"
},
"size": {
"0": 315,
"1": 474
}
},
{
"id": 4,
"type": "AudioSave",
"pos": [
1100,
100
],
"widgets_values": [
"musicgen_medium_output",
"wav"
],
"title": "API Audio Output",
"flags": {},
"order": 3,
"mode": 0,
"properties": {
"Node name for S&R": "AudioSave"
},
"size": {
"0": 315,
"1": 100
}
}
],
"extra": {
"workflow_info": {
"name": "MusicGen Medium Text-to-Music",
"version": "1.0.0",
"category": "text-to-music",
"tags": ["musicgen", "medium", "t2m"],
"requirements": {"models": ["musicgen-medium"], "custom_nodes": ["comfyui-sound-lab"], "vram_min": "10GB"},
"parameters": {"prompt": {"node_id": 2, "type": "string"}, "duration": {"node_id": 3, "default": 30.0}},
"performance": {"avg_generation_time": "25-40 seconds", "vram_usage": "~8-10GB"}
"tags": [
"musicgen",
"medium",
"t2m"
],
"requirements": {
"models": [
"musicgen-medium"
],
"custom_nodes": [
"comfyui-sound-lab"
],
"vram_min": "10GB"
},
"parameters": {
"prompt": {
"node_id": 2,
"type": "string"
},
"duration": {
"node_id": 3,
"default": 30.0
}
},
"performance": {
"avg_generation_time": "25-40 seconds",
"vram_usage": "~8-10GB"
}
}
},
"version": 0.4
}
}

View File

@@ -1,22 +1,161 @@
{
"last_node_id": 7,
"nodes": [
{"id": 1, "type": "LoadAudio", "pos": [50, 100], "widgets_values": ["melody_reference.wav"], "title": "API Melody Reference"},
{"id": 2, "type": "MusicGenLoader", "pos": [50, 350], "widgets_values": ["facebook/musicgen-melody"], "title": "MusicGen Melody Loader"},
{"id": 3, "type": "MusicGenTextEncode", "pos": [400, 100], "widgets_values": ["Electronic music following the melody"], "title": "API Music Prompt"},
{"id": 4, "type": "MusicGenMelodySampler", "pos": [750, 100], "widgets_values": [42, "fixed", 30.0, 250, 3.0], "title": "MusicGen Melody Sampler"},
{"id": 5, "type": "AudioSave", "pos": [1100, 100], "widgets_values": ["musicgen_melody_output", "wav"], "title": "API Audio Output"}
{
"id": 1,
"type": "LoadAudio",
"pos": [
50,
100
],
"widgets_values": [
"melody_reference.wav"
],
"title": "API Melody Reference",
"flags": {},
"order": 0,
"mode": 0,
"properties": {
"Node name for S&R": "LoadAudio"
},
"size": {
"0": 350,
"1": 100
}
},
{
"id": 2,
"type": "MusicGenLoader",
"pos": [
50,
350
],
"widgets_values": [
"facebook/musicgen-melody"
],
"title": "MusicGen Melody Loader",
"flags": {},
"order": 1,
"mode": 0,
"properties": {
"Node name for S&R": "MusicGenLoader"
},
"size": {
"0": 350,
"1": 100
}
},
{
"id": 3,
"type": "MusicGenTextEncode",
"pos": [
400,
100
],
"widgets_values": [
"Electronic music following the melody"
],
"title": "API Music Prompt",
"flags": {},
"order": 2,
"mode": 0,
"properties": {
"Node name for S&R": "MusicGenTextEncode"
},
"size": {
"0": 400,
"1": 200
}
},
{
"id": 4,
"type": "MusicGenMelodySampler",
"pos": [
750,
100
],
"widgets_values": [
42,
"fixed",
30.0,
250,
3.0
],
"title": "MusicGen Melody Sampler",
"flags": {},
"order": 3,
"mode": 0,
"properties": {
"Node name for S&R": "MusicGenMelodySampler"
},
"size": {
"0": 315,
"1": 474
}
},
{
"id": 5,
"type": "AudioSave",
"pos": [
1100,
100
],
"widgets_values": [
"musicgen_melody_output",
"wav"
],
"title": "API Audio Output",
"flags": {},
"order": 4,
"mode": 0,
"properties": {
"Node name for S&R": "AudioSave"
},
"size": {
"0": 315,
"1": 100
}
}
],
"extra": {
"workflow_info": {
"name": "MusicGen Melody Text-to-Music",
"version": "1.0.0",
"category": "text-to-music",
"tags": ["musicgen", "melody", "melody-conditioning", "t2m"],
"requirements": {"models": ["musicgen-melody"], "custom_nodes": ["comfyui-sound-lab"], "vram_min": "12GB"},
"parameters": {"melody_audio": {"node_id": 1, "type": "audio"}, "prompt": {"node_id": 3, "type": "string"}, "duration": {"node_id": 4, "default": 30.0}},
"performance": {"avg_generation_time": "35-55 seconds", "vram_usage": "~10-12GB"}
"tags": [
"musicgen",
"melody",
"melody-conditioning",
"t2m"
],
"requirements": {
"models": [
"musicgen-melody"
],
"custom_nodes": [
"comfyui-sound-lab"
],
"vram_min": "12GB"
},
"parameters": {
"melody_audio": {
"node_id": 1,
"type": "audio"
},
"prompt": {
"node_id": 3,
"type": "string"
},
"duration": {
"node_id": 4,
"default": 30.0
}
},
"performance": {
"avg_generation_time": "35-55 seconds",
"vram_usage": "~10-12GB"
}
}
},
"version": 0.4
}
}

View File

@@ -1,21 +1,134 @@
{
"last_node_id": 6,
"nodes": [
{"id": 1, "type": "MusicGenLoader", "pos": [50, 100], "widgets_values": ["facebook/musicgen-small"], "title": "MusicGen Small Loader"},
{"id": 2, "type": "MusicGenTextEncode", "pos": [400, 100], "widgets_values": ["Upbeat electronic dance music"], "title": "API Music Prompt"},
{"id": 3, "type": "MusicGenSampler", "pos": [750, 100], "widgets_values": [42, "fixed", 30.0, 250, 3.0], "title": "MusicGen Sampler"},
{"id": 4, "type": "AudioSave", "pos": [1100, 100], "widgets_values": ["musicgen_small_output", "wav"], "title": "API Audio Output"}
{
"id": 1,
"type": "MusicGenLoader",
"pos": [
50,
100
],
"widgets_values": [
"facebook/musicgen-small"
],
"title": "MusicGen Small Loader",
"flags": {},
"order": 0,
"mode": 0,
"properties": {
"Node name for S&R": "MusicGenLoader"
},
"size": {
"0": 350,
"1": 100
}
},
{
"id": 2,
"type": "MusicGenTextEncode",
"pos": [
400,
100
],
"widgets_values": [
"Upbeat electronic dance music"
],
"title": "API Music Prompt",
"flags": {},
"order": 1,
"mode": 0,
"properties": {
"Node name for S&R": "MusicGenTextEncode"
},
"size": {
"0": 400,
"1": 200
}
},
{
"id": 3,
"type": "MusicGenSampler",
"pos": [
750,
100
],
"widgets_values": [
42,
"fixed",
30.0,
250,
3.0
],
"title": "MusicGen Sampler",
"flags": {},
"order": 2,
"mode": 0,
"properties": {
"Node name for S&R": "MusicGenSampler"
},
"size": {
"0": 315,
"1": 474
}
},
{
"id": 4,
"type": "AudioSave",
"pos": [
1100,
100
],
"widgets_values": [
"musicgen_small_output",
"wav"
],
"title": "API Audio Output",
"flags": {},
"order": 3,
"mode": 0,
"properties": {
"Node name for S&R": "AudioSave"
},
"size": {
"0": 315,
"1": 100
}
}
],
"extra": {
"workflow_info": {
"name": "MusicGen Small Text-to-Music",
"version": "1.0.0",
"category": "text-to-music",
"tags": ["musicgen", "small", "t2m"],
"requirements": {"models": ["musicgen-small"], "custom_nodes": ["comfyui-sound-lab"], "vram_min": "6GB"},
"parameters": {"prompt": {"node_id": 2, "type": "string"}, "duration": {"node_id": 3, "default": 30.0}},
"performance": {"avg_generation_time": "15-25 seconds", "vram_usage": "~4-6GB"}
"tags": [
"musicgen",
"small",
"t2m"
],
"requirements": {
"models": [
"musicgen-small"
],
"custom_nodes": [
"comfyui-sound-lab"
],
"vram_min": "6GB"
},
"parameters": {
"prompt": {
"node_id": 2,
"type": "string"
},
"duration": {
"node_id": 3,
"default": 30.0
}
},
"performance": {
"avg_generation_time": "15-25 seconds",
"vram_usage": "~4-6GB"
}
}
},
"version": 0.4
}
}