namespace AIImages.Models
{
    /// <summary>
    /// Тип генерации изображения
    /// </summary>
    public enum ImageType
    {
        Portrait, // Портрет
        FullBody, // Полное тело
    }

    /// <summary>
    /// Настройки для генерации изображений через Stable Diffusion
    /// </summary>
    public class StableDiffusionSettings
    {
        public string PositivePrompt { get; set; }
        public string NegativePrompt { get; set; }
        public int Steps { get; set; }
        public float CfgScale { get; set; }
        public int Width { get; set; }
        public int Height { get; set; }
        public string Sampler { get; set; }
        public string Scheduler { get; set; }
        public int Seed { get; set; }
        public string Model { get; set; }
        public string ArtStyleDefName { get; set; }
        public ImageType ImageType { get; set; }

        public StableDiffusionSettings()
        {
            // Значения по умолчанию
            Steps = 30;
            CfgScale = 7.5f;
            Width = 512;
            Height = 768;
            Sampler = "Euler a";
            Scheduler = "Automatic"; // С большой буквы для API
            Seed = -1; // Случайный seed
            ArtStyleDefName = "ArtStyle_Realistic";
            PositivePrompt = "";
            NegativePrompt = "ugly, deformed, low quality, blurry, bad anatomy, worst quality";
            ImageType = ImageType.Portrait;
        }
    }
}
