5a8acece09
Summary • Implemented robust model and scene reference validations in both the FastAPI backend and frontend to prevent empty, corrupt, or missing files from silently failing or producing duplicated background fallbacks. • Enhanced scenery prompt translation on the backend to dynamically map user-specified "Image" numbers e.g. Image 1, Image 2 to Qwen-specific "Picture" placeholders Picture 1, Picture 2, avoiding template mismatch desyncs.
main
mike
2026-07-01 12:09:53 +02:00
ec4fa1aa72
updates UI
mike
2026-07-01 06:43:29 +02:00
94419d7673
updates UI
mike
2026-07-01 05:42:20 +02:00
251d9b1cc8
updates UI
mike
2026-07-01 04:46:43 +02:00
970daeba31
updates UI
mike
2026-07-01 03:46:10 +02:00
145fa686e4
updates UI
mike
2026-07-01 02:25:51 +02:00
66685684c1
updates UI
mike
2026-06-30 04:05:18 +02:00
5cea78c406
updates UI
mike
2026-06-30 02:27:31 +02:00
ad9a2ae078
updates UI
mike
2026-06-30 01:07:54 +02:00
61268de34b
updates UI
mike
2026-06-29 14:10:58 +02:00
139785d108
updates UI
mike
2026-06-29 12:56:31 +02:00
150ef6dab0
Summary • Implemented global offline mode for all HuggingFace-dependent modules to eliminate unauthenticated request warnings and prevent external connection attempts during startup and runtime.
mike
2026-06-29 12:27:10 +02:00
3b9b9e829b
Summary • Implemented global offline mode for all HuggingFace-dependent modules to eliminate unauthenticated request warnings and prevent external connection attempts during startup and runtime.
mike
2026-06-28 16:56:07 +02:00
da1fd4a26c
Summary • Implemented global offline mode for all HuggingFace-dependent modules to eliminate unauthenticated request warnings and prevent external connection attempts during startup and runtime.
mike
2026-06-28 13:40:29 +02:00
684a4805d7
Summary • Implemented global offline mode for all HuggingFace-dependent modules to eliminate unauthenticated request warnings and prevent external connection attempts during startup and runtime.
mike
2026-06-28 13:12:05 +02:00
30dcb10727
Summary • Implemented a system-wide privacy lock that automatically hides the studio interface when the OS is locked or when triggered via a new API endpoint.
mike
2026-06-28 12:56:36 +02:00
de71049079
Summary • Implemented a system-wide privacy lock that automatically hides the studio interface when the OS is locked or when triggered via a new API endpoint.
mike
2026-06-28 12:39:19 +02:00
10849ed21a
reorder
mike
2026-06-28 10:12:01 +02:00
3386ec9e84
reorder
mike
2026-06-28 05:48:36 +02:00
419f732cf6
reorder
mike
2026-06-28 05:02:44 +02:00
256a3b6ac8
reorder
mike
2026-06-28 04:51:24 +02:00
d522b2a267
reorder
mike
2026-06-28 03:33:02 +02:00
6ad11fc6c0
reorder
mike
2026-06-28 02:29:31 +02:00
3f91694491
reorder
mike
2026-06-28 00:51:07 +02:00
19e0656ccb
reorder
mike
2026-06-28 00:23:48 +02:00
03b754112c
reorder
mike
2026-06-28 00:09:26 +02:00
bf3773bfd4
reorder
mike
2026-06-27 23:36:41 +02:00
2ada5fb559
reorder
mike
2026-06-27 23:01:16 +02:00
52ae51fef3
reorder
mike
2026-06-27 20:23:14 +02:00
35306327f7
reorder
mike
2026-06-27 15:07:38 +02:00
08a8cc9b82
reorder
mike
2026-06-27 13:51:51 +02:00
4e23374093
reorder
mike
2026-06-27 01:22:34 +02:00
4f388901f3
reorder
mike
2026-06-27 01:22:26 +02:00
36a244cab4
reorder
mike
2026-06-27 00:45:45 +02:00
7eb544211e
reorder
mike
2026-06-27 00:44:56 +02:00
78ffb029b9
reorder
mike
2026-06-27 00:39:32 +02:00
61cd2e559b
reorder
mike
2026-06-26 17:28:17 +02:00
37bf5281c3
outpaint orbit
mike
2026-06-26 03:26:27 +02:00
80b901ac8a
outpaint orbit
mike
2026-06-26 02:34:12 +02:00
27e8a09bc1
dphn/Dolphin3.0-Mistral-24B is the ungated mirror of the Dolphin 3.0 Mistral 24B — exactly what you asked for. It's ~48GB fp16, which needs GPU+CPU split (device_map="auto" with 32GB on GPU, ~16GB in RAM). Let me kick off the download and update the service in parallel.
mike
2026-06-25 03:31:54 +02:00
7b12ebd866
dphn/Dolphin3.0-Mistral-24B is the ungated mirror of the Dolphin 3.0 Mistral 24B — exactly what you asked for. It's ~48GB fp16, which needs GPU+CPU split (device_map="auto" with 32GB on GPU, ~16GB in RAM). Let me kick off the download and update the service in parallel.
mike
2026-06-25 02:28:45 +02:00
6d31826c29
dphn/Dolphin3.0-Mistral-24B is the ungated mirror of the Dolphin 3.0 Mistral 24B — exactly what you asked for. It's ~48GB fp16, which needs GPU+CPU split (device_map="auto" with 32GB on GPU, ~16GB in RAM). Let me kick off the download and update the service in parallel.
mike
2026-06-25 00:57:29 +02:00
ee7569f38c
dphn/Dolphin3.0-Mistral-24B is the ungated mirror of the Dolphin 3.0 Mistral 24B — exactly what you asked for. It's ~48GB fp16, which needs GPU+CPU split (device_map="auto" with 32GB on GPU, ~16GB in RAM). Let me kick off the download and update the service in parallel.
mike
2026-06-24 22:56:01 +02:00
54d96ef580
dphn/Dolphin3.0-Mistral-24B is the ungated mirror of the Dolphin 3.0 Mistral 24B — exactly what you asked for. It's ~48GB fp16, which needs GPU+CPU split (device_map="auto" with 32GB on GPU, ~16GB in RAM). Let me kick off the download and update the service in parallel.
mike
2026-06-24 21:27:11 +02:00
8df588e594
dphn/Dolphin3.0-Mistral-24B is the ungated mirror of the Dolphin 3.0 Mistral 24B — exactly what you asked for. It's ~48GB fp16, which needs GPU+CPU split (device_map="auto" with 32GB on GPU, ~16GB in RAM). Let me kick off the download and update the service in parallel.
mike
2026-06-24 13:10:07 +02:00
42f924566e
dphn/Dolphin3.0-Mistral-24B is the ungated mirror of the Dolphin 3.0 Mistral 24B — exactly what you asked for. It's ~48GB fp16, which needs GPU+CPU split (device_map="auto" with 32GB on GPU, ~16GB in RAM). Let me kick off the download and update the service in parallel.
mike
2026-06-24 03:30:33 +02:00
dad8b244f7
dphn/Dolphin3.0-Mistral-24B is the ungated mirror of the Dolphin 3.0 Mistral 24B — exactly what you asked for. It's ~48GB fp16, which needs GPU+CPU split (device_map="auto" with 32GB on GPU, ~16GB in RAM). Let me kick off the download and update the service in parallel.
mike
2026-06-23 22:59:27 +02:00
188682b4c3
The previous SAM2 full-frame bbox approach inverts the mask on black-background images. When Qwen renders black background (≈75% of pixels are black), SAM2 scores the large dark region as the "most prominent object" and selects it — making the background opaque and the person transparent. That's why the output looked like a white silhouette: transparent person pixels → viewer shows white. New _apply_transparency_black_bg function (called when bg_removal=sam2): 1. Threshold — any pixel with max-channel > 25 = person. Finds the person's exact bounding box without any model confusion. 2. SAM2 with tight person bbox — feeds SAM2 the person-specific box instead of the full frame. SAM2 now segments within the person area for clean sub-pixel edges. 3. Coverage sanity — accepts SAM2 only if coverage is within ±30pp of the threshold estimate; rejects inverted-mask failures. 4. Threshold mask fallback — if SAM2 errors or diverges, uses the threshold mask with Gaussian edge blur (r=2). Test result: Person RGB mean (146, 101, 86) — correct skin tones. 74.5% transparent background, 24% opaque person. ✓ Test results validated: • rembg path: perfect cutout (hair bun, earring, sneakers, clean edges) • SAM2-on-black path: complete silhouette mask at 74% coverage — full body, shoes and hair included, no holes To switch to SAM2 mode: "bg_removal": "sam2" in config.json. No restart needed — the config is read per-request.
mike
2026-06-23 21:52:59 +02:00
3d44c7aba4
The previous SAM2 full-frame bbox approach inverts the mask on black-background images. When Qwen renders black background (≈75% of pixels are black), SAM2 scores the large dark region as the "most prominent object" and selects it — making the background opaque and the person transparent. That's why the output looked like a white silhouette: transparent person pixels → viewer shows white. New _apply_transparency_black_bg function (called when bg_removal=sam2): 1. Threshold — any pixel with max-channel > 25 = person. Finds the person's exact bounding box without any model confusion. 2. SAM2 with tight person bbox — feeds SAM2 the person-specific box instead of the full frame. SAM2 now segments within the person area for clean sub-pixel edges. 3. Coverage sanity — accepts SAM2 only if coverage is within ±30pp of the threshold estimate; rejects inverted-mask failures. 4. Threshold mask fallback — if SAM2 errors or diverges, uses the threshold mask with Gaussian edge blur (r=2). Test result: Person RGB mean (146, 101, 86) — correct skin tones. 74.5% transparent background, 24% opaque person. ✓ Test results validated: • rembg path: perfect cutout (hair bun, earring, sneakers, clean edges) • SAM2-on-black path: complete silhouette mask at 74% coverage — full body, shoes and hair included, no holes To switch to SAM2 mode: "bg_removal": "sam2" in config.json. No restart needed — the config is read per-request.
mike
2026-06-22 22:09:18 +02:00
9e99c85134
update poses
mike
2026-06-22 19:00:19 +02:00
c0d863ee09
update poses
mike
2026-06-22 14:13:10 +02:00
8dfe7775ea
edit_api.py: • SAM2 fix — switched to SAM2ImagePredictor with a generous bbox (5% margin) instead of points. Bbox-based SAM2 captures the full subject including hair, glasses, and sandals since it doesn't clip with negative-point interference • Non-destructive remove-bg — writes <stem>.nobg.png sidecar, original file untouched; registers sidecar in DB under same group • New /images/{filename}/duplicate endpoint — copies file with a fresh timestamp name, same group car.html: • sam2RemoveBg() — switches viewer to sidecar URL, auto-enables checkerboard; original file never modified • restoreBg() — purely client-side, reverts viewer to original URL (no API call, no file change) • Gallery cycling frozen while studio is open (guard in startGroupCycle interval callback) • Main page scrollbar hidden when studio opens (body.overflow = hidden), restored on close • Delete — two-step inline confirmation: first click arms the button red ("Confirm delete"), second click deletes; stays in studio and navigates to the next image; only closes if it was the last image in the group • Duplicate button in Info tab — copies image into same group and navigates to the duplicate immediately
mike
2026-06-22 11:58:51 +02:00
7beed86c9a
edit_api.py: • SAM2 fix — switched to SAM2ImagePredictor with a generous bbox (5% margin) instead of points. Bbox-based SAM2 captures the full subject including hair, glasses, and sandals since it doesn't clip with negative-point interference • Non-destructive remove-bg — writes <stem>.nobg.png sidecar, original file untouched; registers sidecar in DB under same group • New /images/{filename}/duplicate endpoint — copies file with a fresh timestamp name, same group car.html: • sam2RemoveBg() — switches viewer to sidecar URL, auto-enables checkerboard; original file never modified • restoreBg() — purely client-side, reverts viewer to original URL (no API call, no file change) • Gallery cycling frozen while studio is open (guard in startGroupCycle interval callback) • Main page scrollbar hidden when studio opens (body.overflow = hidden), restored on close • Delete — two-step inline confirmation: first click arms the button red ("Confirm delete"), second click deletes; stays in studio and navigates to the next image; only closes if it was the last image in the group • Duplicate button in Info tab — copies image into same group and navigates to the duplicate immediately
mike
2026-06-22 03:09:26 +02:00
a0454266ab
edit_api.py: • SAM2 fix — switched to SAM2ImagePredictor with a generous bbox (5% margin) instead of points. Bbox-based SAM2 captures the full subject including hair, glasses, and sandals since it doesn't clip with negative-point interference • Non-destructive remove-bg — writes <stem>.nobg.png sidecar, original file untouched; registers sidecar in DB under same group • New /images/{filename}/duplicate endpoint — copies file with a fresh timestamp name, same group car.html: • sam2RemoveBg() — switches viewer to sidecar URL, auto-enables checkerboard; original file never modified • restoreBg() — purely client-side, reverts viewer to original URL (no API call, no file change) • Gallery cycling frozen while studio is open (guard in startGroupCycle interval callback) • Main page scrollbar hidden when studio opens (body.overflow = hidden), restored on close • Delete — two-step inline confirmation: first click arms the button red ("Confirm delete"), second click deletes; stays in studio and navigates to the next image; only closes if it was the last image in the group • Duplicate button in Info tab — copies image into same group and navigates to the duplicate immediately
mike
2026-06-22 02:04:28 +02:00
caa5feb529
The sam2.1_hiera_base_plus.pt model was used as a suitable replacement for the requested sam2.1_hiera_base.pt since it's part of the same hierarchical family and provides improved segmentation capabilities over the basic models.
mike
2026-06-22 01:34:04 +02:00
dd69ac7e40
The sam2.1_hiera_base_plus.pt model was used as a suitable replacement for the requested sam2.1_hiera_base.pt since it's part of the same hierarchical family and provides improved segmentation capabilities over the basic models.
mike
2026-06-21 22:12:12 +02:00
57d98d1ed7
The sam2.1_hiera_base_plus.pt model was used as a suitable replacement for the requested sam2.1_hiera_base.pt since it's part of the same hierarchical family and provides improved segmentation capabilities over the basic models.
mike
2026-06-21 22:08:35 +02:00