Stack portrait LoRAs and embeddings from model, preset, and shot kind.

Swarm loads LoRAs via loras/loraweights; embeddings go in the prompt as embed tags, not lora tags.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Leonid Pershin
2026-08-20 14:58:26 +03:00
co-authored by Cursor
parent 5d46550f12
commit 9e217e93eb
5 changed files with 33 additions and 20 deletions
@@ -25,7 +25,7 @@ export function swarmUiSettingsDialog(initial?: SwarmUiSettingsFile): Promise<Sw
const ageRulesHost = el('div', { class: 'settings-age-rules' });
let config: SwarmUiSettingsFile | null = null;
let discovery: SwarmUiDiscovery = { connected: false, models: [], loras: [], samplers: [], schedulers: [] };
let discovery: SwarmUiDiscovery = { connected: false, models: [], loras: [], embeddings: [], samplers: [], schedulers: [] };
let editingPresetId = '';
const cancelButton = el('button', { class: 'button', type: 'button', onClick: () => modal.close(null) });
@@ -239,6 +239,11 @@ export function swarmUiSettingsDialog(initial?: SwarmUiSettingsFile): Promise<Sw
return host;
}
model.positiveLoras ??= [];
model.negativeLoras ??= [];
model.positiveEmbeddings ??= [];
model.negativeEmbeddings ??= [];
host.append(
textareaField(t('settingsModelPositive'), model.positive, (value) => {
model.positive = value;