feat(imggen): генерация картинок ИИ (FLUX.1) — ассистент, флэшкарты, редактор уроков
Бэкенд /api/imggen (status/generate, CF Workers AI, cooldown+дневной лимит). Переиспользуемый модал LS.imagePromptModal (js/imggen.js). Квантик: режим «Нарисовать» в чате (inline). Флэшкарты: кнопка «ИИ» в блоке картинки карточки. Редактор уроков: кнопка «Сгенерировать» в блоке изображения. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -1004,6 +1004,7 @@
|
||||
</div>
|
||||
|
||||
<script src="/js/api.js"></script>
|
||||
<script src="/js/imggen.js"></script>
|
||||
<script src="/js/sidebar.js"></script>
|
||||
<script src="/js/svg-sanitize.js"></script>
|
||||
<script src="/js/svg-draw.js"></script>
|
||||
@@ -1602,6 +1603,9 @@
|
||||
<button class="img-upload-btn" onclick="document.getElementById('img-file-${bid}').click()">
|
||||
<i data-lucide="upload" style="width:14px;height:14px"></i> Загрузить файл
|
||||
</button>
|
||||
<button class="img-upload-btn" onclick="genBlockImage('${bid}')" title="Сгенерировать изображение с ИИ">
|
||||
<i data-lucide="sparkles" style="width:14px;height:14px"></i> Сгенерировать
|
||||
</button>
|
||||
<span class="img-upload-progress" id="img-status-${bid}"></span>
|
||||
</div>
|
||||
<div class="block-row">
|
||||
@@ -3033,6 +3037,18 @@
|
||||
}
|
||||
}
|
||||
|
||||
function genBlockImage(bid) {
|
||||
if (!LS.imagePromptModal) { LS.toast('Модуль генерации не загружен'); return; }
|
||||
LS.imagePromptModal({
|
||||
title: 'Изображение для урока',
|
||||
onUse: function (url) {
|
||||
updateBlockData(bid, 'url', url);
|
||||
rerenderBlock(bid);
|
||||
markDirty();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/* ══════════════════════════════════════════════════════════════════
|
||||
FEATURE: Code syntax highlighting
|
||||
══════════════════════════════════════════════════════════════════ */
|
||||
|
||||
Reference in New Issue
Block a user