Spaces:
Configuration error
Configuration error
from server import PromptServer | |
from aiohttp import web | |
import time | |
class ChooserCancelled(Exception): | |
pass | |
class ChooserMessage: | |
stash = {} | |
messages = {} | |
cancelled = False | |
def addMessage(cls, id, message): | |
if message == '__cancel__': | |
cls.messages = {} | |
cls.cancelled = True | |
elif message == '__start__': | |
cls.messages = {} | |
cls.stash = {} | |
cls.cancelled = False | |
else: | |
cls.messages[str(id)] = message | |
def waitForMessage(cls, id, period=0.1, asList=False): | |
sid = str(id) | |
while not (sid in cls.messages) and not ("-1" in cls.messages): | |
if cls.cancelled: | |
cls.cancelled = False | |
raise ChooserCancelled() | |
time.sleep(period) | |
if cls.cancelled: | |
cls.cancelled = False | |
raise ChooserCancelled() | |
message = cls.messages.pop(str(id), None) or cls.messages.pop("-1") | |
try: | |
if asList: | |
return [int(x.strip()) for x in message.split(",")] | |
else: | |
return int(message.strip()) | |
except ValueError: | |
print( | |
f"ERROR IN IMAGE_CHOOSER - failed to parse '${message}' as ${'comma separated list of ints' if asList else 'int'}") | |
return [1] if asList else 1 | |
async def make_image_selection(request): | |
post = await request.post() | |
ChooserMessage.addMessage(post.get("id"), post.get("message")) | |
return web.json_response({}) |