Skip to content

perf: run the full segment pipeline in the worker (no main-thread blo…#9

Closed
belkassaby wants to merge 1 commit into
mainfrom
release/0.2.0
Closed

perf: run the full segment pipeline in the worker (no main-thread blo…#9
belkassaby wants to merge 1 commit into
mainfrom
release/0.2.0

Conversation

@belkassaby

Copy link
Copy Markdown
Owner

…cking)

Previously only per-tile inference ran in the worker; preprocess, tile averaging, and flow dynamics ran on the main thread and froze the UI (the 'suddenly returns' stall before results). Add a 'segment' worker message that runs the entire pipeline off-thread — preprocess -> tile -> inference -> average -> dynamics -> inverse-resize — and posts back only the final label map (transferred). segment() now drives that path; per-tile inference progress is still surfaced via onTileProgress. The legacy run-tile message is retained.

The image is structured-cloned to the worker (left intact for the caller); the result masks are transferred back. Per-tile flow tensors stay in the worker, so SegmentOutput.tiles[].flows_cellprob is now empty (timing diagnostics kept).

typecheck + lint clean; 61 vitest tests pass (dynamics parity IoU 1.000); build ok.

…cking)

Previously only per-tile inference ran in the worker; preprocess, tile
averaging, and flow dynamics ran on the main thread and froze the UI (the
'suddenly returns' stall before results). Add a 'segment' worker message that
runs the entire pipeline off-thread — preprocess -> tile -> inference -> average
-> dynamics -> inverse-resize — and posts back only the final label map
(transferred). segment() now drives that path; per-tile inference progress is
still surfaced via onTileProgress. The legacy run-tile message is retained.

The image is structured-cloned to the worker (left intact for the caller); the
result masks are transferred back. Per-tile flow tensors stay in the worker, so
SegmentOutput.tiles[].flows_cellprob is now empty (timing diagnostics kept).

typecheck + lint clean; 61 vitest tests pass (dynamics parity IoU 1.000); build ok.
@belkassaby belkassaby closed this Jun 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant