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.

53 lines
1.7 KiB

using System.Collections.Immutable;
namespace StabilityMatrix.Core.Models.Api.Comfy;
public readonly record struct ComfySampler(string Name)
{
1 year ago
private static Dictionary<string, string> ConvertDict { get; } =
new()
{
["euler"] = "Euler",
["euler_ancestral"] = "Euler Ancestral",
["heun"] = "Heun",
["dpm_2"] = "DPM 2",
["dpm_2_ancestral"] = "DPM 2 Ancestral",
["lms"] = "LMS",
["dpm_fast"] = "DPM Fast",
["dpm_adaptive"] = "DPM Adaptive",
["dpmpp_2s_ancestral"] = "DPM++ 2S Ancestral",
["dpmpp_sde"] = "DPM++ SDE",
["dpmpp_sde_gpu"] = "DPM++ SDE GPU",
["dpmpp_2m"] = "DPM++ 2M",
["dpmpp_2m_sde"] = "DPM++ 2M SDE",
["dpmpp_2m_sde_gpu"] = "DPM++ 2M SDE GPU",
["dpmpp_3m"] = "DPM++ 3M",
["dpmpp_3m_sde"] = "DPM++ 3M SDE",
["dpmpp_3m_sde_gpu"] = "DPM++ 3M SDE GPU",
1 year ago
["ddim"] = "DDIM",
["uni_pc"] = "UniPC",
["uni_pc_bh2"] = "UniPC BH2"
};
public static IReadOnlyList<ComfySampler> Defaults { get; } =
ConvertDict.Keys.Select(k => new ComfySampler(k)).ToImmutableArray();
1 year ago
public string DisplayName =>
ConvertDict.TryGetValue(Name, out var displayName) ? displayName : Name;
private sealed class NameEqualityComparer : IEqualityComparer<ComfySampler>
{
public bool Equals(ComfySampler x, ComfySampler y)
{
return x.Name == y.Name;
}
public int GetHashCode(ComfySampler obj)
{
return obj.Name.GetHashCode();
}
}
public static IEqualityComparer<ComfySampler> Comparer { get; } = new NameEqualityComparer();
}