Lock the Krea catalog at ages 6-11 and keep SDXL ids when a living save has no models list.
This commit is contained in:
@@ -233,6 +233,25 @@ public class SwarmUiSettingsStoreTests
|
||||
|
||||
var child = Assert.Single(config.Presets, preset => preset.Id == "child");
|
||||
Assert.Equal(SwarmUiModelDefinition.RealismV25Id, child.Model);
|
||||
|
||||
var ageRule = Assert.Single(config.AgeRules);
|
||||
Assert.Equal(6, ageRule.MinAge);
|
||||
Assert.Equal(11, ageRule.MaxAge);
|
||||
Assert.Equal("child", ageRule.PresetId);
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData(6, "child")]
|
||||
[InlineData(11, "child")]
|
||||
[InlineData(5, "default")]
|
||||
[InlineData(12, "default")]
|
||||
public void Resolve_AgeRuleCoversSixThroughElevenInclusive(int age, string presetId)
|
||||
{
|
||||
var config = SwarmUiConfigFile.CreateDefault();
|
||||
var profile = config.Resolve(age, PortraitKind.Avatar);
|
||||
|
||||
Assert.Equal(presetId, profile.PresetId);
|
||||
Assert.Equal(SwarmUiModelDefinition.RealismV25Id, profile.Model);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
@@ -288,6 +307,8 @@ public class SwarmUiSettingsStoreTests
|
||||
Assert.Equal(expected.Presets[1].Model, loaded.Presets[1].Model);
|
||||
Assert.Equal(expected.Presets[1].Style, loaded.Presets[1].Style);
|
||||
Assert.Equal(expected.Presets[1].Negative, loaded.Presets[1].Negative);
|
||||
Assert.Equal(expected.Presets[1].Avatar?.ShotType, loaded.Presets[1].Avatar?.ShotType);
|
||||
Assert.Equal(expected.Presets[1].FullBody?.ShotType, loaded.Presets[1].FullBody?.ShotType);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
@@ -354,6 +375,48 @@ public class SwarmUiSettingsStoreTests
|
||||
Assert.Equal(SwarmUiModelDefinition.DreamShaperId, living.Resolve(8, PortraitKind.Avatar).Model);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void NormalizeAfterLoad_EmptyModelsKeepSdxlPresetIdsInsteadOfKreaCatalog()
|
||||
{
|
||||
var living = new SwarmUiConfigFile
|
||||
{
|
||||
ActivePresetId = "default",
|
||||
Presets =
|
||||
[
|
||||
new SwarmUiPresetDefinition
|
||||
{
|
||||
Id = "default",
|
||||
Label = "Default",
|
||||
Model = SwarmUiModelDefinition.BabesId,
|
||||
Avatar = new SwarmUiKindPreset { Width = 1024, Height = 1024 },
|
||||
Custom = new SwarmUiKindPreset { Width = 896, Height = 1152 },
|
||||
FullBody = new SwarmUiKindPreset { Width = 896, Height = 1152 },
|
||||
},
|
||||
new SwarmUiPresetDefinition
|
||||
{
|
||||
Id = "child",
|
||||
Label = "Children",
|
||||
Model = SwarmUiModelDefinition.DreamShaperId,
|
||||
Avatar = new SwarmUiKindPreset { Width = 1024, Height = 1024 },
|
||||
Custom = new SwarmUiKindPreset { Width = 896, Height = 1152 },
|
||||
FullBody = new SwarmUiKindPreset { Width = 896, Height = 1152 },
|
||||
},
|
||||
],
|
||||
AgeRules = [new SwarmUiAgeRule { MinAge = 6, MaxAge = 11, PresetId = "child" }],
|
||||
};
|
||||
|
||||
living.NormalizeAfterLoad();
|
||||
|
||||
Assert.Equal(
|
||||
[SwarmUiModelDefinition.BabesId, SwarmUiModelDefinition.DreamShaperId],
|
||||
living.Models.Select(model => model.Id));
|
||||
Assert.DoesNotContain(living.Models, model => model.Id == SwarmUiModelDefinition.MuseId);
|
||||
Assert.DoesNotContain(living.Models, model => model.Id == SwarmUiModelDefinition.RealismV25Id);
|
||||
Assert.Equal(SwarmUiModelDefinition.BabesId, living.Presets[0].Model);
|
||||
Assert.Equal(SwarmUiModelDefinition.DreamShaperId, living.Presets[1].Model);
|
||||
Assert.Equal(SwarmUiModelDefinition.DreamShaperId, living.Resolve(8, PortraitKind.Avatar).Model);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Clone_DoesNotInjectKreaModelsIntoAnExistingSchoolCopy()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user