diff options
Diffstat (limited to 'internal/processor/processor.go')
| -rw-r--r-- | internal/processor/processor.go | 42 |
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() |
