Spaces:
Runtime error
Runtime error
File size: 1,362 Bytes
e4153e0 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | """
Schemas Pydantic du protocole WebSocket /ws/edit.
Deux messages client -> serveur (protocole a 2 phases, cf. decision UX
"apercu du masque avant generation") :
1. LocateRequest -> le serveur repond MaskReadyEvent (ou ErrorEvent)
2. ConfirmRequest -> le serveur repond une serie de ProgressEvent puis un
ResultEvent (ou ErrorEvent)
Une connexion WebSocket = une session d'edition (l'etat image+masque entre
les deux phases vit le temps de la connexion, cote serveur).
"""
from typing import List, Literal, Optional
from pydantic import BaseModel
class LocateRequest(BaseModel):
type: Literal["locate"] = "locate"
image_b64: str
text_query: str
class ConfirmRequest(BaseModel):
type: Literal["confirm"] = "confirm"
prompt: str
negative_prompt: str = ""
steps: int = 30
guidance_scale: float = 7.5
seed: int = 42
class MaskReadyEvent(BaseModel):
type: Literal["mask_ready"] = "mask_ready"
mask_b64: str
box: List[float]
clip_confidence: float
class ProgressEvent(BaseModel):
type: Literal["progress"] = "progress"
stage: Literal["diffusion"] = "diffusion"
step: int
total: int
class ResultEvent(BaseModel):
type: Literal["result"] = "result"
image_b64: str
class ErrorEvent(BaseModel):
type: Literal["error"] = "error"
message: str
|