summaryrefslogtreecommitdiff
path: root/internal/image/gemini.go
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-04-20 09:25:00 +0300
committerPaul Buetow <paul@buetow.org>2026-04-20 09:25:00 +0300
commite670494adfe00a1fa55c7e8ffcbf0172ff662cce (patch)
treec1ec8902f2407ce1168289aa7521507da3b4bae2 /internal/image/gemini.go
parentaf2aa5e5efa82d3bc7cf5530e0a1eee72ba99244 (diff)
Fix task 25 comic generation leak handling
Diffstat (limited to 'internal/image/gemini.go')
-rw-r--r--internal/image/gemini.go13
1 files changed, 12 insertions, 1 deletions
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
}