Enable Diffusion Image models asynchronous output (#4981)

Signed-off-by: zzh <943967662@qq.com>
Co-authored-by: dengyunyang <584797741@qq.com>
This commit is contained in:
zzhanddengyunyang authored and GitHub committed 2026-07-29 17:21:55 +00:00
1 parent f2d9eb1630
commit dba05c3517
22 files changed
+1440 -72

No files matched your search

+32
View File
@@ -1273,6 +1273,7 @@ class DiffusionOutput:
trajectory_latents: torch.Tensor | dict[str, Any] | None = None
trajectory_log_probs: torch.Tensor | dict[str, Any] | None = None
trajectory_decoded: list[Image.Image] | None = None
async_output_id: str | None = None
error: str | None = None
error_status_code: int | None = None
error_type: str | None = None
@@ -1333,6 +1334,37 @@ class DiffusionOutput:
)
class AsyncOutputKind(Enum):
"""Message kind for ``AsyncDiffusionOutput`` — routes async results.
* ``RPC_RESULT`` — ordinary RPC return (sleep, wake, profile, etc.)
* ``COMPUTE_DONE`` — worker forward finished, GPU can start next request
* ``OUTPUT_READY`` — background D2H/SHM packing finished, final output
is available via ``async_output_id``
"""
RPC_RESULT = "rpc_result"
COMPUTE_DONE = "compute_done"
OUTPUT_READY = "output_ready"
@dataclass
class AsyncDiffusionOutput:
"""Async protocol envelope for ``result_mq`` messages.
In request-mode (``step_execution=False``), all ``result_mq``
messages use this envelope. The ``kind`` field routes the message
to the correct consumer.
"""
kind: AsyncOutputKind
rpc_id: str | None = None
async_output_id: str | None = None
result: Any | None = None
output: DiffusionOutput | None = None
error: str | None = None
class DiffusionRequestAbortedError(RuntimeError):
"""Raised when a diffusion request ends via user-visible abort."""