Files
2026-06-02 03:49:21 -04:00

1 line
26 KiB
JSON

{"id":"90d39b30-a58f-45ed-bca0-0b4bb423088d","revision":1,"last_node_id":81,"last_link_id":149,"nodes":[{"id":44,"type":"CheckpointLoaderSimple","pos":[140,2050],"size":[210,100],"flags":{},"order":0,"mode":0,"inputs":[{"localized_name":"ckpt_name","name":"ckpt_name","type":"COMBO","widget":{"name":"ckpt_name"},"link":null}],"outputs":[{"localized_name":"MODEL","name":"MODEL","type":"MODEL","links":[72]},{"localized_name":"CLIP","name":"CLIP","type":"CLIP","links":[73,74]},{"localized_name":"VAE","name":"VAE","type":"VAE","links":[75]}],"properties":{"Node name for S&R":"CheckpointLoaderSimple"},"widgets_values":["SD1.5/majicmixRealistic_v7.safetensors"]},{"id":48,"type":"EmptyLatentImage","pos":[140,2210],"size":[210,110],"flags":{},"order":1,"mode":0,"inputs":[{"localized_name":"width","name":"width","type":"INT","widget":{"name":"width"},"link":null},{"localized_name":"height","name":"height","type":"INT","widget":{"name":"height"},"link":null},{"localized_name":"batch_size","name":"batch_size","type":"INT","widget":{"name":"batch_size"},"link":null}],"outputs":[{"localized_name":"LATENT","name":"LATENT","type":"LATENT","links":[79]}],"properties":{"Node name for S&R":"EmptyLatentImage"},"widgets_values":[512,512,1]},{"id":45,"type":"CLIPTextEncode","pos":[400,2050],"size":[220,90],"flags":{},"order":13,"mode":0,"inputs":[{"localized_name":"clip","name":"clip","type":"CLIP","link":73},{"localized_name":"text","name":"text","type":"STRING","widget":{"name":"text"},"link":null}],"outputs":[{"localized_name":"CONDITIONING","name":"CONDITIONING","type":"CONDITIONING","links":[77]}],"properties":{"Node name for S&R":"CLIPTextEncode"},"widgets_values":["a real dragon"]},{"id":46,"type":"CLIPTextEncode","pos":[410,2210],"size":[220,90],"flags":{},"order":14,"mode":0,"inputs":[{"localized_name":"clip","name":"clip","type":"CLIP","link":74},{"localized_name":"text","name":"text","type":"STRING","widget":{"name":"text"},"link":null}],"outputs":[{"localized_name":"CONDITIONING","name":"CONDITIONING","type":"CONDITIONING","links":[78]}],"properties":{"Node name for S&R":"CLIPTextEncode"},"widgets_values":["cartoon, painting, drawing"]},{"id":47,"type":"VAEDecode","pos":[150,2380],"size":[140,50],"flags":{},"order":20,"mode":0,"inputs":[{"localized_name":"samples","name":"samples","type":"LATENT","link":76},{"localized_name":"vae","name":"vae","type":"VAE","link":75}],"outputs":[{"localized_name":"IMAGE","name":"IMAGE","type":"IMAGE","links":[80]}],"properties":{"Node name for S&R":"VAEDecode"},"widgets_values":[]},{"id":29,"type":"ZMongoSavePresetByNodeID","pos":[650,2050],"size":[280,280],"flags":{},"order":23,"mode":0,"inputs":[{"localized_name":"session","name":"session","shape":7,"type":"ZMONGO_API_SESSION","link":102},{"localized_name":"preset_name","name":"preset_name","type":"STRING","widget":{"name":"preset_name"},"link":87},{"localized_name":"target_node_id","name":"target_node_id","type":"STRING","widget":{"name":"target_node_id"},"link":null},{"localized_name":"collection_name","name":"collection_name","type":"STRING","widget":{"name":"collection_name"},"link":null},{"localized_name":"storage_backend","name":"storage_backend","type":"COMBO","widget":{"name":"storage_backend"},"link":null},{"localized_name":"overwrite","name":"overwrite","type":"BOOLEAN","widget":{"name":"overwrite"},"link":null},{"localized_name":"save_mode","name":"save_mode","type":"COMBO","widget":{"name":"save_mode"},"link":null}],"outputs":[{"localized_name":"preset_json","name":"preset_json","type":"STRING","links":[39]},{"localized_name":"preset_name","name":"preset_name","type":"STRING","links":null},{"localized_name":"saved_count","name":"saved_count","type":"INT","links":null},{"localized_name":"storage_backend_used","name":"storage_backend_used","type":"STRING","links":null},{"localized_name":"document_id","name":"document_id","type":"STRING","links":null},{"localized_name":"status","name":"status","type":"STRING","links":null}],"properties":{"Node name for S&R":"ZMongoSavePresetByNodeID"},"widgets_values":["ksampler_1","8","workflow_presets","auto",true,"widgets_and_inputs"]},{"id":38,"type":"PrimitiveString","pos":[140,2710],"size":[270,60],"flags":{},"order":2,"mode":0,"inputs":[{"localized_name":"value","name":"value","type":"STRING","widget":{"name":"value"},"link":null}],"outputs":[{"localized_name":"STRING","name":"STRING","type":"STRING","links":[67]}],"title":"Preset 1","properties":{"Node name for S&R":"PrimitiveString"},"widgets_values":["condition_1"]},{"id":39,"type":"PrimitiveString","pos":[140,2600],"size":[270,60],"flags":{},"order":3,"mode":0,"inputs":[{"localized_name":"value","name":"value","type":"STRING","widget":{"name":"value"},"link":null}],"outputs":[{"localized_name":"STRING","name":"STRING","type":"STRING","links":[68]}],"title":"Preset 2","properties":{"Node name for S&R":"PrimitiveString"},"widgets_values":["condition_2"]},{"id":42,"type":"StringContains","pos":[120,1010],"size":[300,170],"flags":{},"order":15,"mode":0,"inputs":[{"localized_name":"string","name":"string","type":"STRING","widget":{"name":"string"},"link":71},{"localized_name":"substring","name":"substring","type":"STRING","widget":{"name":"substring"},"link":null},{"localized_name":"case_sensitive","name":"case_sensitive","type":"BOOLEAN","widget":{"name":"case_sensitive"},"link":null}],"outputs":[{"localized_name":"contains","name":"contains","type":"BOOLEAN","links":[107]}],"title":"Set Condition (ex. many)","properties":{"Node name for S&R":"StringContains"},"widgets_values":["","many",false]},{"id":62,"type":"Reroute","pos":[220,1350],"size":[75,26],"flags":{},"order":18,"mode":0,"inputs":[{"name":"","type":"*","widget":{"name":"value"},"link":107}],"outputs":[{"label":"boolean","name":"","type":"BOOLEAN","links":[108]}],"properties":{"showOutputText":false,"horizontal":false}},{"id":65,"type":"MarkdownNote","pos":[110,680],"size":[310,270],"flags":{},"order":4,"mode":0,"inputs":[],"outputs":[],"title":"Create a Conditional Switch","properties":{},"widgets_values":["### Create the Condition\n\nEnter text in **Condition to Parse**.\n\nThe **String Contains** node checks whether that text contains the selected condition word.\n\nExample:\n\n- Text: `render steps many`\n- Condition word: `many`\n- Result: `true`\n\nThe boolean result controls the preset switch:\n\n- `false → condition_1`\n- `true → condition_2`\n\nThis lets the workflow choose a different preset based on the parsed text."],"color":"#432","bgcolor":"#653"},{"id":64,"type":"MarkdownNote","pos":[-290,670],"size":[310,210],"flags":{},"order":5,"mode":0,"inputs":[],"outputs":[],"title":"ZMongo API vs. Local Storage","properties":{},"widgets_values":["### Choose Storage Backend\n\nUse the switch to choose where presets are saved and loaded.\n\n- **API = True** uses the hosted ZMongo backend through your API key.\n- **API = False** uses the local file store on this ComfyUI machine.\n\nUse **Local Storage** for testing and private local workflows.\n\nUse **API Storage** when you want presets available through your hosted Business Process Applications account."],"color":"#432","bgcolor":"#653"},{"id":35,"type":"ZMongoLocalFileStoreSessionNode","pos":[-280,1100],"size":[310,130],"flags":{},"order":6,"mode":0,"inputs":[{"localized_name":"local_store_root","name":"local_store_root","type":"STRING","widget":{"name":"local_store_root"},"link":null},{"localized_name":"test_health","name":"test_health","type":"BOOLEAN","widget":{"name":"test_health"},"link":null}],"outputs":[{"localized_name":"session","name":"session","type":"ZMONGO_API_SESSION","links":[105]},{"localized_name":"json","name":"json","type":"STRING","links":null},{"localized_name":"status","name":"status","type":"STRING","links":null}],"properties":{"Node name for S&R":"ZMongoLocalFileStoreSessionNode"},"widgets_values":["",true]},{"id":41,"type":"ComfySwitchNode","pos":[150,2460],"size":[290,80],"flags":{},"order":21,"mode":0,"inputs":[{"localized_name":"on_false","name":"on_false","type":"STRING","link":67},{"localized_name":"on_true","name":"on_true","type":"STRING","link":68},{"localized_name":"switch","name":"switch","type":"BOOLEAN","widget":{"name":"switch"},"link":108}],"outputs":[{"localized_name":"output","name":"output","type":"STRING","links":[87,113]}],"title":"Switch Presets Based on Condition","properties":{"Node name for S&R":"ComfySwitchNode"},"widgets_values":[false]},{"id":76,"type":"MarkdownNote","pos":[-810,590],"size":[430,700],"flags":{},"order":7,"mode":0,"inputs":[],"outputs":[],"title":"ZMongo Dynamic Preset Overview","properties":{},"widgets_values":["# ZMongo Dynamic Presets: Save, Switch, and Reuse Almost Any ComfyUI Node\n\nZMongo Dynamic Presets let you turn ComfyUI node settings into reusable workflow logic.\n\nInstead of manually changing the same values over and over, you can save the settings from a node as a named preset, load that preset later, and expose the saved values as dynamic outputs that connect back into your workflow.\n\nThis is not limited to one sampler node. The preset system is dynamic: it inspects the selected node, discovers its inputs, saves the values, and rebuilds usable outputs from the saved preset.\n\nThat means you can build reusable presets for many common ComfyUI tasks:\n\n- KSampler settings\n- Checkpoint and model selection\n- Prompt and negative prompt text\n- LoRA choices and strengths\n- Image size and latent settings\n- Upscaling settings\n- ControlNet-style settings\n- Video workflow settings\n- Custom node settings\n- Conditional workflow behavior\n\n## Why This Is Powerful\n\nComfyUI workflows can grow quickly. A single workflow might need different settings for fast previews, final renders, different models, different styles, different prompts, or different output formats.\n\nZMongo Dynamic Presets help you avoid duplicating entire workflow sections just to change a few values.\n\nSave the values once. Load them by name. Switch them with conditions.\n\n## Engaging Examples\n\n### Fast Draft vs. Final Render\n\nSave two KSampler presets:\n\n- `draft_fast`\n - low steps\n - faster sampler\n - lower render cost\n- `final_quality`\n - higher steps\n - preferred sampler\n - polished output settings\n\nUse a switch to choose whether the workflow should generate a quick preview or a final image.\n\n### “Many Steps” Conditional Render\n\nUse a text condition to control render quality.\n\nExample:\n\n- Text contains `many` → load preset with `steps = 50`\n- Text does not contain `many` → load preset with `steps = 20`\n\nThe workflow can respond to plain language and automatically choose the right render settings.\n\n### Model Switching\n\nSave checkpoint presets such as:\n\n- `sd15_realistic`\n- `sdxl_product_photo`\n- `flux_concept_art`\n- `ltx_video_model`\n- `hunyuan_3d_model`\n\nThen switch models without manually browsing through long dropdown lists every time.\n\n### Prompt Style Presets\n\nSave prompt presets for different creative directions:\n\n- `cinematic_dragon`\n- `real_estate_interior`\n- `youtube_thumbnail`\n- `product_photo_clean`\n- `anime_character`\n- `dark_fantasy_scene`\n- `legal_exhibit_visual`\n\nA workflow can load a prompt style by name and apply it automatically.\n\n### Negative Prompt Presets\n\nSave reusable negative prompt settings:\n\n- `clean_photo_negative`\n- `no_cartoon`\n- `no_blur`\n- `no_text_artifacts`\n- `no_extra_limbs`\n\nThis makes it easy to keep output quality consistent across many workflows.\n\n### LoRA Preset Control\n\nSave different LoRA combinations or strengths:\n\n- `subtle_style`\n- `strong_style`\n- `character_consistency`\n- `product_brand_style`\n- `cinematic_lighting`\n\nUse presets to quickly move between subtle and dramatic style effects.\n\n### Image Size Presets\n\nSave latent/image settings such as:\n\n- `square_512`\n- `portrait_768x1024`\n- `landscape_1024x576`\n- `thumbnail_16x9`\n- `vertical_short`\n\nThis is useful when the same workflow needs to create images for different platforms.\n\n### Video Workflow Presets\n\nSave video-oriented settings such as:\n\n- `short_test`\n- `smooth_motion`\n- `cinematic_motion`\n- `long_render`\n- `high_detail_video`\n\nUse these to switch between quick testing and production-quality output.\n\n### Custom Node Presets\n\nMany custom nodes have large numbers of settings. ZMongo Dynamic Presets can help turn those settings into named, reusable configurations.\n\nExamples:\n\n- camera settings\n- masking settings\n- animation settings\n- upscaler settings\n- prompt parser settings\n- batch settings\n- metadata settings\n- workflow automation settings\n\n## How This Workflow Works\n\nThis workflow demonstrates a conditional preset system.\n\n1. Choose whether to use **API Storage** or **Local Storage**.\n2. Enter text in the condition parser.\n3. The condition switch selects a preset name.\n4. **Load Preset** loads the matching preset.\n5. **Dynamic Preset Outputs** turns the saved preset fields into outputs.\n6. The outputs connect to the matching inputs on the target node.\n7. The workflow generates using the selected preset.\n\n## Basic Save Process\n\nTo create a preset:\n\n1. Set the target node values.\n2. Enter the target node ID.\n3. Choose a preset name.\n4. Run **Save Preset By Node ID**.\n5. Repeat for each condition or variation.\n\nExample preset names:\n\n- `condition_1`\n- `condition_2`\n- `draft_fast`\n- `final_quality`\n- `sdxl_model`\n- `portrait_size`\n- `cinematic_prompt`\n\n## Basic Load Process\n\nTo use a preset:\n\n1. Select or generate the preset name.\n2. Run **Load Preset**.\n3. Connect **Load Preset** to **Dynamic Preset Outputs**.\n4. Connect each dynamic output to the matching input on the target node.\n\nExample KSampler connections:\n\n- `seed → seed`\n- `steps → steps`\n- `cfg → cfg`\n- `sampler_name → sampler_name`\n- `scheduler → scheduler`\n- `denoise → denoise`\n\n## Local Storage vs. API Storage\n\nUse **Local Storage** when testing presets on this machine.\n\nUse **API Storage** when you want presets saved through your Business Process Applications account and available through the hosted ZMongo backend.\n\n## Best Use Cases\n\nZMongo Dynamic Presets are especially useful when you want to:\n\n- switch between creative styles\n- change render quality automatically\n- reuse model selections\n- build conditional workflows\n- avoid duplicating node groups\n- keep complex workflows organized\n- save known-good settings\n- build reusable automation systems\n- expose workflow choices through simple switches or text conditions\n\n## The Core Idea\n\nA preset is more than a saved setting.\n\nA preset can become a decision.\n\nA workflow can ask:\n\n- Should this be fast or high quality?\n- Should this use SDXL or Flux?\n- Should this be realistic or stylized?\n- Should this be a short test or a final render?\n- Should this prompt use one style or another?\n\nZMongo Dynamic Presets let the workflow answer those questions by loading the right saved node values at the right time.\n\nThis turns ComfyUI from a static node graph into a more flexible preset-driven automation system."],"color":"#432","bgcolor":"#653"},{"id":61,"type":"MarkdownNote","pos":[790,1530],"size":[210,120],"flags":{},"order":8,"mode":0,"inputs":[],"outputs":[],"title":"Modify Value","properties":{},"widgets_values":["To update a value or save a new Preset with a different value then you must detach the Dynamic Preset Output to change the value before saving."],"color":"#432","bgcolor":"#653"},{"id":60,"type":"MarkdownNote","pos":[490,660],"size":[520,250],"flags":{},"order":9,"mode":0,"inputs":[],"outputs":[],"title":"Set Values to be Saved then connect Dynamic Preset Outputs","properties":{},"widgets_values":["### Save Conditional KSampler Presets\n\nSave the KSampler values needed for each condition.\n\nExample:\n\n- If the parsed text contains `many`, save a preset with `steps = 50`.\n- If the parsed text does not contain `many`, save a preset with `steps = 20`.\n\nAfter saving the presets, connect each output from **Dynamic Preset Outputs** to the matching KSampler input:\n\n- `seed → seed`\n- `steps → steps`\n- `cfg → cfg`\n- `sampler_name → sampler_name`\n- `scheduler → scheduler`\n- `denoise → denoise`### Save Conditional KSampler Presets\n\nSave the KSampler values needed for each condition.\n\nExample:\n\n- `condition_1`: normal render, such as `steps = 20`\n- `condition_2`: many steps, such as `steps = 50`\n\nTo create each preset:\n\n1. Disconnect the Dynamic Preset Output from any KSampler input you want to manually change.\n2. Set the KSampler values.\n3. Select the preset name with the condition switch.\n4. Run **Save Preset By Node ID**.\n\nAfter both presets are saved, reconnect the outputs from **Dynamic Preset Outputs** to the matching KSampler inputs:\n\n- `seed → seed`\n- `steps → steps`\n- `cfg → cfg`\n- `sampler_name → sampler_name`\n- `scheduler → scheduler`\n- `denoise → denoise`"],"color":"#432","bgcolor":"#653"},{"id":66,"type":"ZMongoLoadPreset","pos":[650,2430],"size":[280,250],"flags":{},"order":24,"mode":0,"inputs":[{"localized_name":"session","name":"session","shape":7,"type":"ZMONGO_API_SESSION","link":111},{"localized_name":"document_id","name":"document_id","shape":7,"type":"STRING","link":null},{"localized_name":"document_json","name":"document_json","shape":7,"type":"STRING","link":null},{"localized_name":"preset_name","name":"preset_name","type":"STRING","widget":{"name":"preset_name"},"link":113},{"localized_name":"collection_name","name":"collection_name","type":"STRING","widget":{"name":"collection_name"},"link":null},{"localized_name":"storage_backend","name":"storage_backend","type":"COMBO","widget":{"name":"storage_backend"},"link":null}],"outputs":[{"localized_name":"preset_json","name":"preset_json","type":"STRING","links":[121,138]},{"localized_name":"preset_name","name":"preset_name","type":"STRING","links":[]},{"localized_name":"source_node_id","name":"source_node_id","type":"STRING","links":[]},{"localized_name":"source_node_class","name":"source_node_class","type":"STRING","links":[]},{"localized_name":"field_count","name":"field_count","type":"INT","links":[]},{"localized_name":"storage_backend_used","name":"storage_backend_used","type":"STRING","links":[]},{"localized_name":"document_id","name":"document_id","type":"STRING","links":[]},{"localized_name":"status","name":"status","type":"STRING","links":[]}],"properties":{"Node name for S&R":"ZMongoLoadPreset"},"widgets_values":["main_sampler","workflow_presets","auto"]},{"id":49,"type":"PreviewImage","pos":[1130,1310],"size":[450,520],"flags":{},"order":22,"mode":0,"inputs":[{"localized_name":"images","name":"images","type":"IMAGE","link":80}],"outputs":[],"title":"Generate With Preset","properties":{"Node name for S&R":"PreviewImage"},"widgets_values":[],"color":"#232","bgcolor":"#353"},{"id":43,"type":"PrimitiveString","pos":[130,1250],"size":[290,70],"flags":{},"order":10,"mode":0,"inputs":[{"localized_name":"value","name":"value","type":"STRING","widget":{"name":"value"},"link":null}],"outputs":[{"localized_name":"STRING","name":"STRING","type":"STRING","links":[71]}],"title":"Save with and without many","properties":{"Node name for S&R":"PrimitiveString"},"widgets_values":["render steps"],"color":"#232","bgcolor":"#353"},{"id":3,"type":"PreviewAny","pos":[1130,910],"size":[210,350],"flags":{},"order":25,"mode":0,"inputs":[{"localized_name":"source","name":"source","type":"*","link":39}],"outputs":[{"localized_name":"STRING","name":"STRING","type":"STRING","links":null}],"title":"Save Preset","properties":{"Node name for S&R":"PreviewAny"},"widgets_values":[null,null,null],"color":"#322","bgcolor":"#533"},{"id":7,"type":"PreviewAny","pos":[1370,910],"size":[210,350],"flags":{},"order":26,"mode":0,"inputs":[{"localized_name":"source","name":"source","type":"*","link":121}],"outputs":[{"localized_name":"STRING","name":"STRING","type":"STRING","links":null}],"title":"Load Preset","properties":{"Node name for S&R":"PreviewAny"},"widgets_values":[null,null,null],"color":"#432","bgcolor":"#653"},{"id":78,"type":"ZMongoDynamicPresetOutputs","pos":[500,1010],"size":[236.41510009765625,666],"flags":{},"order":27,"mode":0,"inputs":[{"localized_name":"preset_json","name":"preset_json","type":"STRING","widget":{"name":"preset_json"},"link":138},{"localized_name":"strict_combo_validation","name":"strict_combo_validation","type":"BOOLEAN","widget":{"name":"strict_combo_validation"},"link":null}],"outputs":[{"label":"seed = 1048765465228920","localized_name":"seed = 1048765465228920","name":"seed = 1048765465228920","type":"INT","links":[]},{"label":"steps = 20","localized_name":"steps = 20","name":"steps = 20","type":"INT","links":[]},{"label":"cfg = 8","localized_name":"cfg = 8","name":"cfg = 8","type":"FLOAT","links":[]},{"label":"sampler_name = euler","localized_name":"sampler_name = euler","name":"sampler_name = euler","type":"*","links":[]},{"label":"scheduler = simple","localized_name":"scheduler = simple","name":"scheduler = simple","type":"*","links":[]},{"label":"denoise = 1","localized_name":"denoise = 1","name":"denoise = 1","type":"FLOAT","links":[]},{"label":"model = [\"44\",0]","localized_name":"model = [\"44\",0]","name":"model = [\"44\",0]","type":"MODEL","links":null},{"label":"positive = [\"45\",0]","localized_name":"positive = [\"45\",0]","name":"positive = [\"45\",0]","type":"CONDITIONING","links":null},{"label":"negative = [\"46\",0]","localized_name":"negative = [\"46\",0]","name":"negative = [\"46\",0]","type":"CONDITIONING","links":null},{"label":"latent_image = [\"48\",0]","localized_name":"latent_image = [\"48\",0]","name":"latent_image = [\"48\",0]","type":"LATENT","links":null}],"properties":{"Node name for S&R":"ZMongoDynamicPresetOutputs"},"widgets_values":["{}",true,null,"Preset: condition_1\nSource node: KSampler\nOutputs: 10\n\nseed = 1048765465228920\nsteps = 20\ncfg = 8\nsampler_name = euler\nscheduler = simple\ndenoise = 1\nmodel = [\"44\",0]\npositive = [\"45\",0]\nnegative = [\"46\",0]\nlatent_image = [\"48\",0]"]},{"id":8,"type":"KSampler","pos":[800,970],"size":[210,510],"flags":{},"order":17,"mode":0,"inputs":[{"localized_name":"model","name":"model","type":"MODEL","link":72},{"localized_name":"positive","name":"positive","type":"CONDITIONING","link":77},{"localized_name":"negative","name":"negative","type":"CONDITIONING","link":78},{"localized_name":"latent_image","name":"latent_image","type":"LATENT","link":79},{"localized_name":"seed","name":"seed","type":"INT","widget":{"name":"seed"},"link":null},{"localized_name":"steps","name":"steps","type":"INT","widget":{"name":"steps"},"link":null},{"localized_name":"cfg","name":"cfg","type":"FLOAT","widget":{"name":"cfg"},"link":null},{"localized_name":"sampler_name","name":"sampler_name","type":"COMBO","widget":{"name":"sampler_name"},"link":null},{"localized_name":"scheduler","name":"scheduler","type":"COMBO","widget":{"name":"scheduler"},"link":null},{"localized_name":"denoise","name":"denoise","type":"FLOAT","widget":{"name":"denoise"},"link":null}],"outputs":[{"localized_name":"LATENT","name":"LATENT","type":"LATENT","links":[76]}],"title":"Change Steps","properties":{"Node name for S&R":"KSampler"},"widgets_values":[618356272543192,"randomize",20,8,"euler","simple",1],"color":"#232","bgcolor":"#353"},{"id":63,"type":"MarkdownNote","pos":[1140,660],"size":[460,200],"flags":{},"order":11,"mode":0,"inputs":[],"outputs":[],"title":"Perform the Actions","properties":{},"widgets_values":["### Run the Workflow\n\nUse this order:\n\n1. Choose **API** or **Local Storage**.\n2. Enter text in **Condition to Parse**.\n3. Disconnect the Dynamic Preset Outputs from the Node.\n3. Run **Save Preset** preset for each condition.\n4. Run **Load Preset**.\n5. Connect the Dynamic Preset Outputs to the KSampler to **Rebuild Preset Outputs** if the dynamic outputs do not refresh.\n6. Generate the image.\n\nThe selected condition determines which preset is loaded and applied to the KSampler."],"color":"#432","bgcolor":"#653"},{"id":57,"type":"ComfySwitchNode","pos":[-280,940],"size":[300,90],"flags":{},"order":16,"mode":0,"inputs":[{"localized_name":"on_false","name":"on_false","type":"ZMONGO_API_SESSION","link":105},{"localized_name":"on_true","name":"on_true","type":"ZMONGO_API_SESSION","link":149},{"localized_name":"switch","name":"switch","type":"BOOLEAN","widget":{"name":"switch"},"link":null}],"outputs":[{"localized_name":"output","name":"output","type":"ZMONGO_API_SESSION","links":[106]}],"title":"API = True","properties":{"Node name for S&R":"ComfySwitchNode"},"widgets_values":[false],"color":"#232","bgcolor":"#353"},{"id":81,"type":"ZMongoApiKeyOnlySessionNode","pos":[-290,1290],"size":[308.0509399414062,98],"flags":{},"order":12,"mode":0,"inputs":[{"localized_name":"api_key","name":"api_key","type":"STRING","widget":{"name":"api_key"},"link":null}],"outputs":[{"localized_name":"session","name":"session","type":"ZMONGO_API_SESSION","links":[149]},{"localized_name":"json","name":"json","type":"STRING","links":null},{"localized_name":"status","name":"status","type":"STRING","links":null}],"properties":{"Node name for S&R":"ZMongoApiKeyOnlySessionNode"},"widgets_values":[""]},{"id":56,"type":"Reroute","pos":[-190,1430],"size":[75,26],"flags":{},"order":19,"mode":0,"inputs":[{"name":"","type":"*","link":106}],"outputs":[{"label":"session","name":"","type":"ZMONGO_API_SESSION","links":[102,111]}],"properties":{"showOutputText":false,"horizontal":false}}],"links":[[39,29,0,3,0,"STRING"],[67,38,0,41,0,"STRING"],[68,39,0,41,1,"STRING"],[71,43,0,42,0,"STRING"],[72,44,0,8,0,"MODEL"],[73,44,1,45,0,"CLIP"],[74,44,1,46,0,"CLIP"],[75,44,2,47,1,"VAE"],[76,8,0,47,0,"LATENT"],[77,45,0,8,1,"CONDITIONING"],[78,46,0,8,2,"CONDITIONING"],[79,48,0,8,3,"LATENT"],[80,47,0,49,0,"IMAGE"],[87,41,0,29,1,"STRING"],[102,56,0,29,0,"ZMONGO_API_SESSION"],[105,35,0,57,0,"ZMONGO_API_SESSION"],[106,57,0,56,0,"ZMONGO_API_SESSION"],[107,42,0,62,0,"BOOLEAN"],[108,62,0,41,2,"BOOLEAN"],[111,56,0,66,0,"ZMONGO_API_SESSION"],[113,41,0,66,3,"STRING"],[121,66,0,7,0,"STRING"],[138,66,0,78,0,"STRING"],[149,81,0,57,1,"ZMONGO_API_SESSION"]],"groups":[{"id":4,"title":"Backend","bounding":[110,1950,851.6669852585369,850.4611073882909],"color":"#7c3f8c","font_size":24,"flags":{}},{"id":5,"title":"1. Switch Conditions","bounding":[100,580,327.0055332769518,824.6241611109848],"color":"#b58b2a","font_size":24,"flags":{}},{"id":6,"title":"0. Choose API or Local Storage","bounding":[-320,570,350,920],"color":"#b58b2a","font_size":24,"flags":{}},{"id":7,"title":"3. Final Actions","bounding":[1080,580,542.018216217152,1296.4943155278443],"color":"#8A8","font_size":24,"flags":{}},{"id":8,"title":"2. Set KSampler Values for each Condition","bounding":[470,570,565.8381517236822,1099.9638099347644],"color":"#3f789e","font_size":24,"flags":{}}],"config":{},"extra":{"ds":{"scale":0.6639108576233186,"offset":[854.586037915015,-108.32043226147778]},"description":"ZMongo preset feature tutorial workflow with embedded instructions."},"version":0.4}