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.
This commit is contained in:
@@ -9,6 +9,7 @@
|
||||
| [Пропуск сборки](skip-stale-build.md) | 49 |
|
||||
| [Что нового](whats-new.md) | 54 |
|
||||
| [Состояние экрана](view-state.md) | 55 |
|
||||
| [Модели портретов](portrait-models.md) | 60 |
|
||||
|
||||
Люди: [`../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,43 @@
|
||||
Часть [Вне очереди](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[]`). Старые картинки не трогаем.
|
||||
Reference in New Issue
Block a user