Spaces:
Running
Running
import json | |
from urllib import request, parse | |
import random | |
#This is the ComfyUI api prompt format. | |
#If you want it for a specific workflow you can "enable dev mode options" | |
#in the settings of the UI (gear beside the "Queue Size: ") this will enable | |
#a button on the UI to save workflows in api format. | |
#keep in mind ComfyUI is pre alpha software so this format will change a bit. | |
#this is the one for the default workflow | |
prompt_text = """ | |
{ | |
"3": { | |
"class_type": "KSampler", | |
"inputs": { | |
"cfg": 8, | |
"denoise": 1, | |
"latent_image": [ | |
"5", | |
0 | |
], | |
"model": [ | |
"4", | |
0 | |
], | |
"negative": [ | |
"7", | |
0 | |
], | |
"positive": [ | |
"6", | |
0 | |
], | |
"sampler_name": "euler", | |
"scheduler": "normal", | |
"seed": 8566257, | |
"steps": 20 | |
} | |
}, | |
"4": { | |
"class_type": "CheckpointLoaderSimple", | |
"inputs": { | |
"ckpt_name": "v1-5-pruned-emaonly.ckpt" | |
} | |
}, | |
"5": { | |
"class_type": "EmptyLatentImage", | |
"inputs": { | |
"batch_size": 1, | |
"height": 512, | |
"width": 512 | |
} | |
}, | |
"6": { | |
"class_type": "CLIPTextEncode", | |
"inputs": { | |
"clip": [ | |
"4", | |
1 | |
], | |
"text": "masterpiece best quality girl" | |
} | |
}, | |
"7": { | |
"class_type": "CLIPTextEncode", | |
"inputs": { | |
"clip": [ | |
"4", | |
1 | |
], | |
"text": "bad hands" | |
} | |
}, | |
"8": { | |
"class_type": "VAEDecode", | |
"inputs": { | |
"samples": [ | |
"3", | |
0 | |
], | |
"vae": [ | |
"4", | |
2 | |
] | |
} | |
}, | |
"9": { | |
"class_type": "SaveImage", | |
"inputs": { | |
"filename_prefix": "ComfyUI", | |
"images": [ | |
"8", | |
0 | |
] | |
} | |
} | |
} | |
""" | |
def queue_prompt(prompt): | |
p = {"prompt": prompt} | |
data = json.dumps(p).encode('utf-8') | |
req = request.Request("http://127.0.0.1:8188/prompt", data=data) | |
request.urlopen(req) | |
prompt = json.loads(prompt_text) | |
#set the text prompt for our positive CLIPTextEncode | |
prompt["6"]["inputs"]["text"] = "masterpiece best quality man" | |
#set the seed for our KSampler node | |
prompt["3"]["inputs"]["seed"] = 5 | |
queue_prompt(prompt) | |