diff --git a/promptmaster-workflow.json b/promptmaster-workflow.json new file mode 100644 index 0000000..613e394 --- /dev/null +++ b/promptmaster-workflow.json @@ -0,0 +1,762 @@ +{ + "last_node_id": 23, + "last_link_id": 34, + "nodes": [ + { + "id": 14, + "type": "PreviewImage", + "pos": [ + 1830, + 500 + ], + "size": { + "0": 536.2163696289062, + "1": 692.5844116210938 + }, + "flags": {}, + "order": 13, + "mode": 0, + "inputs": [ + { + "name": "images", + "type": "IMAGE", + "link": 13 + } + ], + "properties": { + "Node name for S&R": "PreviewImage" + }, + "color": "#233", + "bgcolor": "#355" + }, + { + "id": 13, + "type": "VAEDecode", + "pos": [ + 1480, + 500 + ], + "size": { + "0": 311.2139587402344, + "1": 69.0113525390625 + }, + "flags": { + "collapsed": false + }, + "order": 12, + "mode": 0, + "inputs": [ + { + "name": "samples", + "type": "LATENT", + "link": 14, + "slot_index": 0 + }, + { + "name": "vae", + "type": "VAE", + "link": 34 + } + ], + "outputs": [ + { + "name": "IMAGE", + "type": "IMAGE", + "links": [ + 13 + ], + "shape": 3, + "slot_index": 0 + } + ], + "title": "Voodoo Magic to Image", + "properties": { + "Node name for S&R": "VAEDecode" + }, + "color": "#233", + "bgcolor": "#355" + }, + { + "id": 10, + "type": "KSampler", + "pos": [ + 1480, + 620 + ], + "size": { + "0": 315, + "1": 262 + }, + "flags": {}, + "order": 11, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 19 + }, + { + "name": "positive", + "type": "CONDITIONING", + "link": 23 + }, + { + "name": "negative", + "type": "CONDITIONING", + "link": 24 + }, + { + "name": "latent_image", + "type": "LATENT", + "link": 17, + "slot_index": 3 + } + ], + "outputs": [ + { + "name": "LATENT", + "type": "LATENT", + "links": [ + 14 + ], + "shape": 3 + } + ], + "title": "Voodoo Magic Box", + "properties": { + "Node name for S&R": "KSampler" + }, + "widgets_values": [ + 790041283668453, + "randomize", + 35, + 7.5, + "euler_ancestral", + "karras", + 1 + ], + "color": "#233", + "bgcolor": "#355" + }, + { + "id": 18, + "type": "CR Aspect Ratio", + "pos": [ + 1480, + 940 + ], + "size": { + "0": 315, + "1": 278 + }, + "flags": {}, + "order": 0, + "mode": 0, + "outputs": [ + { + "name": "width", + "type": "INT", + "links": null, + "shape": 3 + }, + { + "name": "height", + "type": "INT", + "links": null, + "shape": 3 + }, + { + "name": "upscale_factor", + "type": "FLOAT", + "links": null, + "shape": 3 + }, + { + "name": "batch_size", + "type": "INT", + "links": null, + "shape": 3 + }, + { + "name": "empty_latent", + "type": "LATENT", + "links": [ + 17 + ], + "shape": 3, + "slot_index": 4 + }, + { + "name": "show_help", + "type": "STRING", + "links": null, + "shape": 3 + } + ], + "properties": { + "Node name for S&R": "CR Aspect Ratio" + }, + "widgets_values": [ + 1024, + 1024, + "SDXL - 3:4 portrait 896x1152", + "Off", + 2, + 1 + ], + "color": "#323", + "bgcolor": "#535" + }, + { + "id": 11, + "type": "CLIPSetLastLayer", + "pos": [ + 572, + 1102 + ], + "size": { + "0": 404.7189636230469, + "1": 67.70719909667969 + }, + "flags": {}, + "order": 6, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 7 + } + ], + "outputs": [ + { + "name": "CLIP", + "type": "CLIP", + "links": [ + 8, + 9 + ], + "shape": 3 + } + ], + "properties": { + "Node name for S&R": "CLIPSetLastLayer" + }, + "widgets_values": [ + -2 + ], + "color": "#2a363b", + "bgcolor": "#3f5159" + }, + { + "id": 9, + "type": "CheckpointLoaderSimple", + "pos": [ + 120, + 1050 + ], + "size": { + "0": 381.3704833984375, + "1": 98 + }, + "flags": {}, + "order": 1, + "mode": 0, + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 18 + ], + "shape": 3, + "slot_index": 0 + }, + { + "name": "CLIP", + "type": "CLIP", + "links": [ + 7 + ], + "shape": 3, + "slot_index": 1 + }, + { + "name": "VAE", + "type": "VAE", + "links": [ + 34 + ], + "shape": 3, + "slot_index": 2 + } + ], + "properties": { + "Node name for S&R": "CheckpointLoaderSimple" + }, + "widgets_values": [ + "juggernautXL_v7Rundiffusion.safetensors" + ], + "color": "#2a363b", + "bgcolor": "#3f5159" + }, + { + "id": 20, + "type": "VAELoader", + "pos": [ + 120, + 920 + ], + "size": { + "0": 379.0299377441406, + "1": 58 + }, + "flags": {}, + "order": 2, + "mode": 0, + "outputs": [ + { + "name": "VAE", + "type": "VAE", + "links": [], + "shape": 3, + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "VAELoader" + }, + "widgets_values": [ + "sdxl_vae fp16.safetensors" + ], + "color": "#2a363b", + "bgcolor": "#3f5159" + }, + { + "id": 4, + "type": "ShowText|pysssss", + "pos": [ + 1040, + 620 + ], + "size": { + "0": 396.61602783203125, + "1": 185.1109619140625 + }, + "flags": {}, + "order": 9, + "mode": 0, + "inputs": [ + { + "name": "text", + "type": "STRING", + "link": 32, + "widget": { + "name": "text" + } + } + ], + "outputs": [ + { + "name": "STRING", + "type": "STRING", + "links": null, + "shape": 6 + } + ], + "title": "Prompt generated by AI", + "properties": { + "Node name for S&R": "ShowText|pysssss" + }, + "widgets_values": [ + "sketch of a stupid panda chomp on a stick of dynamite and the stick has a \"tick tick boom\" text and the panda wearing (fruit hats:1.2) and its eating banana, surrounded by explosive smoke and fire with an anime style, (masterpiece, top quality, best quality, official art, unity 8k wallpaper, ultra detailed, gorgeous artwork), " + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 21, + "type": "Note", + "pos": [ + 110, + 102 + ], + "size": { + "0": 684.4935913085938, + "1": 326.1812438964844 + }, + "flags": {}, + "order": 3, + "mode": 0, + "title": "DO NOT RUN BEFORE READING", + "properties": { + "text": "" + }, + "widgets_values": [ + "The OpenAI node below will NOT WORK till you enter the URL for your local hosted LLM provider and have a model running with the openAI API enabled. If you have no idea what this means, then you probably want to consider using something like LM studio (https://lmstudio.ai/), then download the Model Electrofried/Promptmaster-Mistral-7B-v1-GGUF with that once it is installed.\n\nAfter that you will need to start the local server (↔️ button) and start the server. This is not a guide for that, if you need more help with getting a local llm to work google is your friend or perhaps comment wherever I uploaded this to. Keep in mind running an LLM, even a small one like I have provided uses a lot of resources and RAM/VRAM. If you load the model to GPU it will stay there and ComfyUI will get very unhappy at you unless you are running a literal supercomputer so consider using another PC or if you have enough RAM on your PC loading the model in RAM and do (slower) CPU inference.\n\nOnce you have set everything up, just enter a basic prompt with the style of picture and subject(s) and the LLM will hopefully spit out a formatted prompt with (possibly) relevant additional tags to your prompt.\n\nWARNING WARNING WARNING!!!! WARNING WARNING WARNING!!!! WARNING WARNING WARNING!!!!\n\nThe model I listed above is like a thirsty kid from 4chan who forgot to take their meds. I am not joking when I say it can and will add random totally NSFW/NSFL combinations of things to your prompt. Take care who/where/how you use this. I am not responsible if the LLM hijacks your prompt for \"a baby panda\" in the middle of a discord stream and you get a picture of \"a panda with breasts sitting on a bamboo spike\"... or worse.\n\nWARNING WARNING WARNING!!!! WARNING WARNING WARNING!!!! WARNING WARNING WARNING!!!!\n\nNOTE: The seed for the AI node does nothing. It is only there to ensure a new prompt is generated each run. If you want the prompt to stay fixed then change control after generate to be fixed. " + ], + "color": "#223", + "bgcolor": "#335", + "shape": 1 + }, + { + "id": 23, + "type": "OpenAINode", + "pos": [ + 537, + 525 + ], + "size": { + "0": 423.8551330566406, + "1": 264.0000305175781 + }, + "flags": {}, + "order": 7, + "mode": 0, + "inputs": [ + { + "name": "prompt", + "type": "STRING", + "link": 31, + "widget": { + "name": "prompt" + } + } + ], + "outputs": [ + { + "name": "STRING", + "type": "STRING", + "links": [ + 32, + 33 + ], + "shape": 3, + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "OpenAINode" + }, + "widgets_values": [ + "A world without prompts", + "http://127.0.0.1:1234/v1", + "BadPanda", + 1, + "You are a prompt generation AI. your task is to take a user input for a stable difusion prompt and output and expand the supplied prompt in a stable difusion format to provide better output. Do not deviate from the format. Do not output anything other than a stable diffusion prompt.", + "<|im_end|>", + 250, + 719455151432815, + "randomize" + ], + "color": "#432", + "bgcolor": "#653" + }, + { + "id": 5, + "type": "CLIPTextEncode", + "pos": [ + 1040, + 487 + ], + "size": { + "0": 393.8684997558594, + "1": 54 + }, + "flags": {}, + "order": 10, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 8 + }, + { + "name": "text", + "type": "STRING", + "link": 33, + "widget": { + "name": "text" + } + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "links": [ + 23 + ], + "shape": 3, + "slot_index": 0 + } + ], + "title": "Positive Prompt Encode", + "properties": { + "Node name for S&R": "CLIPTextEncode" + }, + "widgets_values": [ + "" + ], + "color": "#232", + "bgcolor": "#353" + }, + { + "id": 6, + "type": "CLIPTextEncode", + "pos": [ + 1040, + 850 + ], + "size": { + "0": 400, + "1": 200 + }, + "flags": {}, + "order": 8, + "mode": 0, + "inputs": [ + { + "name": "clip", + "type": "CLIP", + "link": 9 + } + ], + "outputs": [ + { + "name": "CONDITIONING", + "type": "CONDITIONING", + "links": [ + 24 + ], + "shape": 3, + "slot_index": 0 + } + ], + "title": "Negative Prompt Encode", + "properties": { + "Node name for S&R": "CLIPTextEncode" + }, + "widgets_values": [ + "" + ], + "color": "#322", + "bgcolor": "#533" + }, + { + "id": 19, + "type": "PatchModelAddDownscale", + "pos": [ + 1039, + 1100 + ], + "size": { + "0": 376.87188720703125, + "1": 202 + }, + "flags": {}, + "order": 5, + "mode": 0, + "inputs": [ + { + "name": "model", + "type": "MODEL", + "link": 18 + } + ], + "outputs": [ + { + "name": "MODEL", + "type": "MODEL", + "links": [ + 19 + ], + "shape": 3, + "slot_index": 0 + } + ], + "properties": { + "Node name for S&R": "PatchModelAddDownscale" + }, + "widgets_values": [ + 4, + 2, + 0, + 0.35, + true, + "bicubic", + "bicubic" + ], + "color": "#2a363b", + "bgcolor": "#3f5159" + }, + { + "id": 8, + "type": "String", + "pos": [ + 537, + 840 + ], + "size": { + "0": 421.69024658203125, + "1": 202.86424255371094 + }, + "flags": {}, + "order": 4, + "mode": 0, + "outputs": [ + { + "name": "STRING", + "type": "STRING", + "links": [ + 31 + ], + "shape": 3, + "slot_index": 0 + } + ], + "title": "Input prompt for LLM", + "properties": { + "Node name for S&R": "String" + }, + "widgets_values": [ + "drawing of a stupid panda eating dynamite" + ], + "color": "#432", + "bgcolor": "#653" + } + ], + "links": [ + [ + 7, + 9, + 1, + 11, + 0, + "CLIP" + ], + [ + 8, + 11, + 0, + 5, + 0, + "CLIP" + ], + [ + 9, + 11, + 0, + 6, + 0, + "CLIP" + ], + [ + 13, + 13, + 0, + 14, + 0, + "IMAGE" + ], + [ + 14, + 10, + 0, + 13, + 0, + "LATENT" + ], + [ + 17, + 18, + 4, + 10, + 3, + "LATENT" + ], + [ + 18, + 9, + 0, + 19, + 0, + "MODEL" + ], + [ + 19, + 19, + 0, + 10, + 0, + "MODEL" + ], + [ + 23, + 5, + 0, + 10, + 1, + "CONDITIONING" + ], + [ + 24, + 6, + 0, + 10, + 2, + "CONDITIONING" + ], + [ + 31, + 8, + 0, + 23, + 0, + "STRING" + ], + [ + 32, + 23, + 0, + 4, + 0, + "STRING" + ], + [ + 33, + 23, + 0, + 5, + 1, + "STRING" + ], + [ + 34, + 9, + 2, + 13, + 1, + "VAE" + ] + ], + "groups": [ + { + "title": "IMPORTANT INFO", + "bounding": [ + 93, + 7, + 726, + 436 + ], + "color": "#b58b2a", + "font_size": 24, + "locked": false + } + ], + "config": {}, + "extra": {}, + "version": 0.4 +} \ No newline at end of file