summaryrefslogtreecommitdiff
path: root/internal/processor/processor.go
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-04-02 07:56:31 +0300
committerPaul Buetow <paul@buetow.org>2026-04-02 07:56:31 +0300
commitb7302580d840fc3d7e3d127df49d79ef12d79d9c (patch)
tree458132230aa1337be76701cb7af6f8c26b3e0d55 /internal/processor/processor.go
parent0f2b16d1ccf461b706dd426727ed188c4ea3b60a (diff)
Align GUI and CLI provider wiring
Diffstat (limited to 'internal/processor/processor.go')
-rw-r--r--internal/processor/processor.go42
1 files changed, 42 insertions, 0 deletions
diff --git a/internal/processor/processor.go b/internal/processor/processor.go
index 7d18aab..3ecbce8 100644
--- a/internal/processor/processor.go
+++ b/internal/processor/processor.go
@@ -634,6 +634,8 @@ func (p *Processor) guiConfigForRunMode() *gui.Config {
ImageProvider: imageProvider,
OpenAIKey: cli.GetOpenAIKey(),
GoogleAPIKey: cli.GetGoogleAPIKey(),
+ NanoBananaModel: p.nanoBananaModelForRunMode(),
+ NanoBananaTextModel: p.nanoBananaTextModelForRunMode(),
GeminiTTSModel: p.geminiTTSModel(),
GeminiVoice: p.geminiVoice(),
TranslationProvider: translation.Provider(viper.GetString("translation.provider")),
@@ -642,6 +644,46 @@ func (p *Processor) guiConfigForRunMode() *gui.Config {
}
}
+func (p *Processor) nanoBananaModelForRunMode() string {
+ if p != nil && p.flags != nil && p.flags.NanoBananaModelSpecified {
+ if model := strings.TrimSpace(p.flags.NanoBananaModel); model != "" {
+ return model
+ }
+ }
+
+ if model := strings.TrimSpace(viper.GetString("image.nanobanana_model")); model != "" {
+ return model
+ }
+
+ if p != nil && p.flags != nil {
+ if model := strings.TrimSpace(p.flags.NanoBananaModel); model != "" {
+ return model
+ }
+ }
+
+ return image.DefaultNanoBananaModel
+}
+
+func (p *Processor) nanoBananaTextModelForRunMode() string {
+ if p != nil && p.flags != nil && p.flags.NanoBananaTextModelSpecified {
+ if model := strings.TrimSpace(p.flags.NanoBananaTextModel); model != "" {
+ return model
+ }
+ }
+
+ if model := strings.TrimSpace(viper.GetString("image.nanobanana_text_model")); model != "" {
+ return model
+ }
+
+ if p != nil && p.flags != nil {
+ if model := strings.TrimSpace(p.flags.NanoBananaTextModel); model != "" {
+ return model
+ }
+ }
+
+ return image.DefaultNanoBananaTextModel
+}
+
func (p *Processor) newImageSearcher() (image.ImageSearcher, error) {
provider := p.imageProviderForRunMode()