From e670494adfe00a1fa55c7e8ffcbf0172ff662cce Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Mon, 20 Apr 2026 09:25:00 +0300 Subject: Fix task 25 comic generation leak handling --- internal/image/gemini.go | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'internal/image') diff --git a/internal/image/gemini.go b/internal/image/gemini.go index 15373e2..d2f710c 100644 --- a/internal/image/gemini.go +++ b/internal/image/gemini.go @@ -173,6 +173,13 @@ func (c *GeminiProvider) IsAvailable() error { // GenerateImage renders the first generated image to outputFile. func (c *GeminiProvider) GenerateImage(ctx context.Context, prompt, outputFile string) error { + return c.GenerateImageWithReferences(ctx, prompt, outputFile, nil) +} + +// GenerateImageWithReferences renders the first generated image to outputFile, +// optionally conditioning the model on prior page images so comic pages stay +// visually consistent across the full PDF. +func (c *GeminiProvider) GenerateImageWithReferences(ctx context.Context, prompt, outputFile string, refs [][]byte) error { if c == nil { return fmt.Errorf("image provider is nil") } @@ -185,7 +192,11 @@ 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{CustomPrompt: prompt}) + opts := &SearchOptions{CustomPrompt: prompt} + if len(refs) > 0 { + opts.ReferenceImages = refs + } + results, err := c.Search(ctx, opts) if err != nil { return err } -- cgit v1.2.3