namespace AIImages.Models
{
    /// <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 ArtStyle ArtStyle { get; set; }

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

    /// <summary>
    /// Художественный стиль изображения
    /// </summary>
    public enum ArtStyle
    {
        None, // Без стиля
        Realistic,
        SemiRealistic,
        Anime,
        ConceptArt,
        DigitalPainting,
        OilPainting,
        Sketch,
        CellShaded,
    }
}
