diff --git a/Services/KreaService.cs b/Services/KreaService.cs index cae78b2..38f1dda 100644 --- a/Services/KreaService.cs +++ b/Services/KreaService.cs @@ -92,9 +92,10 @@ namespace Gott.Services }; // Build payload + // Hinweis: Krea unterstützt 'batchSize' nicht mehr ("batch size is no longer supported, + // submit one request per output") -> wir senden pro gewünschtem Bild eine eigene Anfrage. var payload = new Dictionary(); payload["prompt"] = prompt; - payload["batchSize"] = record.BatchSize; if (!MINIMAL_MODELS.Contains(model)) { @@ -117,16 +118,25 @@ namespace Gott.Services client.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (compatible; Gott/1.0)"); var json = JsonSerializer.Serialize(payload); - var content = new StringContent(json, Encoding.UTF8, "application/json"); - var response = await client.PostAsync($"{BASE_URL}{endpoint}", content); - var responseBody = await response.Content.ReadAsStringAsync(); + // Eine Anfrage pro gewünschtem Bild (batchSize wird serverseitig nicht mehr akzeptiert). + var jobs = new List(); + for (int b = 0; b < record.BatchSize; b++) + { + var content = new StringContent(json, Encoding.UTF8, "application/json"); - if (!response.IsSuccessStatusCode) - throw new Exception($"Krea API Fehler {(int)response.StatusCode}: {responseBody}"); + var response = await client.PostAsync($"{BASE_URL}{endpoint}", content); + var responseBody = await response.Content.ReadAsStringAsync(); - var jobsNode = JsonNode.Parse(responseBody); - var jobs = jobsNode is JsonArray arr ? arr.ToList() : new List { jobsNode }; + if (!response.IsSuccessStatusCode) + throw new Exception($"Krea API Fehler {(int)response.StatusCode}: {responseBody}"); + + var node = JsonNode.Parse(responseBody); + if (node is JsonArray arr) + jobs.AddRange(arr.Where(j => j != null)); + else if (node != null) + jobs.Add(node); + } // Wait for all jobs var allUrls = new List();