pygpt-net 2.6.31__py3-none-any.whl → 2.6.33__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. pygpt_net/CHANGELOG.txt +12 -0
  2. pygpt_net/__init__.py +3 -3
  3. pygpt_net/app.py +3 -1
  4. pygpt_net/app_core.py +3 -1
  5. pygpt_net/config.py +3 -1
  6. pygpt_net/controller/__init__.py +5 -1
  7. pygpt_net/controller/audio/audio.py +13 -0
  8. pygpt_net/controller/chat/attachment.py +2 -0
  9. pygpt_net/controller/chat/common.py +18 -83
  10. pygpt_net/controller/lang/custom.py +2 -2
  11. pygpt_net/controller/media/__init__.py +12 -0
  12. pygpt_net/controller/media/media.py +115 -0
  13. pygpt_net/controller/painter/common.py +10 -11
  14. pygpt_net/controller/painter/painter.py +4 -12
  15. pygpt_net/controller/realtime/realtime.py +27 -2
  16. pygpt_net/controller/ui/mode.py +16 -2
  17. pygpt_net/core/audio/backend/pyaudio/realtime.py +51 -14
  18. pygpt_net/core/audio/output.py +3 -2
  19. pygpt_net/core/camera/camera.py +369 -53
  20. pygpt_net/core/image/image.py +6 -5
  21. pygpt_net/core/realtime/worker.py +1 -5
  22. pygpt_net/core/render/web/body.py +24 -3
  23. pygpt_net/core/text/utils.py +54 -2
  24. pygpt_net/core/types/image.py +7 -1
  25. pygpt_net/core/video/__init__.py +12 -0
  26. pygpt_net/core/video/video.py +290 -0
  27. pygpt_net/data/config/config.json +240 -212
  28. pygpt_net/data/config/models.json +243 -172
  29. pygpt_net/data/config/settings.json +194 -6
  30. pygpt_net/data/css/web-blocks.css +6 -0
  31. pygpt_net/data/css/web-chatgpt.css +6 -0
  32. pygpt_net/data/css/web-chatgpt_wide.css +6 -0
  33. pygpt_net/data/locale/locale.de.ini +31 -2
  34. pygpt_net/data/locale/locale.en.ini +41 -7
  35. pygpt_net/data/locale/locale.es.ini +31 -2
  36. pygpt_net/data/locale/locale.fr.ini +31 -2
  37. pygpt_net/data/locale/locale.it.ini +31 -2
  38. pygpt_net/data/locale/locale.pl.ini +34 -2
  39. pygpt_net/data/locale/locale.uk.ini +31 -2
  40. pygpt_net/data/locale/locale.zh.ini +31 -2
  41. pygpt_net/data/locale/plugin.cmd_web.en.ini +8 -0
  42. pygpt_net/item/model.py +22 -1
  43. pygpt_net/provider/api/google/__init__.py +38 -2
  44. pygpt_net/provider/api/google/video.py +364 -0
  45. pygpt_net/provider/api/openai/realtime/realtime.py +1 -2
  46. pygpt_net/provider/core/config/patch.py +226 -178
  47. pygpt_net/provider/core/model/patch.py +17 -2
  48. pygpt_net/provider/web/duckduck_search.py +212 -0
  49. pygpt_net/ui/layout/toolbox/audio.py +55 -0
  50. pygpt_net/ui/layout/toolbox/footer.py +14 -58
  51. pygpt_net/ui/layout/toolbox/image.py +3 -14
  52. pygpt_net/ui/layout/toolbox/raw.py +52 -0
  53. pygpt_net/ui/layout/toolbox/split.py +48 -0
  54. pygpt_net/ui/layout/toolbox/toolbox.py +8 -8
  55. pygpt_net/ui/layout/toolbox/video.py +49 -0
  56. pygpt_net/ui/widget/draw/painter.py +452 -84
  57. {pygpt_net-2.6.31.dist-info → pygpt_net-2.6.33.dist-info}/METADATA +28 -11
  58. {pygpt_net-2.6.31.dist-info → pygpt_net-2.6.33.dist-info}/RECORD +61 -51
  59. {pygpt_net-2.6.31.dist-info → pygpt_net-2.6.33.dist-info}/LICENSE +0 -0
  60. {pygpt_net-2.6.31.dist-info → pygpt_net-2.6.33.dist-info}/WHEEL +0 -0
  61. {pygpt_net-2.6.31.dist-info → pygpt_net-2.6.33.dist-info}/entry_points.txt +0 -0
@@ -191,6 +191,7 @@ attachments_uploaded.tab = Fichiers téléchargés
191
191
  audio.cache.clear.confirm = Êtes-vous sûr de vouloir supprimer tous les fichiers audio en cache ?
192
192
  audio.cache.clear.success = OK. Tous les fichiers de cache audio ont été effacés.
193
193
  audio.control.btn = Contrôle vocal
194
+ audio.loop = Boucle
194
195
  audio.magic_word.detected = Mot magique détecté !
195
196
  audio.magic_word.invalid = Pas un mot magique :(
196
197
  audio.magic_word.please = S'il vous plaît, le mot magique...
@@ -854,7 +855,7 @@ mode.computer = Utilisation de l'ordinateur
854
855
  mode.computer.tooltip = Utilisation de l'ordinateur (souris, clavier, navigation)
855
856
  mode.expert = Experts (co-opération)
856
857
  mode.expert.tooltip = Appeler des experts en arrière-plan
857
- mode.img = Image
858
+ mode.img = Image et vidéo
858
859
  mode.img.tooltip = Génération d'image avec DALL-E
859
860
  mode.langchain = Langchain
860
861
  mode.langchain.tooltip = Discussion avec les modèles fournis par Langchain
@@ -956,6 +957,7 @@ output.tips.7 = Pour de meilleures performances, désactivez les outils lorsque
956
957
  output.tips.8 = Lorsque vous utilisez des modèles locaux, n’oubliez pas de définir également le modèle local pour le résumé de contexte et les embeddings.
957
958
  output.tips.9 = Pour configurer les fournisseurs d'entrée et de sortie audio, allez dans Plugins -> Paramètres. Pour configurer les appareils audio, allez dans Configuration -> Paramètres -> Audio.
958
959
  output.tips.prefix = Astuce
960
+ painter.btn.crop = Rogner
959
961
  painter.btn.camera.capture = De la caméra
960
962
  painter.btn.capture = Capturer l'image
961
963
  painter.btn.clear = Effacer
@@ -1127,6 +1129,8 @@ settings.audio.input.stop_interval.desc = Intervalle en secondes pour la transcr
1127
1129
  settings.audio.input.timeout = Délai d'enregistrement
1128
1130
  settings.audio.input.timeout.continuous = Activer le délai en mode continu
1129
1131
  settings.audio.input.timeout.desc = Délai (secondes) pour l'arrêt automatique de l'enregistrement, 0 pour désactiver, par défaut : 120
1132
+ settings.audio.input.vad.prefix = Padding du préfixe VAD (en ms)
1133
+ settings.audio.input.vad.silence = Silence de fin VAD (en ms)
1130
1134
  settings.audio.output.backend = Backend pour la sortie audio
1131
1135
  settings.audio.output.backend.desc = Sélectionnez le backend pour la sortie audio.
1132
1136
  settings.audio.output.device = Périphérique pour la sortie audio
@@ -1198,6 +1202,7 @@ settings.func_call.native = Utiliser les appels de fonction API natives
1198
1202
  settings.func_call.native.desc = Si activé, l'application utilisera les appels de fonction API natives au lieu du format interne de pygpt et les commandes prompt ci-dessous ne seront pas utilisées. Modes uniquement Chat et Assistants.
1199
1203
  settings.img_dialog_open = Ouvrir la boîte de dialogue d'image après la génération (Mode image)
1200
1204
  settings.img_prompt_model = Modèle de génération d'invite
1205
+ settings.img_prompt_model.desc = LLM utilisé pour affiner votre invite avant la génération d'images (pas le modèle d'image)
1201
1206
  settings.img_quality = Qualité d'image
