diff options
| author | Paul Buetow <paul@buetow.org> | 2026-04-20 09:25:00 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-04-20 09:25:00 +0300 |
| commit | e670494adfe00a1fa55c7e8ffcbf0172ff662cce (patch) | |
| tree | c1ec8902f2407ce1168289aa7521507da3b4bae2 /internal/image | |
| parent | af2aa5e5efa82d3bc7cf5530e0a1eee72ba99244 (diff) | |
Fix task 25 comic generation leak handling
Diffstat (limited to 'internal/image')
| -rw-r--r-- | internal/image/gemini.go | 13 |
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 } |
