{ "id": 3, "revision": 0, "last_node_id": 6, "last_link_id": 7, "nodes": [ { "id": 1, "type": "LoadAudio", "pos": [-1600, 200], "size": [315, 100], "flags": {}, "order": 0, "mode": 0, "inputs": [], "outputs": [ { "name": "AUDIO", "type": "AUDIO", "links": [1] } ], "properties": { "cnr_id": "comfy-core", "ver": "0.21.0", "Node name for S&R": "LoadAudio" }, "widgets_values": ["audio.mp3", null, null] }, { "id": 2, "type": "AudioMoodAnalyzer", "pos": [-1150, 0], "size": [576, 820], "flags": {}, "order": 1, "mode": 0, "inputs": [ { "name": "audio", "type": "AUDIO", "link": 1 } ], "outputs": [ { "name": "mood_json", "type": "STRING", "links": [2] }, { "name": "subject_json", "type": "STRING", "links": [3] }, { "name": "environment_prompt", "type": "STRING", "links": null }, { "name": "subject_prompt", "type": "STRING", "links": null }, { "name": "merge_prompt", "type": "STRING", "links": null }, { "name": "summary", "type": "STRING", "links": null } ], "properties": { "cnr_id": "comfyui_fearnworksnodes", "Node name for S&R": "AudioMoodAnalyzer" }, "widgets_values": [ "http://localhost:11434/api/generate", "qwen3:14b", 0.4, 0.8, "Analyze the music as pure sound, not lyrics. Translate sonic qualities into emotional visual direction.", "Enter lyrics or poetic text here to enable subject analysis and composition inference", "", "", "", "", "painterly", "", true, true, true ] }, { "id": 3, "type": "CompositionInferenceNode", "pos": [-450, 200], "size": [430, 200], "flags": {}, "order": 2, "mode": 0, "inputs": [ { "name": "mood_json", "type": "STRING", "link": 2 }, { "name": "subject_json", "type": "STRING", "link": 3 } ], "outputs": [ { "name": "composition_json", "type": "STRING", "links": [4] }, { "name": "composition_prompt", "type": "STRING", "links": [5] }, { "name": "width", "type": "INT", "links": [6] }, { "name": "height", "type": "INT", "links": [7] } ], "properties": { "cnr_id": "comfyui_fearnworksnodes", "Node name for S&R": "CompositionInferenceNode" }, "widgets_values": [ "", "", "http://localhost:11434/api/generate", "qwen3:14b", 0.4, 0.8 ] }, { "id": 4, "type": "PreviewAny", "pos": [100, -100], "size": [430, 350], "flags": {}, "order": 3, "mode": 0, "inputs": [ { "name": "source", "type": "*", "link": 4 } ], "outputs": [ { "name": "STRING", "type": "STRING", "links": null } ], "properties": { "cnr_id": "comfy-core", "ver": "0.21.0", "Node name for S&R": "PreviewAny" }, "widgets_values": [null, null, null], "title": "composition_json" }, { "id": 5, "type": "PreviewAny", "pos": [100, 300], "size": [430, 150], "flags": {}, "order": 4, "mode": 0, "inputs": [ { "name": "source", "type": "*", "link": 5 } ], "outputs": [ { "name": "STRING", "type": "STRING", "links": null } ], "properties": { "cnr_id": "comfy-core", "ver": "0.21.0", "Node name for S&R": "PreviewAny" }, "widgets_values": [null, null, null], "title": "composition_prompt → wire to CLIPTextEncode" }, { "id": 6, "type": "EmptyLatentImage", "pos": [100, 500], "size": [315, 106], "flags": {}, "order": 5, "mode": 0, "inputs": [ { "name": "width", "type": "INT", "link": 6 }, { "name": "height", "type": "INT", "link": 7 } ], "outputs": [ { "name": "LATENT", "type": "LATENT", "links": null } ], "properties": { "cnr_id": "comfy-core", "ver": "0.21.0", "Node name for S&R": "EmptyLatentImage" }, "title": "EmptyLatentImage — wire LATENT to KSampler", "widgets_values": [1024, 1024, 1] } ], "links": [ [1, 1, 0, 2, 0, "AUDIO"], [2, 2, 0, 3, 0, "STRING"], [3, 2, 1, 3, 1, "STRING"], [4, 3, 0, 4, 0, "STRING"], [5, 3, 1, 5, 0, "STRING"], [6, 3, 2, 6, 0, "INT"], [7, 3, 3, 6, 1, "INT"] ], "groups": [], "config": {}, "extra": { "ds": { "scale": 0.6, "offset": [800, 300] } }, "version": 0.4 }