@@ -2546,15 +2546,19 @@ def noscript_webui(self):
25462546 status = str (parsed_dict ['status' ][0 ]) if 'status' in parsed_dict else "Ready To Generate"
25472547 prompt = str (parsed_dict ['prompt' ][0 ]) if 'prompt' in parsed_dict else ""
25482548 chatmsg = str (parsed_dict ['chatmsg' ][0 ]) if 'chatmsg' in parsed_dict else ""
2549+ imgprompt = str (parsed_dict ['imgprompt' ][0 ]) if 'imgprompt' in parsed_dict else ""
25492550 max_length = int (parsed_dict ['max_length' ][0 ]) if 'max_length' in parsed_dict else 100
25502551 temperature = float (parsed_dict ['temperature' ][0 ]) if 'temperature' in parsed_dict else 0.75
25512552 top_k = int (parsed_dict ['top_k' ][0 ]) if 'top_k' in parsed_dict else 100
25522553 top_p = float (parsed_dict ['top_p' ][0 ]) if 'top_p' in parsed_dict else 0.9
25532554 rep_pen = float (parsed_dict ['rep_pen' ][0 ]) if 'rep_pen' in parsed_dict else 1.0
25542555 ban_eos_token = int (parsed_dict ['ban_eos_token' ][0 ]) if 'ban_eos_token' in parsed_dict else 0
2556+ steps = int (parsed_dict ['steps' ][0 ]) if 'steps' in parsed_dict else 25
2557+ cfg = int (parsed_dict ['cfg' ][0 ]) if 'cfg' in parsed_dict else 7
25552558 genbtnval = (parsed_dict ['generate' ][0 ] if 'generate' in parsed_dict else "" )
25562559 gencommand = (genbtnval == "Generate" or genbtnval == "Send" )
25572560 chatmode = int (parsed_dict ['chatmode' ][0 ]) if 'chatmode' in parsed_dict else 0
2561+ imgmode = int (parsed_dict ['imgmode' ][0 ]) if 'imgmode' in parsed_dict else 0
25582562 human_name = str (parsed_dict ['human_name' ][0 ]) if 'human_name' in parsed_dict else "User"
25592563 bot_name = str (parsed_dict ['bot_name' ][0 ]) if 'bot_name' in parsed_dict else "Assistant"
25602564 stops = []
@@ -2568,6 +2572,12 @@ def noscript_webui(self):
25682572 gencommand = False
25692573 stops = [f"\n { human_name } :" ,f"\n { bot_name } :" ]
25702574 prefix = f"[This is a chat conversation log between { human_name } and { bot_name } .]\n "
2575+ elif imgmode :
2576+ if imgprompt :
2577+ prompt = imgprompt
2578+ max_length = 1
2579+ else :
2580+ gencommand = False
25712581
25722582 if modelbusy .locked ():
25732583 status = "Model is currently busy, try again later."
@@ -2581,20 +2591,27 @@ def noscript_webui(self):
25812591 epurl = f"{ httpsaffix } ://localhost:{ args .port } "
25822592 if args .host != "" :
25832593 epurl = f"{ httpsaffix } ://{ args .host } :{ args .port } "
2584- gen_payload = {"prompt" : prefix + prompt ,"max_length" : max_length ,"temperature" : temperature ,"top_k" : top_k ,"top_p" : top_p ,"rep_pen" : rep_pen ,"ban_eos_token" :ban_eos_token , "stop_sequence" :stops }
2585- respjson = make_url_request (f'{ epurl } /api/v1/generate' , gen_payload )
2586- reply = html .escape (respjson ["results" ][0 ]["text" ])
2587- if chatmode :
2588- reply = " " + reply .strip ()
2594+ if imgmode and imgprompt :
2595+ gen_payload = {"prompt" :{"3" :{"inputs" :{"cfg" :cfg ,"steps" :steps }},"6" :{"inputs" :{"text" :imgprompt }}}}
2596+ respjson = make_url_request (f'{ epurl } /prompt' , gen_payload )
2597+ else :
2598+ gen_payload = {"prompt" : prefix + prompt ,"max_length" : max_length ,"temperature" : temperature ,"top_k" : top_k ,"top_p" : top_p ,"rep_pen" : rep_pen ,"ban_eos_token" :ban_eos_token , "stop_sequence" :stops }
2599+ respjson = make_url_request (f'{ epurl } /api/v1/generate' , gen_payload )
2600+ reply = html .escape (respjson ["results" ][0 ]["text" ])
2601+ if chatmode :
2602+ reply = " " + reply .strip ()
25892603 status = "Generation Completed"
25902604
25912605 if "generate" in parsed_dict :
25922606 del parsed_dict ["generate" ]
25932607 if "chatmsg" in parsed_dict :
25942608 del parsed_dict ["chatmsg" ]
2609+ if "imgprompt" in parsed_dict :
2610+ del parsed_dict ["imgprompt" ]
25952611 parsed_dict ["prompt" ] = prompt + reply
25962612 parsed_dict ["status" ] = status
25972613 parsed_dict ["chatmode" ] = ("1" if chatmode else "0" )
2614+ parsed_dict ["imgmode" ] = ("1" if imgmode else "0" )
25982615 updated_query_string = urlparse .urlencode (parsed_dict , doseq = True )
25992616 updated_path = parsed_url ._replace (query = updated_query_string ).geturl ()
26002617 self .path = updated_path
@@ -2604,8 +2621,19 @@ def noscript_webui(self):
26042621 self .end_headers (content_type = 'text/html' )
26052622 return
26062623
2607- bodycontent = f'''<b><u>{ "Chat Mode" if chatmode else "Story Mode" } </u></b><br>'''
2608- if chatmode :
2624+ imgbtn = '''<form action="/noscript" style="display: inline;">
2625+ <input type="hidden" name="imgmode" value="1">
2626+ <input type="submit" value="Image Mode">
2627+ </form>'''
2628+
2629+ bodycontent = f'''<b><u>{ "Image Mode" if imgmode else ("Chat Mode" if chatmode else "Story Mode" )} </u></b><br>'''
2630+ optionscontent = ""
2631+ if imgmode :
2632+ bodycontent += f'''<p>Generated Image: { prompt if prompt else "None" } </p>
2633+ { '<img src="view.png" width="320" width="320">' if prompt else "" } <br>
2634+ <label>Image Prompt: </label><input type="text" size="40" value="" name="imgprompt">
2635+ <input type="submit" name="generate" value="Generate"> (Be patient)'''
2636+ elif chatmode :
26092637 oldconvo = prompt .strip ().replace (f"{ human_name } :" ,f"<b>{ human_name } :</b>" ).replace (f"{ bot_name } :" ,f"<b>{ bot_name } :</b>" ).replace ("\n " ,"<br>" )
26102638 oldconvo += f'''<input type="hidden" name="human_name" value="{ human_name } "><input type="hidden" name="bot_name" value="{ bot_name } ">'''
26112639 newconvo = '''Start a new conversation.<br>
@@ -2621,6 +2649,17 @@ def noscript_webui(self):
26212649<textarea name="prompt" cols="60" rows="8" wrap="soft" placeholder="Enter Prompt Here">{ prompt } </textarea><br>
26222650<input type="submit" name="generate" value="Generate"> (Be patient)
26232651'''
2652+ if not imgmode :
2653+ optionscontent = f'''<label>Gen. Amount</label> <input type="text" size="4" value="{ max_length } " name="max_length"><br>
2654+ <label>Temperature</label> <input type="text" size="4" value="{ temperature } " name="temperature"><br>
2655+ <label>Top-K</label> <input type="text" size="4" value="{ top_k } " name="top_k"><br>
2656+ <label>Top-P</label> <input type="text" size="4" value="{ top_p } " name="top_p"><br>
2657+ <label>Rep. Pen</label> <input type="text" size="4" value="{ rep_pen } " name="rep_pen"><br>
2658+ <label>Prevent EOS</label> <input type="checkbox" name="ban_eos_token" value="1" { "checked" if ban_eos_token else "" } ><br>'''
2659+ else :
2660+ optionscontent = f'''<label>Steps</label> <input type="text" size="4" value="{ steps } " name="steps"><br>
2661+ <label>Cfg. Scale</label> <input type="text" size="4" value="{ cfg } " name="cfg"><br>'''
2662+
26242663 finalhtml = f'''<!doctype html>
26252664<html lang="en"><head>
26262665<meta charset="utf-8">
@@ -2635,23 +2674,21 @@ def noscript_webui(self):
26352674<hr>
26362675<b>{ status } </b><br>
26372676<hr>
2638- <label>Gen. Amount</label> <input type="text" size="4" value="{ max_length } " name="max_length"><br>
2639- <label>Temperature</label> <input type="text" size="4" value="{ temperature } " name="temperature"><br>
2640- <label>Top-K</label> <input type="text" size="4" value="{ top_k } " name="top_k"><br>
2641- <label>Top-P</label> <input type="text" size="4" value="{ top_p } " name="top_p"><br>
2642- <label>Rep. Pen</label> <input type="text" size="4" value="{ rep_pen } " name="rep_pen"><br>
2643- <label>Prevent EOS</label> <input type="checkbox" name="ban_eos_token" value="1" { "checked" if ban_eos_token else "" } ><br>
2677+ { optionscontent }
26442678<input type="hidden" name="chatmode" value="{ chatmode } ">
2679+ <input type="hidden" name="imgmode" value="{ imgmode } ">
26452680</form>
26462681<hr>
26472682<div style="display: inline-block;">
2683+ Change Mode<br>
26482684<form action="/noscript" style="display: inline;">
2649- <input type="submit" value="Reset ( Story Mode) ">
2685+ <input type="submit" value="Story Mode">
26502686</form>
26512687<form action="/noscript" style="display: inline;">
26522688<input type="hidden" name="chatmode" value="1">
2653- <input type="submit" value="Reset ( Chat Mode) ">
2689+ <input type="submit" value="Chat Mode">
26542690</form>
2691+ { imgbtn if "txt2img" in get_capabilities () else "" }
26552692</div>
26562693</div>
26572694</body></html>'''
@@ -2791,7 +2828,7 @@ def do_GET(self):
27912828 response_body = (json .dumps ([]).encode ())
27922829 else :
27932830 response_body = (json .dumps ([friendlysdmodelname ]).encode ())
2794- elif self .path == '/view' or self .path == '/api/view' or self .path .startswith ('/view?' ) or self .path .startswith ('/api/view?' ): #emulate comfyui
2831+ elif self .path == '/view' or self .path == '/view.png' or self . path == '/ api/view' or self .path .startswith ('/view?' ) or self .path .startswith ('/api/view?' ): #emulate comfyui
27952832 content_type = 'image/png'
27962833 response_body = lastgeneratedcomfyimg
27972834 elif self .path == '/history' or self .path == '/api/history' or self .path .startswith ('/api/history/' ) or self .path .startswith ('/history/' ): #emulate comfyui
0 commit comments