Files
Leonid Pershin 81fd3f6181 Split SwarmUI portraits into a model catalog and layered prompts.
Picker is Swarm intersect config, preset style/shot inherit model defaults, and living saves lift the old preset shape.
2026-08-20 14:08:11 +03:00

44 lines
2.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Часть [Вне очереди](README.md). Соседей по папке не читать, если задача не про них.
# Модели Swarm и слои промпта
### Зачем
Пикер моделей не должен предлагать то, чего нет в нашем конфиге. Дефолты генерации живут
на модели; пресет задаёт стиль и тип кадра и может переопределить дефолты. Промпт собирается
слоями, а не одним «базовым» текстом пресета.
### Было / Стало / Почему
**Было.** Пресет сам держал модель, steps/cfg/sampler и `positive`. Список Swarm только
наполнял комбобоксы. «Свой промпт» у custom **заменял** текст кадра. `portraitSettings` в
сейве — копия этого файла.
**Стало.** В конфиге каталог `models` (whitelist) и пресеты. Пикер = Swarm ∩ каталог; при
офлайне Swarm — все id из каталога. У модели: закрытый набор настроек генерации (steps, cfg,
clip skip, sampler, scheduler, seed, LoRA) и обычно пустые base positive/negative. У пресета:
модель, **стиль** (бывший `positive`), доп. negative, размеры и **тип кадра** на avatar/custom/full.
Оверрайды генерации у пресета — nullable, в UI под спойлером. Промпт:
1. base positive модели
2. стиль пресета
3. тип кадра
4. «Свой промпт» (`promptExtra`, только custom; после кадра, не вместо)
5. поза (слот пустой, без поля в UI)
6. внешность: кто это, возраст, тело
7. одежда
8. хвост пустой
Negative: модель + необязательное дополнение пресета. Ширина/высота остаются на виде кадра.
**Почему.** Модель задаёт «как считать картинку»; пресет — «какой это школьный снимок».
Гость по-прежнему рисует с копии школы, не с глобального файла.
### Что не входит
Зеркало всех `ListT2IParams`. Кнопка настроек в меню. Редактор каталога «добавить модель из
Swarm». Поза в UI. Бамп версии сокета. Перегенерация уже лежащих PNG.
Живые школы: `NormalizeAfterLoad` поднимает старый пресет (`positive``style`, kind
`positive``shotType`, уникальные `model``models[]`). Старые картинки не трогаем.