Picker is Swarm intersect config, preset style/shot inherit model defaults, and living saves lift the old preset shape.
3.5 KiB
3.5 KiB
Фаза 60. Модели портретов
Зависимости
Нет. Портреты и swarmui.json уже живут вне среза.
Зачем
Пикер показывает только модели из нашего каталога, которые есть в Swarm. Дефолты генерации на модели; пресет даёт стиль и тип кадра и может переопределить дефолты под спойлером. Промпт собирается слоями.
Задачи
swarmui.json: каталогmodelsна все четыре модели из текущего Swarm; пресеты ссылаются на модель,styleвместо бывшего basepositive,shotTypeна виде кадра- Пикер = Swarm ∩ каталог; Swarm офлайн — id из каталога. Чего нет в конфиге, с пикера нет
- Сборка промпта: модель → стиль → кадр → свой промпт → пустая поза → внешность (кто, возраст, тело) → одежда. Custom не заменяет тип кадра. Negative: модель + доп. пресета
- UI диалога пресетов (создание школы): стиль и кадр сверху; дефолты модели видны; оверрайды
пресета под
<details>. Строки черезt(...) - Живой сейв поднимается в
NormalizeAfterLoad. HTTPGET/PUT /api/settings/swarmuiиportraitSettings— новая форма. Сокет не бампить.protocol.mdтем же коммитом
Тесты, без которых фаза не закрыта
- Лифт старого пресета:
positive→style, kindpositive→shotType, модель вmodels - Resolve без оверрайда берёт steps/cfg с модели; с оверрайдом — с пресета
- Пикер: пересечение Swarm ∩ каталог; офлайн — каталог; лишняя модель Swarm отброшена
- Промпт: порядок слоёв; custom держит тип кадра и
promptExtra; пустая поза не попадает в текст GET /api/settings/swarmuiотдаётmodels; create копирует их в сейв- Диалог: поле стиля, спойлер оверрайдов, в селекте модели нет id вне каталога при живом Swarm
Критерий готовности
- В диалоге создания школы в пикере только модели из
swarmui.json, которые ответил Swarm - Смена модели подставляет её дефолты; пресет может перебить их под спойлером
- «Показать промпт» на карточке: стиль, затем кадр, затем тело и одежда; свой промпт после кадра
- Старая школа открывается и генерирует без ручного правок сейва
Стоп
Не бампить сокет. Не зеркалить все параметры Swarm. Не возвращать кнопку настроек в меню. Не перегенерировать PNG. Не писать позу в UI.