summaryrefslogtreecommitdiff
path: root/internal/image
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-04-20 00:02:07 +0300
committerPaul Buetow <paul@buetow.org>2026-04-20 00:02:07 +0300
commita35ca6f40de73e93372ade6f2d74c231389799e2 (patch)
treefaf7a53d476cbd6d01b694443e8e601cec9257db /internal/image
parent6130cae3fa396cff94653225e47326b642e270f3 (diff)
Fix task 25: keep comic generation single-language and single-style
Diffstat (limited to 'internal/image')
-rw-r--r--internal/image/gemini.go2
-rw-r--r--internal/image/gemini_test.go28
2 files changed, 29 insertions, 1 deletions
diff --git a/internal/image/gemini.go b/internal/image/gemini.go
index 85da3a8..15373e2 100644
--- a/internal/image/gemini.go
+++ b/internal/image/gemini.go
@@ -185,7 +185,7 @@ func (c *GeminiProvider) GenerateImage(ctx context.Context, prompt, outputFile s
if strings.TrimSpace(outputFile) == "" {
return fmt.Errorf("output file is required")
}
- results, err := c.Search(ctx, &SearchOptions{Query: prompt})
+ results, err := c.Search(ctx, &SearchOptions{CustomPrompt: prompt})
if err != nil {
return err
}
diff --git a/internal/image/gemini_test.go b/internal/image/gemini_test.go
index bb3affe..bbc9dcd 100644
--- a/internal/image/gemini_test.go
+++ b/internal/image/gemini_test.go
@@ -107,6 +107,34 @@ func TestGeminiProvider_Search_CustomPromptSkipsTextGeneration(t *testing.T) {
}
}
+func TestGeminiProvider_GenerateImage_UsesCustomPrompt(t *testing.T) {
+ originalText := geminiGenerateText
+ originalImage := geminiGenerateImage
+ t.Cleanup(func() {
+ geminiGenerateText = originalText
+ geminiGenerateImage = originalImage
+ })
+
+ geminiGenerateText = func(context.Context, *GeminiProvider, string, string, string, float32, int32) (string, error) {
+ t.Fatal("unexpected text generation for comic prompt")
+ return "", nil
+ }
+
+ var gotPrompt string
+ geminiGenerateImage = func(_ context.Context, _ *GeminiProvider, prompt, _ string) ([]byte, string, error) {
+ gotPrompt = prompt
+ return mustJPEGBytes(t), "image/jpeg", nil
+ }
+
+ client := NewGeminiProvider(&GeminiConfig{APIKey: "test-key"})
+ if err := client.GenerateImage(context.Background(), "Art style: comic. FULL-BLEED SINGLE ILLUSTRATION.", t.TempDir()+"/out.png"); err != nil {
+ t.Fatalf("GenerateImage() unexpected error: %v", err)
+ }
+ if gotPrompt != "Art style: comic. FULL-BLEED SINGLE ILLUSTRATION." {
+ t.Fatalf("GenerateImage() prompt = %q, want custom prompt", gotPrompt)
+ }
+}
+
func TestGeminiProvider_Search_GeneratedPromptFlow(t *testing.T) {
originalText := geminiGenerateText
originalImage := geminiGenerateImage