Files
ai-images/Source/AIImages/Models/GenerationRequest.cs

89 lines
2.7 KiB
C#

namespace AIImages.Models
{
/// <summary>
/// Запрос на генерацию изображения
/// </summary>
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; }
}
/// <summary>
/// Результат генерации изображения
/// </summary>
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,
};
}
}
/// <summary>
/// Прогресс генерации изображения
/// </summary>
public class GenerationProgress
{
/// <summary>
/// Процент завершения (0.0 - 1.0)
/// </summary>
public double Progress { get; set; }
/// <summary>
/// Текущий шаг
/// </summary>
public int CurrentStep { get; set; }
/// <summary>
/// Общее количество шагов
/// </summary>
public int TotalSteps { get; set; }
/// <summary>
/// Оставшееся время в секундах (приблизительно)
/// </summary>
public double EtaRelative { get; set; }
/// <summary>
/// Идет ли генерация в данный момент
/// </summary>
public bool IsActive { get; set; }
/// <summary>
/// Превью текущего состояния генерации (base64)
/// </summary>
public string CurrentImage { get; set; }
}
}