1202
1207
  settings.img_resolution = Taille de l'image
1203
1208
  settings.layout.animation.disable = Désactiver les animations
@@ -1296,6 +1301,8 @@ settings.prompt.expert = Expert : Master prompt
1296
1301
  settings.prompt.expert.desc = Instruction (prompt système) pour l'expert Master sur comment gérer les experts esclaves. Les instructions pour les experts esclaves sont données à partir de leurs presets.
1297
1302
  settings.prompt.img = Génération d'image
1298
1303
  settings.prompt.img.desc = Prompt pour générer des commandes pour DALL-E (si le mode brut est désactivé). Mode image uniquement.
1304
+ settings.prompt.video = Génération de vidéo
1305
+ settings.prompt.video.desc = Invite pour générer des invites pour le modèle vidéo (si le mode brut est désactivé). Mode Image/Vidéo uniquement.
1299
1306
  settings.remote_tools.code_interpreter = Interpréteur de code
1300
1307
  settings.remote_tools.code_interpreter.desc = Activer l'outil distant `code_interpreter` en mode Chat/ via OpenAI Responses API.
1301
1308
  settings.remote_tools.file_search = File search
@@ -1339,7 +1346,9 @@ settings.section.ctx = Contexte
1339
1346
  settings.section.debug = Débogage
1340
1347
  settings.section.files = Fichiers et pièces jointes
1341
1348
  settings.section.general = Général
1342
- settings.section.images = Images
1349
+ settings.section.images = Images et vidéos
1350
+ settings.section.images.image = Image
1351
+ settings.section.images.video = Vidéo
1343
1352
  settings.section.layout = Mise en page
1344
1353
  settings.section.llama_index = Indexes / LlamaIndex
1345
1354
  settings.section.llama-index.chat = Chat
@@ -1367,6 +1376,22 @@ settings.upload.data_dir.desc = Activez pour stocker tout dans un seul répertoi
1367
1376
  settings.upload.store = Stocker les pièces jointes dans le répertoire d'upload du répertoire de travail
1368
1377
  settings.upload.store.desc = Activer le stockage d'une copie locale des pièces jointes téléchargées pour une utilisation future
1369
1378
  settings.use_context = Utiliser le contexte (mémoire)
1379
+ settings.video.aspect_ratio = Ratio d'aspect
1380
+ settings.video.aspect_ratio.desc = Ratio d'aspect du cadre (ex. : 16:9, 9:16, 1:1); disponibilité dépend du modèle sélectionné
1381
+ settings.video.duration = Durée de la vidéo
1382
+ settings.video.duration.desc = Longueur du clip en secondes; les limites peuvent varier selon le modèle
1383
+ settings.video.fps = FPS
1384
+ settings.video.fps.desc = Images par seconde (ex. : 24, 25, 30); peut être arrondi ou ignoré par le modèle
1385
+ settings.video.generate_audio = Générer de l'audio
1386
+ settings.video.generate_audio.desc = Inclure un fond audio synthétisé si pris en charge par le modèle
1387
+ settings.video.negative_prompt = Invite négative
1388
+ settings.video.negative_prompt.desc = Mots ou phrases à éviter dans le résultat (séparés par des virgules)
1389
+ settings.video.prompt_model = Modèle d'amélioration de l'invite
1390
+ settings.video.prompt_model.desc = LLM utilisé pour affiner votre invite avant la génération de la vidéo (pas le modèle vidéo)
1391
+ settings.video.resolution = Résolution vidéo
1392
+ settings.video.resolution.desc = Résolution de sortie cible (ex. : 720p, 1080p); disponibilité dépend du modèle
1393
+ settings.video.seed = Graine
1394
+ settings.video.seed.desc = Graine aléatoire facultative pour des résultats reproductibles; laisser vide pour aléatoire
1370
1395
  settings.vision.capture.auto = Capture automatique
1371
1396
  settings.vision.capture.enabled = Caméra
1372
1397
  settings.vision.capture.height = Hauteur de capture par caméra (px)
@@ -1526,6 +1551,10 @@ updater.check.launch = Vérifier au démarrage
1526
1551
  update.released = build
1527
1552
  update.snap = Aller au Snap Store
1528
1553
  update.title = Vérification des mises à jour
1554
+ vid.status.downloading = Téléchargement de la vidéo... veuillez patienter...
1555
+ vid.status.generating = Génération de la vidéo à partir de
1556
+ vid.status.prompt.error = Erreur d'amélioration de l'invite survenue
1557
+ vid.status.prompt.wait = Préparation de l'invite... veuillez patienter...
1529
1558
  vision.capture.auto = Capture automatique
1530
1559
  vision.capture.auto.click = La capture automatique est activée !
1531
1560
  vision.capture.auto.label = Capture automatique activée
@@ -191,6 +191,7 @@ attachments_uploaded.tab = File caricati
191
191
  audio.cache.clear.confirm = Sei sicuro di voler eliminare tutti i file audio memorizzati nella cache?
192
192
  audio.cache.clear.success = OK. Tutti i file della cache audio sono stati cancellati.
