From 1641bf11b6317b9974e718822c90c1cf13dd527d Mon Sep 17 00:00:00 2001 From: Meleki Date: Thu, 18 Jun 2026 17:14:30 +0200 Subject: [PATCH] Fix Krea image generation by removing unsupported batchSize MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Krea removed the batchSize parameter ("Generation batch size is no longer supported, submit one request per output"), so every image request failed with HTTP 422 — breaking session/agent avatar generation. Drop batchSize from the payload and instead send one request per requested image in a loop, collecting all returned jobs. Endpoint paths, Bearer auth and base URL are unchanged. - KreaService: remove batchSize from payload - KreaService: loop record.BatchSize times, one POST per image, aggregate jobs (handles both array and single-object responses) Co-Authored-By: Claude Opus 4.8 --- Services/KreaService.cs | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) 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();