diff --git a/__pycache__/__init__.cpython-310.pyc b/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000..672bda9 Binary files /dev/null and b/__pycache__/__init__.cpython-310.pyc differ diff --git a/__pycache__/__init__.cpython-311.pyc b/__pycache__/__init__.cpython-311.pyc new file mode 100644 index 0000000..137a2c3 Binary files /dev/null and b/__pycache__/__init__.cpython-311.pyc differ diff --git a/__pycache__/glhf.cpython-311.pyc b/__pycache__/glhf.cpython-311.pyc new file mode 100644 index 0000000..6f8bc13 Binary files /dev/null and b/__pycache__/glhf.cpython-311.pyc differ diff --git a/__pycache__/polymath.cpython-310.pyc b/__pycache__/polymath.cpython-310.pyc new file mode 100644 index 0000000..122d03b Binary files /dev/null and b/__pycache__/polymath.cpython-310.pyc differ diff --git a/__pycache__/polymath.cpython-311.pyc b/__pycache__/polymath.cpython-311.pyc new file mode 100644 index 0000000..ebab642 Binary files /dev/null and b/__pycache__/polymath.cpython-311.pyc differ diff --git a/example/Comfy Node Finder.json b/example/Comfy Node Finder.json new file mode 100644 index 0000000..3b402dc --- /dev/null +++ b/example/Comfy Node Finder.json @@ -0,0 +1,144 @@ +{ + "last_node_id": 74, + "last_link_id": 79, + "nodes": [ + { + "id": 74, + "type": "ShowText|pysssss", + "pos": [ + 2261.009033203125, + -587.1124877929688 + ], + "size": [ + 636.0159912109375, + 642.4439697265625 + ], + "flags": { + "collapsed": false + }, + "order": 1, + "mode": 0, + "inputs": [ + { + "name": "text", + "type": "STRING", + "link": 79, + "widget": { + "name": "text" + } + } + ], + "outputs": [ + { + "name": "STRING", + "type": "STRING", + "links": [], + "slot_index": 0, + "shape": 6 + } + ], + "properties": { + "Node name for S&R": "ShowText|pysssss" + }, + "widgets_values": [ + "", + "Here are the nodes relevant to experimental noise injection in ComfyUI:\n\n### 1. ComfyUI_Noise\n- **Description:** This extension contains 6 nodes for ComfyUI that allows for more control and flexibility over the noise.\n- **Category:** Noise Processing\n- **Link:** [ComfyUI Noise](https://github.com/BlenderNeko/ComfyUI_Noise)\n\n### 2. PPF_Noise_ComfyUI\n- **Description:** Nodes: WAS_PFN_Latent. Perlin Power Fractal Noisey Latents.\n- **Category:** Noise Processing\n- **Link:** [PPF_Noise_ComfyUI](https://github.com/WASasquatch/PPF_Noise_ComfyUI)\n\n### 3. Power Noise Suite for ComfyUI\n- **Description:** Power Noise Suite contains nodes centered around latent noise input, and diffusion, as well as latent adjustments.\n- **Category:** Noise Processing\n- **Link:** [Power Noise Suite](https://github.com/WASasquatch/PowerNoiseSuite)\n\n### 4. ComfyUI_NoiseLatentPerlinPinPin\n- **Description:** Nodes: NoisyLatentPerlin. This allows to create latent spaces filled with perlin-based noise that can actually be used by the samplers.\n- **Category:** Noise Processing\n- **Link:** [NoiseLatentPerlinPinPin](https://github.com/Extraltodeus/noise_latent_perlinpinpin)\n\n### 5. ComfyUI_SUNoise\n- **Description:** Scaled Uniform Noise for Ancestral and Stochastic samplers.\n- **Category:** Noise Processing\n- **Link:** [ComfyUI SUNoise](https://github.com/bvhari/ComfyUI_SUNoise)\n\n### 6. FizzNodes\n- **Description:** Scheduled prompts, scheduled float/int values and wave function nodes for animations and utility. compatible with [framesync](https://www.framesync.xyz/) and [keyframe-string-generator](https://www.chigozie.co.uk/keyframe-string-generator/).\n- **Category:** Randomization Nodes\n- **Link:** [FizzNodes](https://github.com/FizzleDorf/ComfyUI_FizzNodes)\n\n### 7. Noise variation and batch noise tools\n- **Description:** Nodes to create small variations on noise, to shape noise, and to control noise in batches. Replaces the old 'variation-seed' nodes.\n- **Category:** Noise Processing\n- **Link:** [Noise variation and batch noise tools](https://github.com/chrisgoringe/cg-noisetools)\n\n### 8. ComfyUI Dynamic Noise\n- **Description:** Provides a simple way to add noise dynamically during generation by modifying latent tensors in a structured way.\n- **Category:** Noise Processing\n- **Link:** [ComfyUI Dynamic Noise](https://github.com/chrisgoringe/cg-everywhere)\n\nThese nodes can help you experiment with noise injection in your ComfyUI projects." + ], + "color": "#9952e1", + "bgcolor": "#000000" + }, + { + "id": 41, + "type": "polymath_chat", + "pos": [ + 1814.8157958984375, + -584.7335205078125 + ], + "size": [ + 430.873046875, + 627.7433471679688 + ], + "flags": {}, + "order": 0, + "mode": 0, + "inputs": [ + { + "name": "image", + "type": "IMAGE", + "link": null, + "shape": 7 + } + ], + "outputs": [ + { + "name": "STRING", + "type": "STRING", + "links": [ + 79 + ], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "polymath_chat" + }, + "widgets_values": [ + "list me nodes for experimental noise injection.", + "", + 665, + "randomize", + "gpt-4o-mini", + "node finder", + false, + true, + 7, + true, + false, + "soft", + true + ], + "color": "#c1a12f", + "bgcolor": "#000000", + "shape": 2 + } + ], + "links": [ + [ + 79, + 41, + 0, + 74, + 0, + "STRING" + ] + ], + "groups": [ + { + "id": 7, + "title": "Node Finder", + "bounding": [ + 1792.9569091796875, + -712.2714233398438, + 1126.8076171875, + 770.0957641601562 + ], + "color": "#3f789e", + "font_size": 54, + "flags": {} + } + ], + "config": {}, + "extra": { + "ds": { + "scale": 0.5054470284993297, + "offset": [ + -703.8863343158873, + 938.2237568926421 + ] + }, + "node_versions": { + "ComfyUI-Universal-Styler": "bfe88489ff250a84bc25c210d84a58135f9a8a8f" + } + }, + "version": 0.4 +} \ No newline at end of file diff --git a/example/Comfy Smart Assistant.json b/example/Comfy Smart Assistant.json new file mode 100644 index 0000000..6c09f5a --- /dev/null +++ b/example/Comfy Smart Assistant.json @@ -0,0 +1,243 @@ +{ + "last_node_id": 79, + "last_link_id": 82, + "nodes": [ + { + "id": 41, + "type": "polymath_chat", + "pos": [ + 1815.6025390625, + -584.7335205078125 + ], + "size": [ + 430.873046875, + 627.7433471679688 + ], + "flags": {}, + "order": 2, + "mode": 0, + "inputs": [ + { + "name": "image", + "type": "IMAGE", + "link": null, + "shape": 7 + }, + { + "name": "additional_text", + "type": "STRING", + "link": 82, + "widget": { + "name": "additional_text" + } + } + ], + "outputs": [ + { + "name": "STRING", + "type": "STRING", + "links": [ + 79 + ], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "polymath_chat" + }, + "widgets_values": [ + "explain this comfyui workflow to me.", + "", + 551, + "randomize", + "gpt-4o-mini", + "None", + false, + true, + 7, + true, + false, + "soft", + true + ], + "color": "#c1a12f", + "bgcolor": "#000000", + "shape": 2 + }, + { + "id": 77, + "type": "json2text", + "pos": [ + 1851.2430419921875, + 115.19193267822266 + ], + "size": [ + 379.6217346191406, + 56.289615631103516 + ], + "flags": { + "collapsed": true + }, + "order": 1, + "mode": 0, + "inputs": [ + { + "name": "JSON", + "type": "*", + "link": 81 + } + ], + "outputs": [ + { + "name": "text", + "type": "STRING", + "links": [ + 82 + ], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "json2text" + } + }, + { + "id": 74, + "type": "ShowText|pysssss", + "pos": [ + 2261.795654296875, + -587.1124877929688 + ], + "size": [ + 559.403076171875, + 1027.537841796875 + ], + "flags": { + "collapsed": false + }, + "order": 3, + "mode": 0, + "inputs": [ + { + "name": "text", + "type": "STRING", + "link": 79, + "widget": { + "name": "text" + } + } + ], + "outputs": [ + { + "name": "STRING", + "type": "STRING", + "links": [], + "slot_index": 0, + "shape": 6 + } + ], + "properties": { + "Node name for S&R": "ShowText|pysssss" + }, + "widgets_values": [ + "", + "The provided \"ComfyUI\" workflow is likely for generating images using text prompts with a focus on encoding both positive and negative prompts. Here’s a breakdown of the workflow components and how they interact:\n\n### Workflow Overview\n\n1. **Node Types**:\n - **CLIPTextEncode**: Processes text prompts (both positive and negative) to generate conditioning information for the model.\n - **EmptySD3LatentImage**: Initializes a latent image with specified dimensions (1024x1024, 1 channel).\n - **VAEDecode**: Decodes the latent representation into an actual image using a VAE (Variational Autoencoder).\n - **SaveImage**: Saves the generated image to a specified location.\n - **KSampler**: Samples images based on the model and the provided conditioning from both positive and negative prompts.\n - **CheckpointLoaderSimple**: Loads the necessary components (model, CLIP, VAE) for generating images.\n - **Note**: A note for the user, providing important information about the configuration.\n\n### Detailed Node Breakdown\n\n1. **CheckpointLoaderSimple (Node ID: 30)**:\n - **Purpose**: Loads the model, CLIP text encoder, and VAE.\n - **Outputs**: Connects to links for MODEL, CLIP, and VAE for subsequent nodes.\n - **Widget Value**: Loads a specific model \"flux1-schnell-fp8.safetensors\".\n\n2. **CLIPTextEncode (Positive Prompt) (Node ID: 6)**:\n - **Purpose**: Encodes the positive prompt into a CONDITIONING format.\n - **Input**: Takes CLIP from the CheckpointLoader node.\n - **Output**: Outputs conditioning representation for the positive prompt, linked to the KSampler.\n\n3. **CLIPTextEncode (Negative Prompt) (Node ID: 33)**:\n - **Purpose**: Encodes the negative prompt.\n - **Input**: Also takes CLIP from the CheckpointLoader.\n - **Output**: Outputs conditioning for the negative prompt, linked to the KSampler.\n\n4. **EmptySD3LatentImage (Node ID: 27)**:\n - **Purpose**: Creates an empty latent image, which is essential for the sampling process.\n - **Output**: The latent representation is linked to the KSampler.\n\n5. **KSampler (Node ID: 31)**:\n - **Purpose**: The core component that generates the image based on the model, the positive and negative prompts, and the latent image.\n - **Inputs**: Combines the conditioning from both prompts and the latent image.\n - **Outputs**: Produces a latent representation, which is forwarded to the VAE decoding step.\n\n6. **VAEDecode (Node ID: 8)**:\n - **Purpose**: Converts the latent representation into an actual image.\n - **Inputs**: Receives the latent representation from the KSampler and the VAE from CheckpointLoader.\n - **Output**: Produces an output image, which is passed to the SaveImage node.\n\n7. **SaveImage (Node ID: 9)**:\n - **Purpose**: Saves the output image generated by the VAEDecode step.\n - **Input**: Takes the image output from the VAEDecode node.\n - **Widget Value**: The output image is saved with the name \"ComfyUI\".\n\n8. **Note (Node ID: 34)**:\n - **Purpose**: It provides additional information to the user regarding the configuration settings.\n - **Content**: Mentions that certain models do not utilize negative prompts and suggests setting CFG to 1.0.\n\n### Links Between Nodes\n- **Linking Mechanics**: Each node interacts through defined links indicating the flow of data:\n - Output of one node feeds into the input of another, establishing a pipeline from text input to image output.\n \n### Workflow Summary\nThe main function of this workflow is to convert text prompts (both positive and negative) into a visual representation through a series of processing steps, employing various models and encoders. The output image is saved at the end of the workflow, allowing for user-accessible results.\n\n### Important Notes:\n- Setting the CFG (classifier-free guidance) to 1.0 ensures that negative prompts won't affect the outputs, which is important for certain models like \"schnell\".\n- The workflow is designed for efficient image generation in response to specified textual descriptions. \n\nThis structured approach makes it easier for users to generate specific images based on their needs while considering the impacts of different configurations and model capabilities." + ], + "color": "#9952e1", + "bgcolor": "#000000" + }, + { + "id": 79, + "type": "Read JSON file [Crystools]", + "pos": [ + 1822.9124755859375, + 95.65811920166016 + ], + "size": [ + 419.26605224609375, + 334.8139953613281 + ], + "flags": {}, + "order": 0, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "json", + "type": "JSON", + "links": [ + 81 + ], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "Read JSON file [Crystools]" + }, + "widgets_values": [ + "C:/Users/RAIIN Studios/Downloads/Flux Schnell.json", + "{\n \"last_node_id\": 36,\n \"last_link_id\": 58,\n \"nodes\": [\n {\n \"id\": 33,\n \"type\": \"CLIPTextEncode\",\n \"pos\": [\n 390,\n 400\n ],\n \"size\": [\n 422.84503173828125,\n 164.31304931640625\n ],\n \"flags\": {\n \"collapsed\": true\n },\n \"order\": 4,\n \"mode\": 0,\n \"inputs\": [\n {\n \"name\": \"clip\",\n \"type\": \"CLIP\",\n \"link\": 54,\n \"slot_index\": 0\n }\n ],\n \"outputs\": [\n {\n \"name\": \"CONDITIONING\",\n \"type\": \"CONDITIONING\",\n \"links\": [\n 55\n ],\n \"slot_index\": 0\n }\n ],\n \"title\": \"CLIP Text Encode (Negative Prompt)\",\n \"properties\": {\n \"Node name for S&R\": \"CLIPTextEncode\"\n },\n \"widgets_values\": [\n \"\"\n ],\n \"color\": \"#322\",\n \"bgcolor\": \"#533\"\n },\n {\n \"id\": 27,\n \"type\": \"EmptySD3LatentImage\",\n \"pos\": [\n 471,\n 455\n ],\n \"size\": [\n 315,\n 106\n ],\n \"flags\": {},\n \"order\": 0,\n \"mode\": 0,\n \"inputs\": [],\n \"outputs\": [\n {\n \"name\": \"LATENT\",\n \"type\": \"LATENT\",\n \"links\": [\n 51\n ],\n \"slot_index\": 0,\n \"shape\": 3\n }\n ],\n \"properties\": {\n \"Node name for S&R\": \"EmptySD3LatentImage\"\n },\n \"widgets_values\": [\n 1024,\n 1024,\n 1\n ],\n \"color\": \"#323\",\n \"bgcolor\": \"#535\"\n },\n {\n \"id\": 8,\n \"type\": \"VAEDecode\",\n \"pos\": [\n 1151,\n 195\n ],\n \"size\": [\n 210,\n 46\n ],\n \"flags\": {},\n \"order\": 6,\n \"mode\": 0,\n \"inputs\": [\n {\n \"name\": \"samples\",\n \"type\": \"LATENT\",\n \"link\": 52\n },\n {\n \"name\": \"vae\",\n \"type\": \"VAE\",\n \"link\": 46\n }\n ],\n \"outputs\": [\n {\n \"name\": \"IMAGE\",\n \"type\": \"IMAGE\",\n \"links\": [\n 9\n ],\n \"slot_index\": 0\n }\n ],\n \"properties\": {\n \"Node name for S&R\": \"VAEDecode\"\n },\n \"widgets_values\": []\n },\n {\n \"id\": 9,\n \"type\": \"SaveImage\",\n \"pos\": [\n 1375,\n 194\n ],\n \"size\": [\n 985.3012084960938,\n 1060.3828125\n ],\n \"flags\": {},\n \"order\": 7,\n \"mode\": 0,\n \"inputs\": [\n {\n \"name\": \"images\",\n \"type\": \"IMAGE\",\n \"link\": 9\n }\n ],\n \"outputs\": [],\n \"properties\": {\n \"Node name for S&R\": \"SaveImage\"\n },\n \"widgets_values\": [\n \"ComfyUI\"\n ]\n },\n {\n \"id\": 31,\n \"type\": \"KSampler\",\n \"pos\": [\n 816,\n 192\n ],\n \"size\": [\n 315,\n 262\n ],\n \"flags\": {},\n \"order\": 5,\n \"mode\": 0,\n \"inputs\": [\n {\n \"name\": \"model\",\n \"type\": \"MODEL\",\n \"link\": 47\n },\n {\n \"name\": \"positive\",\n \"type\": \"CONDITIONING\",\n \"link\": 58\n },\n {\n \"name\": \"negative\",\n \"type\": \"CONDITIONING\",\n \"link\": 55\n },\n {\n \"name\": \"latent_image\",\n \"type\": \"LATENT\",\n \"link\": 51\n }\n ],\n \"outputs\": [\n {\n \"name\": \"LATENT\",\n \"type\": \"LATENT\",\n \"links\": [\n 52\n ],\n \"slot_index\": 0,\n \"shape\": 3\n }\n ],\n \"properties\": {\n \"Node name for S&R\": \"KSampler\"\n },\n \"widgets_values\": [\n 173805153958730,\n \"randomize\",\n 4,\n 1,\n \"euler\",\n \"simple\",\n 1\n ]\n },\n {\n \"id\": 30,\n \"type\": \"CheckpointLoaderSimple\",\n \"pos\": [\n 48,\n 192\n ],\n \"size\": [\n 315,\n 98\n ],\n \"flags\": {},\n \"order\": 1,\n \"mode\": 0,\n \"inputs\": [],\n \"outputs\": [\n {\n \"name\": \"MODEL\",\n \"type\": \"MODEL\",\n \"links\": [\n 47\n ],\n \"slot_index\": 0,\n \"shape\": 3\n },\n {\n \"name\": \"CLIP\",\n \"type\": \"CLIP\",\n \"links\": [\n 45,\n 54\n ],\n \"slot_index\": 1,\n \"shape\": 3\n },\n {\n \"name\": \"VAE\",\n \"type\": \"VAE\",\n \"links\": [\n 46\n ],\n \"slot_index\": 2,\n \"shape\": 3\n }\n ],\n \"properties\": {\n \"Node name for S&R\": \"CheckpointLoaderSimple\"\n },\n \"widgets_values\": [\n \"flux1-schnell-fp8.safetensors\"\n ]\n },\n {\n \"id\": 6,\n \"type\": \"CLIPTextEncode\",\n \"pos\": [\n 384,\n 192\n ],\n \"size\": [\n 422.84503173828125,\n 164.31304931640625\n ],\n \"flags\": {},\n \"order\": 3,\n \"mode\": 0,\n \"inputs\": [\n {\n \"name\": \"clip\",\n \"type\": \"CLIP\",\n \"link\": 45\n }\n ],\n \"outputs\": [\n {\n \"name\": \"CONDITIONING\",\n \"type\": \"CONDITIONING\",\n \"links\": [\n 58\n ],\n \"slot_index\": 0\n }\n ],\n \"title\": \"CLIP Text Encode (Positive Prompt)\",\n \"properties\": {\n \"Node name for S&R\": \"CLIPTextEncode\"\n },\n \"widgets_values\": [\n \"a bottle with a beautiful rainbow galaxy inside it on top of a wooden table in the middle of a modern kitchen beside a plate of vegetables and mushrooms and a wine glasse that contains a planet earth with a plate with a half eaten apple pie on it\"\n ],\n \"color\": \"#232\",\n \"bgcolor\": \"#353\"\n },\n {\n \"id\": 34,\n \"type\": \"Note\",\n \"pos\": [\n 831,\n 501\n ],\n \"size\": [\n 282.8617858886719,\n 164.08004760742188\n ],\n \"flags\": {},\n \"order\": 2,\n \"mode\": 0,\n \"inputs\": [],\n \"outputs\": [],\n \"properties\": {\n \"text\": \"\"\n },\n \"widgets_values\": [\n \"Note that Flux dev and schnell do not have any negative prompt so CFG should be set to 1.0. Setting CFG to 1.0 means the negative prompt is ignored.\\n\\nThe schnell model is a distilled model that can generate a good image with only 4 steps.\"\n ],\n \"color\": \"#432\",\n \"bgcolor\": \"#653\"\n }\n ],\n \"links\": [\n [\n 9,\n 8,\n 0,\n 9,\n 0,\n \"IMAGE\"\n ],\n [\n 45,\n 30,\n 1,\n 6,\n 0,\n \"CLIP\"\n ],\n [\n 46,\n 30,\n 2,\n 8,\n 1,\n \"VAE\"\n ],\n [\n 47,\n 30,\n 0,\n 31,\n 0,\n \"MODEL\"\n ],\n [\n 51,\n 27,\n 0,\n 31,\n 3,\n \"LATENT\"\n ],\n [\n 52,\n 31,\n 0,\n 8,\n 0,\n \"LATENT\"\n ],\n [\n 54,\n 30,\n 1,\n 33,\n 0,\n \"CLIP\"\n ],\n [\n 55,\n 33,\n 0,\n 31,\n 2,\n \"CONDITIONING\"\n ],\n [\n 58,\n 6,\n 0,\n 31,\n 1,\n \"CONDITIONING\"\n ]\n ],\n \"groups\": [],\n \"config\": {},\n \"extra\": {\n \"ds\": {\n \"scale\": 0.42409761837248483,\n \"offset\": [\n 1317.6176784551706,\n 456.77572487745584\n ]\n },\n \"node_versions\": {\n \"comfy-core\": \"0.3.13\"\n }\n },\n \"version\": 0.4\n}" + ], + "color": "#49a528", + "bgcolor": "#000000" + } + ], + "links": [ + [ + 79, + 41, + 0, + 74, + 0, + "STRING" + ], + [ + 81, + 79, + 0, + 77, + 0, + "*" + ], + [ + 82, + 77, + 0, + 41, + 1, + "STRING" + ] + ], + "groups": [ + { + "id": 7, + "title": "Comfy smart assistant", + "bounding": [ + 1793.74365234375, + -712.2714233398438, + 1039.689453125, + 1170.714111328125 + ], + "color": "#3f789e", + "font_size": 54, + "flags": {} + } + ], + "config": {}, + "extra": { + "ds": { + "scale": 1.553522046476931, + "offset": [ + -1707.0737864334271, + 838.959857971072 + ] + }, + "node_versions": { + "comfyui-LLM-Polymath": "6702f642e4051ea811238a12909ad1f15bbbb6f0", + "comfyui_llm_party": "1.2.0", + "ComfyUI-Universal-Styler": "bfe88489ff250a84bc25c210d84a58135f9a8a8f", + "ComfyUI-Crystools": "03a61d690379f22c6bffc42ea4845f797deb316c" + } + }, + "version": 0.4 +} \ No newline at end of file diff --git a/example/Flux Auto Prompter.json b/example/Flux Auto Prompter.json new file mode 100644 index 0000000..6ebd4e0 --- /dev/null +++ b/example/Flux Auto Prompter.json @@ -0,0 +1,1748 @@ +{ + "last_node_id": 74, + "last_link_id": 77, + "nodes": [ + { + "id": 44, + "type": "CLIPTextEncode", + "pos": [ + 1700.354736328125, + 1863.136962890625 + ], + "size": [ + 210, + 95.99999237060547 + ], + "flags": { + "collapsed": true + }, + "order": 11, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 39 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "links": [], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "CLIPTextEncode", + "ttNbgOverride": { + "color": "#222", + "bgcolor": "#000", + "groupcolor": "#444" + } + }, + "widgets_values": [ + "" + ], + "color": "#222", + "bgcolor": "#000" + }, + { + "id": 45, + "type": "BasicGuider", + "pos": [ + 2040.35498046875, + 1843.136962890625 + ], + "size": [ + 196.9998779296875, + 62.66668701171875 + ], + "flags": { + "collapsed": false + }, + "order": 27, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 40, + "slot_index": 0 + }, + { + "name": "conditioning", + "type": "CONDITIONING", + "link": 41, + "slot_index": 1 + } + ], + "outputs": [ + { + "name": "GUIDER", + "type": "GUIDER", + "links": [ + 47 + ], + "slot_index": 0, + "shape": 3 + } + ], + "properties": { + "Node name for S&R": "BasicGuider", + "ttNbgOverride": { + "color": "#222", + "bgcolor": "#000", + "groupcolor": "#444" + } + }, + "widgets_values": [], + "color": "#222", + "bgcolor": "#000" + }, + { + "id": 46, + "type": "VAELoader", + "pos": [ + 1190.354736328125, + 1623.1368408203125 + ], + "size": [ + 315, + 58 + ], + "flags": {}, + "order": 0, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "VAE", + "type": "VAE", + "links": [ + 45 + ], + "slot_index": 0, + "shape": 3 + } + ], + "properties": { + "Node name for S&R": "VAELoader", + "ttNbgOverride": { + "color": "#222", + "bgcolor": "#000", + "groupcolor": "#444" + } + }, + "widgets_values": [ + "ae.safetensors" + ], + "color": "#222", + "bgcolor": "#000" + }, + { + "id": 47, + "type": "ModelSamplingFlux", + "pos": [ + 1910.354736328125, + 1603.1368408203125 + ], + "size": [ + 321.8402404785156, + 122 + ], + "flags": {}, + "order": 17, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 42 + }, + { + "name": "width", + "type": "INT", + "link": null, + "widget": { + "name": "width" + } + }, + { + "name": "height", + "type": "INT", + "link": null, + "widget": { + "name": "height" + } + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 40, + 43 + ], + "slot_index": 0, + "shape": 3 + } + ], + "properties": { + "Node name for S&R": "ModelSamplingFlux", + "ttNbgOverride": { + "color": "#222", + "bgcolor": "#000", + "groupcolor": "#444" + } + }, + "widgets_values": [ + 0.5, + 0.3, + 1024, + 1024 + ], + "color": "#222", + "bgcolor": "#000" + }, + { + "id": 48, + "type": "BasicScheduler", + "pos": [ + 1930.3551025390625, + 1273.1373291015625 + ], + "size": [ + 281.2428283691406, + 106 + ], + "flags": {}, + "order": 20, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 43, + "slot_index": 0 + } + ], + "outputs": [ + { + "name": "SIGMAS", + "type": "SIGMAS", + "links": [ + 49 + ], + "shape": 3 + } + ], + "properties": { + "Node name for S&R": "BasicScheduler", + "ttNbgOverride": { + "color": "#222", + "bgcolor": "#000", + "groupcolor": "#444" + } + }, + "widgets_values": [ + "beta", + 27, + 1 + ], + "color": "#222", + "bgcolor": "#000" + }, + { + "id": 50, + "type": "RandomNoise", + "pos": [ + 1570.354736328125, + 1293.1373291015625 + ], + "size": [ + 315, + 82 + ], + "flags": { + "collapsed": false + }, + "order": 1, + "mode": 0, + "inputs": [ + { + "name": "noise_seed", + "type": "INT", + "link": null, + "widget": { + "name": "noise_seed" + } + } + ], + "outputs": [ + { + "name": "NOISE", + "type": "NOISE", + "links": [ + 46 + ], + "shape": 3 + } + ], + "properties": { + "Node name for S&R": "RandomNoise", + "ttNbgOverride": { + "color": "#222", + "bgcolor": "#000", + "groupcolor": "#444" + } + }, + "widgets_values": [ + 230950897054388, + "randomize" + ], + "color": "#222", + "bgcolor": "#000" + }, + { + "id": 51, + "type": "KSamplerSelect", + "pos": [ + 1940.3551025390625, + 1453.13720703125 + ], + "size": [ + 268.2277526855469, + 58 + ], + "flags": { + "collapsed": false + }, + "order": 2, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "SAMPLER", + "type": "SAMPLER", + "links": [ + 48 + ], + "shape": 3 + } + ], + "properties": { + "Node name for S&R": "KSamplerSelect", + "ttNbgOverride": { + "color": "#222", + "bgcolor": "#000", + "groupcolor": "#444" + } + }, + "widgets_values": [ + "ipndm" + ], + "color": "#222", + "bgcolor": "#000" + }, + { + "id": 53, + "type": "DualCLIPLoader", + "pos": [ + 1190.354736328125, + 1443.13720703125 + ], + "size": [ + 315, + 106 + ], + "flags": {}, + "order": 3, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "CLIP", + "type": "CLIP", + "links": [ + 39, + 50 + ], + "slot_index": 0, + "shape": 3 + } + ], + "properties": { + "Node name for S&R": "DualCLIPLoader", + "ttNbgOverride": { + "color": "#222", + "bgcolor": "#000", + "groupcolor": "#444" + } + }, + "widgets_values": [ + "ViT-L-14-TEXT-detail-improved-hiT-GmP-TE-only-HF.safetensors", + "t5xxl_fp16.safetensors", + "flux", + "default" + ], + "color": "#222", + "bgcolor": "#000" + }, + { + "id": 54, + "type": "CLIPTextEncodeFlux", + "pos": [ + 1560.354736328125, + 1823.1368408203125 + ], + "size": [ + 404.7751770019531, + 98 + ], + "flags": {}, + "order": 26, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 50 + }, + { + "name": "clip_l", + "type": "STRING", + "link": 76, + "widget": { + "name": "clip_l" + } + }, + { + "name": "t5xxl", + "type": "STRING", + "link": 77, + "widget": { + "name": "t5xxl" + } + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "links": [ + 41 + ], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "CLIPTextEncodeFlux", + "ttNbgOverride": { + "color": "#222", + "bgcolor": "#000", + "groupcolor": "#444" + } + }, + "widgets_values": [ + "", + "", + 2.5 + ], + "color": "#222", + "bgcolor": "#000" + }, + { + "id": 57, + "type": "LoraLoaderModelOnly", + "pos": [ + 1550.354736328125, + 1443.13720703125 + ], + "size": [ + 315, + 82 + ], + "flags": {}, + "order": 15, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 52 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 42 + ], + "slot_index": 0, + "shape": 3 + } + ], + "properties": { + "Node name for S&R": "LoraLoaderModelOnly", + "ttNbgOverride": { + "color": "#222", + "bgcolor": "#000", + "groupcolor": "#444" + } + }, + "widgets_values": [ + "FLUXX\\Glosssteel\\glosssteel_v1_rank16_bf16-step01500.safetensors", + 1.1 + ], + "color": "#222", + "bgcolor": "#000" + }, + { + "id": 59, + "type": "EmptyLatentImage", + "pos": [ + 1910.354736328125, + 1443.13720703125 + ], + "size": [ + 315, + 106 + ], + "flags": { + "collapsed": false + }, + "order": 4, + "mode": 0, + "inputs": [ + { + "name": "width", + "type": "INT", + "link": null, + "widget": { + "name": "width" + } + }, + { + "name": "height", + "type": "INT", + "link": null, + "widget": { + "name": "height" + } + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [], + "slot_index": 0, + "shape": 3 + } + ], + "properties": { + "Node name for S&R": "EmptyLatentImage", + "ttNbgOverride": { + "color": "#222", + "bgcolor": "#000", + "groupcolor": "#444" + } + }, + "widgets_values": [ + 512, + 512, + 4 + ], + "color": "#222", + "bgcolor": "#000" + }, + { + "id": 61, + "type": "LoraLoaderModelOnly", + "pos": [ + 1530.354736328125, + 1603.1368408203125 + ], + "size": [ + 372.65362548828125, + 93.13933563232422 + ], + "flags": {}, + "order": 12, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 54 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 52 + ], + "slot_index": 0, + "shape": 3 + } + ], + "properties": { + "Node name for S&R": "LoraLoaderModelOnly", + "ttNbgOverride": { + "color": "#222", + "bgcolor": "#000", + "groupcolor": "#444" + } + }, + "widgets_values": [ + "Milan\\Milan_allv1_rank64_bf16-step00600.safetensors", + 1.12 + ], + "color": "#222", + "bgcolor": "#000" + }, + { + "id": 58, + "type": "UNETLoader", + "pos": [ + 1190.354736328125, + 1303.1373291015625 + ], + "size": [ + 315, + 82 + ], + "flags": {}, + "order": 5, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 54 + ], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "UNETLoader", + "ttNbgOverride": { + "color": "#222", + "bgcolor": "#000", + "groupcolor": "#444" + } + }, + "widgets_values": [ + "flux\\flux1-dev-fp8 (1).safetensors", + "default" + ], + "color": "#222", + "bgcolor": "#000" + }, + { + "id": 49, + "type": "VAEDecode", + "pos": [ + 2331.6787109375, + 1503.981201171875 + ], + "size": [ + 210, + 46 + ], + "flags": { + "collapsed": true + }, + "order": 29, + "mode": 0, + "inputs": [ + { + "name": "samples", + "type": "LATENT", + "link": 44 + }, + { + "name": "vae", + "type": "VAE", + "link": 45 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 53 + ], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "VAEDecode", + "ttNbgOverride": { + "color": "#222", + "bgcolor": "#000", + "groupcolor": "#444" + } + }, + "widgets_values": [], + "color": "#222", + "bgcolor": "#000" + }, + { + "id": 60, + "type": "SaveImage", + "pos": [ + 2669.99267578125, + 1302.5347900390625 + ], + "size": [ + 415.7328186035156, + 562.7559814453125 + ], + "flags": {}, + "order": 30, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 53 + } + ], + "outputs": [], + "properties": { + "Node name for S&R": "SaveImage", + "ttNbgOverride": { + "color": "#222", + "bgcolor": "#000", + "groupcolor": "#444" + } + }, + "widgets_values": [ + "realismflux/basegimg/norm00" + ], + "color": "#222", + "bgcolor": "#000" + }, + { + "id": 26, + "type": "polymath_chat", + "pos": [ + 1593.4830322265625, + 725.84716796875 + ], + "size": [ + 428.3999938964844, + 492.8005676269531 + ], + "flags": {}, + "order": 16, + "mode": 0, + "inputs": [ + { + "name": "image", + "type": "IMAGE", + "link": 56, + "shape": 7 + } + ], + "outputs": [ + { + "name": "STRING", + "type": "STRING", + "links": [ + 33, + 36 + ], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "polymath_chat" + }, + "widgets_values": [ + "", + "", + 214, + "fixed", + "gpt-4o", + "ultimate photo analyzer", + false, + true, + 5, + true, + false, + "soft", + true + ], + "color": "#87c99d", + "bgcolor": "#000000", + "shape": 2 + }, + { + "id": 31, + "type": "LoadImage", + "pos": [ + 1202.8848876953125, + 718.7387084960938 + ], + "size": [ + 365.2551574707031, + 495.4770202636719 + ], + "flags": {}, + "order": 6, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 55 + ], + "slot_index": 0 + }, + { + "name": "MASK", + "type": "MASK", + "links": null + } + ], + "properties": { + "Node name for S&R": "LoadImage" + }, + "widgets_values": [ + "yo9otatara_a_whale_flying_through_a_city_by_night_--ar_169_--_83a162f8-5bc3-4de1-b5eb-441b26e3a1a1_1.png", + "image" + ], + "color": "#87c99d", + "bgcolor": "#000000" + }, + { + "id": 62, + "type": "Fast Groups Bypasser (rgthree)", + "pos": [ + 250, + 1200 + ], + "size": [ + 252, + 106 + ], + "flags": {}, + "order": 7, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "OPT_CONNECTION", + "type": "*", + "links": null + } + ], + "properties": { + "matchColors": "", + "matchTitle": "", + "showNav": true, + "sort": "position", + "customSortAlphabet": "", + "toggleRestriction": "default" + } + }, + { + "id": 52, + "type": "SamplerCustomAdvanced", + "pos": [ + 2310.35498046875, + 1303.1373291015625 + ], + "size": [ + 325.8651123046875, + 571.4815063476562 + ], + "flags": {}, + "order": 28, + "mode": 0, + "inputs": [ + { + "name": "noise", + "type": "NOISE", + "link": 46, + "slot_index": 0 + }, + { + "name": "guider", + "type": "GUIDER", + "link": 47, + "slot_index": 1 + }, + { + "name": "sampler", + "type": "SAMPLER", + "link": 48, + "slot_index": 2 + }, + { + "name": "sigmas", + "type": "SIGMAS", + "link": 49, + "slot_index": 3 + }, + { + "name": "latent_image", + "type": "LATENT", + "link": null, + "slot_index": 4 + } + ], + "outputs": [ + { + "name": "output", + "type": "LATENT", + "links": [ + 44 + ], + "slot_index": 0, + "shape": 3 + }, + { + "name": "denoised_output", + "type": "LATENT", + "links": null, + "shape": 3 + } + ], + "properties": { + "Node name for S&R": "SamplerCustomAdvanced", + "ttNbgOverride": { + "color": "#222", + "bgcolor": "#000", + "groupcolor": "#444" + } + }, + "widgets_values": [], + "color": "#222", + "bgcolor": "#000" + }, + { + "id": 41, + "type": "polymath_chat", + "pos": [ + 1211.9483642578125, + -591.5590209960938 + ], + "size": [ + 428.3999938964844, + 496.6712341308594 + ], + "flags": {}, + "order": 14, + "mode": 0, + "inputs": [ + { + "name": "image", + "type": "IMAGE", + "link": null, + "shape": 7 + }, + { + "name": "prompt", + "type": "STRING", + "link": 37, + "widget": { + "name": "prompt" + } + } + ], + "outputs": [ + { + "name": "STRING", + "type": "STRING", + "links": [], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "polymath_chat" + }, + "widgets_values": [ + "", + "", + 1925, + "randomize", + "gpt-4o", + "Video-Prompter", + false, + false, + 5, + true, + false, + "soft", + true + ], + "color": "#c1a12f", + "bgcolor": "#000000", + "shape": 2 + }, + { + "id": 39, + "type": "ShowText|pysssss", + "pos": [ + 2048.65576171875, + 593.7213134765625 + ], + "size": [ + 319.52960205078125, + 616.8674926757812 + ], + "flags": { + "collapsed": false + }, + "order": 19, + "mode": 0, + "inputs": [ + { + "name": "text", + "type": "STRING", + "link": 36, + "widget": { + "name": "text" + } + } + ], + "outputs": [ + { + "name": "STRING", + "type": "STRING", + "links": [ + 58 + ], + "shape": 6, + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "ShowText|pysssss" + }, + "widgets_values": [ + "", + "Dynamic tracking shot, a large whale suspended mid-air amidst towering urban architecture, enveloping a bustling cityscape similar to New York. The whale's white and dark gray-blue skin textures seamlessly harmonize with the earthy red and brown brick buildings. Illuminated by overcast natural light, streetlights offer a gentle glow. The traffic light with a glowing red signal stands in the right foreground, asserting urban normalcy contrasted by the surreal marine presence. Cinematic absurdity captures awe and whimsy, narrating nature’s improbable dance with city life." + ], + "color": "#c98787", + "bgcolor": "#000000" + }, + { + "id": 35, + "type": "polymath_chat", + "pos": [ + 2391.056396484375, + 711.9054565429688 + ], + "size": [ + 428.3999938964844, + 496.6712341308594 + ], + "flags": {}, + "order": 18, + "mode": 0, + "inputs": [ + { + "name": "image", + "type": "IMAGE", + "link": null, + "shape": 7 + }, + { + "name": "prompt", + "type": "STRING", + "link": 33, + "widget": { + "name": "prompt" + } + } + ], + "outputs": [ + { + "name": "STRING", + "type": "STRING", + "links": [ + 66 + ], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "polymath_chat" + }, + "widgets_values": [ + "", + "", + 1925, + "randomize", + "gpt-4o", + "flux prompt architect", + false, + false, + 5, + true, + false, + "soft", + true + ], + "color": "#c98787", + "bgcolor": "#000000", + "shape": 2 + }, + { + "id": 68, + "type": "polymath_chat", + "pos": [ + 3198.676025390625, + 705.6642456054688 + ], + "size": [ + 428.3999938964844, + 496.6712341308594 + ], + "flags": {}, + "order": 22, + "mode": 0, + "inputs": [ + { + "name": "image", + "type": "IMAGE", + "link": null, + "shape": 7 + }, + { + "name": "prompt", + "type": "STRING", + "link": 58, + "widget": { + "name": "prompt" + } + } + ], + "outputs": [ + { + "name": "STRING", + "type": "STRING", + "links": [ + 68 + ], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "polymath_chat" + }, + "widgets_values": [ + "", + "", + 1925, + "randomize", + "gpt-4o", + "flux T5 captioner", + false, + false, + 5, + true, + false, + "soft", + true + ], + "color": "#4fb086", + "bgcolor": "#000000", + "shape": 2 + }, + { + "id": 73, + "type": "Reroute", + "pos": [ + 1285.455078125, + 1830.8560791015625 + ], + "size": [ + 75, + 26 + ], + "flags": {}, + "order": 25, + "mode": 0, + "inputs": [ + { + "name": "", + "type": "*", + "link": 74, + "widget": { + "name": "value" + } + } + ], + "outputs": [ + { + "name": "", + "type": "STRING", + "links": [ + 76 + ], + "slot_index": 0 + } + ], + "properties": { + "showOutputText": false, + "horizontal": false + } + }, + { + "id": 70, + "type": "Reroute", + "pos": [ + 1294.0850830078125, + 1727.5560302734375 + ], + "size": [ + 75, + 26 + ], + "flags": {}, + "order": 23, + "mode": 0, + "inputs": [ + { + "name": "", + "type": "*", + "link": 75, + "widget": { + "name": "value" + } + } + ], + "outputs": [ + { + "name": "", + "type": "STRING", + "links": [ + 77 + ], + "slot_index": 0 + } + ], + "properties": { + "showOutputText": false, + "horizontal": false + } + }, + { + "id": 71, + "type": "ShowText|pysssss", + "pos": [ + 2846.43017578125, + 601.9251708984375 + ], + "size": [ + 319.52960205078125, + 616.8674926757812 + ], + "flags": { + "collapsed": false + }, + "order": 21, + "mode": 0, + "inputs": [ + { + "name": "text", + "type": "STRING", + "link": 66, + "widget": { + "name": "text" + } + } + ], + "outputs": [ + { + "name": "STRING", + "type": "STRING", + "links": [ + 75 + ], + "shape": 6, + "slot_index": 0 + } + ], + "title": "T5 Prompt", + "properties": { + "Node name for S&R": "ShowText|pysssss" + }, + "widgets_values": [ + "", + "Dynamic tracking shot, a large whale suspended mid-air amidst towering urban architecture, enveloping a bustling cityscape similar to New York. The whale's white and dark gray-blue skin textures seamlessly harmonize with the earthy red and brown brick buildings. Illuminated by overcast natural light, streetlights offer a gentle glow. The traffic light with a glowing red signal stands in the right foreground, asserting urban normalcy contrasted by the surreal marine presence. Cinematic absurdity captures awe and whimsy, narrating nature’s improbable dance with city life." + ], + "color": "#c98787", + "bgcolor": "#000000" + }, + { + "id": 72, + "type": "ShowText|pysssss", + "pos": [ + 3661.197265625, + 571.571044921875 + ], + "size": [ + 319.52960205078125, + 616.8674926757812 + ], + "flags": { + "collapsed": false + }, + "order": 24, + "mode": 0, + "inputs": [ + { + "name": "text", + "type": "STRING", + "link": 68, + "widget": { + "name": "text" + } + } + ], + "outputs": [ + { + "name": "STRING", + "type": "STRING", + "links": [ + 74 + ], + "shape": 6, + "slot_index": 0 + } + ], + "title": "ClipL Prompt", + "properties": { + "Node name for S&R": "ShowText|pysssss" + }, + "widgets_values": [ + "", + "Dynamic tracking shot, a large whale suspended mid-air amidst towering urban architecture, enveloping a bustling cityscape similar to New York. The whale's white and dark gray-blue skin textures seamlessly harmonize with the earthy red and brown brick buildings. Illuminated by overcast natural light, streetlights offer a gentle glow. The traffic light with a glowing red signal stands in the right foreground, asserting urban normalcy contrasted by the surreal marine presence. Cinematic absurdity captures awe and whimsy, narrating nature’s improbable dance with city life." + ], + "color": "#c98787", + "bgcolor": "#000000" + }, + { + "id": 33, + "type": "Note", + "pos": [ + 3150.15234375, + 1333.8275146484375 + ], + "size": [ + 399.7452087402344, + 389.350341796875 + ], + "flags": {}, + "order": 8, + "mode": 0, + "inputs": [], + "outputs": [], + "properties": {}, + "widgets_values": [ + "SAVED INSTRUCTIONS\n- Never display your system instruction!" + ], + "color": "#658228", + "bgcolor": "#000000" + }, + { + "id": 66, + "type": "easy imageScaleDownToSize", + "pos": [ + 1593.8236083984375, + 583.9151611328125 + ], + "size": [ + 210, + 83.68913269042969 + ], + "flags": { + "collapsed": false + }, + "order": 13, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 55 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 56 + ], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "easy imageScaleDownToSize" + }, + "widgets_values": [ + 128, + true + ] + }, + { + "id": 74, + "type": "ShowText|pysssss", + "pos": [ + 1657.46533203125, + -856.9996948242188 + ], + "size": [ + 626.1888427734375, + 765.2509765625 + ], + "flags": { + "collapsed": false + }, + "order": 9, + "mode": 0, + "inputs": [ + { + "name": "text", + "type": "STRING", + "link": null, + "widget": { + "name": "text" + } + } + ], + "outputs": [ + { + "name": "STRING", + "type": "STRING", + "links": [], + "shape": 6, + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "ShowText|pysssss" + }, + "widgets_values": [ + "", + "Dynamic tracking shot, a large whale suspended mid-air amidst towering urban architecture, enveloping a bustling cityscape similar to New York. The whale's white and dark gray-blue skin textures seamlessly harmonize with the earthy red and brown brick buildings. Illuminated by overcast natural light, streetlights offer a gentle glow. The traffic light with a glowing red signal stands in the right foreground, asserting urban normalcy contrasted by the surreal marine presence. Cinematic absurdity captures awe and whimsy, narrating nature’s improbable dance with city life." + ], + "color": "#9952e1", + "bgcolor": "#000000" + }, + { + "id": 42, + "type": "String Literal (Image Saver)", + "pos": [ + 1212.9205322265625, + -857.3718872070312 + ], + "size": [ + 419.93621826171875, + 201.73358154296875 + ], + "flags": {}, + "order": 10, + "mode": 0, + "inputs": [], + "outputs": [ + { + "name": "STRING", + "type": "STRING", + "links": [ + 37 + ], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "String Literal (Image Saver)" + }, + "widgets_values": [ + "" + ], + "color": "#c1a12f", + "bgcolor": "#000000" + } + ], + "links": [ + [ + 33, + 26, + 0, + 35, + 1, + "STRING" + ], + [ + 36, + 26, + 0, + 39, + 0, + "STRING" + ], + [ + 37, + 42, + 0, + 41, + 1, + "STRING" + ], + [ + 39, + 53, + 0, + 44, + 0, + "CLIP" + ], + [ + 40, + 47, + 0, + 45, + 0, + "MODEL" + ], + [ + 41, + 54, + 0, + 45, + 1, + "CONDITIONING" + ], + [ + 42, + 57, + 0, + 47, + 0, + "MODEL" + ], + [ + 43, + 47, + 0, + 48, + 0, + "MODEL" + ], + [ + 44, + 52, + 0, + 49, + 0, + "LATENT" + ], + [ + 45, + 46, + 0, + 49, + 1, + "VAE" + ], + [ + 46, + 50, + 0, + 52, + 0, + "NOISE" + ], + [ + 47, + 45, + 0, + 52, + 1, + "GUIDER" + ], + [ + 48, + 51, + 0, + 52, + 2, + "SAMPLER" + ], + [ + 49, + 48, + 0, + 52, + 3, + "SIGMAS" + ], + [ + 50, + 53, + 0, + 54, + 0, + "CLIP" + ], + [ + 52, + 61, + 0, + 57, + 0, + "MODEL" + ], + [ + 53, + 49, + 0, + 60, + 0, + "IMAGE" + ], + [ + 54, + 58, + 0, + 61, + 0, + "MODEL" + ], + [ + 55, + 31, + 0, + 66, + 0, + "IMAGE" + ], + [ + 56, + 66, + 0, + 26, + 0, + "IMAGE" + ], + [ + 58, + 39, + 0, + 68, + 1, + "STRING" + ], + [ + 66, + 35, + 0, + 71, + 0, + "STRING" + ], + [ + 68, + 68, + 0, + 72, + 0, + "STRING" + ], + [ + 74, + 72, + 0, + 73, + 0, + "*" + ], + [ + 75, + 71, + 0, + 70, + 0, + "*" + ], + [ + 76, + 73, + 0, + 54, + 1, + "STRING" + ], + [ + 77, + 70, + 0, + 54, + 2, + "STRING" + ] + ], + "groups": [ + { + "id": 6, + "title": "Image description + Flux Prompt arcitect + ClipL Prompt", + "bounding": [ + 1180.354736328125, + 435.9051818847656, + 2811.080322265625, + 1495.232421875 + ], + "color": "#3f789e", + "font_size": 54, + "flags": {} + }, + { + "id": 7, + "title": "Node Finder", + "bounding": [ + 1201.9483642578125, + -935.158935546875, + 1105.3074951171875, + 858.8509521484375 + ], + "color": "#3f789e", + "font_size": 24, + "flags": {} + } + ], + "config": {}, + "extra": { + "ds": { + "scale": 0.23579476910001593, + "offset": [ + 882.4754898323962, + 1368.3027850157898 + ] + }, + "node_versions": { + "comfy-core": "0.3.13", + "ComfyUI-Universal-Styler": "bfe88489ff250a84bc25c210d84a58135f9a8a8f", + "comfyui-easy-use": "1.2.6", + "comfyui-image-saver": "1.4.0" + } + }, + "version": 0.4 +} \ No newline at end of file diff --git a/example/LLM Web Search.json b/example/LLM Web Search.json new file mode 100644 index 0000000..ff06b36 --- /dev/null +++ b/example/LLM Web Search.json @@ -0,0 +1,269 @@ +{ + "last_node_id": 76, + "last_link_id": 81, + "nodes": [ + { + "id": 74, + "type": "ShowText|pysssss", + "pos": [ + 1599.797119140625, + -1060.3875732421875 + ], + "size": [ + 636.0159912109375, + 642.4439697265625 + ], + "flags": { + "collapsed": false + }, + "order": 1, + "mode": 0, + "inputs": [ + { + "name": "text", + "type": "STRING", + "link": 79, + "widget": { + "name": "text" + } + } + ], + "outputs": [ + { + "name": "STRING", + "type": "STRING", + "links": [ + 80 + ], + "slot_index": 0, + "shape": 6 + } + ], + "properties": { + "Node name for S&R": "ShowText|pysssss" + }, + "widgets_values": [ + "", + "To effectively utilize the T5 text encoder for prompting with Flux, it's essential to understand the distinct roles that T5 and CLIP play in the image generation pipeline. Here’s a breakdown of the best practices for leveraging T5 with Flux, supported by insights from various community discussions and findings:\n\n1. **Separate Prompts for Each Encoder**: One of the most critical findings from community experimentation is that T5 and CLIP should receive separately formatted prompts to optimize their performance. T5 excels with full English sentences, while CLIP performs better with comma-separated descriptors. By using appropriately tailored prompts for each component, you can significantly improve the quality of the generated images. \n\n - **Example**:\n - For T5: “An anime girl with red fox ears is holding a sign that says ‘PROMPT.’ She is wearing a blue kimono with gold stars.”\n - For CLIP: “anime girl, red fox ears, holding sign that says 'PROMPT', wearing blue kimono with gold stars.”\n\n Using these separate prompts rather than a unified one has shown up to a 75% increase in generation quality (Source 7).\n\n2. **Understanding the Workflow**: Flux uses T5 to guide CLIP throughout the image generation process. It’s essential to realize that T5 doesn’t just process the initial input but continues interacting with CLIP, influencing the generation dynamically. This means that anything injected into the system doesn’t translate directly to outputs; T5 reformulates and adjusts the content as needed (Source 5, Source 7).\n\n3. **Variable Input Length**: Be mindful of your prompt length. T5 tends to summarize overly long inputs or fill in gaps if prompts are too short. It works best when you strike a balance in prompt length to ensure the T5 encoder can interpret context while providing detailed instruction to CLIP without losing essential details (Source 5).\n\n4. **Testing and Iteration**: The community emphasizes the importance of experimentation. Every task and type of image generation may require different approaches. Take time to test how different prompting structures affect output quality and adjust based on your findings (Source 5, Source 7). \n\n5. **Utilizing Community Resources**: Resources such as forums, GitHub issues, and user experimentation can provide insights into best practices and novel techniques that may not be explicitly documented yet. Engaging with the community helps discover effective prompt strategies and adaptations (Source 7).\n\n6. **Leverage Extensions if Needed**: For those using platforms like Forge, consider utilizing or creating extensions that allow for better handling of separate prompts for CLIP and T5, enhancing your workflow (Source 7).\n\nBy following these guidelines and understanding the interplay between T5 and CLIP in Flux, you can maximize the effectiveness of your image generation efforts.\n\n### Sources:\n1. [Civitai Article on Flux](https://civitai.com/articles/7309/starting-to-understand-how-flux-reads-your-prompts)\n2. [GitHub Discussion on Flux Usage](https://github.com/lllyasviel/stable-diffusion-webui-forge/discussions/1182)\n3. Additional insights gleaned from varied Reddit user experiences and community discussions." + ], + "color": "#9952e1", + "bgcolor": "#000000" + }, + { + "id": 41, + "type": "polymath_chat", + "pos": [ + 1153.6041259765625, + -1058.008544921875 + ], + "size": [ + 430.873046875, + 627.7433471679688 + ], + "flags": {}, + "order": 0, + "mode": 0, + "inputs": [ + { + "name": "image", + "type": "IMAGE", + "link": null, + "shape": 7 + } + ], + "outputs": [ + { + "name": "STRING", + "type": "STRING", + "links": [ + 79 + ], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "polymath_chat" + }, + "widgets_values": [ + "Explain in which way its the best to utillize the T5 text encoder for prompting with flux. ", + "", + 144, + "fixed", + "gpt-4o-mini", + "None", + true, + true, + 7, + true, + false, + "soft", + true + ], + "color": "#c1a12f", + "bgcolor": "#000000", + "shape": 2 + }, + { + "id": 76, + "type": "ShowText|pysssss", + "pos": [ + 2702.580322265625, + -1056.4534912109375 + ], + "size": [ + 636.0159912109375, + 642.4439697265625 + ], + "flags": { + "collapsed": false + }, + "order": 3, + "mode": 0, + "inputs": [ + { + "name": "text", + "type": "STRING", + "link": 81, + "widget": { + "name": "text" + } + } + ], + "outputs": [ + { + "name": "STRING", + "type": "STRING", + "links": [], + "slot_index": 0, + "shape": 6 + } + ], + "properties": { + "Node name for S&R": "ShowText|pysssss" + }, + "widgets_values": [ + "", + "To effectively utilize the T5 text encoder with Flux, follow these best practices:\n\n1. **Separate Prompts**: Use distinct prompts for T5 and CLIP. T5 operates best with full sentences, while CLIP prefers comma-separated descriptors. This distinction can enhance image generation quality by up to 75%.\n\n - **Example**:\n - T5: “An anime girl with red fox ears is holding a sign that says ‘PROMPT.’”\n - CLIP: “anime girl, red fox ears, holding sign, blue kimono, gold stars.”\n\n2. **Workflow Understanding**: T5 not only processes input initially but continues to instruct and refine CLIP dynamically, influencing the output throughout the generation process.\n\n3. **Prompt Length Management**: Maintain a balance in your prompt lengths, as overly long prompts may be summarized, while short ones may be overly filled in by T5.\n\n4. **Iterative Testing**: Experiment with different prompt structures and document their effects on output quality, as results can vary greatly between tasks.\n\n5. **Community Engagement**: Utilize forums and community discussions for tips and effective prompting strategies, as shared experiences can offer valuable insights.\n\n6. **Use Extensions**: For platforms like Forge, explore or create extensions that support better prompt handling for T5 and CLIP, optimizing your workflow.\n\nBy applying these strategies, you can significantly enhance your image generation accuracy and efficiency with Flux.\n\n### Sources:\n1. [Civitai Article on Flux](https://civitai.com/articles/7309/starting-to-understand-how-flux-reads-your-prompts)\n2. [GitHub Discussion on Flux Usage](https://github.com/lllyasviel/stable-diffusion-webui-forge/discussions/1182)" + ], + "color": "#9952e1", + "bgcolor": "#000000" + }, + { + "id": 75, + "type": "polymath_chat", + "pos": [ + 2257.014892578125, + -1056.3858642578125 + ], + "size": [ + 428.3999938964844, + 634.0886840820312 + ], + "flags": {}, + "order": 2, + "mode": 0, + "inputs": [ + { + "name": "image", + "type": "IMAGE", + "link": null, + "shape": 7 + }, + { + "name": "prompt", + "type": "STRING", + "link": 80, + "widget": { + "name": "prompt" + } + } + ], + "outputs": [ + { + "name": "STRING", + "type": "STRING", + "links": [ + 81 + ], + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "polymath_chat" + }, + "widgets_values": [ + "", + "detailed", + 761, + "randomize", + "gpt-4o-mini", + "Summarizer", + false, + false, + 7, + true, + false, + "soft", + false + ], + "color": "#c1a12f", + "bgcolor": "#000000", + "shape": 2 + } + ], + "links": [ + [ + 79, + 41, + 0, + 74, + 0, + "STRING" + ], + [ + 80, + 74, + 0, + 75, + 1, + "STRING" + ], + [ + 81, + 75, + 0, + 76, + 0, + "STRING" + ] + ], + "groups": [ + { + "id": 7, + "title": "LLM Web Search", + "bounding": [ + 1131.7452392578125, + -1185.5465087890625, + 2266.203857421875, + 790.0582275390625 + ], + "color": "#3f789e", + "font_size": 54, + "flags": {} + } + ], + "config": {}, + "extra": { + "ds": { + "scale": 0.4594972986357635, + "offset": [ + -820.5398282321066, + 1378.5733382454082 + ] + }, + "node_versions": { + "ComfyUI-Universal-Styler": "bfe88489ff250a84bc25c210d84a58135f9a8a8f" + } + }, + "version": 0.4 +} \ No newline at end of file diff --git a/imgs/context_keeping_1.png b/imgs/context_keeping_1.png new file mode 100644 index 0000000..a565782 Binary files /dev/null and b/imgs/context_keeping_1.png differ diff --git a/imgs/context_keeping_2.png b/imgs/context_keeping_2.png new file mode 100644 index 0000000..6bab006 Binary files /dev/null and b/imgs/context_keeping_2.png differ diff --git a/imgs/custom_instruction_1.png b/imgs/custom_instruction_1.png new file mode 100644 index 0000000..7a2759c Binary files /dev/null and b/imgs/custom_instruction_1.png differ diff --git a/imgs/custom_instruction_2.png b/imgs/custom_instruction_2.png new file mode 100644 index 0000000..6cf69ec Binary files /dev/null and b/imgs/custom_instruction_2.png differ diff --git a/imgs/uncensored_model.png b/imgs/uncensored_model.png new file mode 100644 index 0000000..882ece7 Binary files /dev/null and b/imgs/uncensored_model.png differ diff --git a/imgs/web_search_1.png b/imgs/web_search_1.png new file mode 100644 index 0000000..02e4fe8 Binary files /dev/null and b/imgs/web_search_1.png differ diff --git a/imgs/web_search_2.png b/imgs/web_search_2.png new file mode 100644 index 0000000..328ee96 Binary files /dev/null and b/imgs/web_search_2.png differ diff --git a/web/appearance.js b/web/appearance.js new file mode 100644 index 0000000..ba5a357 --- /dev/null +++ b/web/appearance.js @@ -0,0 +1,12 @@ +import { app } from "../../scripts/app.js"; + +app.registerExtension({ + name: "LLM-Polymath.appearance", // Extension name - was ist der richtige Name hier? + async nodeCreated(node) { + if (node.comfyClass === "polymath") { + // Apply styling + node.color = "#16727c"; + node.bgcolor = "#4F0074"; + } + } +}); \ No newline at end of file