|
- namespace Services.Fooocus
- {
- public class Lora
- {
- public bool enabled { get; set; } = false;
- public string model_name { get; set; } = "sd_xl_offset_example-lora_1.0.safetensors";
- public double weight { get; set; } = 0.5;
- }
-
- public class FooocusRequest_Text_to_Image
- {
- public string prompt { get; set; } = "";
- public string negative_prompt { get; set; } = "blurry, low quality, distorted, watermark, text, extra limbs, cropped";
- public string[] style_selections { get; set; } = new string[0];
- public string performance_selection { get; set; } = "Speed";//Speed, Quality, Extreme Speed
- public string aspect_ratios_selection { get; set; } = "1152*896";
- public int image_number { get; set; } = 1;
- public int image_seed { get; set; } = -1;
-
- public double sharpness { get; set; } = 2.0; //0-30
- public double guidance_scale { get; set; } = 4.0;//1-30
-
- public string base_model_name { get; set; }= "juggernautXL_v8Rundiffusion.safetensors";
- public string refiner_model_name { get; set; } = "None";
- public double refiner_switch { get; set; } = 0.5;
-
- public bool require_base64 { get; set; } = false;
- public bool async_process { get; set; } = false;
-
- public Lora[] loras { get; set; } = new Lora[0];
- }
-
- public class FooocusRequest
- {
- // --- PARAMÈTRES DE BASE ---
-
- /// <summary>
- /// Description textuelle de l’image à générer.
- /// Exemple : "un chat steampunk sur un toit".
- /// Obligatoire.
- /// </summary>
- public string Prompt { get; set; } = "";
-
- /// <summary>
- /// Liste de ce que l’on veut éviter (qualité faible, flou...).
- /// Exemple : "blurry, low quality".
- /// Recommandé pour améliorer la sortie.
- /// </summary>
- public string NegativePrompt { get; set; } = "blurry, low quality, distorted, watermark, text, extra limbs, cropped";
-
- /// <summary>
- /// Largeur de l’image en pixels.
- /// Valeurs courantes : 512, 768, 1024.
- /// Défaut = 768.
- /// </summary>
- public int Width { get; set; } = 768;
-
- /// <summary>
- /// Hauteur de l’image en pixels.
- /// Valeurs courantes : 512, 768, 1024.
- /// Défaut = 768.
- /// </summary>
- public int Height { get; set; } = 768;
-
- /// <summary>
- /// Nombre d’itérations de diffusion (steps).
- /// Plus c’est haut, plus c’est détaillé mais lent.
- /// Recommandé : 20–40.
- /// Défaut = 30.
- /// </summary>
- public int Steps { get; set; } = 40;
-
- /// <summary>
- /// Influence du prompt sur le rendu (CFG scale).
- /// Valeurs typiques : 5–12.
- /// Recommandé = 7.5.
- /// </summary>
- public double GuidanceScale { get; set; } = 9.0;
-
-
- // --- STYLE & PERFORMANCE ---
-
- /// <summary>
- /// Liste des styles appliqués (ex. "Fooocus V2", "Fooocus Enhance").
- /// Peut rester vide.
- /// </summary>
- public string[] StyleSelections { get; set; } = new string[0];
-
- /// <summary>
- /// Mode de performance.
- /// Options : "Speed", "Quality", "Extreme Speed".
- /// Défaut = "Speed".
- /// </summary>
- public string PerformanceSelection { get; set; } = "Speed";
-
- /// <summary>
- /// À quel moment le modèle "refiner" intervient (0 = jamais, 1 = fin).
- /// Défaut = 0.5.
- /// </summary>
- public double RefinerSwitch { get; set; } = 0.0;
-
- /// <summary>
- /// Netteté appliquée à l’image finale.
- /// Valeurs : 1.0 (douce) à 3.0 (très nette).
- /// Défaut = 2.0.
- /// </summary>
- public double Sharpness { get; set; } = 2.0;
-
-
- // --- SEED & BATCH ---
-
- /// <summary>
- /// Seed de génération.
- /// -1 = aléatoire.
- /// Utiliser une seed fixe pour reproductibilité.
- /// </summary>
- public int ImageSeed { get; set; } = -1;
-
- /// <summary>
- /// Nombre d’images à générer en une requête.
- /// Défaut = 1.
- /// </summary>
- public int ImageNumber { get; set; } = 1;
-
- /// <summary>
- /// Ratio prédéfini de l’image (format).
- /// Exemple : "768*768", "1152*896".
- /// Défaut = "768*768".
- /// </summary>
- public string AspectRatiosSelection { get; set; } = "768*768";
-
-
- // --- CONTROLNET / IMAGE PROMPTS ---
-
- /// <summary>
- /// Première image de référence (ControlNet).
- /// Peut être une URL ou un chemin.
- /// </summary>
- public string? CnImg1 { get; set; }
-
- /// <summary>
- /// Type de ControlNet pour CnImg1 (ex. "Canny", "Depth", "ImagePrompt").
- /// </summary>
- public string? CnType1 { get; set; }
-
- /// <summary>
- /// Poids de l’influence de CnImg1 (0–1).
- /// Défaut ≈ 0.8.
- /// </summary>
- public double? CnWeight1 { get; set; }
-
- /// <summary>
- /// Étape à laquelle arrêter ControlNet (0–1).
- /// Défaut ≈ 0.2.
- /// </summary>
- public double? CnStop1 { get; set; }
-
- // (Idem pour 4 images maximum)
- public string? CnImg2 { get; set; }
- public string? CnType2 { get; set; }
- public double? CnWeight2 { get; set; }
- public double? CnStop2 { get; set; }
-
- public string? CnImg3 { get; set; }
- public string? CnType3 { get; set; }
- public double? CnWeight3 { get; set; }
- public double? CnStop3 { get; set; }
-
- public string? CnImg4 { get; set; }
- public string? CnType4 { get; set; }
- public double? CnWeight4 { get; set; }
- public double? CnStop4 { get; set; }
-
-
- // --- LORAS ---
-
- /// <summary>
- /// Utiliser les LoRAs par défaut du modèle.
- /// Défaut = true.
- /// </summary>
- public bool UseDefaultLoras { get; set; } = false;
-
- /// <summary>
- /// URLs de LoRAs personnalisés (séparés par des virgules).
- /// </summary>
- public string? LorasCustomUrls { get; set; }
-
- /// <summary>
- /// Poids d’influence des LoRAs.
- /// Défaut = 1.0.
- /// </summary>
- public double? LorasWeight { get; set; } = 0.0;
-
-
- // --- INPAINTING ---
-
- /// <summary>
- /// Image d’entrée pour l’inpainting (corriger une zone).
- /// </summary>
- public string? InpaintInputImage { get; set; }
-
- /// <summary>
- /// Masque de l’inpainting (zones à modifier en noir).
- /// </summary>
- public string? InpaintInputMask { get; set; }
-
-
- // --- OUTPAINTING ---
-
- /// <summary>
- /// Mode d’outpainting (agrandir une image au-delà des bords).
- /// Exemple : "left,right,top".
- /// </summary>
- public string? OutpaintSelections { get; set; }
-
- /// <summary>
- /// Distance d’extension en haut (en pixels).
- /// Défaut = 0.
- /// </summary>
- public int OutpaintDistanceTop { get; set; } = 0;
-
- public int OutpaintDistanceLeft { get; set; } = 0;
- public int OutpaintDistanceRight { get; set; } = 0;
- public int OutpaintDistanceBottom { get; set; } = 0;
-
-
- // --- UPSCALE / VARIATIONS ---
-
- /// <summary>
- /// Méthode appliquée : "Upscale", "Variation", "Outpaint".
- /// </summary>
- public string? UovMethod { get; set; }
-
- /// <summary>
- /// Image d’entrée pour upscale ou variation.
- /// </summary>
- public string? UovInputImage { get; set; }
-
- }
-
- }
|