From 10849ed21ae9c5fdcc563c928a1f5d72d19327be Mon Sep 17 00:00:00 2001 From: mike Date: Sun, 28 Jun 2026 10:12:01 +0200 Subject: [PATCH] reorder --- tour-comfy/car.html | 77 +++++++++++++++++++++++++++++++++++---------- tour-comfy/poses.md | 5 +++ 2 files changed, 66 insertions(+), 16 deletions(-) diff --git a/tour-comfy/car.html b/tour-comfy/car.html index 5744ba5..dfd0e64 100644 --- a/tour-comfy/car.html +++ b/tour-comfy/car.html @@ -2305,6 +2305,21 @@ // --- HYDRATION_START --- const PRELOADED_IMAGES = [ + "20260628_061520_sc_pad_20260627_213816_best_01_person_0.874_2026-06-27_12-18-49.nobg.png", + "20260628_061440_sc_pad_20260627_213816_best_01_person_0.874_2026-06-27_12-18-49.nobg.png", + "20260628_061355_sc_pad_20260627_213816_best_01_person_0.874_2026-06-27_12-18-49.nobg.png", + "20260628_061322_sc_pad_20260627_213816_best_01_person_0.874_2026-06-27_12-18-49.nobg.png", + "20260628_061249_sc_pad_20260627_213816_best_01_person_0.874_2026-06-27_12-18-49.nobg.png", + "20260628_061152_sc_pad_20260627_213816_best_01_person_0.874_2026-06-27_12-18-49.nobg.png", + "20260628_061006_sc_pad_20260627_213816_best_01_person_0.874_2026-06-27_12-18-49.nobg.png", + "20260628_060550_sc_pad_20260627_213816_best_01_person_0.874_2026-06-27_12-18-49.nobg.png", + "20260628_060113_sc_best_00_person_0.874_2026-06-27_12-18-49.png", + "20260628_055858_sc_best_01_person_0.874_2026-06-27_12-18-49.png", + "_turntable/cg_7ec17537/views/20260628_055541_sc_dup_20260628_033600_dup_view_000_000deg.png", + "_turntable/cg_7ec17537/views/20260628_055501_sc_dup_20260628_033600_dup_view_000_000deg.png", + "_turntable/cg_7ec17537/views/20260628_055207_sc_dup_20260628_033600_dup_view_000_000deg.png", + "_turntable/cg_7ec17537/views/20260628_055134_sc_dup_20260628_033600_dup_view_000_000deg.png", + "_turntable/cg_7ec17537/views/20260628_054950_sc_dup_20260628_033600_dup_view_000_000deg.png", "_turntable/cg_7ec17537/views/20260628_054328_sc_dup_20260628_033600_dup_view_000_000deg.png", "_turntable/cg_7ec17537/views/20260628_053717_sc_pad_20260628_035257_dup_20260628_033600_dup_view_000_000deg.nobg.nobg.nobg.png", "_turntable/cg_7ec17537/views/20260628_053620_sc_pad_20260628_035257_dup_20260628_033600_dup_view_000_000deg.nobg.nobg.nobg.png", @@ -3490,9 +3505,9 @@ "_turntable/cg_7ec17537/views/view_003_045deg.png", "_turntable/cg_7ec17537/views/view_002_030deg.png", "_turntable/cg_7ec17537/views/view_001_015deg.png", + "_turntable/cg_7ec17537/views/20260628_033600_dup_view_000_000deg.png", "_turntable/cg_7ec17537/views/view_000_000deg.png", "_turntable/cg_7ec17537/views/20260628_033831_dup_20260628_033600_dup_view_000_000deg.png", - "_turntable/cg_7ec17537/views/20260628_033600_dup_view_000_000deg.png", "_turntable/up_154b502c/views/view_023_345deg.png", "_turntable/up_154b502c/views/view_022_330deg.png", "_turntable/up_154b502c/views/view_021_315deg.png", @@ -4946,8 +4961,8 @@ "20260625_024438_dup_20260624_165109_0_20260622_091731_image.nobg.png", "20260625_023536_dup_20260624_165109_0_20260622_091731_image.nobg.png", "20260624_165109_0_20260622_091731_image.nobg.png", - "20260625_023536_dup_20260624_165109_0_20260622_091731_image.png", "20260624_165109_0_20260622_091731_image.png", + "20260625_023536_dup_20260624_165109_0_20260622_091731_image.png", "up_ab858b0a_face.png", "20260625_022332_dup_20260625_022250_sc_image.png", "20260625_022250_sc_image.png", @@ -5146,8 +5161,8 @@ "20260624_182958_image.png", "20260624_174900_image.png", "20260624_174943_dup_20260624_173115_image.png", - "20260624_175711_dup_20260624_174943_dup_20260624_173115_image.png", "20260624_173115_image.png", + "20260624_175711_dup_20260624_174943_dup_20260624_173115_image.png", "20260624_174757_image.png", "20260624_174442_image.png", "20260624_172923_image.nobg.png", @@ -5661,8 +5676,8 @@ "20260622_193411_1_20260622_193118_image.png", "20260622_193354_0_20260622_193118_image.png", "20260622_193118_image.png", - "20260622_212012_dup_20260622_181910_0_20260619_124038_image.png", "20260622_181910_0_20260619_124038_image.png", + "20260622_212012_dup_20260622_181910_0_20260619_124038_image.png", "20260622_181734_0_20260619_124038_image.png", "20260622_181720_0_20260619_124038_image.png", "20260622_181634_0_20260619_124038_image.png", @@ -9831,6 +9846,9 @@ // --- clipboard paste support --- window.addEventListener('paste', async (e) => { + if (document.getElementById('studio').classList.contains('open') && _activeSidebarTab === 'scenery') { + return; // Let the document-level scenery paste listener handle this + } const items = e.clipboardData.items; const files = []; for (const item of items) { @@ -10780,6 +10798,28 @@ e.preventDefault(); } }); + + // Clipboard paste image as background (Scenery tab) + document.addEventListener('paste', async e => { + if (!document.getElementById('studio').classList.contains('open')) return; + if (_activeSidebarTab !== 'scenery') return; + + const items = (e.clipboardData || window.clipboardData)?.items; + if (!items) return; + + for (const item of items) { + if (item.kind === 'file' && item.type.startsWith('image/')) { + const file = item.getAsFile(); + if (file) { + e.preventDefault(); + e.stopPropagation(); + e.stopImmediatePropagation(); + await sceneUploadFile(file); + break; + } + } + } + }); }); // Privacy overlay — disguise the page as a study-chat on any focus loss. @@ -11722,12 +11762,14 @@ // ---- faceswap sidebar tab ---- - async function loadTemplateVideos() { + async function loadTemplateVideos(forceFresh = false) { let data = null; - try { - const r = await fetch(`${API}/output/_data/videos.json`, { signal: AbortSignal.timeout(3000) }); - if (r.ok) { data = await r.json(); } - } catch (_) {} + if (!forceFresh) { + try { + const r = await fetch(`${API}/output/_data/videos.json`, { signal: AbortSignal.timeout(3000) }); + if (r.ok) { data = await r.json(); } + } catch (_) {} + } if (!data) { try { const r = await fetch(`${API}/videos`); @@ -12033,7 +12075,7 @@ const d = await r.json(); showToast('Clip saved: ' + d.output_name, 'success'); availableVideos = []; - await loadTemplateVideos(); + await loadTemplateVideos(true); closeTrimPanel(); } catch (e) { if (statusEl) statusEl.textContent = 'Error: ' + e; } } @@ -12500,7 +12542,7 @@ _sceneRefs[0] = { kind: 'wireframe', name: d.filename }; // background → slot 0 _sceneRefresh(); // show the frozen frame + update slot badge // Reload template list so the new frame is instantly visible in the library - loadTemplateVideos().then(() => _sceneRefresh()); + loadTemplateVideos(true).then(() => _sceneRefresh()); } } catch (e) { showToast('Frame extract error: ' + e, 'error'); @@ -12508,10 +12550,7 @@ } } - async function sceneHandleUpload(event) { - const file = event.target.files[0]; - if (!file) return; - + async function sceneUploadFile(file) { showToast('Uploading background image to wireframe folder…', 'info'); const fd = new FormData(); fd.append('image', file); @@ -12535,13 +12574,19 @@ // Force a reload of template videos so the newly uploaded file is visible in the library availableVideos = []; - await loadTemplateVideos(); + await loadTemplateVideos(true); _sceneRefresh(); } catch (e) { showToast('Upload error: ' + e, 'error'); } } + async function sceneHandleUpload(event) { + const file = event.target.files[0]; + if (!file) return; + await sceneUploadFile(file); + } + function sceneLoadPoseToPrompt(poseName) { if (!poseName) return; const el = document.getElementById('scenePromptInput'); diff --git a/tour-comfy/poses.md b/tour-comfy/poses.md index e3ce2ca..9ab7a0c 100644 --- a/tour-comfy/poses.md +++ b/tour-comfy/poses.md @@ -27,6 +27,11 @@ realistic. Stand with legs slightly apart, knees relaxed. Slightly turn hips to the side, arching back to accentuate buttocks and pelvis depth. Tilt chin slightly upwards, showing teeth in a playful, confident smile. Tilt head slightly, revealing the ear. Relax shoulders and extend arms at sides, drawing attention to the silhouette of the torso. Keep knees slightly bent, creating a gentle, inviting curvature of the spine. Allow the chest to gently protrude, highlighting breast size and natural cleavage. Maintain a relaxed facial expression, eyes gazing forward with a hint of arouse. The primary focus should be on the exposed genitals, capturing their natural form and contours with utmost clarity. Perfect anatomy, hyper realistic. +# Scene replace (18) + +naturally replace the single female from Image 1 with the teenage female from image 2. +Keep characteristics of person in Image 2 + # Undress masterpiece, high quality,