Add extra prompts, endless generation, random character default, and small fixes

- Add extra positive/negative prompt textareas to all 9 detail pages with session persistence
- Add Endless generation button to all detail pages (continuous preview generation until stopped)
- Default character selector to "Random Character" on all secondary detail pages
- Fix queue clear endpoint (remove spurious auth check)
- Refactor app.py into routes/ and services/ modules
- Update CLAUDE.md with new architecture documentation
- Various data file updates and cleanup

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Aodhan Collins
2026-03-13 02:07:16 +00:00
parent 1b8a798c31
commit 5e4348ebc1
170 changed files with 17367 additions and 9781 deletions

View File

@@ -223,8 +223,8 @@
col.className = 'col-6 col-sm-4 col-md-3 col-lg-2';
col.innerHTML = `
<div class="card h-100 sg-thumb" data-sg-strength="${strengthValue}">
<img src="${imageUrl}" class="card-img-top" style="object-fit:cover;height:160px;cursor:zoom-in;"
loading="lazy" onclick="window.open(this.src,'_blank')">
<img src="${imageUrl}" class="card-img-top sg-gallery-img" style="object-fit:cover;height:160px;cursor:zoom-in;"
loading="lazy" data-src="${imageUrl}">
<div class="card-footer py-1 px-1">
<div class="text-center mb-1"><span class="badge bg-secondary">${strengthValue}</span></div>
<div class="d-flex gap-1">
@@ -236,6 +236,15 @@
</div>
</div>`;
grid.appendChild(col);
// Add click handler for gallery navigation
const img = col.querySelector('.sg-gallery-img');
img.addEventListener('click', () => {
const allImages = Array.from(document.querySelectorAll('#sg-grid .sg-gallery-img')).map(i => i.dataset.src);
const index = allImages.indexOf(imageUrl);
openGallery(allImages, index);
});
sgUpdateBadge();
sgHighlightBounds();
}