Skip to content

Perf/segment pipeline in worker#10

Merged
belkassaby merged 4 commits into
mainfrom
perf/segment-pipeline-in-worker
Jun 14, 2026
Merged

Perf/segment pipeline in worker#10
belkassaby merged 4 commits into
mainfrom
perf/segment-pipeline-in-worker

Conversation

@belkassaby

Copy link
Copy Markdown
Owner

No description provided.

…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.
- README: the whole pipeline (preprocess → inference → averaging → dynamics →
  resize) now runs in the Web Worker via the 'segment' message; the UI never
  blocks. Updated the Highlights, Status, Architecture section, and the
  quickstart note that SegmentOutput.tiles[].flows_cellprob is now empty
  (flow tensors stay in the worker). Dropped a couple of stale test counts.
- CHANGELOG: added an Unreleased entry (Changed + Removed).
@belkassaby belkassaby merged commit 77b1a61 into main Jun 14, 2026
2 checks passed
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