1 line
11 KiB
JSON
1 line
11 KiB
JSON
{"id":"56cddc62-4bd0-4b45-9024-e89723d31d29","revision":0,"last_node_id":69,"last_link_id":61,"nodes":[{"id":53,"type":"ResizeImageMaskNode","pos":[-1149.4645894438427,272.8133150072847],"size":[284.8125,106],"flags":{},"order":9,"mode":0,"inputs":[{"localized_name":"input","name":"input","type":"IMAGE,MASK","link":55},{"localized_name":"resize_type","name":"resize_type","type":"COMFY_DYNAMICCOMBO_V3","widget":{"name":"resize_type"},"link":null},{"localized_name":"resize_type.multiplier","name":"resize_type.multiplier","type":"FLOAT","widget":{"name":"resize_type.multiplier"},"link":null},{"localized_name":"scale_method","name":"scale_method","type":"COMBO","widget":{"name":"scale_method"},"link":null}],"outputs":[{"localized_name":"resized","name":"resized","type":"IMAGE","links":[58]}],"properties":{"cnr_id":"comfy-core","ver":"0.8.2","Node name for S&R":"ResizeImageMaskNode"},"widgets_values":["scale by multiplier",2,"area"]},{"id":59,"type":"Note","pos":[-834.6520894438427,792.8133150072847],"size":[421.64103132890114,193.31374717580502],"flags":{},"order":0,"mode":0,"inputs":[],"outputs":[],"title":"Note Ad-hoc Save 'Master\\Clone'","properties":{},"widgets_values":["By sending `filename_main` and `sequence_out` to the next Ad-hoc Save node, the filenames are now `ComfyUI_00001.png` and `ComfyUI_00001_RESIZED.png`, keeping images that are saved in one workflow (original, ADetailed, SEEDVR) in sync.\n\nComfyUI default behaviour, being `ComfyUI_00001.png` - `ComfyUI_RESIZED_00001.png`, which will run out of sync as soon as you decide to skip one 'resize'* "],"color":"#432","bgcolor":"#653"},{"id":60,"type":"Note","pos":[-1538.0937459379834,792.8133150072847],"size":[577.6410157492064,188.75234168042107],"flags":{},"order":1,"mode":0,"inputs":[],"outputs":[],"title":"Note Ad-hoc Save","properties":{},"widgets_values":["Just like Preview - No Save, the Ad-hoc Save node does not automatically save the image to disk.\n(Autosave is default `false`)\n\nSettings will only be used (and sequence will only go up) when:\n- By setting 'autosave' true (save on next workflow run)\n- By manually clicking on the save button, which will save the current image _now_"],"color":"#432","bgcolor":"#653"},{"id":61,"type":"Note","pos":[-2046.8371782027561,806.7829101518406],"size":[445.3328967198888,297.4596007037808],"flags":{},"order":2,"mode":0,"inputs":[],"outputs":[],"title":"Note Preview - No Save","properties":{},"widgets_values":["Default \"Preview\"-nodes store their file in the ``ComfyUI\\temp`` directory, before displaying it to the user. On reload of the page, the image is gone for the client, but it remains in the temp directory on the ComfyUI server. As this directory gets cleared upon ***next launch*** of the ComfyUI instance, the node isnt behaving like an actual disposable preview. And when you dont own the server, you have no influence on those cleanups\n\n\"Preview - No Save\" does not create the file on disk; instead it sends it directly to your browser. On reload of the page, or when the next prompt is run, the preview is gone into the abyss\n - You can opt to connect other image nodes for further processing that you *do* want to save.\n - Added toggle to Resize node to fit the image *OR*` Scale imagesize to fit the node, whichever you prefer\n- Can handle RGBA Images, and separate masks"],"color":"#432","bgcolor":"#653"},{"id":65,"type":"Note","pos":[-297.8690066388043,1132.2800040122615],"size":[716.5966937953184,88],"flags":{},"order":3,"mode":0,"inputs":[],"outputs":[],"title":"UMightHaveANodeForThat","properties":{},"widgets_values":["More Info: https://github.com/ImagineerNL/ComfyUI-IMGNR-Utils"],"color":"#945994","bgcolor":"#553355"},{"id":62,"type":"Note","pos":[-294.0380919126031,272.8133150072847],"size":[716.5966937953184,370.5842980685149],"flags":{},"order":4,"mode":0,"inputs":[],"outputs":[],"title":"Split Screen","properties":{},"widgets_values":["No nodes, so no workflow for it, but you should see a Split Screen button on the left of the top menu. If not, check under ComfyUI Settings --> IMGNR if it is enabled (you need to hard refresh (<CTRL> + <F5>) the page to see the change.\nSplit Screen allows users to view two independent viewports of the same workflow simultaneously.\nGreat when working on a large monitor and large workflows. Enables 2 viewports to the same workflow.\n\n- Activation via a \"Split Screen\" toggle button on the main toolbar. (<shift> + Click to open settings)\n- Left Pane (Original): Keeps your current view/zoom level.\n- Right Pane (Clone): Opens a second independent viewport into the same graph. You can pan and zoom this side independently (e.g., keep one side zoomed in on a specific node group while navigating the rest of the graph on the other).\n- (Experimental) Option to enable/disable interacting with the graph. Without it is just a view pane. Note, may not work for all custom nodes.\n- Both views share the same graph data. Moving a node in one moves it in the other.\n- Attempts to save the split position and the camera coordinates (zoom/pan) of the split view into the workflow metadata so it remembers where you were when you switch between different workflows.\n- May also work for Subgraphs, but that is _very_ experimental.\n- Not (yet) compatible with Nodes2.0. "],"color":"#945994","bgcolor":"#553355"},{"id":63,"type":"Note","pos":[-294.0380919126031,703.3976130757997],"size":[716.5966937953184,370.5842980685149],"flags":{},"order":5,"mode":0,"inputs":[],"outputs":[],"title":"UMightHaveANodeForThat","properties":{},"widgets_values":["No nodes, so no workflow for it, but you should see a UMightHaveANodeForThat when you right-click on a node. If not, check under ComfyUI Settings --> IMGNR if it is enabled (you need to hard refresh (<CTRL> + <F5>) the page to see the change.\n\n- A right-click menu item on your nodes, which enables you to easily find and spawn nodes with matching functionality.\n- As not all nodes have clear descriptions and input/output, the matching is based on 'name', 'S&R name', 'inputs' and 'outputs'. It could therefor also rank nodes that are actually different. But it could also rank nodes that don't *seem* to match, but actually *do*.\n- Also works wonders on trying to use as few custom nodepacks as possible in your workflow, and marks core comfyUI nodes as *(Core)\n- Has a Settings item in ComfyUI Settings `IMGNR --> UMightHaveANodeForThat` to tweak the ranked results\n- Should be compatible with Nodes2.0."],"color":"#945994","bgcolor":"#553355"},{"id":66,"type":"PreviewImageBase64Node","pos":[-2046.8371782027561,272.8133150072847],"size":[445.3328967198888,470.65798106776936],"flags":{},"order":6,"mode":0,"inputs":[{"localized_name":"images","name":"images","type":"IMAGE","link":61},{"localized_name":"mask","name":"mask","shape":7,"type":"MASK","link":null}],"outputs":[{"localized_name":"image","name":"image","type":"IMAGE","links":[54]},{"localized_name":"mask","name":"mask","type":"MASK","links":null}],"properties":{"cnr_id":"ComfyUI-IMGNR-Utils","ver":"92f0238973513c481c2dd7f415045b145d4df20c","Node name for S&R":"PreviewImageBase64Node"},"widgets_values":["Fit Image to Node",""]},{"id":67,"type":"PreviewImageAdHocSaveNode","pos":[-1538.0937459379834,272.8133150072847],"size":[358.6291564941406,460],"flags":{},"order":8,"mode":0,"inputs":[{"localized_name":"images","name":"images","type":"IMAGE","link":54},{"localized_name":"mask","name":"mask","shape":7,"type":"MASK","link":null},{"localized_name":"filename_main","name":"filename_main","type":"STRING","widget":{"name":"filename_main"},"link":null},{"localized_name":"sequence","name":"sequence","type":"INT","widget":{"name":"sequence"},"link":null},{"localized_name":"filename_extras","name":"filename_extras","type":"STRING","widget":{"name":"filename_extras"},"link":null},{"localized_name":"autosave","name":"autosave","type":"BOOLEAN","widget":{"name":"autosave"},"link":null},{"localized_name":"embed_workflow","name":"embed_workflow","type":"BOOLEAN","widget":{"name":"embed_workflow"},"link":null},{"localized_name":"overwrite","name":"overwrite","type":"BOOLEAN","widget":{"name":"overwrite"},"link":null}],"outputs":[{"localized_name":"image","name":"image","type":"IMAGE","links":[55]},{"localized_name":"mask","name":"mask","type":"MASK","links":null},{"localized_name":"filename_main","name":"filename_main","type":"STRING","links":[59]},{"localized_name":"sequence_out","name":"sequence_out","type":"INT","links":[60]},{"localized_name":"full_filename","name":"full_filename","type":"STRING","links":null}],"properties":{"cnr_id":"ComfyUI-IMGNR-Utils","ver":"92f0238973513c481c2dd7f415045b145d4df20c","Node name for S&R":"PreviewImageAdHocSaveNode"},"widgets_values":["ComfyUI",2,"",false,true,false,"Fit Image to Node",""]},{"id":68,"type":"PreviewImageAdHocSaveNode","pos":[-834.6520894438427,272.8133150072847],"size":[358.6291564941406,460],"flags":{},"order":10,"mode":0,"inputs":[{"localized_name":"images","name":"images","type":"IMAGE","link":58},{"localized_name":"mask","name":"mask","shape":7,"type":"MASK","link":null},{"localized_name":"filename_main","name":"filename_main","type":"STRING","widget":{"name":"filename_main"},"link":59},{"localized_name":"sequence","name":"sequence","type":"INT","widget":{"name":"sequence"},"link":60},{"localized_name":"filename_extras","name":"filename_extras","type":"STRING","widget":{"name":"filename_extras"},"link":null},{"localized_name":"autosave","name":"autosave","type":"BOOLEAN","widget":{"name":"autosave"},"link":null},{"localized_name":"embed_workflow","name":"embed_workflow","type":"BOOLEAN","widget":{"name":"embed_workflow"},"link":null},{"localized_name":"overwrite","name":"overwrite","type":"BOOLEAN","widget":{"name":"overwrite"},"link":null}],"outputs":[{"localized_name":"image","name":"image","type":"IMAGE","links":null},{"localized_name":"mask","name":"mask","type":"MASK","links":null},{"localized_name":"filename_main","name":"filename_main","type":"STRING","links":null},{"localized_name":"sequence_out","name":"sequence_out","type":"INT","links":null},{"localized_name":"full_filename","name":"full_filename","type":"STRING","links":null}],"properties":{"cnr_id":"ComfyUI-IMGNR-Utils","ver":"92f0238973513c481c2dd7f415045b145d4df20c","Node name for S&R":"PreviewImageAdHocSaveNode"},"widgets_values":["ComfyUI",2,"",false,true,false,"Fit Image to Node",""]},{"id":69,"type":"LoadImage","pos":[-2360.108014079221,272.8133150072847],"size":[283.27083587646484,314.0000000000001],"flags":{},"order":7,"mode":0,"inputs":[{"localized_name":"image","name":"image","type":"COMBO","widget":{"name":"image"},"link":null},{"localized_name":"choose file to upload","name":"upload","type":"IMAGEUPLOAD","widget":{"name":"upload"},"link":null}],"outputs":[{"localized_name":"IMAGE","name":"IMAGE","type":"IMAGE","links":[61]},{"localized_name":"MASK","name":"MASK","type":"MASK","links":null}],"properties":{"cnr_id":"comfy-core","ver":"0.8.2","Node name for S&R":"LoadImage"},"widgets_values":["Screenshot 2025-09-13 at 14-13-13 Pin by Trish on Snoopy Wisdom in 2025 Funny cartoon quotes Snoopy quotes Snoopy funny.png","image"]}],"links":[[54,66,0,67,0,"IMAGE"],[55,67,0,53,0,"IMAGE"],[58,53,0,68,0,"IMAGE"],[59,67,2,68,2,"STRING"],[60,67,3,68,3,"INT"],[61,69,0,66,0,"IMAGE"]],"groups":[],"config":{},"extra":{"ds":{"scale":0.8769226950000005,"offset":[2475.939228489667,-12.303166438543265]},"workflowRendererVersion":"LG","IMGNR_SplitScreen":{"splitX":2279,"camera":{"scale":1.0610764609500007,"tx":677.5896396770804,"ty":-464.02876928763567}}},"version":0.4} |