Commit Graph

  • 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
  • ce7b0e52e5 aa mike 2026-06-25 19:05:21 +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
  • a5b83e6c77 aa mike 2026-06-21 04:21:40 +02:00
  • cfb2e45f1f aa mike 2026-06-20 04:44:35 +02:00
  • f49af6b33a aa mike 2026-06-20 02:44:02 +02:00
  • 0176c1b965 aa mike 2026-06-20 02:43:57 +02:00
  • f1f693523b aa mike 2026-06-19 20:44:36 +02:00
  • 1056f1d460 aa mike 2026-06-19 20:44:22 +02:00
  • bb49d223d5 aa mike 2026-06-19 01:32:09 +02:00
  • 045b9b6458 aa mike 2026-06-18 23:26:30 +02:00
  • 1dead1c666 aa mike 2026-06-18 00:06:15 +02:00
  • 2d0322465d aa mike 2026-06-12 01:53:06 +02:00
  • e49caf7f6a fix duration signature sigma 2026-06-08 18:48:50 +01:00
  • c8f29fbbd3 dynamic gpu duration sigma 2026-06-08 18:39:54 +01:00
  • 37404baa6a update requirements sigma 2026-06-08 18:39:03 +01:00
  • cbc2ac12dd autocast sigma 2026-04-13 00:04:20 +00:00
  • 2f633b7f46 fix: optimize gpu memory handling and stabilize session caching signsur4739379373 2026-01-29 23:00:47 +01:00
  • f52c19d3ae Update README.md sigma 2026-01-29 21:06:42 +00:00
  • 23ad25a9a8 Update README.md sigma 2026-01-26 03:42:13 +00:00
  • 7099b2272d Update README.md sigma 2026-01-25 06:39:05 +00:00
  • 47dd2bb947 pin signsur4739379373 2026-01-24 16:59:42 +01:00
  • 6f81898c09 Update app.py sigma 2026-01-24 04:56:12 +00:00
  • 38a73d971e Update README.md sigma 2026-01-24 04:52:39 +00:00
  • fff937cce5 Update README.md sigma 2026-01-19 03:54:10 +00:00
  • c03f60fd66 Update README.md sigma 2026-01-19 03:43:43 +00:00
  • 63f5c673b7 Update app.py sigma 2026-01-19 02:08:02 +00:00
  • 3bfb445e7b Update app.py sigma 2026-01-19 01:59:00 +00:00
  • 6c17d7721a Update app.py sigma 2026-01-19 01:48:46 +00:00
  • 06a6fb0312 Update app.py sigma 2026-01-19 01:41:42 +00:00
  • 8670264551 Update app.py sigma 2026-01-19 01:37:05 +00:00
  • 7690aa68a5 Update app.py sigma 2026-01-19 01:27:01 +00:00
  • dbfc02751e Update app.py sigma 2026-01-19 01:19:15 +00:00
  • d596595b84 Update app.py sigma 2026-01-19 01:16:34 +00:00
  • 8999693eee Update app.py sigma 2026-01-19 01:08:14 +00:00
  • 6480e58412 Update app.py sigma 2026-01-07 23:17:07 +00:00
  • 96a5398a97 Update app.py sigma 2026-01-05 00:04:18 +00:00
  • 224fdab36e Update app.py sigma 2026-01-04 22:52:34 +00:00
  • 4d89447601 Update app.py sigma 2026-01-04 22:44:04 +00:00
  • 2cd734b8f5 Update app.py sigma 2026-01-04 22:38:38 +00:00
  • 19cfc51ab1 Update app.py sigma 2026-01-04 22:34:24 +00:00
  • 9f0cc27d9f Update app.py sigma 2026-01-04 22:26:29 +00:00
  • 0205b6ace4 Create transformer_qwenimage.py sigma 2026-01-04 22:17:27 +00:00
  • 6a57e595c4 Create qwen_fa3_processor.py sigma 2026-01-04 22:16:36 +00:00
  • 211c1b149c Create pipeline_qwenimage_edit_plus.py sigma 2026-01-04 22:15:50 +00:00