You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
120 lines
2.6 KiB
120 lines
2.6 KiB
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) |
|
|
|
|
|
|