feat(generation): add Generate Tab DINO/SAM detailer#9136
feat(generation): add Generate Tab DINO/SAM detailer#9136AsuraAce wants to merge 3 commits intoinvoke-ai:mainfrom
Conversation
7094887 to
78cc9d1
Compare
FindingsMedium: i18n violation in detailer metadata viewerPath: The DetailerSettings ValueComponent (the
Translation keys for these already exist (
Low: raw technical identifiers shown as Combobox option labelsPath:
These appear directly in user-facing dropdowns. The detector dropdown (
Low: detailer color-correction wires denoise_mask polarity in a non-obvious wayPath: Feeds the detailer's That happens to be the intended behavior, but no explicit unit test asserts that the mask edge corresponds to "color-corrected only inside the detail region". A future change to either the detailer mask polarity or the
Low: detailer enabled flag persists across recall from non-detailer imagesPath: DetailerSettings.parse uses
|
Detailer metadata now localizes On/Off, quality, and detector. |
Summary
Adds a Generate Tab Detailer for local SD1, SD2, and SDXL generation. The supported V1 path uses GroundingDINO for target detection, SAM/SAM2 for mask generation, a prepared crop/mask path, a second same-checkpoint denoise pass, and alpha compositing back into the generated image before final output handling.
This PR also adds the user-facing Detailer accordion, quality starter presets, metadata recall/remix support, dev-only debug collage output, and backend invocations for bbox selection, crop preparation, paste compositing, and debugging.
Supported V1 scope:
View Screenshots
Related Issues / Discussions
No linked issue.
QA Instructions
Automated checks run locally after rebasing onto current
upstream/main:uv run python ../../../scripts/generate_openapi_schema.py | pnpm typegenuv run pytest tests/app/invocations/test_detailer.py tests/app/invocations/test_grounding_dino.pyuv run ruff check invokeai/app/invocations/detailer.py invokeai/app/invocations/grounding_dino.py tests/app/invocations/test_detailer.py tests/app/invocations/test_grounding_dino.pypnpm test:run src/features/nodes/util/graph/generation/addFaceDetailerPass.test.ts src/features/controlLayers/store/paramsSlice.test.ts src/features/metadata/parsing.test.tspnpm exec eslint src/features/settingsAccordions/components/FaceDetailerSettingsAccordion/FaceDetailerSettingsAccordion.tsx src/features/nodes/util/graph/generation/addFaceDetailerPass.ts src/features/nodes/util/graph/generation/addFaceDetailerPass.test.ts src/features/controlLayers/store/paramsSlice.ts src/features/controlLayers/store/paramsSlice.test.ts src/features/controlLayers/store/detailerQualityPresets.ts src/features/controlLayers/store/detailerRuntimeConfig.ts src/features/metadata/parsing.tsx src/features/metadata/parsing.test.tspnpm lint:tscSuggested reviewer QA:
Checklist
What's Newcopy (if doing a release after this PR)