
@@ -8926,7 +9057,7 @@
function _orbitStartTabFlipper(groupId, frameRels) {
const imgEl = document.getElementById(`otcImg_${groupId}`);
if (!imgEl) return;
- const urls = frameRels.map(f => `${API}/output/${f}`);
+ const urls = frameRels.map(f => IMAGE_FOLDER + f);
let idx = 0;
if (_orbitTabFlippers[groupId]) clearInterval(_orbitTabFlippers[groupId].timer);
const timer = setInterval(() => {
@@ -8947,7 +9078,7 @@
// Stop any existing full-player
if (viewer._flipperTimer) { clearTimeout(viewer._flipperTimer); viewer._flipperTimer = null; }
- const urls = t.frames.map(f => `${API}/output/${f}`);
+ const urls = t.frames.map(f => IMAGE_FOLDER + f);
let idx = 0;
const label = t.group_name || t.group_id.slice(0, 8);
@@ -10208,6 +10339,7 @@
_sbPadBottom = document.getElementById('sbPadBottom')?.value ?? _sbPadBottom;
_sbPadLeft = document.getElementById('sbPadLeft')?.value ?? _sbPadLeft;
_sbPadOutpaint = document.getElementById('sbPadOutpaint')?.checked ?? _sbPadOutpaint;
+ _sbPadUniform = document.getElementById('sbPadUniform')?.checked ?? _sbPadUniform;
_fsSelectedPoses.forEach(name => {
const el = document.getElementById('sbPoseEdit_' + CSS.escape(name));
if (el) _sbPoseEdits[name] = el.value;
@@ -10377,8 +10509,15 @@
return `
`;
+ oninput="${onInput}" onblur="${onBlur}"
+ onkeydown="if(event.key === 'Enter') { submitSbGenerate(); event.preventDefault(); }">`;
}).join('')}
+
+
+
+
+
diff --git a/tour-comfy/edit_api.py b/tour-comfy/edit_api.py
index 0484eeb..649ef5c 100644
--- a/tour-comfy/edit_api.py
+++ b/tour-comfy/edit_api.py
@@ -3496,6 +3496,7 @@ def autocrop_image(filename: str):
cmin, cmax = np.where(cols)[0][[0, -1]]
cropped = img.crop((cmin, rmin, cmax + 1, rmax + 1))
cropped.save(path, format="PNG")
+ _invalidate_static()
return {"status": "success", "filename": filename, "box": [int(cmin), int(rmin), int(cmax+1), int(rmax+1)]}
@@ -3558,8 +3559,7 @@ def manual_crop_image(filename: str, req: CropRequest):
cropped = img.crop((x1, y1, x2, y2))
fmt = "PNG" if path.lower().endswith(".png") else "JPEG"
cropped.save(path, format=fmt)
- if req.as_copy:
- _invalidate_static()
+ _invalidate_static()
return {"status": "success", "filename": filename, "new_filename": new_filename,
"new_url": f"/output/{new_filename}", "as_copy": req.as_copy,
"box": [x1, y1, x2, y2]}
@@ -3679,8 +3679,7 @@ def pad_image(filename: str, req: PadRequest):
if req.fill == "transparent":
fmt = "PNG" # JPEG cannot store alpha
padded.save(path, format=fmt)
- if req.as_copy:
- _invalidate_static()
+ _invalidate_static()
return {
"status": "success", "filename": filename, "new_filename": new_filename,
"new_url": f"/output/{new_filename}", "as_copy": req.as_copy,
@@ -3712,6 +3711,7 @@ def rotate_image(filename: str, req: RotateRequest):
img = Image.open(path).transpose(cw_to_transpose[deg])
fmt = "PNG" if path.lower().endswith(".png") else "JPEG"
img.save(path, format=fmt)
+ _invalidate_static()
return {"status": "success", "filename": filename, "degrees": deg}
diff --git a/tour-comfy/trash.html b/tour-comfy/trash.html
index ca310e4..34ec66e 100644
--- a/tour-comfy/trash.html
+++ b/tour-comfy/trash.html
@@ -101,7 +101,10 @@