Files
pymss-project-comfy-mss/examples/example_mss_separate.json
Sucial a9cefc5f73 fix(comfy-mss): secure audio paths and restore localized upload UI
- Removed the unsafe `PymssLoadAudioBatch` node and its related registrations, locale entries, and example workflow.
- Kept the `Upload Audio` button, but restricted `/comfy-mss/upload-audio` to local clients only (`comfy_mss/services/routes.py:30-36`).
- Uploads are always saved under ComfyUI's input directory, with filename validation and `realpath`/`commonpath` checks to prevent path traversal.
- Migrated node and button translations to ComfyUI's official locale system using `locales/<language>/main.json` and `/i18n`.
2026-09-04 23:08:43 +08:00

1 line
10 KiB
JSON

{"id":"09d578b1-3208-4480-8bf6-3de9e057058d","revision":0,"last_node_id":14,"last_link_id":31,"nodes":[{"id":3,"type":"PreviewAudio","pos":[825.8336893765264,-676.1558864526462],"size":[270,88],"flags":{},"order":2,"mode":0,"inputs":[{"color_off":"#22c55e","color_on":"#22c55e","localized_name":"audio","name":"audio","type":"AUDIO","link":1},{"localized_name":"audioUI","name":"audioUI","type":"AUDIO_UI","widget":{"name":"audioUI"},"link":null}],"outputs":[],"properties":{"cnr_id":"comfy-core","ver":"0.22.0","Node name for S&R":"PreviewAudio"},"widgets_values":[]},{"id":5,"type":"PreviewAudio","pos":[1220.7336893765262,-675.055886452645],"size":[270,88],"flags":{},"order":4,"mode":0,"inputs":[{"color_off":"#22c55e","color_on":"#22c55e","localized_name":"audio","name":"audio","type":"AUDIO","link":22},{"localized_name":"audioUI","name":"audioUI","type":"AUDIO_UI","widget":{"name":"audioUI"},"link":null}],"outputs":[],"properties":{"cnr_id":"comfy-core","ver":"0.22.0","Node name for S&R":"PreviewAudio"},"widgets_values":[]},{"id":6,"type":"PreviewAudio","pos":[1218.5336893765266,-360.4558864526452],"size":[270,88],"flags":{},"order":6,"mode":0,"inputs":[{"color_off":"#22c55e","color_on":"#22c55e","localized_name":"audio","name":"audio","type":"AUDIO","link":31},{"localized_name":"audioUI","name":"audioUI","type":"AUDIO_UI","widget":{"name":"audioUI"},"link":null}],"outputs":[],"properties":{"cnr_id":"comfy-core","ver":"0.22.0","Node name for S&R":"PreviewAudio"},"widgets_values":[]},{"id":13,"type":"pymss_save_audio","pos":[1534.3943505335517,-401.07051455182034],"size":[260,126],"flags":{},"order":9,"mode":0,"inputs":[{"color_off":"#22c55e","color_on":"#22c55e","label":"audio","localized_name":"audio","name":"audio","type":"AUDIO","link":30},{"color_off":"#f2c94c","color_on":"#f2c94c","label":"filename","localized_name":"filename","name":"filename","shape":7,"type":"STRING","link":17},{"localized_name":"output_format","name":"output_format","type":"COMBO","widget":{"name":"output_format"},"link":null},{"localized_name":"sample_rate","name":"sample_rate","type":"COMBO","widget":{"name":"sample_rate"},"link":null},{"localized_name":"wav_bit_depth","name":"wav_bit_depth","type":"COMBO","widget":{"name":"wav_bit_depth"},"link":null},{"localized_name":"flac_bit_depth","name":"flac_bit_depth","type":"COMBO","widget":{"name":"flac_bit_depth"},"link":null},{"localized_name":"mp3_bit_rate","name":"mp3_bit_rate","type":"COMBO","widget":{"name":"mp3_bit_rate"},"link":null}],"outputs":[],"properties":{"aux_id":"pymss-project/comfy-mss","ver":"e955f1aa70b3d456ac291ed331f5854af65ef257","Node name for S&R":"pymss_save_audio"},"widgets_values":["wav","44100","FLOAT","PCM_24","320k"]},{"id":12,"type":"pymss_save_audio","pos":[1532.194350533554,-675.0052252956217],"size":[260,126],"flags":{},"order":8,"mode":0,"inputs":[{"color_off":"#22c55e","color_on":"#22c55e","label":"audio","localized_name":"audio","name":"audio","type":"AUDIO","link":23},{"color_off":"#f2c94c","color_on":"#f2c94c","label":"filename","localized_name":"filename","name":"filename","shape":7,"type":"STRING","link":15},{"localized_name":"output_format","name":"output_format","type":"COMBO","widget":{"name":"output_format"},"link":null},{"localized_name":"sample_rate","name":"sample_rate","type":"COMBO","widget":{"name":"sample_rate"},"link":null},{"localized_name":"wav_bit_depth","name":"wav_bit_depth","type":"COMBO","widget":{"name":"wav_bit_depth"},"link":null},{"localized_name":"flac_bit_depth","name":"flac_bit_depth","type":"COMBO","widget":{"name":"flac_bit_depth"},"link":null},{"localized_name":"mp3_bit_rate","name":"mp3_bit_rate","type":"COMBO","widget":{"name":"mp3_bit_rate"},"link":null}],"outputs":[],"properties":{"aux_id":"pymss-project/comfy-mss","ver":"e955f1aa70b3d456ac291ed331f5854af65ef257","Node name for S&R":"pymss_save_audio"},"widgets_values":["wav","44100","FLOAT","PCM_24","320k"]},{"id":4,"type":"pymss_mss_params","pos":[447.4336893765269,-449.5558864526453],"size":[260,178],"flags":{},"order":0,"mode":0,"inputs":[{"localized_name":"batch_size","name":"batch_size","type":"INT","widget":{"name":"batch_size"},"link":null},{"color_off":"#f2c94c","color_on":"#f2c94c","localized_name":"overlap_size","name":"overlap_size","type":"STRING","widget":{"name":"overlap_size"},"link":null},{"color_off":"#f2c94c","color_on":"#f2c94c","localized_name":"chunk_size","name":"chunk_size","type":"STRING","widget":{"name":"chunk_size"},"link":null},{"localized_name":"normalize","name":"normalize","type":"BOOLEAN","widget":{"name":"normalize"},"link":null},{"localized_name":"enable_tta","name":"enable_tta","type":"BOOLEAN","widget":{"name":"enable_tta"},"link":null},{"localized_name":"standardize","name":"standardize","type":"BOOLEAN","widget":{"name":"standardize"},"link":null}],"outputs":[{"color_off":"#f472b6","color_on":"#f472b6","label":"mss_params","localized_name":"mss_params","name":"mss_params","type":"PYMSS_MSS_PARAMS","links":[28]}],"properties":{"aux_id":"pymss-project/comfy-mss","ver":"e955f1aa70b3d456ac291ed331f5854af65ef257","Node name for S&R":"pymss_mss_params"},"widgets_values":[1,"Default","Default",false,false,false]},{"id":2,"type":"pymss_load_audio","pos":[451.8336893765268,-672.8558864526451],"size":[260,102],"flags":{},"order":1,"mode":0,"inputs":[{"localized_name":"audio","name":"audio","type":"COMBO","widget":{"name":"audio"},"link":null},{"color_off":"#f2c94c","color_on":"#f2c94c","localized_name":"input_name","name":"input_name","shape":7,"type":"STRING","widget":{"name":"input_name"},"link":null}],"outputs":[{"color_off":"#22c55e","color_on":"#22c55e","label":"audio","localized_name":"audio","name":"audio","type":"AUDIO","links":[1,29]},{"color_off":"#f2c94c","color_on":"#f2c94c","label":"audio_name","localized_name":"audio_name","name":"audio_name","type":"STRING","links":[9,25]}],"properties":{"aux_id":"pymss-project/comfy-mss","ver":"e955f1aa70b3d456ac291ed331f5854af65ef257","Node name for S&R":"pymss_load_audio"},"widgets_values":["input.wav",null,null]},{"id":7,"type":"StringConcatenate","pos":[1313.7936893765288,-513.4658864526434],"size":[400,200],"flags":{"collapsed":true},"order":5,"mode":0,"inputs":[{"color_off":"#f2c94c","color_on":"#f2c94c","localized_name":"string_a","name":"string_a","type":"STRING","widget":{"name":"string_a"},"link":25},{"color_off":"#f2c94c","color_on":"#f2c94c","localized_name":"string_b","name":"string_b","type":"STRING","widget":{"name":"string_b"},"link":26},{"color_off":"#f2c94c","color_on":"#f2c94c","localized_name":"delimiter","name":"delimiter","type":"STRING","widget":{"name":"delimiter"},"link":null}],"outputs":[{"color_off":"#f2c94c","color_on":"#f2c94c","localized_name":"STRING","name":"STRING","type":"STRING","links":[15]}],"properties":{"cnr_id":"comfy-core","ver":"0.22.0","Node name for S&R":"StringConcatenate"},"widgets_values":["","","_"]},{"id":8,"type":"StringConcatenate","pos":[1314.0136893765239,-448.0158864526452],"size":[400,200],"flags":{"collapsed":true},"order":7,"mode":0,"inputs":[{"color_off":"#f2c94c","color_on":"#f2c94c","localized_name":"string_a","name":"string_a","type":"STRING","widget":{"name":"string_a"},"link":9},{"color_off":"#f2c94c","color_on":"#f2c94c","localized_name":"string_b","name":"string_b","type":"STRING","widget":{"name":"string_b"},"link":27},{"color_off":"#f2c94c","color_on":"#f2c94c","localized_name":"delimiter","name":"delimiter","type":"STRING","widget":{"name":"delimiter"},"link":null}],"outputs":[{"color_off":"#f2c94c","color_on":"#f2c94c","localized_name":"STRING","name":"STRING","type":"STRING","links":[17]}],"properties":{"cnr_id":"comfy-core","ver":"0.22.0","Node name for S&R":"StringConcatenate"},"widgets_values":["","","_"]},{"id":14,"type":"pymss_mss_separate","pos":[764.1719874374528,-481.8367022539231],"size":[420,262],"flags":{},"order":3,"mode":0,"inputs":[{"color_off":"#22c55e","color_on":"#22c55e","label":"audio","localized_name":"audio","name":"audio","type":"AUDIO","link":29},{"color_off":"#f472b6","color_on":"#f472b6","label":"params","localized_name":"params","name":"params","shape":7,"type":"PYMSS_MSS_PARAMS","link":28},{"localized_name":"model_name","name":"model_name","type":"COMBO","widget":{"name":"model_name"},"link":null},{"localized_name":"device","name":"device","type":"COMBO","widget":{"name":"device"},"link":null},{"localized_name":"download_missing","name":"download_missing","type":"BOOLEAN","widget":{"name":"download_missing"},"link":null},{"localized_name":"source","name":"source","type":"COMBO","widget":{"name":"source"},"link":null},{"color_off":"#f2c94c","color_on":"#f2c94c","localized_name":"device_ids","name":"device_ids","shape":7,"type":"STRING","widget":{"name":"device_ids"},"link":null},{"localized_name":"debug","name":"debug","shape":7,"type":"BOOLEAN","widget":{"name":"debug"},"link":null}],"outputs":[{"color_off":"#22c55e","color_on":"#22c55e","label":"Vocals (Audio)","localized_name":"stem_1 (Audio)","name":"Vocals (Audio)","type":"AUDIO","links":[22,23]},{"color_off":"#f2c94c","color_on":"#f2c94c","label":"Vocals (String)","localized_name":"stem_1 (String)","name":"Vocals (String)","type":"STRING","links":[26]},{"color_off":"#22c55e","color_on":"#22c55e","label":"Instrumental (Audio)","localized_name":"stem_2 (Audio)","name":"Instrumental (Audio)","type":"AUDIO","links":[30,31]},{"color_off":"#f2c94c","color_on":"#f2c94c","label":"Instrumental (String)","localized_name":"stem_2 (String)","name":"Instrumental (String)","type":"STRING","links":[27]}],"properties":{"aux_id":"pymss-project/comfy-mss","ver":"e955f1aa70b3d456ac291ed331f5854af65ef257","Node name for S&R":"pymss_mss_separate"},"widgets_values":["[karaoke] mel_band_roformer_karaoke_becruily.ckpt","auto",true,"modelscope","0",false,null]}],"links":[[1,2,0,3,0,"AUDIO"],[9,2,1,8,0,"STRING"],[15,7,0,12,1,"STRING"],[17,8,0,13,1,"STRING"],[22,14,0,5,0,"AUDIO"],[23,14,0,12,0,"AUDIO"],[25,2,1,7,0,"STRING"],[26,14,1,7,1,"STRING"],[27,14,3,8,1,"STRING"],[28,4,0,14,1,"PYMSS_MSS_PARAMS"],[29,2,0,14,0,"AUDIO"],[30,14,2,13,0,"AUDIO"],[31,14,2,6,0,"AUDIO"]],"groups":[],"config":{},"extra":{"ds":{"scale":0.8264462809917354,"offset":[-298.32198743745386,934.3767022539295]}},"version":0.4}