* VideoGenerator.generate_async(request) yields VideoEvent objects: one VideoProgressEvent at start, one VideoFinalEvent per resulting GenerationResult (prompt-batch expansion emits one Final per sub-result). The aggregated code path runs the existing sync generate() inside asyncio.to_thread; future work threads per-step progress events from inside the pipeline's denoise loop without changing the public contract. * VideoGenerator.default_health_check_request() returns a 256x256 / 8-frame / 1-step typed GenerationRequest. Dynamo uses it to derive its health_check_payload without knowing FastVideo internals. * _final_event_from_result packages GenerationResult into a VideoFinalEvent, reading the encoded MP4 off disk when the pipeline wrote one so streaming consumers don't re-encode. Also: streaming_server.run_server validates streaming config before loading the generator so the existing ValueError fires before the expensive model-load path. Co-authored-by: Junda (David) Su <90978028+Davids048@users.noreply.github.com> Co-authored-by: Matthew Noto <99706358+RandNMR73@users.noreply.github.com> Co-authored-by: XOR-op <17672363+XOR-op@users.noreply.github.com> Co-authored-by: Zhang Peiyuan <42993249+jzhang38@users.noreply.github.com>