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({}) |