{"id":"a277eea5-14e2-4695-8172-2182587aaac4","extra":{"ds":{"scale":0.7627768444385636,"offset":[-2112.965777024846,1656.8671219692496]},"frontendVersion":"1.25.11","VHS_MetadataImage":true,"VHS_latentpreview":false,"VHS_KeepIntermediate":true,"VHS_latentpreviewrate":0},"links":[[178,120,1,109,0,"IMAGE"],[200,129,0,130,0,"*"],[202,94,0,130,2,"*"],[241,138,0,140,0,"IMAGE"],[255,146,0,129,2,"STRING"],[256,130,0,143,0,"*"],[257,143,0,120,0,"*"],[258,147,0,69,1,"COMBO"],[259,148,0,143,1,"INT"],[264,149,0,129,1,"COMBO"],[267,69,1,155,2,"INT"],[268,69,0,155,1,"INT"],[275,69,3,130,4,"*"],[279,155,0,130,3,"*"],[280,159,0,130,1,"*"],[281,140,0,155,0,"IMAGE"]],"nodes":[{"id":129,"pos":[3058.845458984375,-1538.7059326171875],"mode":0,"size":[333.0874938964844,130],"type":"APIProviderSelectorNode","flags":{},"order":8,"inputs":[{"link":null,"name":"context","type":"*","shape":7},{"link":264,"name":"llm_model","type":"COMBO","widget":{"name":"llm_model"}},{"link":255,"name":"external_api_key","type":"STRING","shape":7,"widget":{"name":"external_api_key"}}],"outputs":[{"name":"context","type":"*","links":[200]}],"properties":{"Node name for S&R":"APIProviderSelectorNode"},"widgets_values":["openrouter","google/gemini-2.5-flash-image-preview:free",""]},{"id":148,"pos":[2107.828369140625,-1608.8944091796875],"mode":0,"size":[400,200],"type":"ComfyUIDeployExternalNumberInt","color":"#232","flags":{},"order":0,"inputs":[],"bgcolor":"#353","outputs":[{"name":"value","type":"INT","links":[259]}],"properties":{"Node name for S&R":"ComfyUIDeployExternalNumberInt"},"widgets_values":["seed",2147483424,"",""]},{"id":147,"pos":[2108.642333984375,-1119.705322265625],"mode":0,"size":[400,214],"type":"ComfyUIDeployExternalEnum","color":"#232","flags":{},"order":1,"inputs":[],"bgcolor":"#353","outputs":[{"name":"text","type":"*","links":[258]}],"properties":{"Node name for S&R":"ComfyUIDeployExternalEnum"},"widgets_values":["aspect_ratio","Portrait (3:4)","[\"Square (1:1)\",\"Portrait (3:4)\",\"Landscape (4:3)\",\"Portrait (9:16)\",\"Landscape (16:9)\"]","","THE IMAGE WILL GET PADED TO THIS SIZE MAKE SURE TO EDIT THE IMAGE SOURCE SO IT LOOKS GOOD WITH PROPER ASPECT RATIO"]},{"id":109,"pos":[3955.744873046875,-983.2383422851562],"mode":0,"size":[270,270],"type":"SaveImage","flags":{},"order":14,"inputs":[{"link":178,"name":"images","type":"IMAGE"}],"outputs":[],"properties":{"ver":"0.3.43","cnr_id":"comfy-core","Node name for S&R":"SaveImage"},"widgets_values":["ComfyUI"]},{"id":69,"pos":[2562.396240234375,-817.2070922851562],"mode":0,"size":[301.4302673339844,214],"type":"ResolutionSelector","flags":{},"order":7,"inputs":[{"link":null,"name":"context","type":"*","shape":7},{"link":258,"name":"aspect_ratio","type":"COMBO","widget":{"name":"aspect_ratio"}}],"outputs":[{"name":"width","type":"INT","links":[268]},{"name":"height","type":"INT","links":[267]},{"name":"size_string","type":"STRING","links":[]},{"name":"context","type":"*","links":[275]}],"properties":{"ver":"1.0.2","cnr_id":"llm-toolkit","Node name for S&R":"ResolutionSelector"},"widgets_values":["NANO_BANANA","Portrait (9:16)","HQ",false,128]},{"id":149,"pos":[2549.0673828125,-1315.08984375],"mode":0,"size":[338.6286926269531,426.1956787109375],"type":"ComfyUIDeployExternalEnum","color":"#232","flags":{},"order":2,"inputs":[],"bgcolor":"#353","outputs":[{"name":"text","type":"*","links":[264]}],"properties":{"Node name for S&R":"ComfyUIDeployExternalEnum"},"widgets_values":["llm_model_free","google/gemini-2.5-flash-image-preview","[\"google/gemini-2.5-flash-image-preview\",\"google/gemini-2.5-flash-image-preview:free\"]","Models","BOTH MODES NEED YOUR API, BUT OPENROUTER HAS COURTESY IMAGES FOR A DAY ON THE FREE VERSION. You Still need to bring your own API but on the free you won't get charge "]},{"id":130,"pos":[3965.603759765625,-1511.0301513671875],"mode":0,"size":[175.29257202148438,126],"type":"LLMPromptManager","flags":{},"order":11,"inputs":[{"link":200,"name":"context","type":"*","shape":7},{"link":280,"name":"context_1","type":"*"},{"link":202,"name":"context_2","type":"*"},{"link":279,"name":"context_3","type":"*"},{"link":275,"name":"context_4","type":"*"},{"link":null,"name":"context_5","type":"*"}],"outputs":[{"name":"context","type":"*","links":[256]}],"properties":{"Node name for S&R":"LLMPromptManager"},"widgets_values":[],"dynamicInputCount":6},{"id":146,"pos":[2090.498291015625,-815.0119018554688],"mode":0,"size":[400,200],"type":"ComfyUIDeployExternalText","color":"#232","flags":{},"order":3,"inputs":[],"bgcolor":"#353","outputs":[{"name":"text","type":"STRING","links":[255]}],"properties":{"Node name for S&R":"ComfyUIDeployExternalText"},"widgets_values":["external_api_key","","EXTERNAL API KEY","ENTER YOUR API KEY TO USE THE APP"]},{"id":120,"pos":[3484.595703125,-1042.759521484375],"mode":0,"size":[426.96319580078125,340],"type":"GenerateImage","flags":{},"order":13,"inputs":[{"link":257,"name":"context","type":"*","shape":7}],"outputs":[{"name":"context","type":"*","links":[]},{"name":"image","type":"IMAGE","links":[178]}],"properties":{"ver":"1.0.2","cnr_id":"llm-toolkit","Node name for S&R":"GenerateImage"},"widgets_values":["","generate"]},{"id":143,"pos":[3782.830322265625,-1237.6080322265625],"mode":0,"size":[464.6246032714844,106],"type":"ConfigGenerateImageOpenRouter","flags":{},"order":12,"inputs":[{"link":256,"name":"context","type":"*","shape":7},{"link":259,"name":"seed","type":"INT","shape":7,"widget":{"name":"seed"}}],"outputs":[{"name":"context","type":"*","links":[257]}],"properties":{"Node name for S&R":"ConfigGenerateImageOpenRouter"},"widgets_values":[1,289514382279864,"randomize"]},{"id":94,"pos":[2101.65771484375,-1358.6383056640625],"mode":0,"size":[395.5683898925781,190],"type":"ComfyUIDeployExternalText","color":"#232","flags":{},"order":4,"title":"PROMPT","inputs":[],"bgcolor":"#353","outputs":[{"name":"text","type":"STRING","links":[202]}],"properties":{"ver":"b889f79baf9e099d5e54bd20bab4aa1e7c3296c0","cnr_id":"comfyui-deploy","Node name for S&R":"ComfyUIDeployExternalText","widget_ue_connectable":{}},"widgets_values":["user_prompt","1950s,","EXTRA_PROMPT","IF there is no OPENAI_API_KEY on the machine secrets. You will need to enter your full prompt and delete the AI_SYSTEM_PROMPT  \n\nOtherwise you can use this to add a The Task to be preform by the model for example \"replace the cat from image1 with the dog on image2\" \n\nshe is wearing the same clothes but it has the logo on the swimsuit make sure it looks well integrated and part of the same material with the fabric and not just an overlay the logo should wrap with the swinsuit to the body of the model "]},{"id":159,"pos":[3476.1806640625,-1582.2239990234375],"mode":0,"size":[400,200],"type":"PrimitiveStringMultiline","flags":{},"order":5,"inputs":[],"outputs":[{"name":"STRING","type":"STRING","links":[280]}],"properties":{"Node name for S&R":"PrimitiveStringMultiline"},"widgets_values":["Image Order: IMAGE_1 is always the main SUBJECT; the LAST image is always the BACKGROUND; any middle images (IMAGE_2..IMAGE_{n-1}) are optional REFS that may represent garment/style/pose/prop or other concepts per user text. Maintain the exact facial features, likeness, and composition of the subject in IMAGE_1. Change the hair, clothing, accessories, and background to match the style of a specific decade. **Style:** [ medieavel, 1930s,1950s, 1970s, 1990s, 2000s].  Create a dynamic grid with frames of different sizes, a maximum 6 images "]},{"id":140,"pos":[2565.05419921875,-1560.2205810546875],"mode":0,"size":[309.1890563964844,154],"type":"ComfyUIDeployExternalImage","color":"#232","flags":{},"order":9,"inputs":[{"link":241,"name":"default_value","type":"IMAGE","shape":7}],"bgcolor":"#353","outputs":[{"name":"image","type":"IMAGE","links":[281]}],"properties":{"Node name for S&R":"ComfyUIDeployExternalImage"},"widgets_values":["subject_image","SUBJECT IMAGE","","",""]},{"id":138,"pos":[3040.87646484375,-1215.510009765625],"mode":0,"size":[274.080078125,314],"type":"LoadImage","flags":{},"order":6,"inputs":[],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[241]},{"name":"MASK","type":"MASK","links":null}],"properties":{"ver":"0.3.43","cnr_id":"comfy-core","Node name for S&R":"LoadImage"},"widgets_values":["1f14c7f814afa666f8b501671f0374e3.jpg","image"]},{"id":155,"pos":[3443.753173828125,-1283.93359375],"mode":0,"size":[270,130],"type":"ResizeAndPadImage","flags":{},"order":10,"inputs":[{"link":281,"name":"image","type":"IMAGE"},{"link":268,"name":"target_width","type":"INT","widget":{"name":"target_width"}},{"link":267,"name":"target_height","type":"INT","widget":{"name":"target_height"}}],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[279]}],"properties":{"Node name for S&R":"ResizeAndPadImage"},"widgets_values":[512,512,"white","area"]}],"config":{},"groups":[],"version":0.4,"revision":0,"environment":{"gpu":"CPU","extra_args":null,"run_timeout":300,"machine_hash":"9750644637b2c18978c01ff96e5bf52bca92f7c11bbd6c341bc3832367532cd4","max_containers":2,"min_containers":0,"python_version":"3.11","comfyui_version":"4449e147692366ac8b9bd3b8834c771bc81e91ac","disable_metadata":true,"prestart_command":null,"scaledown_window":60,"base_docker_image":null,"docker_command_steps":{"steps":[{"id":"b084ec69-3","data":{"url":"https://github.com/comfy-deploy/comfyui-llm-toolkit","hash":"68550bca7ac6fc8b752ae72a993ad1e2a616d816","meta":{"message":"Fix: Clean up and correct formatting in banana-tasks.json","committer":{"date":"2025-09-06T10:38:27.000Z","name":"if@impactframes.com","email":"if@impactframes.com"},"commit_url":"https://github.com/comfy-deploy/comfyui-llm-toolkit/commit/68550bca7ac6fc8b752ae72a993ad1e2a616d816","latest_hash":"68550bca7ac6fc8b752ae72a993ad1e2a616d816","stargazers_count":46},"name":"ComfyUI LLM Toolkit","files":["https://github.com/comfy-deploy/comfyui-llm-toolkit"],"install_type":"git-clone"},"type":"custom-node"},{"id":"66d08f8e-7","data":{"url":"https://github.com/807502278/ComfyUI-WJNodes","hash":"a3d271d5dabd3a181c06b09de73a43af13e77ce7","meta":{"message":"Merge branch 'main' of https://github.com/807502278/ComfyUI-WJNodes","committer":{"date":"2025-09-03T02:09:53.000Z","name":"807502278","email":"46019416+807502278@users.noreply.github.com"},"commit_url":"https://github.com/807502278/ComfyUI-WJNodes/commit/a3d271d5dabd3a181c06b09de73a43af13e77ce7","latest_hash":"a3d271d5dabd3a181c06b09de73a43af13e77ce7","stargazers_count":13},"name":"ComfyUI-WJNodes","files":["https://github.com/807502278/ComfyUI-WJNodes"],"install_type":"git-clone"},"type":"custom-node"},{"id":"b5bc8c49-5","data":{"url":"https://github.com/ClownsharkBatwing/RES4LYF","hash":"7750bf7800b6ad9d670308a09989fc0c04c40cec","meta":{"message":"Merge pull request #160 from drozbay/pr_30\n\nAdd files via upload","committer":{"date":"2025-08-14T22:18:56.000Z","name":"GitHub","email":"noreply@github.com"},"commit_url":"https://github.com/ClownsharkBatwing/RES4LYF/commit/7750bf7800b6ad9d670308a09989fc0c04c40cec","latest_hash":"7750bf7800b6ad9d670308a09989fc0c04c40cec","stargazers_count":583},"name":"RES4LYF","files":["https://github.com/ClownsharkBatwing/RES4LYF"],"install_type":"git-clone"},"type":"custom-node"},{"id":"e001d0ea-b","data":{"url":"https://github.com/kijai/ComfyUI-KJNodes","hash":"0adab07d1ad3d0780afc97319eaf37c3681af37d","meta":{"message":"Update lora_nodes.py","committer":{"date":"2025-09-01T16:02:21.000Z","name":"kijai","email":"40791699+kijai@users.noreply.github.com"},"commit_url":"https://github.com/kijai/ComfyUI-KJNodes/commit/0adab07d1ad3d0780afc97319eaf37c3681af37d","latest_hash":"0adab07d1ad3d0780afc97319eaf37c3681af37d","stargazers_count":1699},"name":"KJNodes for ComfyUI","files":["https://github.com/kijai/ComfyUI-KJNodes"],"install_type":"git-clone"},"type":"custom-node"},{"id":"09d536ed-5","data":{"url":"https://github.com/Kosinkadink/ComfyUI-VideoHelperSuite","hash":"8e4d79471bf1952154768e8435a9300077b534fa","meta":{"message":"Disable serialization of animated preview widgets","committer":{"date":"2025-08-07T14:53:50.000Z","name":"AustinMroz","email":"austinmroz@utexas.edu"},"commit_url":"https://github.com/Kosinkadink/ComfyUI-VideoHelperSuite/commit/8e4d79471bf1952154768e8435a9300077b534fa","latest_hash":"8e4d79471bf1952154768e8435a9300077b534fa","stargazers_count":1189},"name":"ComfyUI-VideoHelperSuite","files":["https://github.com/Kosinkadink/ComfyUI-VideoHelperSuite"],"install_type":"git-clone"},"type":"custom-node"},{"id":"da0eb28b-d","data":{"url":"https://github.com/BennyKok/comfyui-deploy","hash":"31c38ddb9baf9bfb503493a8af3c5a35fdf2e5ce","meta":{"message":"version bump","committer":{"date":"2025-08-29T22:48:42.000Z","name":"bennykok","email":"itechbenny@gmail.com"},"commit_url":"https://github.com/BennyKok/comfyui-deploy/commit/31c38ddb9baf9bfb503493a8af3c5a35fdf2e5ce","latest_hash":"31c38ddb9baf9bfb503493a8af3c5a35fdf2e5ce","stargazers_count":1408},"name":"ComfyUI Deploy","files":[],"install_type":"git-clone"},"type":"custom-node"},{"id":"4c002af6-b","data":{"url":"https://github.com/phuhl/quicker-connections","hash":"71f825f0ee57af574b2cbf5103b2f9490919671f","meta":{"message":"Bumps version in pyproject","committer":{"date":"2025-08-12T18:16:03.000Z","name":"phuhl","email":"git@ph-uhl.com"},"latest_hash":"71f825f0ee57af574b2cbf5103b2f9490919671f"},"name":"quicker-connections","files":["https://github.com/phuhl/quicker-connections"],"install_type":"git-clone"},"type":"custom-node"},{"id":"a5b04167-9","data":{"url":"https://github.com/if-ai/ComfyUI-IF_Gemini","hash":"74c6648c3994c33f00e980c09a7f1124e9cbe965","meta":{"message":"Update pyproject.toml\n\nbanana ana","committer":{"date":"2025-09-03T12:31:43.000Z","name":"GitHub","email":"noreply@github.com"},"latest_hash":"74c6648c3994c33f00e980c09a7f1124e9cbe965"},"name":"IF_Gemini","files":["https://github.com/if-ai/ComfyUI-IF_Gemini"],"install_type":"git-clone"},"type":"custom-node"}]},"extra_docker_commands":[],"install_custom_node_with_gpu":false},"last_link_id":281,"last_node_id":159,"workflow_api":{"69":{"_meta":{"title":"Resolution Selector (🔗LLMToolkit)"},"inputs":{"mode":"NANO_BANANA","quality":"HQ","block_size":128,"aspect_ratio":["147",0],"enable_radial_attention":false},"class_type":"ResolutionSelector"},"94":{"_meta":{"title":"PROMPT","cd_input_order":2,"cd_input_group_id":null},"inputs":{"input_id":"user_prompt","description":"IF there is no OPENAI_API_KEY on the machine secrets. You will need to enter your full prompt and delete the AI_SYSTEM_PROMPT  \n\nOtherwise you can use this to add a The Task to be preform by the model for example \"replace the cat from image1 with the dog on image2\" \n\nshe is wearing the same clothes but it has the logo on the swimsuit make sure it looks well integrated and part of the same material with the fabric and not just an overlay the logo should wrap with the swinsuit to the body of the model ","display_name":"EXTRA_PROMPT","default_value":"1950s,"},"class_type":"ComfyUIDeployExternalText"},"109":{"_meta":{"title":"Save Image"},"inputs":{"images":["120",1],"filename_prefix":"ComfyUI"},"class_type":"SaveImage"},"120":{"_meta":{"title":"Generate Image (🔗LLMToolkit)"},"inputs":{"mode":"generate","prompt":"","context":["143",0]},"class_type":"GenerateImage"},"129":{"_meta":{"title":"API Provider Selector (🔗LLMToolkit)"},"inputs":{"provider":"openrouter","llm_model":["149",0],"_refresh_models":"Refresh Models","external_api_key":["146",0]},"class_type":"APIProviderSelectorNode"},"130":{"_meta":{"title":"LLM Prompt Manager"},"inputs":{"context":["129",0],"context_1":["159",0],"context_2":["94",0],"context_3":["155",0],"context_4":["69",3]},"class_type":"LLMPromptManager"},"138":{"_meta":{"title":"Load Image"},"inputs":{"image":"1f14c7f814afa666f8b501671f0374e3.jpg"},"class_type":"LoadImage"},"140":{"_meta":{"title":"External Image (ComfyUI Deploy)","cd_input_order":4,"cd_input_group_id":null},"inputs":{"input_id":"subject_image","description":"","display_name":"SUBJECT IMAGE","default_value":["138",0],"default_value_url":""},"class_type":"ComfyUIDeployExternalImage"},"143":{"_meta":{"title":"Configure Image Generation - OpenRouter (🔗LLMToolkit)"},"inputs":{"n":1,"seed":["148",0],"context":["130",0]},"class_type":"ConfigGenerateImageOpenRouter"},"146":{"_meta":{"title":"External Text (ComfyUI Deploy)","cd_input_order":1,"cd_input_group_id":null},"inputs":{"input_id":"external_api_key","description":"ENTER YOUR API KEY TO USE THE APP","display_name":"EXTERNAL API KEY","default_value":""},"class_type":"ComfyUIDeployExternalText"},"147":{"_meta":{"title":"External Enum","cd_input_order":3,"cd_input_group_id":null},"inputs":{"options":"[\"Square (1:1)\",\"Portrait (3:4)\",\"Landscape (4:3)\",\"Portrait (9:16)\",\"Landscape (16:9)\"]","input_id":"aspect_ratio","description":"THE IMAGE WILL GET PADED TO THIS SIZE MAKE SURE TO EDIT THE IMAGE SOURCE SO IT LOOKS GOOD WITH PROPER ASPECT RATIO","display_name":"","default_value":"Portrait (3:4)"},"class_type":"ComfyUIDeployExternalEnum"},"148":{"_meta":{"title":"External Number Int (ComfyUI Deploy)","cd_input_order":5,"cd_input_group_id":null},"inputs":{"input_id":"seed","description":"","display_name":"","default_value":2147483424},"class_type":"ComfyUIDeployExternalNumberInt"},"149":{"_meta":{"title":"External Enum","cd_input_order":0,"cd_input_group_id":null},"inputs":{"options":"[\"google/gemini-2.5-flash-image-preview\",\"google/gemini-2.5-flash-image-preview:free\"]","input_id":"llm_model_free","description":"BOTH MODES NEED YOUR API, BUT OPENROUTER HAS COURTESY IMAGES FOR A DAY ON THE FREE VERSION. You Still need to bring your own API but on the free you won't get charge ","display_name":"Models","default_value":"google/gemini-2.5-flash-image-preview"},"class_type":"ComfyUIDeployExternalEnum"},"155":{"_meta":{"title":"ResizeAndPadImage"},"inputs":{"image":["140",0],"target_width":["69",0],"interpolation":"area","padding_color":"white","target_height":["69",1]},"class_type":"ResizeAndPadImage"},"159":{"_meta":{"title":"String (Multiline)"},"inputs":{"value":"Image Order: IMAGE_1 is always the main SUBJECT; the LAST image is always the BACKGROUND; any middle images (IMAGE_2..IMAGE_{n-1}) are optional REFS that may represent garment/style/pose/prop or other concepts per user text. Maintain the exact facial features, likeness, and composition of the subject in IMAGE_1. Change the hair, clothing, accessories, and background to match the style of a specific decade. **Style:** [ medieavel, 1930s,1950s, 1970s, 1990s, 2000s].  Create a dynamic grid with frames of different sizes, a maximum 6 images "},"class_type":"PrimitiveStringMultiline"}}}