checkpoint before checking out main

This commit is contained in:
Leonid Pershin
2026-08-20 14:43:00 +03:00
parent 477f8cf6c9
commit 5d46550f12
18 changed files with 429 additions and 64 deletions
+1
View File
@@ -10,6 +10,7 @@
| [Что нового](whats-new.md) | 54 |
| [Состояние экрана](view-state.md) | 55 |
| [Модели портретов](portrait-models.md) | 60 |
| [LoRA и embeddings](portrait-loras-embeds.md) | 61 |
Люди: [`../02-people/people.md`](../02-people/people.md). Штат: [`../03-staffing/staffing.md`](../03-staffing/staffing.md).
Расписание: [`../04-schedule/schedule.md`](../04-schedule/schedule.md). Присутствие: [`../05-ai/ai.md`](../05-ai/ai.md).
@@ -0,0 +1,27 @@
Часть [Вне очереди](README.md). Соседей по папке не читать, если задача не про них.
# LoRA и embeddings на каждом слое
### Зачем
Портрет собирается из модели, пресета и типа кадра. LoRA и textual inversion должны
включаться на любом из этих слоёв, а не только в дефолтах модели.
### Было / Стало / Почему
**Было.** Positive/negative LoRA только на модели и в оверрайде пресета. В Swarm уходила
одна строка `name,weight,…`. Embeddings из Swarm в пикере не было. Теги `<lora:>` в
негативном промпте Swarm не загружают сеть.
**Стало.** LoRA и embeddings (name + weight) на модели, на пресете (добавка) и на каждом
виде кадра. Слои **склеиваются**: модель → пресет → кадр. Все LoRA уходят в
`loras` + `loraweights`. Embeddings — в промпт как `<embed:name>` (вес ≠ 1:
`<embed:name:w>`). Discovery отдаёт список embeddings. По умолчанию списки пустые.
**Почему.** Swarm грузит LoRA параметрами, embeddings — текстом промпта. Кадр (аватар vs
полный рост) может нуждаться в своей LoRA, не меняя модель.
### Что не входит
Whitelist embeddings как у чекпоинтов. ControlNet. Включение PDXL embeds по умолчанию.
Бамп сокета.
@@ -0,0 +1,39 @@
# Фаза 61. LoRA и embeddings
## Зависимости
Фаза 60 (каталог моделей и слои промпта). Ветка от `phase/60-portrait-models`.
## Зачем
LoRA и embeddings можно поставить на модель, на пресет и на тип кадра. Swarm получает
их тем каналом, который реально загружает сеть.
## Задачи
- [ ] Discovery: список `embeddings` из Swarm (`models.Embedding`)
- [ ] Списки LoRA и embeddings (name + weight) на модели, пресете и avatar/custom/full.
Склейка модель → пресет → кадр. Пустые списки в шаблоне
- [ ] Генерация: все LoRA в `loras` и `loraweights`; embeddings в positive/negative как
`<embed:name>`. Не писать `<lora:>` в промпт
- [ ] UI: комбобоксы из discovery на модели, в спойлере пресета и в секции кадра. `t(...)`
- [ ] HTTP в [`protocol.md`](../../protocol.md), сокет не бампить
## Тесты, без которых фаза не закрыта
- [ ] Discovery парсит embeddings; офлайн — пустой список
- [ ] Склейка LoRA/embed: модель + пресет + kind
- [ ] Промпт содержит `<embed:…>` и не содержит `<lora:`
- [ ] Generate шлёт `loras` и `loraweights` раздельно
- [ ] Диалог: поля embeddings у модели и у вида кадра
## Критерий готовности
- В диалоге создания школы LoRA и embedding можно добавить на модель, в оверрайд пресета
и на аватар / свой промпт / полный рост
- Список имён — из Swarm, как у LoRA сейчас
- «Показать промпт» показывает embed-теги; LoRA в тексте промпта нет
## Стоп
Не бампить сокет. Не включать конкретные embeds в дефолтный шаблон. Не трогать ControlNet.
+1
View File
@@ -20,3 +20,4 @@
| [54. Что нового](54-whats-new.md) | ✅ | После входа — окно коммитов с прошлого визита |
| [55. Состояние экрана](55-view-state.md) | ✅ | F5 и переходы не сбрасывают школу, вкладки и фильтры |
| [60. Модели портретов](60-portrait-models.md) | ✅ | Каталог моделей Swarm ∩ конфиг, слои промпта, спойлер оверрайдов |
| [61. LoRA и embeddings](61-portrait-loras-embeds.md) | 🔄 | LoRA и embeddings на модели, пресете и типе кадра |
+3 -2
View File
@@ -542,8 +542,9 @@ return `400` `invalid-body`. Already-created schools keep the copy they were cre
### `GET /api/settings/swarmui/discovery`
When SwarmUI is configured and reachable, proxies `ListT2IParams` and returns
`{ connected, models, loras, samplers, schedulers }` for the settings UI. The client hides Swarm
models that are missing from the template catalog. When SwarmUI is off or unreachable, `connected`
`{ connected, models, loras, embeddings, samplers, schedulers }` for the settings UI. LoRA and
embeddings can be set on the model, the preset, and each shot kind; layers concatenate.
The client hides Swarm models that are missing from the template catalog. When SwarmUI is off or unreachable, `connected`
is false and the lists are empty; the picker then shows the catalog ids so fields can be filled
manually.