namespace AIImages.Models { /// /// Запрос на генерацию изображения /// public class GenerationRequest { public string Prompt { 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 bool SaveImagesToServer { get; set; } } /// /// Результат генерации изображения /// public class GenerationResult { public bool Success { get; set; } public byte[] ImageData { get; set; } public string ErrorMessage { get; set; } public string SavedPath { get; set; } public GenerationRequest Request { get; set; } public static GenerationResult Failure(string error) { return new GenerationResult { Success = false, ErrorMessage = error }; } public static GenerationResult SuccessResult( byte[] imageData, string savedPath, GenerationRequest request ) { return new GenerationResult { Success = true, ImageData = imageData, SavedPath = savedPath, Request = request, }; } } /// /// Прогресс генерации изображения /// public class GenerationProgress { /// /// Процент завершения (0.0 - 1.0) /// public double Progress { get; set; } /// /// Текущий шаг /// public int CurrentStep { get; set; } /// /// Общее количество шагов /// public int TotalSteps { get; set; } /// /// Оставшееся время в секундах (приблизительно) /// public double EtaRelative { get; set; } /// /// Идет ли генерация в данный момент /// public bool IsActive { get; set; } } }