diff --git a/CHANGELOG.md b/CHANGELOG.md index 0984c85ee..c0e649f11 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ - **Anima** support for *img2img* and *inpaint* workflows - **Ernie-Image** add *LoRA* support, *img2img* and *inpaint* workflows - **LTX** support for *audio* generation + - **Chroma** add *LoRA* support - [StepFun Step1X-Edit v1.1](https://huggingface.co/stepfun-ai/Step1X-Edit-v1p1-diffusers) image edit model support step1x is a large dedicated image edit model combining qwen-2.5 8B encoder with custom 12.4B transformer - **Prompt enhance** add info to image metadata diff --git a/TODO.md b/TODO.md index 38d32097f..cb876f21c 100644 --- a/TODO.md +++ b/TODO.md @@ -54,7 +54,6 @@ TODO: Investigate which models are diffusers-compatible and prioritize! - [JoyAI-Image-Edit](https://github.com/huggingface/diffusers/pull/13444) (pr in-progress) - [Lumina-DiMOO](https://github.com/huggingface/diffusers/pull/12468) (pr stalled) -- [Step1X-Edit](https://github.com/huggingface/diffusers/pull/12249) (pr stalled) - [VIBE Image Edit](https://huggingface.co/iitolstykh/VIBE-Image-Edit) (diffusers-compatible) - [nVidia Cosmos-Predict-2.5](https://huggingface.co/nvidia/Cosmos-Predict2.5-2B) (in diffusers) - [nVidia Cosmos-Transfer-2.5](https://huggingface.co/nvidia/Cosmos-Transfer2.5-2B) (in diffusers) diff --git a/javascript/gallery.js b/javascript/gallery.js index b82d94c81..1a123d97a 100644 --- a/javascript/gallery.js +++ b/javascript/gallery.js @@ -5,6 +5,7 @@ let currentSize = 0; let currentSort = 'none'; let currentName = ''; let currentImage = null; +let currentTitle = ''; let currentGalleryFolder = null; let pruneImagesTimer; let outstanding = 0; @@ -76,6 +77,8 @@ function resetGallerySelection() { updateGallerySelectionClasses(gallerySelection.files, -1); gallerySelection = { files: [], index: -1 }; currentImage = null; + currentName = ''; + currentTitle = ''; } function applyGallerySelection(index, { send = true } = {}) { @@ -89,6 +92,8 @@ function applyGallerySelection(index, { send = true } = {}) { } gallerySelection.index = index; currentImage = files[index].src; + currentName = files[index].name; + currentTitle = files[index].title; updateGallerySelectionClasses(files, index); if (send && el.btnSend) el.btnSend.click(); } @@ -560,6 +565,7 @@ class GalleryFile extends HTMLElement { this.shadow.appendChild(el.overlay); currentImage = this.src; currentName = this.name; + currentTitle = this.title; }; img.onpointerleave = () => { el.overlay.display = 'none'; @@ -1372,7 +1378,7 @@ async function overlayInfo(evt) { delete params.Prompt; delete params.Negative; delete params['Negative prompt']; - const paramsFormatted = Object.entries(params).map(([key, value]) => `${key}: ${value}`).join('
'); + const paramsFormatted = Object.entries(params).map(([key, value]) => `${key}: ${value}`).join(' | '); tgt.innerHTML = `
File: ${currentImage}
Prompt: ${prompt}
@@ -1380,6 +1386,10 @@ async function overlayInfo(evt) {
${paramsFormatted}
Raw:
${raw}
`; + const img = document.querySelector('#gallery_gallery img'); + if (img) img.src = `/file=${encodeURIComponent(currentImage)}?t=${Date.now()}`; // Force refresh in case info endpoint is faster than cache update + const status = document.querySelector('#html_log_gallery p'); + if (status) status.innerText = currentTitle; } async function createOverlay() {