Multi-Platform Package Manager for Stable Diffusion
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

71 lines
3.1 KiB

using StabilityMatrix.Core.Models;
namespace StabilityMatrix.Tests.Models;
[TestClass]
public class GenerationParametersTests
{
[TestMethod]
public void TestParse()
{
const string data = """
test123
Negative prompt: test, easy negative
Steps: 20, Sampler: Euler a, CFG scale: 7, Seed: 3589107295, Size: 1024x1028, Model hash: 9aa0c3e54d, Model: nightvisionXL_v0770_BakedVAE, VAE hash: 235745af8d, VAE: sdxl_vae.safetensors, Style Selector Enabled: True, Style Selector Randomize: False, Style Selector Style: base, Version: 1.6.0
""";
Assert.IsTrue(GenerationParameters.TryParse(data, out var result));
Assert.AreEqual("test123", result.PositivePrompt);
Assert.AreEqual("test, easy negative", result.NegativePrompt);
Assert.AreEqual(20, result.Steps);
Assert.AreEqual("Euler a", result.Sampler);
Assert.AreEqual(7, result.CfgScale);
Assert.AreEqual(3589107295, result.Seed);
Assert.AreEqual(1024, result.Width);
Assert.AreEqual(1028, result.Height);
Assert.AreEqual("9aa0c3e54d", result.ModelHash);
Assert.AreEqual("nightvisionXL_v0770_BakedVAE", result.ModelName);
}
[TestMethod]
public void TestParse_NoNegative()
{
const string data = """
test123
Steps: 20, Sampler: Euler a, CFG scale: 7, Seed: 3589107295, Size: 1024x1028, Model hash: 9aa0c3e54d, Model: nightvisionXL_v0770_BakedVAE, VAE hash: 235745af8d, VAE: sdxl_vae.safetensors, Style Selector Enabled: True, Style Selector Randomize: False, Style Selector Style: base, Version: 1.6.0
""";
Assert.IsTrue(GenerationParameters.TryParse(data, out var result));
Assert.AreEqual("test123", result.PositivePrompt);
Assert.IsNull(result.NegativePrompt);
Assert.AreEqual(20, result.Steps);
Assert.AreEqual("Euler a", result.Sampler);
Assert.AreEqual(7, result.CfgScale);
Assert.AreEqual(3589107295, result.Seed);
Assert.AreEqual(1024, result.Width);
Assert.AreEqual(1028, result.Height);
Assert.AreEqual("9aa0c3e54d", result.ModelHash);
Assert.AreEqual("nightvisionXL_v0770_BakedVAE", result.ModelName);
}
[TestMethod]
public void TestParseLineFields()
{
const string lastLine =
@"Steps: 30, Sampler: DPM++ 2M Karras, CFG scale: 7, Seed: 2216407431, Size: 640x896, Model hash: eb2h052f91, Model: anime_v1";
var fields = GenerationParameters.ParseLine(lastLine);
Assert.AreEqual(7, fields.Count);
Assert.AreEqual("30", fields["Steps"]);
Assert.AreEqual("DPM++ 2M Karras", fields["Sampler"]);
Assert.AreEqual("7", fields["CFG scale"]);
Assert.AreEqual("2216407431", fields["Seed"]);
Assert.AreEqual("640x896", fields["Size"]);
Assert.AreEqual("eb2h052f91", fields["Model hash"]);
Assert.AreEqual("anime_v1", fields["Model"]);
}
}