193
193
  audio.control.btn = Controllo vocale
194
+ audio.loop = Ciclo
194
195
  audio.magic_word.detected = Parola magica rilevata!
195
196
  audio.magic_word.invalid = Non è una parola magica :(
196
197
  audio.magic_word.please = Per favore, parola magica...
@@ -854,7 +855,7 @@ mode.computer = Uso del computer
854
855
  mode.computer.tooltip = Uso del computer (mouse, tastiera, navigazione)
855
856
  mode.expert = Esperti (cooperazione)
856
857
  mode.expert.tooltip = Chiamare esperti in background
857
- mode.img = Immagine
858
+ mode.img = Immagine e video
858
859
  mode.img.tooltip = Generazione immagini con DALL-E
859
860
  mode.langchain = Langchain
860
861
  mode.langchain.tooltip = Chattare con modelli forniti da Langchain
@@ -956,6 +957,7 @@ output.tips.7 = Per prestazioni migliori, disattiva gli strumenti quando usi mod
956
957
  output.tips.8 = Quando usi modelli locali, ricorda di impostare anche il modello locale per il riassunto del contesto e gli embeddings.
957
958
  output.tips.9 = Per configurare i fornitori di input e output audio, vai su Plugin -> Impostazioni. Per configurare i dispositivi audio, vai su Configurazione -> Impostazioni -> Audio.
958
959
  output.tips.prefix = Suggerimento
960
+ painter.btn.crop = Ritaglia
959
961
  painter.btn.camera.capture = Dalla fotocamera
960
962
  painter.btn.capture = Cattura immagine
961
963
  painter.btn.clear = Pulire
@@ -1127,6 +1129,8 @@ settings.audio.input.stop_interval.desc = Intervallo in secondi per la trascrizi
1127
1129
  settings.audio.input.timeout = Timeout di registrazione
1128
1130
  settings.audio.input.timeout.continuous = Abilita timeout in modalità continua
1129
1131
  settings.audio.input.timeout.desc = Timeout (secondi) per l'arresto automatico della registrazione, 0 per disabilitare, predefinito: 120
1132
+ settings.audio.input.vad.prefix = Padding prefisso VAD (in ms)
1133
+ settings.audio.input.vad.silence = Silenzio finale VAD (in ms)
1130
1134
  settings.audio.output.backend = Backend per l'uscita audio
1131
1135
  settings.audio.output.backend.desc = Seleziona il backend per l'uscita audio.
1132
1136
  settings.audio.output.device = Dispositivo per l'uscita audio
@@ -1198,6 +1202,7 @@ settings.func_call.native = Usa chiamate di funzione API native
1198
1202
  settings.func_call.native.desc = Se abilitato, l'applicazione utilizzerà le chiamate di funzione API native invece del formato interno pygpt e i prompt di comando di seguito non saranno utilizzati. Solo modalità chat e assistenti.
1199
1203
  settings.img_dialog_open = Apri la finestra di dialogo dell'immagine dopo la generazione (Modalità immagine)
1200
1204
  settings.img_prompt_model = Modello di generazione del prompt
1205
+ settings.img_prompt_model.desc = LLM utilizzato per affinare il tuo prompt prima della generazione di immagini (non il modello di immagini)
1201
1206
  settings.img_quality = Qualità dell'immagine
1202
1207
  settings.img_resolution = Dimensione dell'immagine
1203
1208
  settings.layout.animation.disable = Disabilita animazioni
@@ -1296,6 +1301,8 @@ settings.prompt.expert = Esperto: Master prompt
1296
1301
  settings.prompt.expert.desc = Istruzione (prompt del sistema) per l'esperto Master su come gestire gli esperti subalterni. Le istruzioni per gli esperti subalterni sono date dalle loro preimpostazioni.
1297
1302
  settings.prompt.img = Generazione immagine
1298
1303
  settings.prompt.img.desc = Prompt per generare comandi per DALL-E (se la modalità grezza è disabilitata). Solo modalità immagine.
1304
+ settings.prompt.video = Generazione video
1305
+ settings.prompt.video.desc = Prompt per generare prompt per il modello video (se la modalità raw è disattivata). Solo modalità Immagine/Video.
1299
1306
  settings.remote_tools.code_interpreter = Interprete del codice
1300
1307
  settings.remote_tools.code_interpreter.desc = Abilita l'attrezzo remoto `code_interpreter` in modalità Chat / tramite API delle Risposte di OpenAI.
1301
1308
  settings.remote_tools.file_search = File search
@@ -1339,7 +1346,9 @@ settings.section.ctx = Contesto
1339
1346
  settings.section.debug = Debug
1340
1347
  settings.section.files = File e allegati
1341
1348
  settings.section.general = Generale
1342
- settings.section.images = Immagini
1349
+ settings.section.images = Immagini e video
1350
+ settings.section.images.image = Immagine
1351
+ settings.section.images.video = Video
1343
1352
  settings.section.layout = Layout
1344
1353
  settings.section.llama_index = Indici / LlamaIndex
1345
1354
  settings.section.llama-index.chat = Chat
@@ -1367,6 +1376,22 @@ settings.upload.data_dir.desc = Abilita per memorizzare tutto in una singola dir
1367
1376
  settings.upload.store = Conserva gli allegati nella cartella di upload del workdir
1368
1377
  settings.upload.store.desc = Abilita la conservazione di una copia locale degli allegati caricati per un uso futuro
1369
1378
  settings.use_context = Usa contesto (memoria)
1379
+ settings.video.aspect_ratio = Rapporto d'aspetto
1380
+ settings.video.aspect_ratio.desc = Rapporto d'aspetto del fotogramma (es. 16:9, 9:16, 1:1); la disponibilità dipende dal modello selezionato
1381
+ settings.video.duration = Durata video
1382
+ settings.video.duration.desc = Lunghezza della clip in secondi; i limiti possono variare in base al modello
1383
+ settings.video.fps = FPS
1384
+ settings.video.fps.desc = Fotogrammi al secondo (es. 24, 25, 30); può essere arrotondato o ignorato dal modello
1385
+ settings.video.generate_audio = Genera audio
1386
+ settings.video.generate_audio.desc = Include audio di sottofondo sintetizzato se supportato dal modello
1387
+ settings.video.negative_prompt = Prompt negativo
1388
+ settings.video.negative_prompt.desc = Parole o frasi da evitare nel risultato (separate da virgole)
1389
+ settings.video.prompt_model = Modello di miglioramento del prompt
1390
+ settings.video.prompt_model.desc = LLM utilizzato per affinare il tuo prompt prima della generazione video (non il modello video)
1391
+ settings.video.resolution = Risoluzione video
1392
+ settings.video.resolution.desc = Risoluzione di uscita target (es. 720p, 1080p); la disponibilità dipende dal modello
1393
+ settings.video.seed = Seme
1394
+ settings.video.seed.desc = Seme casuale opzionale per risultati riproducibili; lascia vuoto per casuale
1370
1395
  settings.vision.capture.auto = Cattura automatica
1371
1396
  settings.vision.capture.enabled = Fotocamera
1372
1397
  settings.vision.capture.height = Altezza cattura fotocamera (px)
@@ -1526,6 +1551,10 @@ updater.check.launch = Controlla all'avvio
1526
1551
  update.released = build
1527
1552
  update.snap = Vai allo Snap Store
1528
1553
  update.title = Controllo degli aggiornamenti
1554
+ vid.status.downloading = Download del video... si prega di attendere...
1555
+ vid.status.generating = Generazione video da
1556
+ vid.status.prompt.error = Si è verificato un errore nel prompt di miglioramento
1557
+ vid.status.prompt.wait = Preparazione del prompt... si prega di attendere...
1529
1558
  vision.capture.auto = Cattura automatica
1530
1559
  vision.capture.auto.click = La cattura automatica è abilitata!
1531
1560
  vision.capture.auto.label = Cattura automatica abilitata
@@ -1,4 +1,7 @@
1
1
  [LOCALE]
2
+
3
+
4
+
2
5
  about.btn.github = GitHub
3
6
  about.btn.support = Wsparcie
4
7
  about.btn.website = WWW
@@ -191,6 +194,7 @@ attachments_uploaded.tab = Wgrane pliki
191
194
  audio.cache.clear.confirm = Czy na pewno chcesz usunąć wszystkie pliki w pamięci podręcznej audio?
192
195
  audio.cache.clear.success = OK. Wszystkie pliki pamięci podręcznej audio zostały wyczyszczone.
193
196
  audio.control.btn = Kontrola głosowa
197
+ audio.loop = Pętla
194
198
  audio.magic_word.detected = Wykryto magiczne słowo!
195
199
  audio.magic_word.invalid = To nie magiczne słowo :(
196
200
  audio.magic_word.please = Podaj magiczne słowo...
@@ -855,7 +859,7 @@ mode.computer = Kontrola komputera
855
859
  mode.computer.tooltip = Kontrola komputera (mysz, klawiatura)
856
860
  mode.expert = Eksperci (współpraca)
857
861
  mode.expert.tooltip = Eksperci do wezwania w tle
858
- mode.img = Obraz
862
+ mode.img = Obraz i wideo
859
863
  mode.img.tooltip = Generowanie obrazów przy użyciu DALL-E
860
864
  mode.langchain = Langchain
861
865
  mode.langchain.tooltip = Czat z modelami dostarczonymi przez Langchain
@@ -957,6 +961,7 @@ output.tips.7 = Dla lepszej wydajności wyłącz narzędzia podczas korzystania
957
961
  output.tips.8 = Kiedy korzystasz z lokalnych modeli, pamiętaj o ustawieniu lokalnego modelu dla podsumowania kontekstu i osadzeń.
958
962
  output.tips.9 = Aby skonfigurować dostawców wejścia i wyjścia audio, przejdź do Pluginy -> Ustawienia. Aby skonfigurować urządzenia audio, przejdź do Opcje -> Ustawienia -> Audio.
959
963
  output.tips.prefix = Tip
964
+ painter.btn.crop = Przytnij
960
965
  painter.btn.camera.capture = Z kamery
961
966
  painter.btn.capture = Użyj obrazu
962
967
  painter.btn.clear = Wyczyść
@@ -1128,6 +1133,8 @@ settings.audio.input.stop_interval.desc = Interwał w sekundach dla automatyczne
1128
1133
  settings.audio.input.timeout = Limit czasu nagrywania
1129
1134
  settings.audio.input.timeout.continuous = Włącz limit czasu w trybie ciągłym
1130
1135
  settings.audio.input.timeout.desc = Limit czasu (w sekundach) dla automatycznego zatrzymania nagrywania, 0 aby wyłączyć, domyślnie: 120
1136
+ settings.audio.input.vad.prefix = VAD prefix padding (in ms)
1137
+ settings.audio.input.vad.silence = VAD end silence (in ms)
1131
1138
  settings.audio.output.backend = Backend dla wyjścia audio
1132
1139
  settings.audio.output.backend.desc = Wybierz backend dla wyjścia audio.
1133
1140
  settings.audio.output.device = Urządzenie do wyjścia audio
@@ -1199,6 +1206,7 @@ settings.func_call.native = Używaj natywnych wywołań funkcji API
1199
1206
  settings.func_call.native.desc = Jeśli włączone, aplikacja będzie używać natywnych wywołań funkcji API zamiast wewnętrznego formatu pygpt i poniższych promptów poleceń. Tylko tryby czatu i asystentów.
1200
1207
  settings.img_dialog_open = Otwórz okno dialogowe obrazu po wygenerowaniu (Tryb obrazu)
1201
1208
  settings.img_prompt_model = Model do generowania promptów
1209
+ settings.img_prompt_model.desc = LLM used to refine your prompt before image generation (not the image model)
1202
1210
  settings.img_quality = Jakość obrazu
1203
1211
  settings.img_resolution = Rozmiar obrazu
1204
1212
  settings.layout.animation.disable = Wyłącz animacje
@@ -1297,6 +1305,8 @@ settings.prompt.expert = Ekspert: Główna wskazówka
1297
1305
  settings.prompt.expert.desc = Instrukcja (systemowa wskazówka) dla głównego eksperta, jak obsługiwać ekspertów pomocniczych. Instrukcje dla ekspertów pomocniczych są podawane z ich ustawień.
1298
1306
  settings.prompt.img = Generowanie obrazu
1299
1307
  settings.prompt.img.desc = Prompt do generowania poleceń dla DALL-E (jeśli surowy tryb jest wyłączony). Tylko tryb obrazu.
1308
+ settings.prompt.video = Video generation
1309
+ settings.prompt.video.desc = Prompt for generating prompts for video model (if raw-mode is disabled). Image / Videos mode only.
1300
1310
  settings.remote_tools.code_interpreter = Interpreter kodu
1301
1311
  settings.remote_tools.code_interpreter.desc = Włącz narzędzie `code_interpreter` w trybie Czat / za pośrednictwem OpenAI Responses API.
1302
1312
  settings.remote_tools.file_search = File search
@@ -1340,7 +1350,9 @@ settings.section.ctx = Kontekst
1340
1350
  settings.section.debug = Debugowanie
1341
1351
  settings.section.files = Pliki i załączniki
1342
1352
  settings.section.general = Ogólne
1343
- settings.section.images = Obrazy
1353
+ settings.section.images = Obrazy i wideo
1354
+ settings.section.images.image = Image
1355
+ settings.section.images.video = Video
1344
1356
  settings.section.layout = Wygląd
1345
1357
  settings.section.llama_index = Indeksy / LlamaIndex
1346
1358
  settings.section.llama-index.chat = Czat
@@ -1368,6 +1380,22 @@ settings.upload.data_dir.desc = Włącz, aby przechowywać wszystko w jednym kat
1368
1380
  settings.upload.store = Przechowuj załączniki w katalogu upload w katalogu roboczym
1369
1381
  settings.upload.store.desc = Włącz przechowywanie lokalnej kopii przesłanych załączników do przyszłego użytku
1370
1382
  settings.use_context = Włącz kontekst (pamięć)
1383
+ settings.video.aspect_ratio = Aspect ratio
1384
+ settings.video.aspect_ratio.desc = Frame aspect ratio (e.g., 16:9, 9:16, 1:1); availability depends on the selected model
1385
+ settings.video.duration = Video duration
1386
+ settings.video.duration.desc = Clip length in seconds; limits may vary by model
1387
+ settings.video.fps = FPS
1388
+ settings.video.fps.desc = Frames per second (e.g., 24, 25, 30); may be rounded or ignored by the model
1389
+ settings.video.generate_audio = Generate audio
1390
+ settings.video.generate_audio.desc = Include synthesized background audio if supported by the model
1391
+ settings.video.negative_prompt = Negative prompt
1392
+ settings.video.negative_prompt.desc = Words or phrases to avoid in the output (comma-separated)
1393
+ settings.video.prompt_model = Prompt enhancement model
1394
+ settings.video.prompt_model.desc = LLM used to refine your prompt before video generation (not the video model)
1395
+ settings.video.resolution = Video resolution
1396
+ settings.video.resolution.desc = Target output resolution (e.g., 720p, 1080p); availability depends on the model
1397
+ settings.video.seed = Seed
1398
+ settings.video.seed.desc = Optional random seed for reproducible results; leave empty for random
1371
1399
  settings.vision.capture.auto = Auto przechwyt.
1372
1400
  settings.vision.capture.enabled = Kamera
1373
1401
  settings.vision.capture.height = Kamera - obraz szerokość (px)
@@ -1527,6 +1555,10 @@ updater.check.launch = Sprawdzaj przy uruchamianiu
1527
1555
  update.released = wydanie
1528
1556
  update.snap = Pobierz ze Snap Store
1529
1557
  update.title = Sprawdzanie dostępności aktualizacji
1558
+ vid.status.downloading = Downloading video... please wait...
1559
+ vid.status.generating = Generating video from
1560
+ vid.status.prompt.error = Enhancement prompt error occured
1561
+ vid.status.prompt.wait = Preparing prompt... please wait...
1530
1562
  vision.capture.auto = Auto przechwyt.
1531
1563
  vision.capture.auto.click = Auto przechwyt. jest włączone!
1532
1564
  vision.capture.auto.label = Auto przechwytywanie wł.
@@ -191,6 +191,7 @@ attachments_uploaded.tab = Завантажені файли
191
191
  audio.cache.clear.confirm = Ви впевнені, що хочете видалити всі кешовані аудіофайли?
192
192
  audio.cache.clear.success = OK. Усі файли аудіокешу очищено.
193
193
  audio.control.btn = Керування голосом
194
+ audio.loop = Петля
194
195
  audio.magic_word.detected = Магічне слово виявлено!
195
196
  audio.magic_word.invalid = Не магічне слово :(
196
197
  audio.magic_word.please = Магічне слово, будь ласка...
@@ -854,7 +855,7 @@ mode.computer = Використання комп'ютера
854
855
  mode.computer.tooltip = Використання комп'ютера (миша, клавіатура, навігація)
855
856
  mode.expert = Експерти (співпраця)
856
857
  mode.expert.tooltip = Виклик експертів на задній план
857
- mode.img = Зображення
858
+ mode.img = Зображення та відео
858
859
  mode.img.tooltip = Генерація зображень за допомогою DALL-E
859
860
  mode.langchain = Langchain
860
861
  mode.langchain.tooltip = Чат з моделями, наданими Langchain
@@ -956,6 +957,7 @@ output.tips.7 = Для кращої продуктивності відключ
956
957
  output.tips.8 = При використанні локальних моделей пам’ятайте встановлювати локальну модель також для зведення контексту та вбудовувань.
957
958
  output.tips.9 = Щоб налаштувати постачальників вхідних та вихідних аудіосигналів, перейдіть до Плагіни -> Налаштування. Щоб налаштувати аудіопристрої, перейдіть до Конфігурація -> Налаштування -> Аудіо.
958
959
  output.tips.prefix = Порада
960
+ painter.btn.crop = Обрізати
959
961
  painter.btn.camera.capture = З камери
960
962
  painter.btn.capture = Захопити зображення
961
963
  painter.btn.clear = Очистити
@@ -1127,6 +1129,8 @@ settings.audio.input.stop_interval.desc = Інтервал у секундах
1127
1129
  settings.audio.input.timeout = Тайм-аут запису
1128
1130
  settings.audio.input.timeout.continuous = Увімкнути тайм-аут у безперервному режимі
1129
1131
  settings.audio.input.timeout.desc = Тайм-аут (в секундах) для автоматичної зупинки запису, 0 для відключення, за замовчуванням: 120
1132
+ settings.audio.input.vad.prefix = Заповнення префікса VAD (в мс)
1133
+ settings.audio.input.vad.silence = Кінцева тиша VAD (в мс)
1130
1134
  settings.audio.output.backend = Бекенд для аудіовиходу
1131
1135
  settings.audio.output.backend.desc = Виберіть бекенд для аудіовиходу.
1132
1136
  settings.audio.output.device = Пристрій для аудіовиходу
@@ -1198,6 +1202,7 @@ settings.func_call.native = Використовувати рідні викли
1198
1202
  settings.func_call.native.desc = Якщо увімкнено, програма буде використовувати рідні виклики функцій API замість внутрішнього формату pygpt і нижченаведених запитів команд не використовуватимуться. Лише режими чату та асистентів.
1199
1203
  settings.img_dialog_open = Відкрити діалогове вікно зображення після генерації (Режим зображення)
1200
1204
  settings.img_prompt_model = Модель Генерації Запиту
1205
+ settings.img_prompt_model.desc = LLM, що використовується для уточнення вашого запиту перед генерацією зображень (не модель зображень)
1201
1206
  settings.img_quality = Якість Зображення
1202
1207
  settings.img_resolution = Розмір Зображення
1203
1208
  settings.layout.animation.disable = Вимкнути анімації
@@ -1296,6 +1301,8 @@ settings.prompt.expert = Експерт: Основний запит
1296
1301
  settings.prompt.expert.desc = Інструкція (системний запит) для ведучого експерта, як керувати підеекспертами. Інструкції для підеекспертів даються з їхніх налаштувань.
1297
1302
  settings.prompt.img = Генерація зображення
1298
1303
  settings.prompt.img.desc = Підказка для генерації команддля DALL-E (якщо вимкнено сирівний режим). Тільки режим зображення.
1304
+ settings.prompt.video = Генерація відео
1305
+ settings.prompt.video.desc = Запит для генерації запитів для відеомоделі (якщо режим без обробки вимкнено). Тільки режим Зображення/Відео.
1299
1306
  settings.remote_tools.code_interpreter = Інтерпретатор коду
1300
1307
  settings.remote_tools.code_interpreter.desc = Увімкніть віддалений інструмент `code_interpreter` у режимі Чат / через Responses API OpenAI.
1301
1308
  settings.remote_tools.file_search = File search
@@ -1339,7 +1346,9 @@ settings.section.ctx = Контекст
1339
1346
  settings.section.debug = Налагодження
1340
1347
  settings.section.files = Файли та вкладення
1341
1348
  settings.section.general = Загальні
1342
- settings.section.images = Зображення
1349
+ settings.section.images = Зображення і відео
1350
+ settings.section.images.image = Зображення
1351
+ settings.section.images.video = Відео
1343
1352
  settings.section.layout = Макет
1344
1353
  settings.section.llama_index = Індекси / LlamaIndex
1345
1354
  settings.section.llama-index.chat = Чат
@@ -1367,6 +1376,22 @@ settings.upload.data_dir.desc = Увімкніть, щоб зберігати в
1367
1376
  settings.upload.store = Зберігати вкладення у директорії завантаження робочого каталогу
1368
1377
  settings.upload.store.desc = Увімкнути зберігання локальної копії завантажених вкладень для майбутнього використання
1369
1378
  settings.use_context = Використовувати контекст (пам'ять)
1379
+ settings.video.aspect_ratio = Співвідношення сторін
1380
+ settings.video.aspect_ratio.desc = Співвідношення сторін кадру (наприклад, 16:9, 9:16, 1:1); доступність залежить від вибраної моделі
1381
+ settings.video.duration = Тривалість відео
1382
+ settings.video.duration.desc = Довжина кліпу в секундах; межі можуть відрізнятися залежно від моделі
1383
+ settings.video.fps = FPS
1384
+ settings.video.fps.desc = Кількість кадрів на секунду (наприклад, 24, 25, 30); може бути округлена або проігнорована моделлю
1385
+ settings.video.generate_audio = Генерувати аудіо
1386
+ settings.video.generate_audio.desc = Включити синтезоване фонове аудіо, якщо модель його підтримує
1387
+ settings.video.negative_prompt = Негативний запит
1388
+ settings.video.negative_prompt.desc = Слова чи фрази для уникнення в результаті (через кому)
1389
+ settings.video.prompt_model = Модель покращення запиту
1390
+ settings.video.prompt_model.desc = LLM, що використовується для уточнення вашого запиту перед генерацією відео (не відеомодель)
1391
+ settings.video.resolution = Роздільна здатність відео
1392
+ settings.video.resolution.desc = Цільова вихідна роздільна здатність (наприклад, 720p, 1080p); доступність залежить від моделі
1393
+ settings.video.seed = Seed
1394
+ settings.video.seed.desc = Опціональний випадковий seed для відтворюваних результатів; залиште порожнім для випадкового
1370
1395
  settings.vision.capture.auto = Автоматичне захоплення
1371
1396
  settings.vision.capture.enabled = Камера
1372
1397
  settings.vision.capture.height = Висота захоплення з камери (пікселі)
@@ -1526,6 +1551,10 @@ updater.check.launch = Перевіряти при запуску
1526
1551
  update.released = збірка
1527
1552
  update.snap = Перейти до Snap Store
1528
1553
  update.title = Перевірка оновлень
1554
+ vid.status.downloading = Завантаження відео... будь ласка, зачекайте...
1555
+ vid.status.generating = Генерація відео з
1556
+ vid.status.prompt.error = Виникла помилка під час покращення запиту
1557
+ vid.status.prompt.wait = Підготовка запиту... будь ласка, зачекайте...
1529
1558
  vision.capture.auto = Автоматичне захоплення
1530
1559
  vision.capture.auto.click = Увімкнуто автоматичне захоплення!
1531
1560
  vision.capture.auto.label = Автоматичне захоплення увімкнуто
@@ -191,6 +191,7 @@ attachments_uploaded.tab = 已上傳的文件
191
191
  audio.cache.clear.confirm = 您确定要删除所有缓存的音频文件吗?
192
192
  audio.cache.clear.success = OK. 所有音频缓存文件已清除。
193
193
  audio.control.btn = 语音控制
194
+ audio.loop = 循环
194
195
  audio.magic_word.detected = 檢測到魔法詞!
195
196
  audio.magic_word.invalid = 不是魔法词 :(
196
197
  audio.magic_word.please = 请说魔法词...
@@ -854,7 +855,7 @@ mode.computer = 使用计算机
854
855
  mode.computer.tooltip = 使用计算机(鼠标、键盘、导航)
855
856
  mode.expert = 专家 (合作)
856
857
  mode.expert.tooltip = 背景中呼叫专家
857
- mode.img = 圖像
858
+ mode.img = 图像和视频
858
859
  mode.img.tooltip = 使用DALL-E生成圖像
859
860
  mode.langchain = Langchain模式
860
861
  mode.langchain.tooltip = 使用Langchain提供的模型進行聊天
@@ -956,6 +957,7 @@ output.tips.7 = 为更好的性能,当不需要工具时,请在使用本地
956
957
  output.tips.8 = 在使用本地模型时,记得也为上下文摘要和嵌入设置本地模型。
957
958
  output.tips.9 = 要配置音频输入和输出提供商,请转到插件 -> 设置。要配置音频设备,请转到配置 -> 设置 -> 音频。
958
959
  output.tips.prefix = 提示
960
+ painter.btn.crop = 裁剪
959
961
  painter.btn.camera.capture = 从相机
960
962
  painter.btn.capture = 使用图像
961
963
  painter.btn.clear = 清除
@@ -1127,6 +1129,8 @@ settings.audio.input.stop_interval.desc = 自动转录音频片段的间隔(
1127
1129
  settings.audio.input.timeout = 录音超时
1128
1130
  settings.audio.input.timeout.continuous = 在连续模式下启用超时
1129
1131
  settings.audio.input.timeout.desc = 自动停止录音的超时时间(秒),0为禁用,默认:120
1132
+ settings.audio.input.vad.prefix = VAD 前缀填充(以毫秒为单位)
1133
+ settings.audio.input.vad.silence = VAD 结束静音(以毫秒为单位)
1130
1134
  settings.audio.output.backend = 音频输出的后端
1131
1135
  settings.audio.output.backend.desc = 选择音频输出的后端。
1132
1136
  settings.audio.output.device = 音频输出的设备
@@ -1198,6 +1202,7 @@ settings.func_call.native = 使用本机 API 函数调用
1198
1202
  settings.func_call.native.desc = 如果启用,应用程序将使用本机 API 函数调用,而不是内部 pygpt 格式,并且下面的命令提示将不被使用。仅聊天和助手模式。
1199
1203
  settings.img_dialog_open = 生成后打开图像对话框(图像模式)
1200
1204
  settings.img_prompt_model = DALL-E:提示生成模型
1205
+ settings.img_prompt_model.desc = 用于在图像生成前优化您的提示的LLM(不是图像模型)
1201
1206
  settings.img_quality = DALL-E:图像质量
1202
1207
  settings.img_resolution = DALL-E:图像尺寸
1203
1208
  settings.layout.animation.disable = 禁用动画
@@ -1296,6 +1301,8 @@ settings.prompt.expert = 专家:主提示
1296
1301
  settings.prompt.expert.desc = 对主专家如何处理奴隶专家的指令(系统提示)。奴隶专家的指令根据他们的预设给出。
1297
1302
  settings.prompt.img = DALL-E:生成图像
1298
1303
  settings.prompt.img.desc = 提示用于生成DALL-E的命令(如果原始模式被禁用)。仅图像模式。
1304
+ settings.prompt.video = 视频生成
1305
+ settings.prompt.video.desc = 为视频模型生成提示(如果未禁用原始模式)。仅限图像/视频模式。
1299
1306
  settings.remote_tools.code_interpreter = 代码解释器
1300
1307
  settings.remote_tools.code_interpreter.desc = 在聊天模式/通过 OpenAI Responses API 启用“code_interpreter”远程工具。
1301
1308
  settings.remote_tools.file_search = File search
@@ -1339,7 +1346,9 @@ settings.section.ctx = 上下文
1339
1346
  settings.section.debug = 调试
1340
1347
  settings.section.files = 文件和附件
1341
1348
  settings.section.general = 一般
1342
- settings.section.images = 圖像
1349
+ settings.section.images = 图像和视频
1350
+ settings.section.images.image = 图像
1351
+ settings.section.images.video = 视频
1343
1352
  settings.section.layout = 布局
1344
1353
  settings.section.llama_index = 索引 / LlamaIndex
1345
1354
  settings.section.llama-index.chat = 聊天
@@ -1367,6 +1376,22 @@ settings.upload.data_dir.desc = 启用以将所有内容存储在一个数据目
1367
1376
  settings.upload.store = 在工作目录上传目录中存储附件
1368
1377
  settings.upload.store.desc = 启用以存储上传附件的本地副本以供将来使用
1369
1378
  settings.use_context = 使用上下文(记忆)
1379
+ settings.video.aspect_ratio = 纵横比
1380
+ settings.video.aspect_ratio.desc = 帧的纵横比(例如,16:9、9:16、1:1);可用性取决于所选模型
1381
+ settings.video.duration = 视频时长
1382
+ settings.video.duration.desc = 剪辑长度(以秒为单位);限制可能因模型而异
1383
+ settings.video.fps = FPS
1384
+ settings.video.fps.desc = 每秒帧数(例如,24、25、30);可能会被模型四舍五入或忽略
1385
+ settings.video.generate_audio = 生成音频
1386
+ settings.video.generate_audio.desc = 如果模型支持,包含合成背景音频
1387
+ settings.video.negative_prompt = 负面提示
1388
+ settings.video.negative_prompt.desc = 在输出中要避免的词语或短语(用逗号分隔)
1389
+ settings.video.prompt_model = 提示增强模型
1390
+ settings.video.prompt_model.desc = 用于在视频生成前优化您的提示的LLM(不是视频模型)
1391
+ settings.video.resolution = 视频分辨率
1392
+ settings.video.resolution.desc = 目标输出分辨率(例如,720p,1080p);可用性取决于模型
1393
+ settings.video.seed = 随机种子
1394
+ settings.video.seed.desc = 可选的随机种子以获得可重复的结果;留空为随机
1370
1395
  settings.vision.capture.auto = 自动捕获
1371
1396
  settings.vision.capture.enabled = 相机
1372
1397
  settings.vision.capture.height = 相机高度(px)
@@ -1526,6 +1551,10 @@ updater.check.launch = 啟動時檢查
1526
1551
  update.released = 發布時間
1527
1552
  update.snap = 前往Snap商店
1528
1553
  update.title = 檢查更新中
1554
+ vid.status.downloading = 正在下载视频...请稍候...
1555
+ vid.status.generating = 正在从中生成视频
1556
+ vid.status.prompt.error = 提示增强出错
1557
+ vid.status.prompt.wait = 正在准备提示...请稍候...
1529
1558
  vision.capture.auto = 自動捕獲
1530
1559
  vision.capture.auto.click = 已啟用自動捕獲!
1531
1560
  vision.capture.auto.label = 啟用自動捕獲
@@ -31,6 +31,14 @@ cmd.web_url_raw.tooltip = Example prompt: Give me the raw content of http://exam
31
31
  cmd.web_urls.description = Enable `web_urls` command execution.\nIf enabled, the model will be able to search the Web and get a list of found URLs.
32
32
  cmd.web_urls.label = Enable: getting a list of URLs from search results
33
33
  cmd.web_urls.tooltip = Example prompt: Give me the list of URLs for query (question).
34
+ ddg_backend.description = Engine backend: auto, html, lite.
35
+ ddg_backend.label = Backend
36
+ ddg_region.description = DuckDuckGo region, e.g. us-en, pl-pl, wt-wt
37
+ ddg_region.label = Region (kl)
38
+ ddg_safesearch.description = Allowed values: on, moderate, off
39
+ ddg_safesearch.label = SafeSearch
40
+ ddg_timelimit.description = Use: d, w, m, y or leave empty for any time.
41
+ ddg_timelimit.label = Time limit (df)
34
42
  disable_ssl.description = Disables SSL verification when crawling web pages.
35
43
  disable_ssl.label = Disable SSL verification
36
44
  google_api_cx.description = You can find your CX ID at https://programmablesearchengine.google.com/controlpanel/all\nRemember to enable the "Search on ALL internet pages" option in project settings.
pygpt_net/item/model.py CHANGED
@@ -6,7 +6,7 @@
6
6
  # GitHub: https://github.com/szczyglis-dev/py-gpt #
7
7
  # MIT License #
8
8
  # Created By : Marcin Szczygliński #
9
- # Updated Date: 2025.08.28 09:00:00 #
9
+ # Updated Date: 2025.09.01 23:00:00 #
10
10
  # ================================================== #
11
11
 
12
12
  import json
@@ -19,6 +19,7 @@ from pygpt_net.core.types import (
19
19
  MODE_AUDIO,
20
20
  MULTIMODAL_AUDIO,
21
21
  OPENAI_COMPATIBLE_PROVIDERS,
22
+ MULTIMODAL_VIDEO,
22
23
  )
23
24
 
24
25
  class ModelItem:
@@ -287,6 +288,26 @@ class ModelItem:
287
288
  return True
288
289
  return False
289
290
 
291
+ def is_video_input(self) -> bool:
292
+ """
293
+ Check if model supports video input
294
+
295
+ :return: True if supports video input
296
+ """
297
+ if MULTIMODAL_VIDEO in self.input:
298
+ return True
299
+ return False
300
+
301
+ def is_video_output(self) -> bool:
302
+ """
303
+ Check if model supports video output
304
+
305
+ :return: True if supports video output
306
+ """
307
+ if MULTIMODAL_VIDEO in self.output:
308
+ return True
309
+ return False
310
+
290
311
  def dump(self) -> str:
291
312
  """
292
313
  Dump event to json string
@@ -6,9 +6,10 @@
6
6
  # GitHub: https://github.com/szczyglis-dev/py-gpt #
7
7
  # MIT License #
8
8
  # Created By : Marcin Szczygliński #
9
- # Updated Date: 2025.08.30 06:00:00 #
9
+ # Updated Date: 2025.09.01 23:00:00 #
10
10
  # ================================================== #
11
11
 
12
+ import os
12
13
  from typing import Optional, Dict, Any
13
14
 
14
15
  from google.genai import types as gtypes
@@ -31,6 +32,7 @@ from .tools import Tools
31
32
  from .audio import Audio
32
33
  from .image import Image
33
34
  from .realtime import Realtime
35
+ from .video import Video
34
36
 
35
37
  class ApiGoogle:
36
38
  def __init__(self, window=None):
@@ -46,6 +48,7 @@ class ApiGoogle:
46
48
  self.audio = Audio(window)
47
49
  self.image = Image(window)
48
50
  self.realtime = Realtime(window)
51
+ self.video = Video(window)
49
52
  self.client: Optional[genai.Client] = None
50
53
  self.locked = False
51
54
  self.last_client_args: Optional[Dict[str, Any]] = None
@@ -66,12 +69,42 @@ class ApiGoogle:
66
69
  model = ModelItem()
67
70
  model.provider = "google"
68
71
  args = self.window.core.models.prepare_client_args(mode, model)
72
+ config = self.window.core.config
73
+
69
74
  filtered = {}
70
75
  if args.get("api_key"):
71
76
  filtered["api_key"] = args["api_key"]
77
+
78
+ # setup VertexAI
79
+ use_vertex = False
80
+ if config.get("api_native_google.use_vertex", False):
81
+ use_vertex = True
82
+ os.environ["GOOGLE_GENAI_USE_VERTEXAI"] = "1"
83
+ os.environ["GOOGLE_CLOUD_PROJECT"] = config.get("api_native_google.cloud_project", "")
84
+ os.environ["GOOGLE_CLOUD_LOCATION"] = config.get("api_native_google.cloud_location", "us-central1")
85
+ if config.get("api_native_google.app_credentials", ""):
86
+ os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = config.get("api_native_google.app_credentials", "")
87
+ else:
88
+ if os.environ.get("GOOGLE_GENAI_USE_VERTEXAI"):
89
+ del os.environ["GOOGLE_GENAI_USE_VERTEXAI"]
90
+ if os.environ.get("GOOGLE_CLOUD_PROJECT"):
91
+ del os.environ["GOOGLE_CLOUD_PROJECT"]
92
+ if os.environ.get("GOOGLE_CLOUD_LOCATION"):
93
+ del os.environ["GOOGLE_CLOUD_LOCATION"]
94
+ if os.environ.get("GOOGLE_APPLICATION_CREDENTIALS"):
95
+ del os.environ["GOOGLE_APPLICATION_CREDENTIALS"]
96
+
97
+ # append VertexAI params to client args
98
+ if use_vertex:
99
+ filtered["vertexai"] = True
100
+ filtered["project"] = os.environ.get("GOOGLE_CLOUD_PROJECT")
101
+ filtered["location"] = os.environ.get("GOOGLE_CLOUD_LOCATION", "us-central1")
102
+ # filtered["http_options"] = gtypes.HttpOptions(api_version="v1")
103
+
72
104
  if self.client is None or self.last_client_args != filtered:
73
105
  self.client = genai.Client(**filtered)
74
106
  self.last_client_args = filtered
107
+
75
108
  return self.client
76
109
 
77
110
  def call(
@@ -120,7 +153,10 @@ class ApiGoogle:
120
153
  self.vision.append_images(ctx)
121
154
 
122
155
  elif mode == MODE_IMAGE:
123
- return self.image.generate(context=context, extra=extra)
156
+ if context.model.is_video_output():
157
+ return self.video.generate(context=context, extra=extra) # veo, etc.
158
+ else:
159
+ return self.image.generate(context=context, extra=extra) # imagen, etc.
124
160
 
125
161
  elif mode == MODE_ASSISTANT:
126
162
  return False # not implemented for Google