Repository navigation
docs: make the README a product page, with generated screenshots - #51
Merged
Merged
Conversation
Add a developer-only Qt capture script that decodes the bundled demo frame, runs the pinned segmentation model, and captures real application widgets in three documented states. Keep the seeded output directory neutral, force English numeric formatting for every capture, and size the model dialog to the full model list and footer controls. Refresh the committed hero, model manager, and expanded Transform screenshots while retaining the repository copy of the demo clip. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The README explained how to run the repository, not what the program is. A reader met the supported platforms, the uv commands, the cache migration rules and the fixture-rotation contract before learning that MatteLoop turns a local video into a transparent animated WebP. That order is now reversed: what it does, what comes out, and that nothing leaves the machine, all before the first command. Three screenshots carry what prose cannot. The main window shows a source with its crop rectangle beside the finished cutout on a transparency checkerboard; the Transform section shows trim, crop and resize; the model manager shows the catalog with what is cached and what is left over from an older runtime. They are generated by scripts/screenshots.py rather than collected by hand, and the README says how to regenerate them, so a layout change cannot leave them quietly wrong. rembg is credited in the body rather than only in the notices. The model catalog, the session classes and the whole approach to background removal come from it, and the weights are its release artifacts; a reader deserves to learn that where they will actually see it. The individual model architecture authors stay in THIRD_PARTY_NOTICES.md, pointed to rather than repeated. The developer half survives intact, further down: running from source, the three check commands, the diagnostic flags, the cache migration note, and the pointer to docs/building.md. The licence section is untouched. The synthetic fixture rotation contract moved to docs/testing-fixtures.md, where the people who need it are, with nothing lost. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Drive the existing model-manager cache scan against a temporary cache root while leaving the application dialog API unchanged. Seed that root with one sparse catalog-sized placeholder for the active BiRefNet General Lite model, and keep the displayed path fixed to a fictional current-product cache location for stable public screenshots. The capture removes the temporary root after rendering. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #43.
Stacked on #47. The base is
fix/english-provider-labels, because thescreenshots have to show the English provider labels that #47 introduces.
GitHub will retarget this to
mainwhen #47 merges.What changed
The README leads with the product. What MatteLoop does, what comes out, and
that nothing leaves the machine — all before the first command. The developer
half survives intact further down: running from source, the check commands, the
diagnostic flags, the cache-migration note, and the pointer to
docs/building.md. The licence section is untouched.rembg is credited in the body, by name and link, with a sentence saying what
is used from it — the catalog, the session classes, the approach, and the
weights. The individual model architecture authors stay in
THIRD_PARTY_NOTICES.md, pointed to rather than repeated.Three screenshots, generated rather than collected.
scripts/screenshots.pydecodes
assets/demo/golden-retriever.mp4with the application's own PyAV path,segments it with the pinned rembg model, and captures real Qt widgets. The
README documents how to regenerate them, so a layout change cannot leave them
quietly wrong.
The fixture-rotation contract moved to
docs/testing-fixtures.md, where thepeople who need it are, with nothing lost.
What the script drives for real, and what it seeds
Real: the decoded source frame, the segmentation cutout, every widget, the model
catalog, and the timeline facts derived from the clip.
Seeded: the images reach the window through an immutable state snapshot rather
than by starting the asynchronous preview job; the output directory is a neutral
demo path; and the model dialog is pointed at a throwaway cache root holding one
sparse placeholder, so the picture is identical on every machine instead of
reflecting whoever ran it last. The script's own docstring says the same thing,
so nobody later mistakes it for an end-to-end test.
The script touches no application code —
git diffagainst the README commitshows nothing under
src/ortests/. It is not imported by the test suite anddoes not run during it.
Test plan
uv run ruff check .,uv run mypy src,QT_QPA_PLATFORM=offscreen uv run pytest -qandscripts/check_guardrails.pyall pass.🤖 Generated with Claude Code