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 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; }
}
}