From fe2a3179a8d3e7b865f3c61ee64862ac6bbf738b Mon Sep 17 00:00:00 2001 From: "Khoa.vo" Date: Tue, 30 Dec 2025 21:49:26 +0700 Subject: [PATCH] Update v2.3: Multi-image, Mobile Cookies, Img2Vid, Cleanup --- Image_editor_example/image_editor.js | 7 - .../image_editor_modules/color.js | 71 - .../image_editor_modules/constants.js | 24 - .../image_editor_modules/curve.js | 493 ------- .../image_editor_modules/editor.js | 1287 ----------------- .../image_editor_modules/extension.js | 132 -- .../image_editor_modules/reference.js | 149 -- .../image_editor_modules/styles.js | 435 ------ __pycache__/app.cpython-311.pyc | Bin 57561 -> 0 bytes __pycache__/app.cpython-314.pyc | Bin 62999 -> 0 bytes __pycache__/whisk_client.cpython-314.pyc | Bin 10934 -> 0 bytes app.py | 832 +++-------- docker-compose.nas.yml | 18 - docker-compose.yml | 19 +- preview.jpeg | Bin 328232 -> 0 bytes prompts.json | 9 + push_registry.sh | 2 +- run_app.bat | 65 - run_app.command | 39 - run_app.sh | 33 - static/script.js | 97 +- templates/index.html | 33 +- whisk_client.py | 26 +- 23 files changed, 317 insertions(+), 3454 deletions(-) delete mode 100644 Image_editor_example/image_editor.js delete mode 100644 Image_editor_example/image_editor_modules/color.js delete mode 100644 Image_editor_example/image_editor_modules/constants.js delete mode 100644 Image_editor_example/image_editor_modules/curve.js delete mode 100644 Image_editor_example/image_editor_modules/editor.js delete mode 100644 Image_editor_example/image_editor_modules/extension.js delete mode 100644 Image_editor_example/image_editor_modules/reference.js delete mode 100644 Image_editor_example/image_editor_modules/styles.js delete mode 100644 __pycache__/app.cpython-311.pyc delete mode 100644 __pycache__/app.cpython-314.pyc delete mode 100644 __pycache__/whisk_client.cpython-314.pyc delete mode 100644 docker-compose.nas.yml delete mode 100644 preview.jpeg delete mode 100644 run_app.bat delete mode 100755 run_app.command delete mode 100755 run_app.sh diff --git a/Image_editor_example/image_editor.js b/Image_editor_example/image_editor.js deleted file mode 100644 index 8129d31..0000000 --- a/Image_editor_example/image_editor.js +++ /dev/null @@ -1,7 +0,0 @@ -import { app } from "/scripts/app.js"; -import { api } from "/scripts/api.js"; -import { injectImageEditorStyles } from "./image_editor_modules/styles.js"; -import { registerImageEditorExtension } from "./image_editor_modules/extension.js"; - -injectImageEditorStyles(); -registerImageEditorExtension(app, api); diff --git a/Image_editor_example/image_editor_modules/color.js b/Image_editor_example/image_editor_modules/color.js deleted file mode 100644 index 2c50838..0000000 --- a/Image_editor_example/image_editor_modules/color.js +++ /dev/null @@ -1,71 +0,0 @@ -export function clamp01(value) { - return Math.min(1, Math.max(0, value)); -} - -export function clamp255(value) { - return Math.min(255, Math.max(0, value)); -} - -export function rgbToHsl(r, g, b) { - r /= 255; - g /= 255; - b /= 255; - const max = Math.max(r, g, b); - const min = Math.min(r, g, b); - let h; - let s; - const l = (max + min) / 2; - if (max === min) { - h = 0; - s = 0; - } else { - const d = max - min; - s = l > 0.5 ? d / (2 - max - min) : d / (max + min); - switch (max) { - case r: - h = (g - b) / d + (g < b ? 6 : 0); - break; - case g: - h = (b - r) / d + 2; - break; - default: - h = (r - g) / d + 4; - } - h /= 6; - } - return { h, s, l }; -} - -export function hslToRgb(h, s, l) { - let r; - let g; - let b; - if (s === 0) { - r = g = b = l; - } else { - const hue2rgb = (p, q, t) => { - if (t < 0) t += 1; - if (t > 1) t -= 1; - if (t < 1 / 6) return p + (q - p) * 6 * t; - if (t < 1 / 2) return q; - if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6; - return p; - }; - const q = l < 0.5 ? l * (1 + s) : l + s - l * s; - const p = 2 * l - q; - r = hue2rgb(p, q, h + 1 / 3); - g = hue2rgb(p, q, h); - b = hue2rgb(p, q, h - 1 / 3); - } - return { - r: Math.round(r * 255), - g: Math.round(g * 255), - b: Math.round(b * 255) - }; -} - -export function hueDistance(a, b) { - let diff = Math.abs(a - b); - diff = Math.min(diff, 1 - diff); - return diff; -} diff --git a/Image_editor_example/image_editor_modules/constants.js b/Image_editor_example/image_editor_modules/constants.js deleted file mode 100644 index e74dc54..0000000 --- a/Image_editor_example/image_editor_modules/constants.js +++ /dev/null @@ -1,24 +0,0 @@ -export const ICONS = { - crop: ``, - adjust: ``, - undo: ``, - redo: ``, - reset: ``, - chevronDown: ``, - close: ``, - flipH: ``, - flipV: ``, - rotate: `` -}; - -export const HSL_COLORS = [ - { id: "red", label: "Red", color: "#ff4b4b", center: 0 / 360, width: 0.12 }, - { id: "orange", label: "Orange", color: "#ff884d", center: 30 / 360, width: 0.12 }, - { id: "yellow", label: "Yellow", color: "#ffd84d", center: 50 / 360, width: 0.12 }, - { id: "green", label: "Green", color: "#45d98e", center: 120 / 360, width: 0.12 }, - { id: "cyan", label: "Cyan", color: "#30c4ff", center: 180 / 360, width: 0.12 }, - { id: "blue", label: "Blue", color: "#2f7bff", center: 220 / 360, width: 0.12 }, - { id: "magenta", label: "Magenta", color: "#c95bff", center: 300 / 360, width: 0.12 } -]; - -export const IMAGE_EDITOR_SUBFOLDER = "image_editor"; diff --git a/Image_editor_example/image_editor_modules/curve.js b/Image_editor_example/image_editor_modules/curve.js deleted file mode 100644 index eb4d7d8..0000000 --- a/Image_editor_example/image_editor_modules/curve.js +++ /dev/null @@ -1,493 +0,0 @@ -import { clamp01 } from "./color.js"; - -const CHANNEL_COLORS = { - rgb: "#ffffff", - r: "#ff7070", - g: "#70ffa0", - b: "#72a0ff" -}; - -export class CurveEditor { - constructor({ canvas, channelButtons = [], resetButton, onChange, onCommit }) { - this.canvas = canvas; - this.ctx = canvas.getContext("2d"); - this.channelButtons = channelButtons; - this.resetButton = resetButton; - this.onChange = onChange; - this.onCommit = onCommit; - - this.channels = ["rgb", "r", "g", "b"]; - this.activeChannel = "rgb"; - this.curves = this.createDefaultCurves(); - this.curveTangents = {}; - this.channels.forEach(channel => (this.curveTangents[channel] = [])); - this.luts = this.buildAllLUTs(); - this.isDragging = false; - this.dragIndex = null; - this.curveDirty = false; - this.displayWidth = this.canvas.clientWidth || 240; - this.displayHeight = this.canvas.clientHeight || 240; - - this.resizeObserver = null; - this.handleResize = this.handleResize.bind(this); - this.onPointerDown = this.onPointerDown.bind(this); - this.onPointerMove = this.onPointerMove.bind(this); - this.onPointerUp = this.onPointerUp.bind(this); - this.onDoubleClick = this.onDoubleClick.bind(this); - - window.addEventListener("resize", this.handleResize); - this.canvas.addEventListener("mousedown", this.onPointerDown); - window.addEventListener("mousemove", this.onPointerMove); - window.addEventListener("mouseup", this.onPointerUp); - this.canvas.addEventListener("dblclick", this.onDoubleClick); - - this.attachChannelButtons(); - this.attachResetButton(); - this.handleResize(); - if (window.ResizeObserver) { - this.resizeObserver = new ResizeObserver(() => this.handleResize()); - this.resizeObserver.observe(this.canvas); - } - this.draw(); - } - - destroy() { - this.resizeObserver?.disconnect(); - window.removeEventListener("resize", this.handleResize); - this.canvas.removeEventListener("mousedown", this.onPointerDown); - window.removeEventListener("mousemove", this.onPointerMove); - window.removeEventListener("mouseup", this.onPointerUp); - this.canvas.removeEventListener("dblclick", this.onDoubleClick); - } - - attachChannelButtons() { - this.channelButtons.forEach(btn => { - btn.addEventListener("click", () => { - const channel = btn.dataset.curveChannel; - if (channel && this.channels.includes(channel)) { - this.activeChannel = channel; - this.updateChannelButtons(); - this.draw(); - } - }); - }); - this.updateChannelButtons(); - } - - attachResetButton() { - if (!this.resetButton) return; - this.resetButton.addEventListener("click", () => { - this.resetChannel(this.activeChannel); - this.notifyChange(); - this.notifyCommit(); - }); - } - - updateChannelButtons() { - this.channelButtons.forEach(btn => { - const channel = btn.dataset.curveChannel; - btn.classList.toggle("active", channel === this.activeChannel); - }); - } - - handleResize() { - const rect = this.canvas.getBoundingClientRect(); - const width = Math.max(1, rect.width || 240); - const height = Math.max(1, rect.height || 240); - this.displayWidth = width; - this.displayHeight = height; - const dpr = window.devicePixelRatio || 1; - this.canvas.width = width * dpr; - this.canvas.height = height * dpr; - this.ctx.setTransform(1, 0, 0, 1, 0, 0); - this.ctx.scale(dpr, dpr); - this.draw(); - } - - createDefaultCurve() { - return [ - { x: 0, y: 0 }, - { x: 1, y: 1 } - ]; - } - - createDefaultCurves() { - return { - rgb: this.createDefaultCurve().map(p => ({ ...p })), - r: this.createDefaultCurve().map(p => ({ ...p })), - g: this.createDefaultCurve().map(p => ({ ...p })), - b: this.createDefaultCurve().map(p => ({ ...p })) - }; - } - - cloneCurves(source = this.curves) { - const clone = {}; - this.channels.forEach(channel => { - clone[channel] = (source[channel] || this.createDefaultCurve()).map(p => ({ x: p.x, y: p.y })); - }); - return clone; - } - - setState(state) { - if (!state) return; - const incoming = this.cloneCurves(state.curves || {}); - this.curves = incoming; - if (state.activeChannel && this.channels.includes(state.activeChannel)) { - this.activeChannel = state.activeChannel; - } - this.rebuildAllLUTs(); - this.updateChannelButtons(); - this.draw(); - } - - getState() { - return { - curves: this.cloneCurves(), - activeChannel: this.activeChannel - }; - } - - resetChannel(channel, emit = false) { - if (!this.channels.includes(channel)) return; - this.curves[channel] = this.createDefaultCurve().map(p => ({ ...p })); - this.rebuildChannelLUT(channel); - this.draw(); - if (emit) { - this.notifyChange(); - this.notifyCommit(); - this.curveDirty = false; - } - } - - resetAll(emit = true) { - this.channels.forEach(channel => { - this.curves[channel] = this.createDefaultCurve().map(p => ({ ...p })); - }); - this.rebuildAllLUTs(); - this.draw(); - if (emit) { - this.notifyChange(); - this.notifyCommit(); - this.curveDirty = false; - } - } - - hasAdjustments() { - return this.channels.some(channel => !this.isDefaultCurve(this.curves[channel])); - } - - isDefaultCurve(curve) { - if (!curve || curve.length !== 2) return false; - const [start, end] = curve; - const epsilon = 0.0001; - return Math.abs(start.x) < epsilon && Math.abs(start.y) < epsilon && - Math.abs(end.x - 1) < epsilon && Math.abs(end.y - 1) < epsilon; - } - - notifyChange() { - this.onChange?.(); - } - - notifyCommit() { - this.onCommit?.(); - } - - getLUTPack() { - return { - rgb: this.isDefaultCurve(this.curves.rgb) ? null : this.luts.rgb, - r: this.isDefaultCurve(this.curves.r) ? null : this.luts.r, - g: this.isDefaultCurve(this.curves.g) ? null : this.luts.g, - b: this.isDefaultCurve(this.curves.b) ? null : this.luts.b, - hasAdjustments: this.hasAdjustments() - }; - } - - buildAllLUTs() { - const result = {}; - this.channels.forEach(channel => { - const curve = this.curves[channel]; - const tangents = this.computeTangents(curve); - this.curveTangents[channel] = tangents; - result[channel] = this.buildCurveLUT(curve, tangents); - }); - return result; - } - - rebuildAllLUTs() { - this.luts = this.buildAllLUTs(); - } - - rebuildChannelLUT(channel) { - const curve = this.curves[channel]; - const tangents = this.computeTangents(curve); - this.curveTangents[channel] = tangents; - this.luts[channel] = this.buildCurveLUT(curve, tangents); - } - - buildCurveLUT(curve, tangents = null) { - const curveTangents = tangents || this.computeTangents(curve); - const lut = new Uint8ClampedArray(256); - for (let i = 0; i < 256; i++) { - const pos = i / 255; - lut[i] = Math.round(clamp01(this.sampleSmoothCurve(curve, pos, curveTangents)) * 255); - } - return lut; - } - - computeTangents(curve) { - const n = curve.length; - if (n < 2) return new Array(n).fill(0); - const tangents = new Array(n).fill(0); - const delta = new Array(n - 1).fill(0); - const dx = new Array(n - 1).fill(0); - for (let i = 0; i < n - 1; i++) { - dx[i] = Math.max(1e-6, curve[i + 1].x - curve[i].x); - delta[i] = (curve[i + 1].y - curve[i].y) / dx[i]; - } - tangents[0] = delta[0]; - tangents[n - 1] = delta[n - 2]; - for (let i = 1; i < n - 1; i++) { - if (delta[i - 1] * delta[i] <= 0) { - tangents[i] = 0; - } else { - const w1 = 2 * dx[i] + dx[i - 1]; - const w2 = dx[i] + 2 * dx[i - 1]; - tangents[i] = (w1 + w2) / (w1 / delta[i - 1] + w2 / delta[i]); - } - } - for (let i = 0; i < n - 1; i++) { - if (Math.abs(delta[i]) < 1e-6) { - tangents[i] = 0; - tangents[i + 1] = 0; - } else { - let alpha = tangents[i] / delta[i]; - let beta = tangents[i + 1] / delta[i]; - const sum = alpha * alpha + beta * beta; - if (sum > 9) { - const tau = 3 / Math.sqrt(sum); - alpha *= tau; - beta *= tau; - tangents[i] = alpha * delta[i]; - tangents[i + 1] = beta * delta[i]; - } - } - } - return tangents; - } - - sampleSmoothCurve(curve, t, tangents) { - if (!curve || curve.length === 0) return t; - const n = curve.length; - if (!tangents || tangents.length !== n) { - tangents = this.computeTangents(curve); - } - if (t <= curve[0].x) return curve[0].y; - if (t >= curve[n - 1].x) return curve[n - 1].y; - let idx = 1; - for (; idx < n; idx++) { - if (t <= curve[idx].x) break; - } - const p0 = curve[idx - 1]; - const p1 = curve[idx]; - const m0 = tangents[idx - 1] ?? 0; - const m1 = tangents[idx] ?? 0; - const span = p1.x - p0.x || 1e-6; - const u = (t - p0.x) / span; - const h00 = (2 * u ** 3) - (3 * u ** 2) + 1; - const h10 = u ** 3 - 2 * u ** 2 + u; - const h01 = (-2 * u ** 3) + (3 * u ** 2); - const h11 = u ** 3 - u ** 2; - const value = h00 * p0.y + h10 * span * m0 + h01 * p1.y + h11 * span * m1; - return clamp01(value); - } - - getActiveCurve() { - return this.curves[this.activeChannel]; - } - - addPoint(x, y) { - const points = this.getActiveCurve(); - let insertIndex = points.findIndex(point => x < point.x); - if (insertIndex === -1) { - points.push({ x, y }); - insertIndex = points.length - 1; - } else { - points.splice(insertIndex, 0, { x, y }); - } - this.rebuildChannelLUT(this.activeChannel); - this.draw(); - this.curveDirty = true; - this.notifyChange(); - return insertIndex; - } - - updatePoint(index, x, y) { - const points = this.getActiveCurve(); - const point = points[index]; - if (!point) return; - const originalX = point.x; - const originalY = point.y; - if (index === 0) { - point.x = 0; - point.y = clamp01(y); - } else if (index === points.length - 1) { - point.x = 1; - point.y = clamp01(y); - } else { - const minX = points[index - 1].x + 0.01; - const maxX = points[index + 1].x - 0.01; - point.x = clamp01(Math.min(Math.max(x, minX), maxX)); - point.y = clamp01(y); - } - if (Math.abs(originalX - point.x) < 0.0001 && Math.abs(originalY - point.y) < 0.0001) { - return; - } - this.rebuildChannelLUT(this.activeChannel); - this.draw(); - this.curveDirty = true; - this.notifyChange(); - } - - removePoint(index) { - const points = this.getActiveCurve(); - if (index <= 0 || index >= points.length - 1) return; - points.splice(index, 1); - this.rebuildChannelLUT(this.activeChannel); - this.draw(); - this.notifyChange(); - this.notifyCommit(); - this.curveDirty = false; - } - - getPointerPosition(event) { - const rect = this.canvas.getBoundingClientRect(); - if (!rect.width || !rect.height) return null; - const x = clamp01((event.clientX - rect.left) / rect.width); - const y = clamp01(1 - (event.clientY - rect.top) / rect.height); - return { x, y }; - } - - findPointIndex(pos, threshold = 10) { - if (!pos) return -1; - const points = this.getActiveCurve(); - const targetX = pos.x * this.displayWidth; - const targetY = (1 - pos.y) * this.displayHeight; - for (let i = 0; i < points.length; i++) { - const pt = points[i]; - const px = pt.x * this.displayWidth; - const py = (1 - pt.y) * this.displayHeight; - const dist = Math.hypot(px - targetX, py - targetY); - if (dist <= threshold) return i; - } - return -1; - } - - onPointerDown(event) { - if (event.button !== 0) return; - const pos = this.getPointerPosition(event); - if (!pos) return; - event.preventDefault(); - let idx = this.findPointIndex(pos); - if (idx === -1) { - idx = this.addPoint(pos.x, pos.y); - } - this.dragIndex = idx; - this.isDragging = true; - this.updatePoint(idx, pos.x, pos.y); - } - - onPointerMove(event) { - if (!this.isDragging || this.dragIndex === null) return; - const pos = this.getPointerPosition(event); - if (!pos) return; - event.preventDefault(); - this.updatePoint(this.dragIndex, pos.x, pos.y); - } - - onPointerUp() { - if (!this.isDragging) return; - this.isDragging = false; - this.dragIndex = null; - if (this.curveDirty) { - this.curveDirty = false; - this.notifyCommit(); - } - } - - onDoubleClick(event) { - const pos = this.getPointerPosition(event); - if (!pos) return; - const idx = this.findPointIndex(pos, 8); - if (idx > 0 && idx < this.getActiveCurve().length - 1) { - this.removePoint(idx); - } - } - - getChannelColor() { - return CHANNEL_COLORS[this.activeChannel] || "#ffffff"; - } - - draw() { - if (!this.ctx) return; - const ctx = this.ctx; - const w = this.displayWidth; - const h = this.displayHeight; - ctx.clearRect(0, 0, w, h); - this.drawGrid(ctx, w, h); - this.drawCurve(ctx, w, h); - this.drawPoints(ctx, w, h); - } - - drawGrid(ctx, w, h) { - ctx.fillStyle = "rgba(0,0,0,0.5)"; - ctx.fillRect(0, 0, w, h); - ctx.strokeStyle = "rgba(255,255,255,0.08)"; - ctx.lineWidth = 1; - for (let i = 1; i < 4; i++) { - const x = (w / 4) * i; - const y = (h / 4) * i; - ctx.beginPath(); - ctx.moveTo(x, 0); - ctx.lineTo(x, h); - ctx.stroke(); - ctx.beginPath(); - ctx.moveTo(0, y); - ctx.lineTo(w, y); - ctx.stroke(); - } - } - - drawCurve(ctx, w, h) { - const points = this.getActiveCurve(); - if (!points?.length) return; - const tangents = this.curveTangents[this.activeChannel] || this.computeTangents(points); - ctx.strokeStyle = this.getChannelColor(); - ctx.lineWidth = 2; - ctx.beginPath(); - const steps = 128; - for (let i = 0; i <= steps; i++) { - const t = i / steps; - const value = this.sampleSmoothCurve(points, t, tangents); - const x = t * w; - const y = (1 - value) * h; - if (i === 0) ctx.moveTo(x, y); - else ctx.lineTo(x, y); - } - ctx.stroke(); - } - - drawPoints(ctx, w, h) { - const points = this.getActiveCurve(); - ctx.fillStyle = "#000"; - ctx.lineWidth = 2; - ctx.strokeStyle = this.getChannelColor(); - points.forEach(pt => { - const x = pt.x * w; - const y = (1 - pt.y) * h; - ctx.beginPath(); - ctx.arc(x, y, 5, 0, Math.PI * 2); - ctx.fill(); - ctx.stroke(); - }); - } -} diff --git a/Image_editor_example/image_editor_modules/editor.js b/Image_editor_example/image_editor_modules/editor.js deleted file mode 100644 index 994941c..0000000 --- a/Image_editor_example/image_editor_modules/editor.js +++ /dev/null @@ -1,1287 +0,0 @@ -import { ICONS, HSL_COLORS } from './constants.js'; -import { clamp01, clamp255, rgbToHsl, hslToRgb, hueDistance } from './color.js'; -import { CurveEditor } from './curve.js'; - -export class ImageEditor { - constructor(imageSrc, saveCallback) { - this.imageSrc = imageSrc; - this.saveCallback = saveCallback; - - // State - this.params = { - exposure: 0, // -100 to 100 - contrast: 0, // -100 to 100 - saturation: 0, // -100 to 100 - temp: 0, // -100 to 100 - tint: 0, // -100 to 100 - vibrance: 0, // -100 to 100 - hue: 0, // -180 to 180 - highlight: 0, // -100 to 100 - shadow: 0, // -100 to 100 - blur: 0, // 0 to 100 - noise: 0, // 0 to 100 - grain: 0, // 0 to 100 - clarity: 0, // -100 to 100 - dehaze: 0, // -100 to 100 - hslHue: 0, // -180 to 180 (current selection) - hslSaturation: 0, // -100 to 100 (current selection) - hslLightness: 0 // -100 to 100 (current selection) - }; - this.activeHSLColor = HSL_COLORS[0]?.id || null; - this.hslAdjustments = this.getDefaultHSLAdjustments(); - this.curveEditor = null; - - this.history = []; - this.historyIndex = -1; - - this.zoom = 1; - this.pan = { x: 0, y: 0 }; - this.isDragging = false; - this.lastMousePos = { x: 0, y: 0 }; - - this.isCropping = false; - this.cropStart = null; - this.cropRect = null; - this.activeHandle = null; - - this.createUI(); - this.loadImage(); - } - - createUI() { - this.overlay = document.createElement("div"); - this.overlay.className = "apix-overlay"; - - this.overlay.innerHTML = ` - -
- - -
- - - -
- - -
-
-
- Image Editor -
-
- - -
- -
-
- -
- -
-
-
-
-
-
-
-
-
-
-
- -
- - 100% - - -
-
- - - - `; - - document.body.appendChild(this.overlay); - this.bindEvents(); - } - - renderSlider(label, id, min, max, val) { - return ` -
-
- ${label} -
- ${val} -
-
-
- - -
-
- `; - } - - renderCurvePanel() { - return ` -
-
- Adjust -
- - - - -
- -
-
- -
-
- `; - } - - renderHSLSection() { - if (!this.activeHSLColor && HSL_COLORS.length) { - this.activeHSLColor = HSL_COLORS[0].id; - } - const swatches = HSL_COLORS.map(color => ` - - `).join(""); - return ` -
-
${swatches}
- ${this.renderHSLSlider("Hue", "h", -180, 180, this.params.hslHue)} - ${this.renderHSLSlider("Saturation", "s", -100, 100, this.params.hslSaturation)} - ${this.renderHSLSlider("Luminance", "l", -100, 100, this.params.hslLightness)} -
- ${this.getActiveHSLLabel()} - -
-
- `; - } - - renderHSLSlider(label, key, min, max, val) { - return ` -
-
- ${label} -
- ${val} -
-
-
- - -
-
- `; - } - - getActiveHSLLabel() { - const active = HSL_COLORS.find(c => c.id === this.activeHSLColor); - return active ? active.label : (HSL_COLORS[0]?.label || "Color"); - } - - bindEvents() { - this.canvas = this.overlay.querySelector("#editor-canvas"); - this.ctx = this.canvas.getContext("2d"); - this.container = this.overlay.querySelector("#canvas-container"); - this.cropBox = this.overlay.querySelector("#crop-box"); - - // Sliders - const hslKeys = new Set(["hslHue", "hslSaturation", "hslLightness"]); - Object.keys(this.params).forEach(key => { - if (hslKeys.has(key)) return; - const slider = this.overlay.querySelector(`#param-${key}`); - if (!slider) return; - slider.oninput = (e) => { - const val = parseFloat(e.target.value); - this.params[key] = val; - const display = this.overlay.querySelector(`#val-${key}`); - if (display) display.textContent = val; - this.requestRender(); - }; - slider.onchange = () => this.pushHistory(); // Save state on release - }); - this.bindHSLControls(); - this.initCurveEditor(); - - // Accordions - this.overlay.querySelectorAll(".apix-panel-header").forEach(header => { - header.onclick = () => { - const targetId = header.dataset.target; - const content = this.overlay.querySelector(`#${targetId}`); - const isHidden = content.classList.contains("hidden"); - // Close all first (optional, mimicking accordion) - // this.overlay.querySelectorAll(".apix-panel-content").forEach(c => c.classList.add("hidden")); - content.classList.toggle("hidden", !isHidden); - header.querySelector("svg").style.transform = isHidden ? "rotate(180deg)" : "rotate(0deg)"; - }; - }); - - // Tools - this.overlay.querySelector("#tool-crop").onclick = () => this.toggleMode('crop'); - this.overlay.querySelector("#tool-adjust").onclick = () => this.toggleMode('adjust'); - - // Crop Actions - this.overlay.querySelector("#crop-apply").onclick = () => this.applyCrop(); - this.overlay.querySelector("#crop-cancel").onclick = () => this.toggleMode('adjust'); - - // Zoom/Pan - this.container.addEventListener('wheel', (e) => { - e.preventDefault(); - const delta = e.deltaY > 0 ? 0.9 : 1.1; - this.zoom = Math.max(0.1, Math.min(10, this.zoom * delta)); - this.updateZoomDisplay(); - this.requestRender(); - }); - - this.container.addEventListener('mousedown', (e) => { - if (this.isCropping) { - this.handleCropStart(e); - } else { - this.isDragging = true; - this.lastMousePos = { x: e.clientX, y: e.clientY }; - this.container.style.cursor = 'grabbing'; - } - }); - - window.addEventListener('mousemove', (e) => { - if (this.isDragging) { - const dx = e.clientX - this.lastMousePos.x; - const dy = e.clientY - this.lastMousePos.y; - this.pan.x += dx; - this.pan.y += dy; - this.lastMousePos = { x: e.clientX, y: e.clientY }; - this.requestRender(); - } else if (this.isCropping) { - this.handleCropMove(e); - } - }); - - window.addEventListener('mouseup', () => { - this.isDragging = false; - this.container.style.cursor = this.isCropping ? 'crosshair' : 'grab'; - if (this.isCropping) this.handleCropEnd(); - }); - - // Zoom Buttons - this.overlay.querySelector("#zoom-in").onclick = () => { this.zoom *= 1.2; this.updateZoomDisplay(); this.requestRender(); }; - this.overlay.querySelector("#zoom-out").onclick = () => { this.zoom /= 1.2; this.updateZoomDisplay(); this.requestRender(); }; - this.overlay.querySelector("#zoom-fit").onclick = () => this.fitCanvas(); - - // Transform buttons - this.overlay.querySelector("#flip-btn-horizontal").onclick = () => this.flipImage("horizontal"); - this.overlay.querySelector("#flip-btn-vertical").onclick = () => this.flipImage("vertical"); - this.overlay.querySelector("#rotate-btn-90").onclick = () => this.rotateImage(90); - - // Main Actions - this.overlay.querySelector("#action-close").onclick = () => this.close(); - this.overlay.querySelector("#action-save").onclick = () => this.save(); - this.overlay.querySelector("#action-download").onclick = () => this.download(); - this.overlay.querySelector("#action-reset").onclick = () => this.reset(); - this.overlay.querySelector("#action-undo").onclick = () => this.undo(); - this.overlay.querySelector("#action-redo").onclick = () => this.redo(); - } - - bindHSLControls() { - if (!this.overlay) return; - this.overlay.querySelectorAll(".apix-hsl-chip").forEach(btn => { - btn.onclick = () => { - this.activeHSLColor = btn.dataset.color; - this.syncHSLSliders(); - this.updateHSLUI(); - }; - }); - - const hslMap = { h: "hslHue", s: "hslSaturation", l: "hslLightness" }; - ["h", "s", "l"].forEach(key => { - const slider = this.overlay.querySelector(`#hsl-slider-${key}`); - if (!slider) return; - slider.oninput = (e) => { - const val = parseFloat(e.target.value); - const current = this.hslAdjustments[this.activeHSLColor]; - current[key] = val; - this.params[hslMap[key]] = val; - const label = this.overlay.querySelector(`#val-hsl-${key}`); - if (label) label.textContent = val; - this.requestRender(); - }; - slider.onchange = () => this.pushHistory(); - }); - - const resetBtn = this.overlay.querySelector("#hsl-reset"); - if (resetBtn) { - resetBtn.onclick = () => { - this.resetCurrentHSL(); - this.pushHistory(); - }; - } - - this.syncHSLSliders(); - this.updateHSLUI(); - this.bindSliderResetButtons(); - } - - initCurveEditor() { - if (!this.overlay) return; - const canvas = this.overlay.querySelector("#curve-canvas"); - if (!canvas) return; - const channelButtons = Array.from(this.overlay.querySelectorAll(".apix-curve-channel-btn")); - const resetBtn = this.overlay.querySelector("#curve-reset"); - this.curveEditor = new CurveEditor({ - canvas, - channelButtons, - resetButton: resetBtn, - onChange: () => this.requestRender(), - onCommit: () => this.pushHistory() - }); - } - - resetCurrentHSL() { - const current = this.hslAdjustments[this.activeHSLColor]; - if (!current) return; - current.h = 0; - current.s = 0; - current.l = 0; - this.syncHSLSliders(); - this.requestRender(); - } - - syncHSLSliders() { - const current = this.hslAdjustments[this.activeHSLColor]; - if (!current || !this.overlay) return; - const map = { h: "hslHue", s: "hslSaturation", l: "hslLightness" }; - ["h", "s", "l"].forEach(key => { - const slider = this.overlay.querySelector(`#hsl-slider-${key}`); - if (slider) slider.value = current[key]; - const label = this.overlay.querySelector(`#val-hsl-${key}`); - if (label) label.textContent = current[key]; - this.params[map[key]] = current[key]; - }); - } - - updateHSLUI() { - if (!this.overlay) return; - this.overlay.querySelectorAll(".apix-hsl-chip").forEach(btn => { - btn.classList.toggle("active", btn.dataset.color === this.activeHSLColor); - }); - const label = this.overlay.querySelector("#hsl-active-label"); - if (label) label.textContent = this.getActiveHSLLabel(); - } - - bindSliderResetButtons() { - if (!this.overlay) return; - const hslMap = { h: "hslHue", s: "hslSaturation", l: "hslLightness" }; - this.overlay.querySelectorAll(".apix-slider-reset").forEach(btn => { - const sliderId = btn.dataset.slider; - const slider = this.overlay.querySelector(`#${sliderId}`); - if (!slider) return; - const defaultVal = parseFloat(btn.dataset.default ?? "0"); - const isHSL = btn.dataset.hsl === "true"; - btn.onclick = () => { - slider.value = defaultVal; - if (!isHSL) { - const paramKey = sliderId.replace("param-", ""); - if (this.params.hasOwnProperty(paramKey)) { - this.params[paramKey] = defaultVal; - } - const valueLabel = this.overlay.querySelector(`#val-${paramKey}`); - if (valueLabel) valueLabel.textContent = defaultVal; - } else { - const key = btn.dataset.hslKey; - const current = this.hslAdjustments[this.activeHSLColor]; - if (current) { - current[key] = defaultVal; - } - if (hslMap[key]) { - this.params[hslMap[key]] = defaultVal; - } - const display = this.overlay.querySelector(`#val-hsl-${key}`); - if (display) display.textContent = defaultVal; - } - this.requestRender(); - this.pushHistory(); - }; - }); - } - - cloneHSLAdjustments(source = this.hslAdjustments) { - const clone = {}; - Object.keys(source || {}).forEach(key => { - clone[key] = { ...(source[key] || { h: 0, s: 0, l: 0 }) }; - }); - return clone; - } - - getDefaultHSLAdjustments() { - const defaults = {}; - HSL_COLORS.forEach(color => { - defaults[color.id] = { h: 0, s: 0, l: 0 }; - }); - return defaults; - } - - hasHSLAdjustments() { - return Object.keys(this.hslAdjustments || {}).some(key => { - const adj = this.hslAdjustments[key]; - return adj && (adj.h || adj.s || adj.l); - }); - } - - shouldApplyPixelEffects() { - const p = this.params; - const totalNoise = Math.max(0, (p.noise || 0) + (p.grain || 0)); - return totalNoise > 0 || this.hasHSLAdjustments() || p.clarity !== 0 || p.dehaze !== 0 || p.highlight !== 0 || p.shadow !== 0 || p.vibrance !== 0 || (this.curveEditor?.hasAdjustments() ?? false); - } - - loadImage() { - this.originalImage = new Image(); - this.originalImage.onload = () => { - this.currentImage = this.originalImage; - this.fitCanvas(); - this.syncHSLSliders(); - this.updateHSLUI(); - this.pushHistory(); // Initial state - }; - this.originalImage.src = this.imageSrc; - } - - fitCanvas() { - if (!this.currentImage) return; - const containerW = this.container.clientWidth - 40; - const containerH = this.container.clientHeight - 40; - const scale = Math.min(containerW / this.currentImage.width, containerH / this.currentImage.height); - this.zoom = scale; - this.pan = { x: 0, y: 0 }; // Center - this.updateZoomDisplay(); - this.requestRender(); - } - - updateZoomDisplay() { - this.overlay.querySelector("#zoom-level").textContent = Math.round(this.zoom * 100) + "%"; - } - - toggleMode(mode) { - this.isCropping = mode === 'crop'; - - // Update UI - this.overlay.querySelectorAll(".apix-mode-btn").forEach(b => b.classList.remove("active")); - this.overlay.querySelector(`#tool-${mode}`).classList.add("active"); - - // Show/Hide Crop Controls - const cropPanel = this.overlay.querySelector("#panel-crop-controls"); - // FIXED: Do not hide parent element, just toggle the panel content - - if (mode === 'crop') { - cropPanel.classList.remove("hidden"); - cropPanel.scrollIntoView({ behavior: 'smooth' }); - } else { - cropPanel.classList.add("hidden"); - } - - this.container.style.cursor = this.isCropping ? 'crosshair' : 'grab'; - this.cropBox.style.display = 'none'; - this.cropStart = null; - this.cropRect = null; - } - - // --- Rendering --- - - requestRender() { - if (!this.renderRequested) { - this.renderRequested = true; - requestAnimationFrame(() => { - this.render(); - this.renderRequested = false; - }); - } - } - - render() { - if (!this.currentImage) return; - - const w = this.container.clientWidth; - const h = this.container.clientHeight; - this.canvas.width = w; - this.canvas.height = h; - - // Clear - this.ctx.clearRect(0, 0, w, h); - - // Calculate transformed position - const imgW = this.currentImage.width * this.zoom; - const imgH = this.currentImage.height * this.zoom; - const centerX = w / 2 + this.pan.x; - const centerY = h / 2 + this.pan.y; - const x = centerX - imgW / 2; - const y = centerY - imgH / 2; - - // Save context for transforms - this.ctx.save(); - - // 1. Apply Filters (CSS style for preview performance) - // Note: Canvas filter API is widely supported now - const p = this.params; - const clarityBoost = 1 + (p.clarity || 0) / 200; - const dehazeBoost = 1 + Math.max(0, p.dehaze || 0) / 200; - const brightness = 100 + p.exposure; - const contrast = Math.max(0, (100 + p.contrast) * clarityBoost * dehazeBoost); - let saturate = 100 + p.saturation; - if (p.dehaze > 0) { - saturate += p.dehaze * 0.3; - } - const hue = p.hue; - const blur = p.blur / 5; // Scale down - - let filterString = `brightness(${brightness}%) contrast(${contrast}%) saturate(${saturate}%) hue-rotate(${hue}deg)`; - if (blur > 0) filterString += ` blur(${blur}px)`; - - this.ctx.filter = filterString; - - const drawX = x; - const drawY = y; - const drawW = imgW; - const drawH = imgH; - this.ctx.drawImage(this.currentImage, drawX, drawY, drawW, drawH); - this.ctx.filter = 'none'; - - const rect = { x: drawX, y: drawY, width: drawW, height: drawH }; - - // 2. Overlays (Temp/Tint) - if (p.temp !== 0 || p.tint !== 0) { - this.ctx.globalCompositeOperation = 'overlay'; - - // Temp (Blue/Orange) - if (p.temp !== 0) { - this.ctx.fillStyle = p.temp > 0 ? `rgba(255, 160, 0, ${p.temp / 200})` : `rgba(0, 100, 255, ${Math.abs(p.temp) / 200})`; - this.ctx.fillRect(rect.x, rect.y, rect.width, rect.height); - } - - // Tint (Green/Magenta) - if (p.tint !== 0) { - this.ctx.fillStyle = p.tint > 0 ? `rgba(255, 0, 255, ${p.tint / 200})` : `rgba(0, 255, 0, ${Math.abs(p.tint) / 200})`; - this.ctx.fillRect(rect.x, rect.y, rect.width, rect.height); - } - - this.ctx.globalCompositeOperation = 'source-over'; - } - - if (this.shouldApplyPixelEffects()) { - this.applyPixelEffectsRegion(this.ctx, rect.x, rect.y, rect.width, rect.height); - } - - this.ctx.restore(); - } - - flipImage(direction) { - if (!this.currentImage) return; - const canvas = document.createElement("canvas"); - canvas.width = this.currentImage.width; - canvas.height = this.currentImage.height; - const ctx = canvas.getContext("2d"); - ctx.save(); - if (direction === "horizontal") { - ctx.translate(canvas.width, 0); - ctx.scale(-1, 1); - } else { - ctx.translate(0, canvas.height); - ctx.scale(1, -1); - } - ctx.drawImage(this.currentImage, 0, 0); - ctx.restore(); - - const flipped = new Image(); - flipped.onload = () => { - this.currentImage = flipped; - this.requestRender(); - this.pushHistory(); - }; - flipped.src = canvas.toDataURL(); - } - - rotateImage(angle = 90) { - if (!this.currentImage) return; - let normalized = angle % 360; - if (normalized < 0) normalized += 360; - if (normalized === 0) return; - - const imgW = this.currentImage.width; - const imgH = this.currentImage.height; - const needsSwap = normalized === 90 || normalized === 270; - - const canvas = document.createElement("canvas"); - canvas.width = needsSwap ? imgH : imgW; - canvas.height = needsSwap ? imgW : imgH; - const ctx = canvas.getContext("2d"); - ctx.save(); - - if (normalized === 90) { - ctx.translate(canvas.width, 0); - ctx.rotate(Math.PI / 2); - ctx.drawImage(this.currentImage, 0, 0); - } else if (normalized === 180) { - ctx.translate(canvas.width, canvas.height); - ctx.rotate(Math.PI); - ctx.drawImage(this.currentImage, 0, 0); - } else if (normalized === 270) { - ctx.translate(0, canvas.height); - ctx.rotate(-Math.PI / 2); - ctx.drawImage(this.currentImage, 0, 0); - } else { - ctx.translate(canvas.width / 2, canvas.height / 2); - ctx.rotate((Math.PI / 180) * normalized); - ctx.drawImage(this.currentImage, -imgW / 2, -imgH / 2); - } - - ctx.restore(); - - const rotated = new Image(); - rotated.onload = () => { - this.currentImage = rotated; - this.requestRender(); - this.pushHistory(); - }; - rotated.src = canvas.toDataURL(); - } - - applyPixelEffectsRegion(ctx, x, y, width, height) { - const p = this.params; - const totalNoise = Math.max(0, (p.noise || 0) + (p.grain || 0)); - const needsProcessing = totalNoise > 0 || this.hasHSLAdjustments() || p.clarity !== 0 || p.dehaze !== 0 || p.highlight !== 0 || p.shadow !== 0 || p.vibrance !== 0 || (this.curveEditor?.hasAdjustments() ?? false); - if (!needsProcessing) return; - if (width <= 0 || height <= 0) return; - - const startX = Math.max(0, Math.floor(x)); - const startY = Math.max(0, Math.floor(y)); - const endX = Math.min(ctx.canvas.width, Math.ceil(x + width)); - const endY = Math.min(ctx.canvas.height, Math.ceil(y + height)); - const regionW = endX - startX; - const regionH = endY - startY; - if (regionW <= 0 || regionH <= 0) return; - - let imageData; - try { - imageData = ctx.getImageData(startX, startY, regionW, regionH); - } catch (err) { - console.warn("ImageEditor: unable to read pixels for adjustments", err); - return; - } - - const data = imageData.data; - const curvePack = this.curveEditor?.getLUTPack?.(); - const curvesActive = curvePack?.hasAdjustments; - const curveRGB = curvesActive ? curvePack.rgb : null; - const curveR = curvesActive ? curvePack.r : null; - const curveG = curvesActive ? curvePack.g : null; - const curveB = curvesActive ? curvePack.b : null; - const clarityStrength = (p.clarity || 0) / 200; - const dehazeStrength = (p.dehaze || 0) / 200; - const highlightStrength = (p.highlight || 0) / 100; - const shadowStrength = (p.shadow || 0) / 100; - const noiseStrength = totalNoise / 100 * 30; - const vibranceStrength = (p.vibrance || 0) / 100; - const applyVibrance = vibranceStrength !== 0; - - for (let i = 0; i < data.length; i += 4) { - let r = data[i]; - let g = data[i + 1]; - let b = data[i + 2]; - let { h, s, l } = rgbToHsl(r, g, b); - - const adjustment = this.getHSLAdjustmentForHue(h); - const hueShift = (adjustment.h || 0) / 360; - const satAdjust = (adjustment.s || 0) / 100; - const lightAdjust = (adjustment.l || 0) / 100; - - if (hueShift) { - h = (h + hueShift) % 1; - if (h < 0) h += 1; - } - if (satAdjust) { - if (satAdjust > 0) { - s = clamp01(s + (1 - s) * satAdjust); - } else { - s = clamp01(s + s * satAdjust); - } - } - if (lightAdjust) { - if (lightAdjust > 0) { - l = clamp01(l + (1 - l) * lightAdjust); - } else { - l = clamp01(l + l * lightAdjust); - } - } - if (clarityStrength) { - const delta = (l - 0.5) * clarityStrength; - l = clamp01(l + delta); - } - if (dehazeStrength) { - if (dehazeStrength > 0) { - l = clamp01(l - (l - 0.4) * Math.abs(dehazeStrength)); - s = clamp01(s + (1 - s) * Math.abs(dehazeStrength) * 0.8); - } else { - const haze = Math.abs(dehazeStrength); - l = clamp01(l + (1 - l) * haze * 0.5); - s = clamp01(s - s * haze * 0.5); - } - } - if (highlightStrength && l > 0.5) { - const influence = (l - 0.5) * 2; - l = clamp01(l + influence * highlightStrength); - } - if (shadowStrength && l < 0.5) { - const influence = (0.5 - l) * 2; - l = clamp01(l + influence * shadowStrength); - } - if (applyVibrance) { - const midToneFactor = 0.5 + (1 - Math.abs(2 * l - 1)) * 0.5; - if (vibranceStrength > 0) { - s = clamp01(s + (1 - s) * vibranceStrength * midToneFactor); - } else { - s = clamp01(s + s * vibranceStrength * 0.8); - } - } - - ({ r, g, b } = hslToRgb(h, s, l)); - - if (curvesActive) { - if (curveR) r = curveR[r]; - if (curveG) g = curveG[g]; - if (curveB) b = curveB[b]; - if (curveRGB) { - r = curveRGB[r]; - g = curveRGB[g]; - b = curveRGB[b]; - } - } - - if (noiseStrength > 0) { - const rand = (Math.random() - 0.5) * 2 * noiseStrength; - r = clamp255(r + rand); - g = clamp255(g + rand); - b = clamp255(b + rand); - } - - data[i] = r; - data[i + 1] = g; - data[i + 2] = b; - } - - ctx.putImageData(imageData, startX, startY); - } - - getHSLAdjustmentForHue(hueValue) { - const adjustments = this.hslAdjustments || {}; - const result = { h: 0, s: 0, l: 0 }; - - HSL_COLORS.forEach(color => { - const adj = adjustments[color.id]; - if (!adj || color.center === null) return; - const dist = hueDistance(hueValue, color.center); - const width = color.width || 0.08; - const maxDist = width * 2; - if (dist >= maxDist) return; - const normalized = dist / width; - const influence = Math.exp(-normalized * normalized * 1.5); - if (influence <= 0) return; - result.h += adj.h * influence; - result.s += adj.s * influence; - result.l += adj.l * influence; - }); - - return result; - } - - // --- Crop Logic --- - handleCropStart(e) { - const rect = this.container.getBoundingClientRect(); - const clientX = e.clientX - rect.left; - const clientY = e.clientY - rect.top; - - // Check if clicking on a handle - if (e.target.classList.contains('apix-crop-handle')) { - this.activeHandle = e.target.dataset.handle; - this.cropStart = { x: clientX, y: clientY }; // Reference for drag - // Store initial rect state for resizing - const style = window.getComputedStyle(this.cropBox); - this.initialCropRect = { - left: parseFloat(style.left), - top: parseFloat(style.top), - width: parseFloat(style.width), - height: parseFloat(style.height) - }; - return; - } - - // Check if clicking inside existing crop box (Move) - if (this.cropRect) { - const style = window.getComputedStyle(this.cropBox); - const left = parseFloat(style.left); - const top = parseFloat(style.top); - const width = parseFloat(style.width); - const height = parseFloat(style.height); - - if (clientX >= left && clientX <= left + width && clientY >= top && clientY <= top + height) { - this.activeHandle = 'move'; - this.cropStart = { x: clientX, y: clientY }; - this.initialCropRect = { left, top, width, height }; - return; - } - } - - // Start new crop - // Convert to image coordinates to check bounds - const w = this.container.clientWidth; - const h = this.container.clientHeight; - const imgW = this.currentImage.width * this.zoom; - const imgH = this.currentImage.height * this.zoom; - const centerX = w / 2 + this.pan.x; - const centerY = h / 2 + this.pan.y; - const imgX = centerX - imgW / 2; - const imgY = centerY - imgH / 2; - - // Check if click is within image - if (clientX < imgX || clientX > imgX + imgW || clientY < imgY || clientY > imgY + imgH) return; - - this.cropStart = { x: clientX, y: clientY }; - this.cropBox.style.display = 'block'; - this.activeHandle = 'new'; - this.updateCropBox(clientX, clientY, 0, 0); - } - - handleCropMove(e) { - if (!this.cropStart) return; - - const rect = this.container.getBoundingClientRect(); - const clientX = e.clientX - rect.left; - const clientY = e.clientY - rect.top; - - if (this.activeHandle === 'new') { - const w = clientX - this.cropStart.x; - const h = clientY - this.cropStart.y; - this.updateCropBox(this.cropStart.x, this.cropStart.y, w, h); - } else if (this.activeHandle === 'move') { - const dx = clientX - this.cropStart.x; - const dy = clientY - this.cropStart.y; - this.cropBox.style.left = (this.initialCropRect.left + dx) + 'px'; - this.cropBox.style.top = (this.initialCropRect.top + dy) + 'px'; - } else if (this.activeHandle) { - // Resize logic - const dx = clientX - this.cropStart.x; - const dy = clientY - this.cropStart.y; - let newLeft = this.initialCropRect.left; - let newTop = this.initialCropRect.top; - let newWidth = this.initialCropRect.width; - let newHeight = this.initialCropRect.height; - - if (this.activeHandle.includes('l')) { - newLeft += dx; - newWidth -= dx; - } - if (this.activeHandle.includes('r')) { - newWidth += dx; - } - if (this.activeHandle.includes('t')) { - newTop += dy; - newHeight -= dy; - } - if (this.activeHandle.includes('b')) { - newHeight += dy; - } - - // Enforce Aspect Ratio if set - const aspectSelect = this.overlay.querySelector("#crop-aspect"); - if (aspectSelect.value !== 'free') { - const ratio = parseFloat(aspectSelect.value); - // Simple aspect enforcement (width dominant) - if (this.activeHandle.includes('l') || this.activeHandle.includes('r')) { - newHeight = newWidth / ratio; - } else { - newWidth = newHeight * ratio; - } - } - - if (newWidth > 10 && newHeight > 10) { - this.cropBox.style.left = newLeft + 'px'; - this.cropBox.style.top = newTop + 'px'; - this.cropBox.style.width = newWidth + 'px'; - this.cropBox.style.height = newHeight + 'px'; - } - } - } - - handleCropEnd() { - // Finalize crop box dimensions - const style = window.getComputedStyle(this.cropBox); - this.cropRect = { - x: parseFloat(style.left), - y: parseFloat(style.top), - w: parseFloat(style.width), - h: parseFloat(style.height) - }; - this.cropStart = null; - this.activeHandle = null; - } - - updateCropBox(x, y, w, h) { - let left = w < 0 ? x + w : x; - let top = h < 0 ? y + h : y; - let width = Math.abs(w); - let height = Math.abs(h); - - // Constrain to aspect ratio if selected - const aspectSelect = this.overlay.querySelector("#crop-aspect"); - if (aspectSelect.value !== 'free') { - const ratio = parseFloat(aspectSelect.value); - if (width / height > ratio) { - width = height * ratio; - } else { - height = width / ratio; - } - } - - this.cropBox.style.left = left + 'px'; - this.cropBox.style.top = top + 'px'; - this.cropBox.style.width = width + 'px'; - this.cropBox.style.height = height + 'px'; - } - - applyCrop() { - if (!this.cropRect || this.cropRect.w < 10) return; - - // Convert screen coords to image coords - const w = this.container.clientWidth; - const h = this.container.clientHeight; - const imgW = this.currentImage.width * this.zoom; - const imgH = this.currentImage.height * this.zoom; - const centerX = w / 2 + this.pan.x; - const centerY = h / 2 + this.pan.y; - const imgX = centerX - imgW / 2; - const imgY = centerY - imgH / 2; - - const relativeX = (this.cropRect.x - imgX) / this.zoom; - const relativeY = (this.cropRect.y - imgY) / this.zoom; - const relativeW = this.cropRect.w / this.zoom; - const relativeH = this.cropRect.h / this.zoom; - - // Create new cropped image - const canvas = document.createElement('canvas'); - canvas.width = relativeW; - canvas.height = relativeH; - const ctx = canvas.getContext('2d'); - ctx.drawImage(this.currentImage, relativeX, relativeY, relativeW, relativeH, 0, 0, relativeW, relativeH); - - const newImg = new Image(); - newImg.onload = () => { - this.currentImage = newImg; - this.toggleMode('adjust'); - this.fitCanvas(); - this.pushHistory(); - }; - newImg.src = canvas.toDataURL(); - } - - // --- History --- - pushHistory() { - // Remove future states if we are in middle of stack - if (this.historyIndex < this.history.length - 1) { - this.history = this.history.slice(0, this.historyIndex + 1); - } - - // Save state - this.history.push({ - params: { ...this.params }, - hslAdjustments: this.cloneHSLAdjustments(), - activeHSLColor: this.activeHSLColor, - curves: this.curveEditor ? this.curveEditor.getState() : null, - image: this.currentImage.src // Save image source (base64) if changed by crop - }); - this.historyIndex++; - this.updateHistoryButtons(); - } - - undo() { - if (this.historyIndex > 0) { - this.historyIndex--; - this.restoreState(this.history[this.historyIndex]); - } - } - - redo() { - if (this.historyIndex < this.history.length - 1) { - this.historyIndex++; - this.restoreState(this.history[this.historyIndex]); - } - } - - restoreState(state) { - this.params = { ...state.params }; - this.hslAdjustments = state.hslAdjustments ? this.cloneHSLAdjustments(state.hslAdjustments) : this.getDefaultHSLAdjustments(); - this.activeHSLColor = state.activeHSLColor || HSL_COLORS[0]?.id || null; - this.syncHSLSliders(); - this.updateHSLUI(); - if (this.curveEditor) { - if (state.curves) { - this.curveEditor.setState(state.curves); - } else { - this.curveEditor.resetAll(false); - } - } - // Update UI - Object.keys(this.params).forEach(key => { - const el = this.overlay.querySelector(`#param-${key}`); - if (el) { - el.value = this.params[key]; - this.overlay.querySelector(`#val-${key}`).textContent = this.params[key]; - } - }); - - // Update Image if changed (crop) - if (state.image !== this.currentImage.src) { - const img = new Image(); - img.onload = () => { - this.currentImage = img; - this.requestRender(); - }; - img.src = state.image; - } else { - this.requestRender(); - } - this.updateHistoryButtons(); - } - - updateHistoryButtons() { - this.overlay.querySelector("#action-undo").disabled = this.historyIndex <= 0; - this.overlay.querySelector("#action-redo").disabled = this.historyIndex >= this.history.length - 1; - } - - reset() { - // Reset to initial state (index 0) - if (this.history.length > 0) { - this.historyIndex = 0; - this.restoreState(this.history[0]); - // Clear future - this.history = [this.history[0]]; - this.updateHistoryButtons(); - } - } - - async renderEditedBlob() { - // 1. Create a high-res canvas - const canvas = document.createElement("canvas"); - canvas.width = this.currentImage.width; - canvas.height = this.currentImage.height; - const ctx = canvas.getContext("2d"); - - // 2. Apply filters - const p = this.params; - const clarityBoost = 1 + (p.clarity || 0) / 200; - const dehazeBoost = 1 + Math.max(0, p.dehaze || 0) / 200; - const brightness = 100 + p.exposure; - const contrast = Math.max(0, (100 + p.contrast) * clarityBoost * dehazeBoost); - let saturate = 100 + p.saturation; - if (p.dehaze > 0) { - saturate += p.dehaze * 0.3; - } - const hue = p.hue; - const blur = p.blur / 5; // Scale appropriately for full res? - // Note: CSS blur is px based, canvas filter blur is also px based. - // If image is large, blur needs to be scaled up to look same as preview. - // Preview zoom = this.zoom. - // Real blur = p.blur / 5 / this.zoom (approx) - - let filterString = `brightness(${brightness}%) contrast(${contrast}%) saturate(${saturate}%) hue-rotate(${hue}deg)`; - if (blur > 0) filterString += ` blur(${blur}px)`; - - ctx.filter = filterString; - ctx.drawImage(this.currentImage, 0, 0); - ctx.filter = 'none'; - - // 3. Apply Overlays - if (p.temp !== 0 || p.tint !== 0) { - ctx.globalCompositeOperation = 'overlay'; - if (p.temp !== 0) { - ctx.fillStyle = p.temp > 0 ? `rgba(255, 160, 0, ${p.temp / 200})` : `rgba(0, 100, 255, ${Math.abs(p.temp) / 200})`; - ctx.fillRect(0, 0, canvas.width, canvas.height); - } - if (p.tint !== 0) { - ctx.fillStyle = p.tint > 0 ? `rgba(255, 0, 255, ${p.tint / 200})` : `rgba(0, 255, 0, ${Math.abs(p.tint) / 200})`; - ctx.fillRect(0, 0, canvas.width, canvas.height); - } - ctx.globalCompositeOperation = 'source-over'; - } - - if (this.shouldApplyPixelEffects()) { - this.applyPixelEffectsRegion(ctx, 0, 0, canvas.width, canvas.height); - } - - return new Promise((resolve, reject) => { - canvas.toBlob( - (blob) => { - if (blob) { - resolve(blob); - } else { - reject(new Error("Unable to export edited image.")); - } - }, - "image/png", - 0.95 - ); - }); - } - - // --- Save --- - async save() { - try { - const blob = await this.renderEditedBlob(); - if (this.saveCallback) { - await this.saveCallback(blob); - } - this.close(); - } catch (err) { - console.error("[SDVN.ImageEditor] Failed to save image", err); - } - } - - async download() { - try { - const blob = await this.renderEditedBlob(); - const url = URL.createObjectURL(blob); - const link = document.createElement("a"); - link.href = url; - link.download = this.buildDownloadFilename(); - document.body.appendChild(link); - link.click(); - document.body.removeChild(link); - setTimeout(() => URL.revokeObjectURL(url), 0); - } catch (err) { - console.error("[SDVN.ImageEditor] Failed to download image", err); - } - } - - buildDownloadFilename() { - const fallback = "sdvn_image.png"; - if (!this.imageSrc) return fallback; - try { - const url = new URL(this.imageSrc, window.location.origin); - const paramName = url.searchParams.get("filename"); - const pathName = url.pathname.split("/").pop(); - const base = (paramName || pathName || "sdvn_image").replace(/\.[^.]+$/, ""); - return `${base || "sdvn_image"}_edited.png`; - } catch { - const sanitized = this.imageSrc.split("/").pop()?.split("?")[0] ?? "sdvn_image"; - const base = sanitized.replace(/\.[^.]+$/, ""); - return `${base || "sdvn_image"}_edited.png`; - } - } - - close() { - this.curveEditor?.destroy?.(); - document.body.removeChild(this.overlay); - } -} diff --git a/Image_editor_example/image_editor_modules/extension.js b/Image_editor_example/image_editor_modules/extension.js deleted file mode 100644 index a29e79e..0000000 --- a/Image_editor_example/image_editor_modules/extension.js +++ /dev/null @@ -1,132 +0,0 @@ -import { ImageEditor } from "./editor.js"; -import { IMAGE_EDITOR_SUBFOLDER } from "./constants.js"; -import { - parseImageWidgetValue, - extractFilenameFromSrc, - buildEditorFilename, - buildImageReference, - updateWidgetWithRef, - createImageURLFromRef, - setImageSource, - refreshComboLists, -} from "./reference.js"; - -export function registerImageEditorExtension(app, api) { - app.registerExtension({ - name: "SDVN.ImageEditor", - async beforeRegisterNodeDef(nodeType) { - const getExtraMenuOptions = nodeType.prototype.getExtraMenuOptions; - nodeType.prototype.getExtraMenuOptions = function (_, options) { - if (this.imgs && this.imgs.length > 0) { - options.push({ - content: "🎨 Image Editor", - callback: () => { - const img = this.imgs[this.imgs.length - 1]; - let src = null; - if (img && img.src) src = img.src; - else if (img && img.image) src = img.image.src; - - if (src) { - new ImageEditor(src, async (blob) => { - const formData = new FormData(); - const inferredName = extractFilenameFromSrc(src); - const editorName = buildEditorFilename(inferredName); - formData.append("image", blob, editorName); - formData.append("overwrite", "false"); - formData.append("type", "input"); - formData.append("subfolder", IMAGE_EDITOR_SUBFOLDER); - - try { - const resp = await api.fetchApi("/upload/image", { - method: "POST", - body: formData, - }); - const data = await resp.json(); - const ref = buildImageReference(data, { - type: "input", - subfolder: IMAGE_EDITOR_SUBFOLDER, - filename: editorName, - }); - const imageWidget = this.widgets?.find?.( - (w) => w.name === "image" || w.type === "image" - ); - if (imageWidget) { - updateWidgetWithRef(this, imageWidget, ref); - } - const newSrc = createImageURLFromRef(api, ref); - if (newSrc) { - setImageSource(img, newSrc); - app.graph.setDirtyCanvas(true); - } - await refreshComboLists(app); - console.info("[SDVN.ImageEditor] Image saved to input folder:", data?.name || editorName); - } catch (e) { - console.error("[SDVN.ImageEditor] Upload failed", e); - } - }); - } - }, - }); - } else if (this.widgets) { - const imageWidget = this.widgets.find((w) => w.name === "image" || w.type === "image"); - if (imageWidget && imageWidget.value) { - options.push({ - content: "🎨 Image Editor", - callback: () => { - const parsed = parseImageWidgetValue(imageWidget.value); - if (!parsed.filename) { - console.warn("[SDVN.ImageEditor] Image not available for editing."); - return; - } - const src = api.apiURL( - `/view?filename=${encodeURIComponent(parsed.filename)}&type=${parsed.type}&subfolder=${encodeURIComponent( - parsed.subfolder - )}` - ); - - new ImageEditor(src, async (blob) => { - const formData = new FormData(); - const newName = buildEditorFilename(parsed.filename); - formData.append("image", blob, newName); - formData.append("overwrite", "false"); - formData.append("type", "input"); - formData.append("subfolder", IMAGE_EDITOR_SUBFOLDER); - - try { - const resp = await api.fetchApi("/upload/image", { - method: "POST", - body: formData, - }); - const data = await resp.json(); - const ref = buildImageReference(data, { - type: "input", - subfolder: IMAGE_EDITOR_SUBFOLDER, - filename: newName, - }); - - if (imageWidget) { - updateWidgetWithRef(this, imageWidget, ref); - } - - const newSrc = createImageURLFromRef(api, ref); - - if (this.imgs && this.imgs.length > 0) { - this.imgs.forEach((img) => setImageSource(img, newSrc)); - } - - this.setDirtyCanvas?.(true, true); - app.graph.setDirtyCanvas(true, true); - await refreshComboLists(app); - } catch (e) { - console.error("[SDVN.ImageEditor] Upload failed", e); - } - }); - }, - }); - } - } - return getExtraMenuOptions?.apply(this, arguments); - }; - }, - }); -} diff --git a/Image_editor_example/image_editor_modules/reference.js b/Image_editor_example/image_editor_modules/reference.js deleted file mode 100644 index 1d93aad..0000000 --- a/Image_editor_example/image_editor_modules/reference.js +++ /dev/null @@ -1,149 +0,0 @@ -export function buildImageReference(data, fallback = {}) { - const ref = { - filename: data?.name || data?.filename || fallback.filename, - subfolder: data?.subfolder ?? fallback.subfolder ?? "", - type: data?.type || fallback.type || "input", - }; - if (!ref.filename) { - return null; - } - return ref; -} - -export function buildAnnotatedLabel(ref) { - if (!ref?.filename) return ""; - const path = ref.subfolder ? `${ref.subfolder}/${ref.filename}` : ref.filename; - return `${path} [${ref.type || "input"}]`; -} - -export function parseImageWidgetValue(value) { - const defaults = { filename: null, subfolder: "", type: "input" }; - if (!value) return defaults; - if (typeof value === "object") { - return { - filename: value.filename || null, - subfolder: value.subfolder || "", - type: value.type || "input", - }; - } - - const raw = value.toString().trim(); - let type = "input"; - let path = raw; - const match = raw.match(/\[([^\]]+)\]\s*$/); - if (match) { - type = match[1].trim() || "input"; - path = raw.slice(0, match.index).trim(); - } - path = path.replace(/^[\\/]+/, ""); - const parts = path.split(/[\\/]/).filter(Boolean); - const filename = parts.pop() || null; - const subfolder = parts.join("/") || ""; - return { filename, subfolder, type }; -} - -export function sanitizeFilenamePart(part) { - return (part || "") - .replace(/[\\/]/g, "_") - .replace(/[<>:"|?*\x00-\x1F]/g, "_") - .replace(/\s+/g, "_"); -} - -export function buildEditorFilename(sourceName) { - let name = sourceName ? sourceName.toString() : ""; - name = name.split(/[\\/]/).pop() || ""; - name = name.replace(/\.[^.]+$/, ""); - name = sanitizeFilenamePart(name); - if (!name) name = `image_${Date.now()}`; - return `${name}.png`; -} - -export function extractFilenameFromSrc(src) { - if (!src) return null; - try { - const url = new URL(src, window.location.origin); - return url.searchParams.get("filename"); - } catch { - return null; - } -} - -export function formatWidgetValueFromRef(ref, currentValue) { - if (currentValue && typeof currentValue === "object") { - return { - ...currentValue, - filename: ref.filename, - subfolder: ref.subfolder, - type: ref.type, - }; - } - return buildAnnotatedLabel(ref); -} - -export function updateWidgetWithRef(node, widget, ref) { - if (!node || !widget || !ref) return; - const annotatedLabel = buildAnnotatedLabel(ref); - const storedValue = formatWidgetValueFromRef(ref, widget.value); - widget.value = storedValue; - widget.callback?.(storedValue); - if (widget.inputEl) { - widget.inputEl.value = annotatedLabel; - } - - if (Array.isArray(node.widgets_values)) { - const idx = node.widgets?.indexOf?.(widget) ?? -1; - if (idx >= 0) { - node.widgets_values[idx] = annotatedLabel; - } - } - - if (Array.isArray(node.inputs)) { - node.inputs.forEach(input => { - if (!input?.widget) return; - if (input.widget === widget || (widget.name && input.widget.name === widget.name)) { - input.widget.value = annotatedLabel; - if (input.widget.inputEl) { - input.widget.inputEl.value = annotatedLabel; - } - } - }); - } - - if (typeof annotatedLabel === "string" && widget.options?.values) { - const values = widget.options.values; - if (Array.isArray(values) && !values.includes(annotatedLabel)) { - values.push(annotatedLabel); - } - } -} - -export function createImageURLFromRef(api, ref) { - if (!ref?.filename) return null; - const params = new URLSearchParams(); - params.set("filename", ref.filename); - params.set("type", ref.type || "input"); - params.set("subfolder", ref.subfolder || ""); - params.set("t", Date.now().toString()); - return api.apiURL(`/view?${params.toString()}`); -} - -export function setImageSource(target, newSrc) { - if (!target || !newSrc) return; - if (target instanceof Image) { - target.src = newSrc; - } else if (target.image instanceof Image) { - target.image.src = newSrc; - } else if (target.img instanceof Image) { - target.img.src = newSrc; - } -} - -export async function refreshComboLists(app) { - if (typeof app.refreshComboInNodes === "function") { - try { - await app.refreshComboInNodes(); - } catch (err) { - console.warn("SDVN.ImageEditor: refreshComboInNodes failed", err); - } - } -} diff --git a/Image_editor_example/image_editor_modules/styles.js b/Image_editor_example/image_editor_modules/styles.js deleted file mode 100644 index e273990..0000000 --- a/Image_editor_example/image_editor_modules/styles.js +++ /dev/null @@ -1,435 +0,0 @@ -const STYLE_ID = "sdvn-image-editor-style"; - -const IMAGE_EDITOR_CSS = ` - :root { - --apix-bg: #0f0f0f; - --apix-panel: #1a1a1a; - --apix-border: #2a2a2a; - --apix-text: #e0e0e0; - --apix-text-dim: #888; - --apix-accent: #f5c518; /* Yellow accent from apix */ - --apix-accent-hover: #ffd54f; - --apix-danger: #ff4444; - } - .apix-overlay { - position: fixed; - top: 0; - left: 0; - width: 100vw; - height: 100vh; - background: var(--apix-bg); - z-index: 10000; - display: flex; - font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif; - color: var(--apix-text); - overflow: hidden; - user-select: none; - } - - /* Left Sidebar (Tools) */ - .apix-sidebar-left { - width: 60px; - background: var(--apix-panel); - border-right: 1px solid var(--apix-border); - display: flex; - flex-direction: column; - align-items: center; - padding: 20px 0; - gap: 15px; - z-index: 10; - } - - /* Main Canvas Area */ - .apix-main-area { - flex: 1; - display: flex; - flex-direction: column; - position: relative; - background: #000; - overflow: hidden; - } - .apix-header { - height: 50px; - display: flex; - align-items: center; - justify-content: space-between; - padding: 0 20px; - background: var(--apix-panel); - border-bottom: 1px solid var(--apix-border); - } - .apix-header-title { - font-weight: 700; - color: var(--apix-accent); - font-size: 18px; - display: flex; - align-items: center; - gap: 10px; - } - - .apix-canvas-container { - flex: 1; - position: relative; - overflow: hidden; - display: flex; - justify-content: center; - align-items: center; - cursor: grab; - } - .apix-canvas-container:active { - cursor: grabbing; - } - - /* Bottom Bar (Zoom) */ - .apix-bottom-bar { - height: 40px; - background: var(--apix-panel); - border-top: 1px solid var(--apix-border); - display: flex; - align-items: center; - justify-content: center; - gap: 15px; - font-size: 12px; - } - -/* Right Sidebar (Adjustments) */ -.apix-sidebar-right { - width: 320px; - background: var(--apix-panel); - border-left: 1px solid var(--apix-border); - display: flex; - flex-direction: column; - z-index: 10; - height: 100vh; - max-height: 100vh; - overflow: hidden; -} -.apix-sidebar-scroll { - flex: 1; - overflow-y: auto; - padding-bottom: 20px; - scrollbar-width: thin; - scrollbar-color: var(--apix-accent) transparent; -} -.apix-sidebar-scroll::-webkit-scrollbar { - width: 6px; -} -.apix-sidebar-scroll::-webkit-scrollbar-thumb { - background: var(--apix-accent); - border-radius: 3px; -} -.apix-sidebar-scroll::-webkit-scrollbar-track { - background: transparent; -} - - /* UI Components */ - .apix-tool-btn { - width: 40px; - height: 40px; - border-radius: 8px; - border: 1px solid transparent; - background: transparent; - color: var(--apix-text-dim); - cursor: pointer; - display: flex; - align-items: center; - justify-content: center; - transition: all 0.2s; - } - .apix-tool-btn:hover { - color: var(--apix-text); - background: rgba(255,255,255,0.05); - } -.apix-tool-btn.active { - color: #000; - background: var(--apix-accent); -} -.apix-tool-btn.icon-only svg { - width: 18px; - height: 18px; -} -.apix-sidebar-divider { - width: 24px; - height: 1px; - background: var(--apix-border); - margin: 12px 0; -} - - .apix-panel-section { - border-bottom: 1px solid var(--apix-border); - } -.apix-panel-header { - padding: 15px; - font-weight: 600; - font-size: 13px; - cursor: pointer; - display: flex; - justify-content: space-between; - align-items: center; - background: rgba(255,255,255,0.02); - user-select: none; -} -.apix-panel-header span:first-child { - color: #8d8d8d; - font-weight: 700; - letter-spacing: 0.3px; -} -.apix-panel-header:hover { - background: rgba(255,255,255,0.05); -} - .apix-panel-content { - padding: 15px; - display: flex; - flex-direction: column; - gap: 15px; - } - .apix-panel-content.hidden { - display: none; - } - - .apix-control-row { - display: flex; - flex-direction: column; - gap: 8px; - } -.apix-control-label { - display: flex; - justify-content: space-between; - font-size: 12px; - color: var(--apix-text-dim); - letter-spacing: 0.2px; - font-weight: 600; -} -.apix-slider-meta { - display: flex; - align-items: center; - justify-content: flex-end; -} -.apix-slider-meta span { - min-width: 36px; - text-align: right; - font-variant-numeric: tabular-nums; -} -.apix-slider-wrapper { - position: relative; - width: 100%; - padding-right: 26px; -} -.apix-slider-reset { - border: none; - background: transparent; - color: var(--apix-text-dim); - cursor: pointer; - width: 22px; - height: 22px; - position: absolute; - right: 0; - top: 56%; - transform: translateY(-50%); - opacity: 0.4; - display: flex; - align-items: center; - justify-content: center; - transition: opacity 0.2s, color 0.2s; -} -.apix-slider-reset:hover { - opacity: 1; - color: var(--apix-accent); -} -.apix-slider-reset svg { - width: 12px; - height: 12px; - pointer-events: none; -} - -.apix-curve-panel { - display: flex; - flex-direction: column; - gap: 10px; -} -.apix-curve-toolbar { - display: flex; - align-items: center; - justify-content: space-between; - font-size: 11px; - color: var(--apix-text-dim); - gap: 8px; -} -.apix-curve-channel-buttons { - display: flex; - gap: 6px; -} -.apix-curve-channel-btn { - border: 1px solid var(--apix-border); - background: transparent; - color: var(--apix-text-dim); - font-size: 10px; - padding: 2px 8px; - border-radius: 999px; - cursor: pointer; - transition: all 0.2s; -} -.apix-curve-channel-btn.active { - background: var(--apix-accent); - color: #000; - border-color: var(--apix-accent); -} -.apix-curve-reset { - border: none; - background: transparent; - color: var(--apix-accent); - font-size: 11px; - cursor: pointer; - padding: 0 4px; -} -.apix-curve-stage { - width: 100%; - height: 240px; - border: 1px solid var(--apix-border); - border-radius: 8px; - background: linear-gradient(180deg, rgba(255,255,255,0.05) 0%, rgba(0,0,0,0.25) 100%); - position: relative; - overflow: hidden; -} -.apix-curve-stage canvas { - width: 100%; - height: 100%; - display: block; -} - - .apix-slider { - -webkit-appearance: none; - width: 100%; - height: 4px; - background: #333; - border-radius: 2px; - outline: none; - } - .apix-slider::-webkit-slider-thumb { - -webkit-appearance: none; - width: 12px; - height: 12px; - border-radius: 50%; - background: var(--apix-accent); - cursor: pointer; - border: 2px solid #1a1a1a; - transition: transform 0.1s; - } - .apix-slider::-webkit-slider-thumb:hover { - transform: scale(1.2); - } - - .apix-btn { - padding: 8px 16px; - border-radius: 6px; - border: none; - font-weight: 600; - cursor: pointer; - font-size: 12px; - transition: all 0.2s; - } -.apix-btn-primary { - background: var(--apix-accent); - color: #000; -} -.apix-btn-primary:hover { - background: var(--apix-accent-hover); -} -.apix-btn-secondary { - background: #333; - color: #fff; -} -.apix-btn-secondary:hover { - background: #444; -} -.apix-btn-toggle.active { - background: var(--apix-accent); - color: #000; -} -.apix-hsl-swatches { - display: flex; - gap: 8px; - flex-wrap: wrap; -} -.apix-hsl-chip { - width: 26px; - height: 26px; - border-radius: 50%; - border: 2px solid transparent; - background: var(--chip-color, #fff); - cursor: pointer; - transition: transform 0.2s, border 0.2s; -} -.apix-hsl-chip.active { - border-color: var(--apix-accent); - transform: scale(1.05); -} -.apix-hsl-slider .apix-slider-meta span { - font-size: 11px; - color: var(--apix-text-dim); -} -.apix-hsl-actions { - display: flex; - justify-content: flex-end; - gap: 10px; - align-items: center; - font-size: 11px; - color: var(--apix-text-dim); -} -.apix-hsl-reset { - border: none; - background: transparent; - color: var(--apix-accent); - cursor: pointer; - font-size: 11px; -} - - .apix-sidebar-right { - position: relative; - } - .apix-footer { - padding: 20px; - border-top: 1px solid var(--apix-border); - display: flex; - justify-content: flex-end; - gap: 10px; - background: var(--apix-panel); - } - - /* Crop Overlay */ - .apix-crop-overlay { - position: absolute; - border: 1px solid rgba(255, 255, 255, 0.5); - box-shadow: 0 0 0 9999px rgba(0, 0, 0, 0.7); - pointer-events: none; - display: none; - } - .apix-crop-handle { - position: absolute; - width: 12px; - height: 12px; - background: var(--apix-accent); - border: 1px solid #000; - pointer-events: auto; - z-index: 100; - } - /* Handle positions */ - .handle-tl { top: -6px; left: -6px; cursor: nw-resize; } - .handle-tr { top: -6px; right: -6px; cursor: ne-resize; } - .handle-bl { bottom: -6px; left: -6px; cursor: sw-resize; } - .handle-br { bottom: -6px; right: -6px; cursor: se-resize; } - /* Edges */ - .handle-t { top: -6px; left: 50%; transform: translateX(-50%); cursor: n-resize; } - .handle-b { bottom: -6px; left: 50%; transform: translateX(-50%); cursor: s-resize; } - .handle-l { left: -6px; top: 50%; transform: translateY(-50%); cursor: w-resize; } - .handle-r { right: -6px; top: 50%; transform: translateY(-50%); cursor: e-resize; } -`; - -export function injectImageEditorStyles() { - if (document.getElementById(STYLE_ID)) { - return; - } - const style = document.createElement("style"); - style.id = STYLE_ID; - style.textContent = IMAGE_EDITOR_CSS; - document.head.appendChild(style); -} diff --git a/__pycache__/app.cpython-311.pyc b/__pycache__/app.cpython-311.pyc deleted file mode 100644 index 075c1153b90b0c7ecc7a670ff203b1a89e3d09a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 57561 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 P+(&JpQH%Lwfd~B$Qn;AC diff --git a/__pycache__/app.cpython-314.pyc b/__pycache__/app.cpython-314.pyc deleted file mode 100644 index 20736e56c4742a2880cea1b9ee1c4bb7b719c24d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 62999 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 DOtbu{ diff --git a/__pycache__/whisk_client.cpython-314.pyc b/__pycache__/whisk_client.cpython-314.pyc deleted file mode 100644 index ff802374bddb88df91b3dac18c4d7f9d87c7ade2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10934 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 diff --git a/app.py b/app.py index e5a6d35..0e936ae 100644 --- a/app.py +++ b/app.py @@ -586,10 +586,13 @@ def generate_image(): reference_image_path = ref_url # Call the client + image_count = int(data.get('image_count', 4)) if not multipart else int(form.get('image_count', 4)) + try: whisk_result = whisk_client.generate_image_whisk( prompt=api_prompt, cookie_str=cookie_str, + image_count=image_count, aspect_ratio=aspect_ratio, resolution=resolution, reference_image_path=reference_image_path @@ -598,26 +601,28 @@ def generate_image(): # Re-raise to be caught by the outer block raise e - # Process result - whisk_client returns raw bytes - image_bytes = None - if isinstance(whisk_result, bytes): - image_bytes = whisk_result + # Process result - whisk_client returns List[bytes] or bytes (in case of fallback/legacy) + image_bytes_list = [] + if isinstance(whisk_result, list): + image_bytes_list = whisk_result + elif isinstance(whisk_result, bytes): + image_bytes_list = [whisk_result] elif isinstance(whisk_result, dict): # Fallback if I ever change the client to return dict if 'image_data' in whisk_result: - image_bytes = whisk_result['image_data'] + image_bytes_list = [whisk_result['image_data']] elif 'image_url' in whisk_result: import requests img_resp = requests.get(whisk_result['image_url']) - image_bytes = img_resp.content + image_bytes_list = [img_resp.content] - if not image_bytes: + if not image_bytes_list: raise ValueError("No image data returned from Whisk.") - # Save and process image (Reuse existing logic) - image = Image.open(BytesIO(image_bytes)) - png_info = PngImagePlugin.PngInfo() - + # Process all images + saved_urls = [] + saved_b64s = [] + date_str = datetime.now().strftime("%Y%m%d") search_pattern = os.path.join(GENERATED_DIR, f"whisk_{date_str}_*.png") existing_files = glob.glob(search_pattern) @@ -626,41 +631,58 @@ def generate_image(): try: basename = os.path.basename(f) name_without_ext = os.path.splitext(basename)[0] - id_part = name_without_ext.split('_')[-1] - id_num = int(id_part) - if id_num > max_id: - max_id = id_num - except ValueError: + parts = name_without_ext.split('_') + # Check for batch_ID part + if len(parts) >= 3: + id_part = parts[2] + id_num = int(id_part) + if id_num > max_id: + max_id = id_num + elif len(parts) == 2: + pass + except (ValueError, IndexError): continue - - next_id = max_id + 1 - filename = f"whisk_{date_str}_{next_id}.png" - filepath = os.path.join(GENERATED_DIR, filename) - rel_path = os.path.join('generated', filename) - image_url = url_for('static', filename=rel_path) + + next_batch_id = max_id + 1 - metadata = { - 'prompt': prompt, - 'note': note, - 'processed_prompt': api_prompt, - 'aspect_ratio': aspect_ratio or 'Auto', - 'resolution': resolution, - 'reference_images': final_reference_paths, - 'model': 'whisk' - } - png_info.add_text('sdvn_meta', json.dumps(metadata)) + for idx, img_bytes in enumerate(image_bytes_list): + image = Image.open(BytesIO(img_bytes)) + png_info = PngImagePlugin.PngInfo() - buffer = BytesIO() - image.save(buffer, format='PNG', pnginfo=png_info) - final_bytes = buffer.getvalue() + filename = f"whisk_{date_str}_{next_batch_id}_{idx}.png" + filepath = os.path.join(GENERATED_DIR, filename) + rel_path = os.path.join('generated', filename) + image_url = url_for('static', filename=rel_path) - with open(filepath, 'wb') as f: - f.write(final_bytes) + metadata = { + 'prompt': prompt, + 'note': note, + 'processed_prompt': api_prompt, + 'aspect_ratio': aspect_ratio or 'Auto', + 'resolution': resolution, + 'reference_images': final_reference_paths, + 'model': 'whisk', + 'batch_id': next_batch_id, + 'batch_index': idx + } + png_info.add_text('sdvn_meta', json.dumps(metadata)) + + buffer = BytesIO() + image.save(buffer, format='PNG', pnginfo=png_info) + final_bytes = buffer.getvalue() + + with open(filepath, 'wb') as f: + f.write(final_bytes) + + b64_str = base64.b64encode(final_bytes).decode('utf-8') + saved_urls.append(image_url) + saved_b64s.append(b64_str) - image_data = base64.b64encode(final_bytes).decode('utf-8') return jsonify({ - 'image': image_url, - 'image_data': image_data, + 'image': saved_urls[0], # Legacy support + 'images': saved_urls, # New support + 'image_data': saved_b64s[0], # Legacy + 'image_datas': saved_b64s, # New 'metadata': metadata, }) @@ -797,661 +819,135 @@ def get_prompts(): # Read prompts.json file prompts_path = get_config_path('prompts.json') if os.path.exists(prompts_path): - with open(prompts_path, 'r', encoding='utf-8') as f: - try: - builtin_prompts = json.load(f) - if isinstance(builtin_prompts, list): - for idx, prompt in enumerate(builtin_prompts): - prompt['builtinTemplateIndex'] = idx - prompt['tags'] = parse_tags_field(prompt.get('tags')) - all_prompts.extend(builtin_prompts) - except json.JSONDecodeError: - pass - - # Read user_prompts.json file and mark as user templates + with open(prompts_path, 'r', encoding='utf-8') as f: + core_data = json.load(f) + if isinstance(core_data, list): + all_prompts.extend(core_data) + + # Read user_prompts.json file user_prompts_path = get_config_path('user_prompts.json') if os.path.exists(user_prompts_path): - try: - with open(user_prompts_path, 'r', encoding='utf-8') as f: - user_prompts = json.load(f) - if isinstance(user_prompts, list): - # Mark each user template and add index for editing - for idx, template in enumerate(user_prompts): - template['isUserTemplate'] = True - template['userTemplateIndex'] = idx - template['tags'] = parse_tags_field(template.get('tags')) - all_prompts.extend(user_prompts) - except json.JSONDecodeError: - pass # Ignore if empty or invalid + with open(user_prompts_path, 'r', encoding='utf-8') as f: + user_data = json.load(f) + if isinstance(user_data, list): + all_prompts.extend(user_data) - # Filter by category if specified + # Filter by category if provided if category: - all_prompts = [p for p in all_prompts if p.get('category') == category] + filtered_prompts = [p for p in all_prompts if p.get('category') == category] + return jsonify(filtered_prompts) - favorites = load_template_favorites() - response = jsonify({'prompts': all_prompts, 'favorites': favorites}) - response.headers["Cache-Control"] = "no-cache, no-store, must-revalidate" - return response + return jsonify(all_prompts) except Exception as e: - return jsonify({'error': str(e)}), 500 + print(f"Error reading prompts: {e}") + return jsonify([]) - -@app.route('/template_favorite', methods=['POST']) -def template_favorite(): - data = request.get_json() or {} - key = data.get('key') - favorite = data.get('favorite') - - if not key or not isinstance(favorite, bool): - return jsonify({'error': 'Invalid favorite payload'}), 400 - - favorites = load_template_favorites() - - if favorite: - if key not in favorites: - favorites.append(key) - else: - favorites = [item for item in favorites if item != key] - - save_template_favorites(favorites) - return jsonify({'favorites': favorites}) - -@app.route('/gallery_favorites', methods=['GET']) -def get_gallery_favorites(): - favorites = load_gallery_favorites() - return jsonify({'favorites': favorites}) - -@app.route('/toggle_gallery_favorite', methods=['POST']) -def toggle_gallery_favorite(): - data = request.get_json() or {} - filename = data.get('filename') - source = data.get('source') - rel_path = data.get('path') or data.get('relative_path') - - resolved_source, _, storage_key = resolve_gallery_target(source, filename, rel_path) - if not storage_key: - return jsonify({'error': 'Filename is required'}), 400 - - favorites = load_gallery_favorites() - legacy_key = os.path.basename(storage_key) - - if storage_key in favorites or legacy_key in favorites: - favorites = [item for item in favorites if item not in (storage_key, legacy_key)] - is_favorite = False - else: - favorites.append(storage_key) - is_favorite = True - - save_gallery_favorites(favorites) - return jsonify({'favorites': favorites, 'is_favorite': is_favorite, 'source': resolved_source}) - -@app.route('/save_template', methods=['POST']) -def save_template(): +@app.route('/save_prompt', methods=['POST']) +def save_prompt(): + data = request.get_json() + new_prompt = { + 'act': data.get('act'), + 'prompt': data.get('prompt'), + 'category': 'User Saved', + 'desc': data.get('desc', '') + } + + user_prompts_path = get_config_path('user_prompts.json') try: - import requests - from urllib.parse import urlparse - - # Handle multipart form data - title = request.form.get('title') - prompt = request.form.get('prompt') - mode = request.form.get('mode', 'generate') - note = request.form.get('note', '') - category = request.form.get('category', 'User') - tags_field = request.form.get('tags') - tags = parse_tags_field(tags_field) - - if not title or not prompt: - return jsonify({'error': 'Title and prompt are required'}), 400 - - # Handle preview image - preview_path = None - preview_dir = os.path.join(app.static_folder, 'preview') - os.makedirs(preview_dir, exist_ok=True) - - # Check if file was uploaded - if 'preview' in request.files: - file = request.files['preview'] - if file.filename: - ext = os.path.splitext(file.filename)[1] or '.png' - file.stream.seek(0) - file_bytes = file.read() - preview_filename = save_preview_image( - preview_dir=preview_dir, - extension=ext, - source_bytes=file_bytes - ) - - if preview_filename: - preview_path = url_for('static', filename=f'preview/{preview_filename}') - - # If no file uploaded, check if URL/path provided - if not preview_path: - preview_url = request.form.get('preview_path') - if preview_url: - try: - # Check if it's a URL or local path - if preview_url.startswith('http://') or preview_url.startswith('https://'): - # Download from URL - response = requests.get(preview_url, timeout=10) - response.raise_for_status() - - # Determine extension from content-type or URL - content_type = response.headers.get('content-type', '') - if 'image/png' in content_type: - ext = '.png' - elif 'image/jpeg' in content_type or 'image/jpg' in content_type: - ext = '.jpg' - elif 'image/webp' in content_type: - ext = '.webp' - else: - # Try to get from URL - parsed = urlparse(preview_url) - ext = os.path.splitext(parsed.path)[1] or '.png' - - preview_filename = save_preview_image( - preview_dir=preview_dir, - extension=ext, - source_bytes=response.content - ) - - if preview_filename: - preview_path = url_for('static', filename=f'preview/{preview_filename}') - else: - preview_path = preview_url - - elif preview_url.startswith('/static/'): - # Local path - copy to preview folder - rel_path = preview_url.split('/static/')[1] - source_path = os.path.join(app.static_folder, rel_path) - - if os.path.exists(source_path): - ext = os.path.splitext(source_path)[1] or '.png' - preview_filename = save_preview_image( - preview_dir=preview_dir, - extension=ext, - source_path=source_path - ) - - if preview_filename: - preview_path = url_for('static', filename=f'preview/{preview_filename}') - else: - preview_path = preview_url - else: - # File doesn't exist, use original path - preview_path = preview_url - else: - # Use as-is if it's already a valid path - preview_path = preview_url - - except Exception as e: - print(f"Error processing preview image URL: {e}") - # Use the original URL if processing fails - preview_path = preview_url - - new_template = { - 'title': title, - 'prompt': prompt, - 'note': note, - 'mode': mode, - 'category': category, - 'preview': preview_path, - 'tags': tags - } - - # Save to user_prompts.json - user_prompts_path = os.path.join(os.path.dirname(__file__), 'user_prompts.json') - user_prompts = [] - + existing_prompts = [] if os.path.exists(user_prompts_path): - try: - with open(user_prompts_path, 'r', encoding='utf-8') as f: - content = f.read() - if content.strip(): - user_prompts = json.loads(content) - except json.JSONDecodeError: - pass - - user_prompts.append(new_template) + with open(user_prompts_path, 'r', encoding='utf-8') as f: + existing_prompts = json.load(f) + + existing_prompts.append(new_prompt) with open(user_prompts_path, 'w', encoding='utf-8') as f: - json.dump(user_prompts, f, indent=4, ensure_ascii=False) - - return jsonify({'success': True, 'template': new_template}) - - except Exception as e: - print(f"Error saving template: {e}") - return jsonify({'error': str(e)}), 500 - -@app.route('/update_template', methods=['POST']) -def update_template(): - try: - import requests - from urllib.parse import urlparse - - template_index = request.form.get('template_index') - builtin_index_raw = request.form.get('builtin_index') - builtin_index = None - - try: - if builtin_index_raw: - builtin_index = int(builtin_index_raw) - except ValueError: - return jsonify({'error': 'Invalid builtin template index'}), 400 - - if template_index is None and builtin_index is None: - return jsonify({'error': 'Template index or builtin index is required'}), 400 - - if template_index is not None: - try: - template_index = int(template_index) - except ValueError: - return jsonify({'error': 'Invalid template index'}), 400 - - title = request.form.get('title') - prompt = request.form.get('prompt') - mode = request.form.get('mode', 'generate') - note = request.form.get('note', '') - category = request.form.get('category', 'User') - tags_field = request.form.get('tags') - tags = parse_tags_field(tags_field) - - if not title or not prompt: - return jsonify({'error': 'Title and prompt are required'}), 400 - - preview_path = None - preview_dir = os.path.join(app.static_folder, 'preview') - os.makedirs(preview_dir, exist_ok=True) - - if 'preview' in request.files: - file = request.files['preview'] - if file.filename: - ext = os.path.splitext(file.filename)[1] or '.png' - file.stream.seek(0) - file_bytes = file.read() - preview_filename = save_preview_image( - preview_dir=preview_dir, - extension=ext, - source_bytes=file_bytes - ) - - if preview_filename: - preview_path = url_for('static', filename=f'preview/{preview_filename}') - - if not preview_path: - preview_url = request.form.get('preview_path') - if preview_url: - try: - if preview_url.startswith('http://') or preview_url.startswith('https://'): - response = requests.get(preview_url, timeout=10) - response.raise_for_status() - - content_type = response.headers.get('content-type', '') - if 'image/png' in content_type: - ext = '.png' - elif 'image/jpeg' in content_type or 'image/jpg' in content_type: - ext = '.jpg' - elif 'image/webp' in content_type: - ext = '.webp' - else: - parsed = urlparse(preview_url) - ext = os.path.splitext(parsed.path)[1] or '.png' - - preview_filename = save_preview_image( - preview_dir=preview_dir, - extension=ext, - source_bytes=response.content - ) - - if preview_filename: - preview_path = url_for('static', filename=f'preview/{preview_filename}') - else: - preview_path = preview_url - - elif preview_url.startswith('/static/'): - rel_path = preview_url.split('/static/')[1] - source_path = os.path.join(app.static_folder, rel_path) - - if os.path.exists(source_path): - ext = os.path.splitext(source_path)[1] or '.png' - preview_filename = save_preview_image( - preview_dir=preview_dir, - extension=ext, - source_path=source_path - ) - - if preview_filename: - preview_path = url_for('static', filename=f'preview/{preview_filename}') - else: - preview_path = preview_url - else: - preview_path = preview_url - else: - preview_path = preview_url - - except Exception as e: - print(f"Error processing preview image URL: {e}") - preview_path = preview_url - - if builtin_index is not None: - prompts_path = os.path.join(os.path.dirname(__file__), 'prompts.json') - if not os.path.exists(prompts_path): - return jsonify({'error': 'Prompts file not found'}), 404 - - try: - with open(prompts_path, 'r', encoding='utf-8') as f: - builtin_prompts = json.load(f) - except json.JSONDecodeError: - return jsonify({'error': 'Unable to read prompts.json'}), 500 - - if not isinstance(builtin_prompts, list) or builtin_index < 0 or builtin_index >= len(builtin_prompts): - return jsonify({'error': 'Invalid builtin template index'}), 400 - - existing_template = builtin_prompts[builtin_index] - old_preview = existing_template.get('preview', '') - - if preview_path and old_preview and '/preview/' in old_preview: - try: - old_filename = old_preview.split('/preview/')[-1] - old_filepath = os.path.join(preview_dir, old_filename) - if os.path.exists(old_filepath): - os.remove(old_filepath) - except Exception as e: - print(f"Error deleting old preview image: {e}") - - existing_template['title'] = title - existing_template['prompt'] = prompt - existing_template['note'] = note - existing_template['mode'] = mode - existing_template['category'] = category - if preview_path: - existing_template['preview'] = preview_path - existing_template['tags'] = tags - builtin_prompts[builtin_index] = existing_template - - with open(prompts_path, 'w', encoding='utf-8') as f: - json.dump(builtin_prompts, f, indent=4, ensure_ascii=False) - - existing_template['builtinTemplateIndex'] = builtin_index - return jsonify({'success': True, 'template': existing_template}) - - # Fallback to user template update - user_prompts_path = os.path.join(os.path.dirname(__file__), 'user_prompts.json') - user_prompts = [] - - if os.path.exists(user_prompts_path): - try: - with open(user_prompts_path, 'r', encoding='utf-8') as f: - content = f.read() - if content.strip(): - user_prompts = json.loads(content) - except json.JSONDecodeError: - pass - - if template_index < 0 or template_index >= len(user_prompts): - return jsonify({'error': 'Invalid template index'}), 400 - - old_template = user_prompts[template_index] - old_preview = old_template.get('preview', '') - if preview_path and old_preview and '/preview/' in old_preview: - try: - old_filename = old_preview.split('/preview/')[-1] - old_filepath = os.path.join(preview_dir, old_filename) - if os.path.exists(old_filepath): - os.remove(old_filepath) - except Exception as e: - print(f"Error deleting old preview image: {e}") - - user_prompts[template_index] = { - 'title': title, - 'prompt': prompt, - 'note': note, - 'mode': mode, - 'category': category, - 'preview': preview_path, - 'tags': tags - } - - with open(user_prompts_path, 'w', encoding='utf-8') as f: - json.dump(user_prompts, f, indent=4, ensure_ascii=False) - - user_prompts[template_index]['isUserTemplate'] = True - user_prompts[template_index]['userTemplateIndex'] = template_index - return jsonify({'success': True, 'template': user_prompts[template_index]}) - - except Exception as e: - print(f"Error updating template: {e}") - return jsonify({'error': str(e)}), 500 - -@app.route('/delete_template', methods=['POST']) -def delete_template(): - try: - template_index = request.form.get('template_index') - if template_index is None: - return jsonify({'error': 'Template index is required'}), 400 - - try: - template_index = int(template_index) - except ValueError: - return jsonify({'error': 'Invalid template index'}), 400 - - user_prompts_path = os.path.join(os.path.dirname(__file__), 'user_prompts.json') - if not os.path.exists(user_prompts_path): - return jsonify({'error': 'User prompts file not found'}), 404 - - with open(user_prompts_path, 'r', encoding='utf-8') as f: - user_prompts = json.load(f) - - if template_index < 0 or template_index >= len(user_prompts): - return jsonify({'error': 'Template not found'}), 404 - - template_to_delete = user_prompts[template_index] - - # Delete preview image if it exists and is local - preview_path = template_to_delete.get('preview') - if preview_path and '/static/preview/' in preview_path: - # Extract filename - try: - filename = preview_path.split('/static/preview/')[1] - preview_dir = os.path.join(app.static_folder, 'preview') - filepath = os.path.join(preview_dir, filename) - if os.path.exists(filepath): - os.remove(filepath) - except Exception as e: - print(f"Error deleting preview image: {e}") - - # Remove from list - del user_prompts[template_index] - - # Save back - with open(user_prompts_path, 'w', encoding='utf-8') as f: - json.dump(user_prompts, f, indent=4, ensure_ascii=False) + json.dump(existing_prompts, f, ensure_ascii=False, indent=4) return jsonify({'success': True}) - except Exception as e: return jsonify({'error': str(e)}), 500 -@app.route('/refine_prompt', methods=['POST']) -def refine_prompt(): +@app.route('/save_template_favorite', methods=['POST']) +def save_template_fav(): data = request.get_json() - current_prompt = data.get('current_prompt') - instruction = data.get('instruction') - api_key = data.get('api_key') or os.environ.get('GOOGLE_API_KEY') + template_name = data.get('template') + if not template_name: + return jsonify({'error': 'Template name required'}), 400 - if not api_key: - return jsonify({'error': 'API Key is required.'}), 401 + favorites = load_template_favorites() + if template_name not in favorites: + favorites.insert(0, template_name) + save_template_favorites(favorites) - if not instruction: - return jsonify({'error': 'Instruction is required'}), 400 + return jsonify({'success': True, 'favorites': favorites}) - try: - client = genai.Client(api_key=api_key) - - system_instruction = "You are an expert prompt engineer for image generation AI. Rewrite the prompt to incorporate the user's instruction while maintaining the original intent and improving quality. Return ONLY the new prompt text, no explanations." - - prompt_content = f"Current prompt: {current_prompt}\nUser instruction: {instruction}\nNew prompt:" - - print(f"Refining prompt with instruction: {instruction}") - - response = client.models.generate_content( - model="gemini-2.5-flash", - contents=[prompt_content], - config=types.GenerateContentConfig( - system_instruction=system_instruction, - temperature=0.7, - ) - ) - - if response.text: - return jsonify({'refined_prompt': response.text.strip()}) - else: - return jsonify({'error': 'No response from AI'}), 500 +@app.route('/remove_template_favorite', methods=['POST']) +def remove_template_fav(): + data = request.get_json() + template_name = data.get('template') + if not template_name: + return jsonify({'error': 'Template name required'}), 400 - except Exception as e: - return jsonify({'error': str(e)}), 500 - -#Tun sever - -@app.route('/download_image', methods=['POST']) -def download_image(): - import requests - from urllib.parse import urlparse - - data = request.get_json() or {} - url = data.get('url') + favorites = load_template_favorites() + if template_name in favorites: + favorites.remove(template_name) + save_template_favorites(favorites) - if not url: - return jsonify({'error': 'URL is required'}), 400 + return jsonify({'success': True, 'favorites': favorites}) +@app.route('/get_template_favorites') +def get_template_favs(): + return jsonify(load_template_favorites()) + +@app.route('/save_gallery_favorite', methods=['POST']) +def save_gallery_fav(): + data = request.get_json() + image_url = data.get('url') + if not image_url: + return jsonify({'error': 'URL required'}), 400 + + favorites = load_gallery_favorites() + if image_url not in favorites: + favorites.insert(0, image_url) + save_gallery_favorites(favorites) + + return jsonify({'success': True, 'favorites': favorites}) + +@app.route('/remove_gallery_favorite', methods=['POST']) +def remove_gallery_fav(): + data = request.get_json() + image_url = data.get('url') + if not image_url: + return jsonify({'error': 'URL required'}), 400 + + favorites = load_gallery_favorites() + if image_url in favorites: + favorites.remove(image_url) + save_gallery_favorites(favorites) + + return jsonify({'success': True, 'favorites': favorites}) + +@app.route('/get_gallery_favorites') +def get_gallery_favs(): + return jsonify(load_gallery_favorites()) + +def open_browser(url): + time.sleep(1.5) + print(f"Opening browser at {url}") try: - download_url = url - - # Check if it's a URL (http/https) - if url.startswith('http://') or url.startswith('https://'): - # Try to use gallery-dl to extract the image URL - try: - # -g: get URLs, -q: quiet - cmd = ['gallery-dl', '-g', '-q', url] - # Timeout to prevent hanging on slow sites - result = subprocess.run(cmd, capture_output=True, text=True, timeout=10) - - if result.returncode == 0: - urls = result.stdout.strip().split('\n') - if urls and urls[0] and urls[0].startswith('http'): - download_url = urls[0] - except Exception as e: - print(f"gallery-dl extraction failed (using direct URL): {e}") - # Fallback to using the original URL directly - - # Download logic (for both direct URL and extracted URL) - if download_url.startswith('http://') or download_url.startswith('https://'): - response = requests.get(download_url, timeout=30) - response.raise_for_status() - - content_type = response.headers.get('content-type', '') - ext = '.png' - if 'image/jpeg' in content_type: ext = '.jpg' - elif 'image/webp' in content_type: ext = '.webp' - elif 'image/gif' in content_type: ext = '.gif' - else: - parsed = urlparse(download_url) - ext = os.path.splitext(parsed.path)[1] or '.png' - - filename = f"{uuid.uuid4()}{ext}" - filepath = os.path.join(UPLOADS_DIR, filename) - - with open(filepath, 'wb') as f: - f.write(response.content) - - rel_path = f"uploads/{filename}" - final_url = url_for('static', filename=rel_path) - - return jsonify({'path': final_url, 'local_path': filepath}) - - else: - # Handle local file path - # Remove quotes if present - clean_path = url.strip('"\'') - - if os.path.exists(clean_path): - ext = os.path.splitext(clean_path)[1] or '.png' - filename = f"{uuid.uuid4()}{ext}" - filepath = os.path.join(UPLOADS_DIR, filename) - shutil.copy2(clean_path, filepath) - - rel_path = f"uploads/{filename}" - final_url = url_for('static', filename=rel_path) - return jsonify({'path': final_url, 'local_path': filepath}) - else: - return jsonify({'error': 'File path not found on server'}), 404 - - except Exception as e: - print(f"Error downloading image: {e}") - return jsonify({'error': str(e)}), 500 - -def pinggy_thread(port,pinggy): - - server = { - "Auto": "", - "USA": "us.", - "Europe": "eu.", - "Asia": "ap.", - "South America": "br.", - "Australia": "au." - - } - - sv = server[Sever_Pinggy] - - import socket - while True: - time.sleep(0.5) - sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) - result = sock.connect_ex(('127.0.0.1', port)) - if result == 0: - break - sock.close() - try: - if pinggy != None: - if ":" in pinggy: - pinggy, ac, ps = pinggy.split(":") - cmd = ["ssh", "-p", "443", f"-R0:localhost:{port}", "-o", "StrictHostKeyChecking=no", "-o", "ServerAliveInterval=30", f"{pinggy}@{sv}pro.pinggy.io", f'\"b:{ac}:{ps}\"'] - else: - cmd = ["ssh", "-p", "443", f"-R0:localhost:{port}", "-o", "StrictHostKeyChecking=no", "-o", "ServerAliveInterval=30", f"{pinggy}@{sv}pro.pinggy.io"] - else: - cmd = ["ssh", "-p", "443", "-L4300:localhost:4300", "-o", "StrictHostKeyChecking=no", "-o", "ServerAliveInterval=30", f"-R0:localhost:{port}", "free.pinggy.io"] - process = subprocess.Popen(cmd,stdout=subprocess.PIPE,stderr=subprocess.PIPE,text=True) - for line in iter(process.stdout.readline, ''): - match = re.search(r'(https?://[^\s]+)', line) - if match: - url = match.group(1) - # Bỏ qua các link dashboard - if "dashboard.pinggy.io" in url: - continue - print(f"\033[92m🔗 Link online để sử dụng:\033[0m {url}") - if pinggy == None: - html="
Link pinggy free hoạt động trong 60phút, khởi động lại hoặc đăng ký tại [dashboard.pinggy.io] để lấy token, nhập custom pinggy trong tệp Domain_sever.txt trên drive theo cú pháp 'pinggy-{token}'
" - display(HTML(html)) - break - except Exception as e: - print(f"❌ Lỗi: {e}") - -def sever_flare(port, pinggy = None): - threading.Thread(target=pinggy_thread, daemon=True, args=(port,pinggy,)).start() - - -port_sever = 8888 -Sever_Pinggy = "Auto" + subprocess.run(['open', url]) + except: + pass if __name__ == '__main__': - # Use ANSI green text so the startup banner stands out in terminals - print("\033[32m" + "aPix Image Workspace running at:" + "\033[0m", flush=True) - print("\033[32m" + f"http://localhost:{port_sever}" + " " + "\033[0m", flush=True) - print("\033[32m" + f"http://127.0.0.1:{port_sever}" + "\033[0m", flush=True) - + port_sever = 8888 + # browser_thread = threading.Thread(target=open_browser, args=(f"http://127.0.0.1:{port_sever}",)) + # browser_thread.start() + print("----------------------------------------------------------------") print(" aPix v2.1 - STARTED") print("----------------------------------------------------------------") - initialize_config_files() - app.run(debug=True, host='0.0.0.0', port=port_sever) + # Listen on all interfaces + app.run(host='0.0.0.0', port=port_sever, debug=True) diff --git a/docker-compose.nas.yml b/docker-compose.nas.yml deleted file mode 100644 index 884afa8..0000000 --- a/docker-compose.nas.yml +++ /dev/null @@ -1,18 +0,0 @@ -version: '3.8' - -services: - app: - image: git.khoavo.myds.me/vndangkhoa/apix:v2 - container_name: apix_container - ports: - - "8558:8888" - volumes: - - ./static/generated:/app/static/generated - - ./static/uploads:/app/static/uploads - - ./config:/app/config - environment: - - CONFIG_DIR=/app/config - - GOOGLE_API_KEY=${GOOGLE_API_KEY:-} - - WHISK_COOKIES=${WHISK_COOKIES:-} - restart: unless-stopped - pull_policy: always diff --git a/docker-compose.yml b/docker-compose.yml index 2ef166c..4708bbc 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,17 +1,14 @@ version: '3.8' - services: app: - build: . - platform: linux/amd64 + image: git.khoavo.myds.me/vndangkhoa/apix:v2.3 + container_name: sdvn-apix-python + restart: unless-stopped ports: - "8558:8888" - volumes: - - ./static:/app/static - - ./prompts.json:/app/prompts.json - - ./user_prompts.json:/app/user_prompts.json - - ./gallery_favorites.json:/app/gallery_favorites.json environment: - - GOOGLE_API_KEY=${GOOGLE_API_KEY:-} # Optional for Whisk - - WHISK_COOKIES=${WHISK_COOKIES:-} - restart: unless-stopped + - PYTHONUNBUFFERED=1 + volumes: + - ./config:/app/config + - ./data/generated:/app/static/generated + - ./data/uploads:/app/static/uploads diff --git a/preview.jpeg b/preview.jpeg deleted file mode 100644 index 53bb854261e266d92730838032f648ab12476a49..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 328232 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 v0Zje>#9XT`%&zZR!Ux6*f zB=<~fJrJ0; zSyc6ZsQYsB_Kcm20{ySf@7nPnt@8rDDJKX|C$8d92#Vm-C1|bK?R;zV6=Ol?fx-E+ zuM9f#q$5sFYra2u=52V;&||zQAzb-f;qU$O#sa!a@MimL%t(Y2R zm~m^6dc?z2Fq#wj&bP$_2y7PQu+7H7d^DUE3j5LTB_&{8-Z!~qroITFld zI}M@7dJZ~Usa5I4wcAxzRi@VAi*=XvWCWT3W`MF5EJCbkqecYHsJ~UCIai$kdOn(F z81+=#xQW9~yt8fiSa+Lnl0m2)5nQ$?wccnk0B?(Rv2KXl{t%R|p*L=W%j#O+gY=VC z!cP6la;~ZYSzeo^^}H6!e4Z9%a1Sq;BEtJni2sdJYde(u>g)$>D2(-fZwiJx7ExH( z8i8{5Xwvbxc=hXeg74KzrHYgAWTcp~77X?BN0Bn;^q6z?nqag3&|dk_(PZLj%*!uH zJ$`2@TAyc}`ZlqdVv~AV4AwGvrsQkyU9?YBiX&=++27{gb6I&izwE_5sXa-b5i^Mb z=cJv4F8Q-AO;0Il`{DH9Xl}qGML!knMJPnfqobQLOo_`q=5HLn%+Pbc&iXlVIYEH- zd5(Jh^rf5kkS?mI&YmL#IK&>oOYEzv+24sDP^66zzkA7VQZ#|(bhnar!?BzGq4XXv zZ-}3(O_{%|)2%ZFz9q#=0-RuvAxz2~5XYY31+A~8y|N#j!K25G9;Ec?xX&&`8%`GN z`MFK1Z6bJmi;jB;lZMKZUtHB}__or8u;F`(H})EP!UHviB5Op08Ar3q zYCm!~s6MHN)LDaaBdD-pV_X`PK_Q zqEuzsz0#*FNao1KMM{wQ|WM1huDWq4* z?!b=kN>|EvrgC%KGc|!`d#2Y$uXDJPA9PaSB1KLPc+chDr^V>fag2%rgvR*BR1K&I z%ect6=*#ORRC`C=ZB0xQN(!jQB6%aFW6i;9$a`_{jQml1j+=ISM=83b--^t!5|w&e z&T%r{#ppdZ$ao}JVe-uBrRnEm5wZR%%O^cWSNcADNH+etn0Wfrsr)YjTBzHvOz!VH z6pay@cJglcPOS?T!mbVwc~qM|kow5axKo2YP7@%7P6*xaND^R)Tqgl$&?U!MZ4fhHg7}~OdoX}#p z>i_myr7iWC+r6Y}m`4}gWx3<)T_Iv9;kZ(_D8-(Z3cCaeDvfk8Unlxw`kNOtH>2oI zOLtTxDNf&uxH-jAbEGI(2cxXYfySwEc7Ewn((@92MQvOkrE~T<+BfghN-QqocIBWC z3tg}o+WgJ?Wghvk8X455!fjhWXK{L&Th?u7%f+p)%NBoeRN0;VG4w37M}WN=j_PTK zbB;lWmn{6sp5N!PP<-{>@=Bq9quyI>yesQRfbZ?lYz2(%qG`v);i{sGNx5|WE8p{4 z;le8EU*leQS&I+0?_@tpEO~66*G=@TUE8}Kuv?9$Z5g$Q_F>_?zh4$N6A#gOs^{cZIAA@*ywF~uke`>1E;Trg)ScnfVlXVP6sqNYIY zn1*vROWs1I)WfLp=9o+2!kFDK7eZpri4p6EC#xLOx|iqKx9H7JUOPWQPaTWLAdz)H z-HPN?3{mR{$zM(mY3Aaa+6&^HMrU8xv{7Ls<>hL|5{t7I=yh)4bXrRNN9t}`_H77@ ziHS_!vb*pjJIBJICIy}fJ^jKxhc5fx7S|=wca^|%xc>f+=Xzr2uRUG;U2m+Tu<}T8 zXo;_Vt94zLszvF0%H3~sWkU*P5#d^Qg3|75oxEVG&PNpy9`b4a>fMMm%R~i*4ULP; z2QM3nyuUAIq+b^6bT)n3HENtjtlx`0656~O5>}8g`Kt2cr4@#Xwn>Ya9$cm;y!~_b zx%VUaPR_a52(yyDRXcfZzoaZKj3fv5^Y9E21*)@;6p!lVhv;1yC@SeFxwPl&sm$Iy zd{X)0jowG!-?FMLi)CQlJ~=5`G#fE2r)_08B?o4|95Oh)p%H%hRhIaBzDMtW-C5|% zz($8;FQ-E=mvSfIS#r*4HW@Jg8u8Iw>-$ z^u~UKss5~#bpbL!tNf};{DU=OSKO*Q{_Au=w<^Z&8@LGQ6KGf29dyHL?`A6R8f5@etS zDKG&dE7P%!mX4XRph86>I*o^LmYWLwT(gmz)NfR=XIwA2j%_(Qh;2pX3eaxa;qEvy^U8_F;;&e&DB#Qh}L$|vCw0G z1OIqoAAIHWvx;-#5bT#QWB_&wTIwH9L`CmF_jM*>u_is=_8#Ql$W>jt@c^Hex^P-X zKPS!JHRh=2&d2_g!VBPAEyfh!r(U$fAVQhE6AaeMj36B+d|2ZR81jv!N^tR+R zb4Kj>gL9&@+0yBX#+1Dp927f_jXj)rDB;aH^hPs;rpE`pKHI`tuv^X(C)XBPW5BFU z?>-{t&*M$JocTy~d-e*oL374G%RTOStju z5zPWD{aFK{G>t?#bV&Z2FqG9wgg{Qt1*MuU788iFKFew0b2oRGJ)j-8dT?`Y7`-jW zXtNo|CBZcY-1%TBLdG^O0I$PX1&NhK!u2pTX_J~cw&ypq&)w!S4iITh)E98Zn9U~E z!=FHCg4H~vTJM$h|N43HVY*^Tu?*Jlwx)s=jNPf7<%O6x&Qx-GO1@JQvknEH+z(-B zQQ+H6iLnNsu(*aQVX!nfmS6NQZwfQKv|J`UUlB$tct6p-{@dl>&bxw5s!~`dOjCVK z0oGx^silr)?B80HzIF3n}%c5^_ zX$!bAl$}~A$1k*FxZonKsp=Bn_sl5icTD^28OqwR-3UUwH!^BaTD}px3NFY|LC1gh zV_7U}xxT8oFF@|2*S0<jRiFY(4eAMLEb;~?Mz&fIf*(chasEhFw* zG%G6bODJ1qNvcjc4MVRngl*YZP=uk()4E1&9w@fv`*FQ0XxD`2E~gA?h)Y>1;ArEv z3j|M_`s@8NEeO4^=@Kn(!Ut4- zhW5Zix{l-O+&6x)cMO%PEHny^ZsH6}F*UvPl%>|&g15lU6^ z^kkLiRf7llZ|sJGcSd^tSNCR9R&#=~rv#6E^m%u5k+Zk7EwRAQJsx5ANi%e=@yK)D ze%Va!h)S=_2U+38U6}CQrNa7JoR>+s;_|x8e1-{cxWjm{4LE zU0W}j21BsVXQ0u6+b}L=_8BEB-j1b~?AE#;az)XF`ZtzHUB;S3w>1p`cUC^Y&;5-wSb1Defxko{LjU{fTwap0AYd83!PEu}(9HILKGQ zgr24z)+Hvdj7ixSm*Vcx7uTw7>A+AK3vDm({&^I0T2lK`e*3-nlXaym7} zCgxn^FK(8A?6IX|Z@ituwk~}@F;uebt9-)^DJpk;Rf9{NuB%16wIFGO?a;L;jZ>q1 zmdk@_C5`-o&4Y`B$wMih;mPvdBi@B~*$27K>rvjlt7>^CWMq1Z$KPs3Fsh)&dU`@r z!a{q1-P`P%C$ob69rqgpzoaiPX0cw8o31Jk$LpcxZ&qW<8}(=h@aJGMx1B?|9|iYT zzx@`HEv1oy%`Q8x6CheABU0OwZUXMC#UG;Iw>}P{|Ys{#>G?2cU~*cg;%`v zwCYX7&uiSY3<~C_@;9Ua{8jMTWV1E@jta*&#$CiOn~~dySAO>HnG#IRS}#2Ye9VvA zpVK}^QH+9dEDFf}D8L(_;+m2DZvDY#n*L`#Pz&66`AhoQ(PwHv>>`avmw)sVW%eSh z%({OrVS=347{gFJLk8rpArIbK}$>6x*d*KFIxg)1vJ!ETF zPvWm@;^XSw%?*^iw`HzEPhIRsW5-VlKjjOXEQRZ*OBh0i)e ziYG4cG2mFa;eL;EhMW+02(Oewk*q`-|G-Th<&KHdG9Rt)%{@*YrZd9zzLKTbrf~g@ zNJBbHQI#ju(fCJ=($$RB@>`gd*MFlKp1-2{C7E-(!Q^+4*}0Ok$|ya(Y!>Rp-u9f# zGvNg+1II+DHaB*;2De!_f`zd?XuX!H`#AArt~$~Fx#Ict?<=}5>D?qA{rX1j`t=px z*H(+#5Hp;*Y6`|~R|cC{xEy*Nb}abfr~BN*GYP|qUzY`pFAa{aeO^!5{hI5@ckH#o z8F+*$H8uufKQ$JlX{}S{lxAKjl;T&tUiSv}`uJyM&dn@FuQpB`8-{k*vtOBQ#)v2Q zpax-EX9isOXnj__os(0qzHIi<>A^Lfwrt@DnX zNk}#lF#REo<5}=kbaxf^9I~HBVz||E(tH-8#kuc?IWrTLi(%irh>>~}e3fUJz$p(C)pVDV&F zj{nrI6NaTBu8ngW7@lts!9VIKi zJd_WPAQuoRJ}4%OGebdEl|AnfC6MWNmhT2k{X3ef;@~Ayw-$MtL{}E#%=S7RNWDwdWxW3Hg$~_fkJ+z7_xH%l`{~2y{ z$|YFOrD*IEA5)5i(+q>!Hhqvg?N`tnA*>HNu?fjd0vlDz@(tk1&|>;=wDj%5+V!{P?7XSLLrww~hRgsJ!;hnTu#v!V z1Ke%AZl(U)OC@SOdx(0x^Giaxgbi*t44s^&d2NvE;w-W1b~~gHfN3F%lV2-eoY~;? z*P%^eRFrzWe%i=wb?ZUfRvALqimRNE@e3*FiEGS1@xQow?`Ssv@Ne8GilVi5sMXf0 zy+x~56)m+#+NxSbsS!kC?^P{Yinge|h1z>pZEB0u77{a>NT2)jea`pyob&r5|K!AR zpF4Nn*LA(t^^YuQ0iU;_5D4kEw>Uzhx8ihm_r>%Td9Ph_IX@~uq@??%PZ8gCsA_)m z6Xf_PO$3*^j+}?NZe`64X+4d|P>b#2?9wQvoF@rD<3Y4gIUC%yMtaX#ivZ?+t76fo zNuSuXdD(@pF>ZF;hKm?hz?2%XnbDFk9XW?CFNV#pl0AWqW_xlEq!sTMU5yP37~D5E z3u=u@f1_E7bM8sGYWTc#!3OFn&CaJd%W!APq`f6|am79JPPnxri(G-p6)lc;tanF% zQ@bjw)qo)Cut$=fB!X~;y4mK2cvA;Mn!t@Q?)5fdF}GUgPI=s8qjiSB%P)|IN2s8QDM|n zZBYeq5gE5PyU*4{WvMBAitExR|J|a^<{(SMdRMaqE8Kz9!`v%#v#HqX<$D43-Cizg zZtiIIWe98FL`BxI`)H9rWz_nmPm?l>a6U{KE!FWT)DB+%c(~NvXdydthl}-t%NFxK zluuuvd^j&X1b`r~{23=Y;>6aei?CDLEz$IfVP366_T!5W(*%x%jtZkqjj7klp^v>& z8Q{A%@DVVhx}0Aj)N$b5ScyT|x5C_p%vTfpe!?SB$SD0AgO?VN6$8P+57oc4z&TAY zdV(cP5NlDmj^XG(Z?=!BXtuN0F4{d8_()$Koc{j$2r}pG#$YdH?&le%Yw(rTdiX~V zjJj?4B9!nbD*83iz?tz|VyhEup5vDtx^$2sWRDO4HL<+>;A?N9TkCR)Q5r}^#@jvA zy8b}1MR&Gbmn)r`U)E8Ju2ipu4c~}5WZlbUnPx0QEvD2ge{_oYc{TaL+uM4S&}Xz} zUA)O(B1Q%C%HfokRiqn4?T#sdc5G$Q8knU=;e%p?(X_~q3DG7!Z_gyQAxD?^NkxjZ zFLHBJn*4LVu7y#^HfQ6MUJH^#rbL;l%@9}ka@FhXkz>o3KAjBZgT0mbP*2{7wbeSY zcoH-51^z7x5(D8OLY$n@dE9Q`d4D5k55Ax0igz=tGA*=9c;8AyRupU`j-=jO(65^C z;voGB66-u6rE&o7OhKyM7>SMA}5BEWO z`Mmqel_>@7?{@fOBM76F8^?83Z6{~Hw}E#qlD|4GrRpbmv7>T!<2xx+##6#=@?u|2 zAoFPP?=Y{Lu>RkCp__GK6)!TbdZ5xokF5XvzCXx8KBzpn7k{BSf=W*b2TT@geE!pJ zxp!txXe)gUhx$*lv^|>FIa$br6MU>Qoqs+}emnOLA3$(~ssW=XGOs&FcXLt=6gOeL zo4PXO6L8Pp7yspYEt??h;<;eJ565NrGyP5^Aae6>4L13`Y8quswNm%}K}e_n`+sCF ztNOve)li5qn0FDh#R8WR-Q+GBn3RI4lVscKK4xfeA{s2hY!@jID|$4pF@yY(7`dC&0`(i#QfUk z;*Im=`1R5~#Fy1T&q}h$2&?Fm44b?@@C^qSGsX7>F15?s3nA#^KLAB-tLIU<7wO$s z*esF+7=v>wj)?PBuO>V)&tBmvmEzYEpGnIg@Uxt-581nGXd`}4_g1cuuwa%5cF@djynx`oSz(?p216EZJ; z_6o!bdo7Q7YZ7ciw@p2~XCJQJRKs+5(ng+*|D;5}tPh}=zlwt_XF&~z{nqODg7WGB zwNypH^gcRkQp0WGHwvk?SCwr%E+jrRCiJUS=+eISGdd)M2JTxmFSq8IhXT>E&9pu# zR!?2fn4$_Xv~FThn7Lf^Phun_#Hb6qr`&UZ5QJb1$$Mrd$(mw;3fDruY|Ac7%~uw* zsa2g0rC!cg{q_jue}Q~@FR4FNGvP9;ou&_~*C{$+p02>ezIOx&9`??+zv}dz#8VFr zV7n;7SZ^smeG)cQS%(JoPGP5d9uE~*<#_dRFLn1kn0!}#-Z)9|l!YjxOP=PcD(q%r zN4d=}h+|AaX)qFc0shNSL&+!#5T%fIbt8mvLmHvH?>jeJwNYXb$Q(qkQXX%+K#zRT zugWC$q@ty@hJ=EqYc(DNBi`O&B3-+hR>zSWhwP+mQDL9L?!oEZ@OZ`DM zEL|l$ir1FA{y<;*S)C+VK=WZzD<8_AcHPK-!0?4E`|hT)0sjww8vav_!+4m6BdVo} z!=zZt*WJ)n>Q9RS8|wOl!sYW4fzU6X#N;fb{o2uwA(ixoe%rE* zTH{-kxW;vGJj{Ub20q6f-N@zJh-3Iimg&i;UpFZUHTnKK)BDsX#QiMq;pE9O&BMC! zlh~-XjJ#|9SlxVb$E5qkl-uHK9lxbf*K&EWQCoeIuNFtzaU2J)1DHO&eoXvDzAfTC z_v6X$xzz)GUXTsh7SVRy9@ItRoo+R+`YAY7|ARje2w3r>Sq5Qby2F-I#g81%yzxfs zd5eu_mCSqZI?lL$a3|LZ{2K9)Wha-MKB4NgdcSL1Q+a-d#gCm4Mohv<{GaPB_A_lt zv~!Mce0+wk91nQ6YdP8BgIN3AQ74b6tJ=RT(nPul;sO#W+=9yPUZ9z!JTP&)SDxhR zozE9jPJ!LMlK+bBR}j?P9b{{)Dh?$jGmXYEG<0)m(wUy|9m{dLM{0MnNUy;!@}e78 zS=w)}!Ypvs!6Ww6j=qy4$2>X4KK6zz(H zS3i|Y&a(V)a7(K;_+uA>sfc~Q-RoCX(@sIWn}FizUgqg$;I8~qbNTIZdMjk8lzUp&IEacBcxN6>k2jQt5#eyLA=Fj6C`=^@>h?G}XtvPPiWeKCuVM0XI7Lf0(Kd zMnp7U0m2r7VhwX1eI68mhX%Kg;At!YZiWOX%b z%3xF!7V2+y(WW@yByIBn#V?1`xB3V0w}*qdtWI&d_faY54-n9pW8F_$I_EQXNM+bwj)we z>E4Rcoct%>Kq-YBTl2Vb`4V4!%~6HEZ^Vk{C__CS-%A;q5%01`l!LNnrh121o@-bpqcmX#8PvxSp+ug!dX2?wC3=6hXlTymr5eVw%A>^FFPr zuyqmd;`wkiXhf1%J&0ik-Mi4U6o+)Js^s1?nA#E(4GDPc;3vMZ+weF~RIY36=WX&W zxIE4>0WPzrYTUNII9c695RGsuSjdRJHH~4<<(eYn8SI~J|3F2PYCsA0C8}K}l0ZZ` zK#(J4vUvY!v5Q1k?d|7|Qf!jFI1c%fX`X`!42G^A_uV7=Lsphv^+G9+9FU&3WG85_ zf!0?C776xqmU8tjvyV&BFrdDbOzsQuU4Mo_ze|LTp};YadL_&dIuh45o6mQNtgEex zJM>tBA`HmZdcL?GIbzJDwf%1O2XYE1keTBDkrC{PdU%XvW;Zxe)gpgwjB2Gg;?cM~ z^Z{IW?m6XE8|5zUkT~8yq1J)q{oWUY+Y>FiyXL9s0!Q~~uE5zYpOSzyvD&Tf!}&Rb z9GIB9XyH1a&f60A=7_+*=_ffq({jzfs5XL)$tg+N`m|& zTkIfs?`=Tb|CoM@7eA%^O?T^CD4oxg>xh{EK-8FO0p?>Xz<~^~HF`D=pUkE*{m0Jy z@9Te98nWG6-@b-E(P0h!kHztsPIywGkCc^sU*V8Y{C9?}Y{Cy@gDy4I{8ZKen4>S< z((V8Aj6=rL!OMf6{z283> zFiYaqSz`T=wIgM3nh9O`wQOVA+zgv`S5`zfoy7F4CTH!-Kmj?~`*nM>r&9_Ql#gqo zZ*OJnP%V|JzpwciHrRjAIVZlJ!oAG`UymtyNv8h#0 z1{BcpmhVl%v3GmR&2JqoJcN}Ft4~CJ$w|YAUYdq5UX8lrm+r`NBOd)Q}_@S$m< zes4s&ZXuz6xFmZE*5ekR{dBFxzq2Yu=1^B$Vm0Enqqj7R1yTok5_ro5GFCGX|Uh`S>DWbWLYs-h`?%B+UsG28e zdAvZ@>uK75^;j`#jornmuCe(TZw|qtpRJhbywL*;4-0KxrkFPAvX+JnqWq4t|H{eCzhH{^1+Ix9tHUkD3x4y!~d1J9e>Rm1qU9%aJn$l15 z>2_^hb;Xub2h@APQL(u-KmFgGy!H@Ujlet{btGH%epBm+7gYO506Y|X?@uaiJ{QHu znEcGJYi&t8dn*^3Pj0TK^JJW!zu+h&#_qnik(m56 z^_9)A>BqP4{drMeJ*NHtVhex_gGw;qvq%LxwI{?V_{6#rAsRG;*b#$^qx8UH%cT_- z1q7sd*^!%bZtSRRu4{U;!0nOQY-5M|PCwQsTEO|B{XdK?@;}D*|2rPIfwLsM8(?%P zKG!e!Og>YMzg7G{M@LcehhgZB7Ck@$)0_b0-j(yqA`&A$0woryNo`QhAl|01(xy7MDc!|1KerZu;UMr6CC5oOcg9D{=Xc1< zPw5RFa96ySsMOY$g=0O`F)ENJ4%+C|I0$lJ-!g!shfv`MSh8&&H-6q}%+Q>?vesft8YH%7v_OhPK9-Qs_mbw5n8j;t>Q@y!7J+e#zEZn1Qd<_aDK&KV}cFT0O{q;qxFY zfi207d3j*6b^RL9Wsqp_8rXbPZW~%sNh{_F?#i1-87AHmjhS-xgDtw7=}XlntzF4v zG~e9^Jlbh?NOy2HP^LbP05~f?Dc>ffqr3g?6pnA{jFENJ_082AO9jlDbB(F8fiI~R zsDhR8_9$sK=$=^vR&po4r^f>FyjfdmQKHgIYEGJUBEzxm1zAgYRnv5ucYGJVMlr7# z%G1p+KYNhWUV|lA#3@{9Y=%}w)q#I|JynN4Es&M%AfsM8DWKV!1436LxwpbjEwL#n z^&xUSN(+61X+oa_vEVqVx}y;8| zi=3%TPu;f3f3~z37R{c?WqF?>*Z(n1BGK?N7kLIsnwk zLOx$}QcPfdQ=Ai*eN)vJb%ym-R+z9O8hpi_-PFYU2oi#V=TbOC4Ow z((|b7%oTL`qSC!-4$cfy!_T-DFT;eYO&IaHE9M$)pku+aj*@D3co5*}&7Qwmlol9cJs z&@wXH>Z|KjT^-EC+btc_3W48di7KTxyS&TYWVkA%1t6#X?PB3FX=Y*66<3*iy|=FU zz=PY240WdckhtK&q@_Yh1$T_iPkQ%iX#8s5UtjPYnH{eR8(1VNf$|;1mMDZ@u7rvd zVfB(csuU#YhJS1H=RjAzW=_hKI9YmRDHM_fB94~ynq4yE%$s_+5U9q!9@OZ~y)MXg z%+@T7ipULm88BF>N6d9p_il99in24)|p~d8@oSY-~zC_(+(cg zw=DP1L~ceH4ndH11Qo#QiJL=;JRR-HkfvZqEbuwd6jDCg#!kBxn8+N(?* z=G56aeIHNxlIqSseWb}7r&T>(aeo5VuVb^Iw|&GS8%vF zPz}PX??^y1yE(ACTm36EE*Ru^Y3AJ~aj%m5IYN1S!cTh5o_*N%iHyhbX?Lkg)i`?L zIM$Xn-Axn?-?_RxFtb^bxjf0Z*Ln0xEFr;wEZ#A7x9Zr^s{j@-F3~FM2jYGx(46uo za ziP7>?3-)`8#DrUOog2?`RJYPu)bAfhad$*rM>}tGiP81V(1*-^Tw|x%Ch0jkxTBd8 zfLxGPT3=rvtHJ$h=J407*(+(gsHZ2d;;903G!n>|Dq!hF#C!OS@99|T*gAajszomS zEwA6vGxhqf-kBOENSHASMU!W4Ot<yB+9(O%%Lx#X(Mka$){8&-SohJ2gn`O<r zigL`vFcd+p$DA)MMG(iEs%AZ^o-Gy7 zhF>eei~7!K3$jzcl5x>5UC`IGDfGL5f2xe=df>Z}-ObN97rs#;UFi{bmU|bSSMGPJ zwBPi6T{+JVSIN%@lye`v0F8qGIQ!cG}^Viij~n{_2KwK)#u}R%~y%1mn9u; zCS))>>@%!Vl>Fj6EPJpr?eChzt!vLeM5Ra!ym6dk`>O#oK@qsb6?VMZddfBEaR26j z{w(pH2UYqXoUE;Sb5xyfX=Nw%3hv5_<>~Ud>!Tn1;xS6N}x%ZTy_guqiB; z5sYX5crjs^YaYmHx-_>Ol!BQcfNiPS8-tQiC-Fm>!iYIto0Arx7KvK!_k4jFLSjgF zanA8km#07J-e1K?V!YwPcU2YV9C;o_uPP6ZAg#!DO@6o|un)oWG@W;M8vh;7RldURqQv%1Qavj#bnmnct) zI62Q7hSv+ia@vuXUv^jS7%_FehYs3~gs`Q@wnII}hveT0ztFq!W#eT%{ep@*(hgw9_?n+sy&txeb%PD!jN-PjHS83B5Mgy`zw$``5nv*#1+b zs8NmRpSsW*wbqYARQ=ZE{kkrcCuV06*np(5UJX54w`&D?_4{55XKjE~fMSni-L0EM-Lri?q_AJZVD!ay z9@bNtHlmZ)5c?GtwKcEpJfZT%oD+tEK`!n)!qzT7h{vvti zurOg+hcY1_S=j>6mLb7)n_(do#RaS1Y zeFYD}vY=wRE>@1aY^n*d! zBH{PH$%n*3sa?sjpYS*U>Q%?Lgh*uB|AbT3 zT`JfX4s`YhU-oSo>ea1DjVqjs7r=V_oHKI|`a&?=ZBG2ntY4z&zc7%LsvEeN;b}`* zbXf;>TQmw%`$rbGdey6Sj8R8))ZHQ$g$zW4cV9dotc!~o25*!x3?zMPe}4HH@d^+s zjcY1S`hqZ5VG3U%t2)m`E1*o7XL0Qtt+ZWPs2D+xFBcz6j~_ApuA1jKE5of~$WcSS zqq6v6vTkAZj4u;v#AraABt^Po}$Ern=z?2_2n%grSr_`(8&d4p& z_SY>}Y)<-ShGp^@dot^fWES}-3)EMc;tv=)A0GqF5`r9j;2#+c!pZ2)`Wy=R8B?KdcH2-Z{m^|6ta&w!LyARli&! zZ19WTZqdFWHf7zi7coD#&i@W;K?LNzS)`ihu8b7{w`=3ijiUGtBwin6%F=4D8<=x^ zAY&PY*Ai8*&KMRHIAUR7KSM!M`zdZCIYH{HGdg>ah`CAM^2sOTiQ#Qm!~Rc?H+%{X z7DK5JnxI;6@8NYQ{raP$`BjIW7k^)UnY&>X>dAfex!g|y$rLHwWW|f=l3%jkeIaAO zJbAW@WlADK3ZdpOr820S`^C)jw%V3J5!(z`f4Qp*N{fW9H0$t4(|hzgryhw`qTob5Ec$pIL|g*+X*Bk z_iEh~4B&PxAH?}?BgHQSJY;=d+8(N2UCUAtd1lUaL>F~S`Gv_5-&zWT4YZ>#3lfcF z@E_~(Z;tF%@#DMq$-^VFB#@5!bqI|OsU88W1Bh${(F3gYGD{~rT(}x%$6b(Vdaq>X zVfU=N`+UmJ#4hXVPa`+}(osWcFiL1d0uYM9z5uhS#mV|G!h;6YI2HFrSM-k?^7*8o z%I@;jzOKEji~O@!m*3?fp$pV)-**3s^p{0NMn1Bd(uT z%>#k-;0O>~JCF6=Q1SAD=GQ`Z55L!E=ZgH!AGT*Fbq8)*Y>8N12PAYd1Q8D`D|b_sCb$XY>LkGXnyX9YADK#d9$s`MrPvKrpGdkr zaZ*?5#?L#Bv?aLTRiZuENZGFz3KB9{?d*!nUHB zJi_^-K_IJ2;-Oza%)>@N2hhkMcf5ha;){z-@BrvcG}HOJ>udwq zYqs!1>x5*lex-*8k4KYF@7-|M?9f}3qnZ+hhhapS@1$Q2yv-4&Geu4IW_^~E3=Myi z+k7>rtA7PsFMJEB{KL<@zzJMQMyTavUTsYGB}Wⅅq5q`@4_Q=27$0x%}5PJIR~D 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
se~~dm%6apugMwXczLT*L$oj=Dz>8>t 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 diff --git a/prompts.json b/prompts.json index d8a056b..3566b88 100644 --- a/prompts.json +++ b/prompts.json @@ -1,4 +1,13 @@ [ + { + "title": "Live Action Studio", + "preview": "https://images.unsplash.com/photo-1598550476439-c923097980d6?ixlib=rb-4.0.3&auto=format&fit=crop&w=500&q=60", + "prompt": "Tạo ảnh live action người thật nhân vật trong hình, sau đó làm cho nhân vật đang như đứng ở phim trường quay live action, nhân vật đang tạo dáng trong khi các nhân viên xung quanh đang chỉnh trang phục, ảnh toàn thân nhân vật, ảnh chụp bằng máy ảnh chất lượng cao, focus vào nhân vật chính, tiền cảnh mờ có camera và các thiết bị như đang chụp nén", + "author": "System Default", + "link": "", + "mode": "generate", + "category": "Cinematic" + }, { "title": "Giải bài toán bằng ảnh chụp", "preview": "https://linux.do/uploads/default/optimized/4X/1/5/1/1518d978c948fb70ab03c11537db1e1f5136249e_2_1000x1000.jpeg", diff --git a/push_registry.sh b/push_registry.sh index 994effe..4e75671 100755 --- a/push_registry.sh +++ b/push_registry.sh @@ -3,7 +3,7 @@ # Configuration REGISTRY="git.khoavo.myds.me" IMAGE_NAME="vndangkhoa/apix" -TAG="v4" +TAG="v2.3" FULL_IMAGE="$REGISTRY/$IMAGE_NAME:$TAG" echo "=== Building Docker Image for Linux/AMD64 ===" diff --git a/run_app.bat b/run_app.bat deleted file mode 100644 index 64ff3fe..0000000 --- a/run_app.bat +++ /dev/null @@ -1,65 +0,0 @@ -@echo off -setlocal - -cd /d "%~dp0" - -if defined PYTHON_BIN goto :found_python - -for /f "delims=" %%P in ('where python3 2^>nul') do ( - set "PYTHON_BIN=%%~P" - goto :found_python -) -for /f "delims=" %%P in ('where python 2^>nul') do ( - set "PYTHON_BIN=%%~P" - goto :found_python -) -for /f "delims=" %%P in ('py -3 -c "import sys; print(sys.executable)" 2^>nul') do ( - set "PYTHON_BIN=%%~P" - goto :found_python -) - -echo Error: Python not found. -echo Please install Python from https://www.python.org/downloads/ -echo or install it via the Microsoft Store. -echo IMPORTANT: When installing, make sure to check "Add Python to PATH". -pause -exit /b 1 - -:found_python -if not exist ".venv" ( - echo Creating virtual environment... - "%PYTHON_BIN%" -m venv .venv - if errorlevel 1 ( - echo Error: Failed to create virtual environment. - pause - exit /b 1 - ) -) - -echo Activating virtual environment... -call .venv\Scripts\activate.bat -if errorlevel 1 ( - echo Error: Failed to activate virtual environment. - pause - exit /b 1 -) - -echo Installing dependencies... -pip install -r requirements.txt -if errorlevel 1 ( - echo Error: Failed to install dependencies. - pause - exit /b 1 -) - -echo Starting application... -call .venv\Scripts\python.exe app.py -if errorlevel 1 ( - echo Error: Application crashed or exited with an error. - pause - exit /b 1 -) - -echo Application finished successfully. -pause -endlocal diff --git a/run_app.command b/run_app.command deleted file mode 100755 index 8b7f012..0000000 --- a/run_app.command +++ /dev/null @@ -1,39 +0,0 @@ -#!/bin/zsh -cd "$(dirname "$0")" -# Prefer python3 but fall back to python; allow overriding via env -PYTHON_BIN="${PYTHON_BIN:-$(command -v python3 || command -v python)}" -if [[ -z "$PYTHON_BIN" ]]; then - echo "Error: Python not found." - echo "Please install Python 3." - echo " - On macOS: brew install python3" - echo " - Or download from https://www.python.org/downloads/" - read -k 1 "key?Press any key to exit..." - exit 1 -fi - -# Create a virtual environment if missing, then activate it -# Create a virtual environment if missing, then activate it -if [[ ! -d ".venv" ]]; then - echo "Creating virtual environment..." - "$PYTHON_BIN" -m venv .venv || { echo "Error: Failed to create virtual environment."; read -k 1 "key?Press any key to exit..."; exit 1; } -fi - -echo "Activating virtual environment..." -source .venv/bin/activate || { echo "Error: Failed to activate virtual environment."; read -k 1 "key?Press any key to exit..."; exit 1; } - -# Ensure dependencies are available (skip reinstall if up-to-date) -echo "Installing dependencies..." -pip install -r requirements.txt || { echo "Error: Failed to install dependencies."; read -k 1 "key?Press any key to exit..."; exit 1; } - -# Start the Flask app on port 8888 -echo "Starting application..." -.venv/bin/python app.py - -if [[ $? -ne 0 ]]; then - echo "Error: Application crashed or exited with an error." - read -k 1 "key?Press any key to exit..." - exit 1 -fi - -echo "Application finished successfully." -read -k 1 "key?Press any key to exit..." diff --git a/run_app.sh b/run_app.sh deleted file mode 100755 index 2c607ed..0000000 --- a/run_app.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/bash -set -euo pipefail - -cd "$(dirname "$0")" - -# Prefer python3 but fall back to python; allow override via environment -PYTHON_BIN="${PYTHON_BIN:-$(command -v python3 || command -v python)}" -if [[ -z "$PYTHON_BIN" ]]; then - echo "Error: Python not found." - echo "Please install Python 3." - echo " - On macOS: brew install python3" - echo " - On Linux: sudo apt install python3 (or equivalent for your distro)" - echo " - Or download from https://www.python.org/downloads/" - exit 1 -fi - -# Create a virtual environment if missing, then activate it -# Create a virtual environment if missing, then activate it -if [[ ! -d ".venv" ]]; then - echo "Creating virtual environment..." - "$PYTHON_BIN" -m venv .venv || { echo "Error: Failed to create virtual environment."; exit 1; } -fi - -echo "Activating virtual environment..." -source .venv/bin/activate || { echo "Error: Failed to activate virtual environment."; exit 1; } - -# Ensure dependencies are available -echo "Installing dependencies..." -pip install -r requirements.txt || { echo "Error: Failed to install dependencies."; exit 1; } - -# Start the Flask app on port 8888 -echo "Starting application..." -exec .venv/bin/python app.py || { echo "Error: Application exited with an error."; exit 1; } diff --git a/static/script.js b/static/script.js index df1dfb4..f93761e 100644 --- a/static/script.js +++ b/static/script.js @@ -237,6 +237,12 @@ document.addEventListener('DOMContentLoaded', () => { formData.append('reference_image_paths', JSON.stringify(referencePaths)); } + // Add Image Count for Whisk + const imageCountInput = document.getElementById('image-count'); + if (imageCountInput && apiModelSelect && apiModelSelect.value === 'whisk') { + formData.append('image_count', imageCountInput.value); + } + return formData; } @@ -682,7 +688,12 @@ document.addEventListener('DOMContentLoaded', () => { } if (data.image) { - displayImage(data.image, data.image_data); + // Check if multiple images + if (data.images && data.images.length > 1) { + displayImage(data.images[0], data.image_datas ? data.image_datas[0] : null, data.images, data.image_datas); + } else { + displayImage(data.image, data.image_data); + } gallery.load(); } else if (data.queue && data.prompts && Array.isArray(data.prompts)) { // Backend returned more items - add them to queue @@ -1840,7 +1851,7 @@ document.addEventListener('DOMContentLoaded', () => { setViewState('error'); } - function displayImage(imageUrl, imageData) { + function displayImage(imageUrl, imageData, allUrls = [], allDatas = []) { let cacheBustedUrl = imageUrl; if (!imageUrl.startsWith('blob:') && !imageUrl.startsWith('data:')) { cacheBustedUrl = withCacheBuster(imageUrl); @@ -1863,6 +1874,9 @@ document.addEventListener('DOMContentLoaded', () => { hasGeneratedImage = true; // Mark that we have an image setViewState('result'); + // Render variations if available + renderVariations(allUrls, allDatas); + // Persist image URL try { localStorage.setItem('gemini-app-last-image', imageUrl); @@ -1871,6 +1885,85 @@ document.addEventListener('DOMContentLoaded', () => { } } + // Create container for variations + const variationsContainer = document.createElement('div'); + variationsContainer.className = 'variations-container'; + variationsContainer.style.cssText = ` + display: flex; + gap: 8px; + padding: 10px; + justify-content: center; + position: absolute; + bottom: 20px; + left: 50%; + transform: translateX(-50%); + z-index: 100; + background: rgba(0,0,0,0.5); + border-radius: 12px; + opacity: 0; + transition: opacity 0.3s ease; + pointer-events: none; + `; + // Insert into result state + const resultStateEl = document.getElementById('result-state'); + if (resultStateEl) { + resultStateEl.appendChild(variationsContainer); + // Show on hover + resultStateEl.addEventListener('mouseenter', () => variationsContainer.style.opacity = '1'); + resultStateEl.addEventListener('mouseleave', () => variationsContainer.style.opacity = '0'); + variationsContainer.addEventListener('mouseenter', () => variationsContainer.style.opacity = '1'); // Keep visible when hovering container + variationsContainer.style.pointerEvents = 'auto'; + } + + function renderVariations(urls, datas) { + variationsContainer.innerHTML = ''; + + if (!urls || urls.length <= 1) { + variationsContainer.style.display = 'none'; + return; + } + + variationsContainer.style.display = 'flex'; + variationsContainer.style.opacity = '1'; // Auto show when new batch arrives + + urls.forEach((url, index) => { + const thumb = document.createElement('img'); + thumb.src = datas && datas[index] ? `data:image/png;base64,${datas[index]}` : withCacheBuster(url); + thumb.className = 'variation-thumb'; + thumb.style.cssText = ` + width: 60px; + height: 60px; + object-fit: cover; + border-radius: 6px; + cursor: pointer; + border: 2px solid transparent; + transition: transform 0.2s, border-color 0.2s; + `; + + thumb.addEventListener('click', (e) => { + e.stopPropagation(); + displayImage(url, datas ? datas[index] : null, urls, datas); + // Highlight active + variationsContainer.querySelectorAll('img').forEach(img => img.style.borderColor = 'transparent'); + thumb.style.borderColor = 'var(--accent-color)'; + }); + + // Highlight current + if (generatedImage.src.includes(datas[index]) || generatedImage.src.includes(url.split('?')[0])) { + thumb.style.borderColor = 'var(--accent-color)'; + } + + variationsContainer.appendChild(thumb); + }); + + // Auto hide after 5 seconds if not interacting + setTimeout(() => { + if (!resultStateEl.matches(':hover')) { + variationsContainer.style.opacity = '0'; + } + }, 5000); + } + async function handleCanvasDropUrl(imageUrl) { const cleanedUrl = imageUrl; displayImage(cleanedUrl); diff --git a/templates/index.html b/templates/index.html index f403c44..563eeb8 100644 --- a/templates/index.html +++ b/templates/index.html @@ -19,7 +19,7 @@

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]-|GLmkSGz*ul^Lf8^jJBvUR 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