pygpt-net 2.6.31__py3-none-any.whl → 2.6.32__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 (56) hide show
  1. pygpt_net/CHANGELOG.txt +7 -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/common.py +18 -83
  9. pygpt_net/controller/lang/custom.py +2 -2
  10. pygpt_net/controller/media/__init__.py +12 -0
  11. pygpt_net/controller/media/media.py +115 -0
  12. pygpt_net/controller/realtime/realtime.py +27 -2
  13. pygpt_net/controller/ui/mode.py +16 -2
  14. pygpt_net/core/audio/backend/pyaudio/realtime.py +51 -14
  15. pygpt_net/core/audio/output.py +3 -2
  16. pygpt_net/core/image/image.py +6 -5
  17. pygpt_net/core/realtime/worker.py +1 -5
  18. pygpt_net/core/render/web/body.py +24 -3
  19. pygpt_net/core/text/utils.py +54 -2
  20. pygpt_net/core/types/image.py +7 -1
  21. pygpt_net/core/video/__init__.py +12 -0
  22. pygpt_net/core/video/video.py +290 -0
  23. pygpt_net/data/config/config.json +19 -4
  24. pygpt_net/data/config/models.json +75 -3
  25. pygpt_net/data/config/settings.json +194 -6
  26. pygpt_net/data/css/web-blocks.css +6 -0
  27. pygpt_net/data/css/web-chatgpt.css +6 -0
  28. pygpt_net/data/css/web-chatgpt_wide.css +6 -0
  29. pygpt_net/data/locale/locale.de.ini +30 -2
  30. pygpt_net/data/locale/locale.en.ini +40 -7
  31. pygpt_net/data/locale/locale.es.ini +30 -2
  32. pygpt_net/data/locale/locale.fr.ini +30 -2
  33. pygpt_net/data/locale/locale.it.ini +30 -2
  34. pygpt_net/data/locale/locale.pl.ini +33 -2
  35. pygpt_net/data/locale/locale.uk.ini +30 -2
  36. pygpt_net/data/locale/locale.zh.ini +30 -2
  37. pygpt_net/data/locale/plugin.cmd_web.en.ini +8 -0
  38. pygpt_net/item/model.py +22 -1
  39. pygpt_net/provider/api/google/__init__.py +38 -2
  40. pygpt_net/provider/api/google/video.py +364 -0
  41. pygpt_net/provider/api/openai/realtime/realtime.py +1 -2
  42. pygpt_net/provider/core/config/patch.py +226 -178
  43. pygpt_net/provider/core/model/patch.py +17 -2
  44. pygpt_net/provider/web/duckduck_search.py +212 -0
  45. pygpt_net/ui/layout/toolbox/audio.py +55 -0
  46. pygpt_net/ui/layout/toolbox/footer.py +14 -58
  47. pygpt_net/ui/layout/toolbox/image.py +3 -14
  48. pygpt_net/ui/layout/toolbox/raw.py +52 -0
  49. pygpt_net/ui/layout/toolbox/split.py +48 -0
  50. pygpt_net/ui/layout/toolbox/toolbox.py +8 -8
  51. pygpt_net/ui/layout/toolbox/video.py +49 -0
  52. {pygpt_net-2.6.31.dist-info → pygpt_net-2.6.32.dist-info}/METADATA +23 -11
  53. {pygpt_net-2.6.31.dist-info → pygpt_net-2.6.32.dist-info}/RECORD +56 -46
  54. {pygpt_net-2.6.31.dist-info → pygpt_net-2.6.32.dist-info}/LICENSE +0 -0
  55. {pygpt_net-2.6.31.dist-info → pygpt_net-2.6.32.dist-info}/WHEEL +0 -0
  56. {pygpt_net-2.6.31.dist-info → pygpt_net-2.6.32.dist-info}/entry_points.txt +0 -0
@@ -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
@@ -1127,6 +1128,8 @@ settings.audio.input.stop_interval.desc = Intervallo in secondi per la trascrizi
1127
1128
  settings.audio.input.timeout = Timeout di registrazione
1128
1129
  settings.audio.input.timeout.continuous = Abilita timeout in modalità continua
1129
1130
  settings.audio.input.timeout.desc = Timeout (secondi) per l'arresto automatico della registrazione, 0 per disabilitare, predefinito: 120
1131
+ settings.audio.input.vad.prefix = Padding prefisso VAD (in ms)
1132
+ settings.audio.input.vad.silence = Silenzio finale VAD (in ms)
1130
1133
  settings.audio.output.backend = Backend per l'uscita audio
1131
1134
  settings.audio.output.backend.desc = Seleziona il backend per l'uscita audio.
1132
1135
  settings.audio.output.device = Dispositivo per l'uscita audio
@@ -1198,6 +1201,7 @@ settings.func_call.native = Usa chiamate di funzione API native
1198
1201
  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
1202
  settings.img_dialog_open = Apri la finestra di dialogo dell'immagine dopo la generazione (Modalità immagine)
1200
1203
  settings.img_prompt_model = Modello di generazione del prompt
1204
+ settings.img_prompt_model.desc = LLM utilizzato per affinare il tuo prompt prima della generazione di immagini (non il modello di immagini)
1201
1205
  settings.img_quality = Qualità dell'immagine
1202
1206
  settings.img_resolution = Dimensione dell'immagine
1203
1207
  settings.layout.animation.disable = Disabilita animazioni
@@ -1296,6 +1300,8 @@ settings.prompt.expert = Esperto: Master prompt
1296
1300
  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
1301
  settings.prompt.img = Generazione immagine
1298
1302
  settings.prompt.img.desc = Prompt per generare comandi per DALL-E (se la modalità grezza è disabilitata). Solo modalità immagine.
1303
+ settings.prompt.video = Generazione video
1304
+ settings.prompt.video.desc = Prompt per generare prompt per il modello video (se la modalità raw è disattivata). Solo modalità Immagine/Video.
1299
1305
  settings.remote_tools.code_interpreter = Interprete del codice
1300
1306
  settings.remote_tools.code_interpreter.desc = Abilita l'attrezzo remoto `code_interpreter` in modalità Chat / tramite API delle Risposte di OpenAI.
1301
1307
  settings.remote_tools.file_search = File search
@@ -1339,7 +1345,9 @@ settings.section.ctx = Contesto
1339
1345
  settings.section.debug = Debug
1340
1346
  settings.section.files = File e allegati
1341
1347
  settings.section.general = Generale
1342
- settings.section.images = Immagini
1348
+ settings.section.images = Immagini e video
1349
+ settings.section.images.image = Immagine
1350
+ settings.section.images.video = Video
1343
1351
  settings.section.layout = Layout
1344
1352
  settings.section.llama_index = Indici / LlamaIndex
1345
1353
  settings.section.llama-index.chat = Chat
@@ -1367,6 +1375,22 @@ settings.upload.data_dir.desc = Abilita per memorizzare tutto in una singola dir
1367
1375
  settings.upload.store = Conserva gli allegati nella cartella di upload del workdir
1368
1376
  settings.upload.store.desc = Abilita la conservazione di una copia locale degli allegati caricati per un uso futuro
1369
1377
  settings.use_context = Usa contesto (memoria)
1378
+ settings.video.aspect_ratio = Rapporto d'aspetto
1379
+ settings.video.aspect_ratio.desc = Rapporto d'aspetto del fotogramma (es. 16:9, 9:16, 1:1); la disponibilità dipende dal modello selezionato
1380
+ settings.video.duration = Durata video
1381
+ settings.video.duration.desc = Lunghezza della clip in secondi; i limiti possono variare in base al modello
1382
+ settings.video.fps = FPS
1383
+ settings.video.fps.desc = Fotogrammi al secondo (es. 24, 25, 30); può essere arrotondato o ignorato dal modello
1384
+ settings.video.generate_audio = Genera audio
1385
+ settings.video.generate_audio.desc = Include audio di sottofondo sintetizzato se supportato dal modello
1386
+ settings.video.negative_prompt = Prompt negativo
1387
+ settings.video.negative_prompt.desc = Parole o frasi da evitare nel risultato (separate da virgole)
1388
+ settings.video.prompt_model = Modello di miglioramento del prompt
1389
+ settings.video.prompt_model.desc = LLM utilizzato per affinare il tuo prompt prima della generazione video (non il modello video)
1390
+ settings.video.resolution = Risoluzione video
1391
+ settings.video.resolution.desc = Risoluzione di uscita target (es. 720p, 1080p); la disponibilità dipende dal modello
1392
+ settings.video.seed = Seme
1393
+ settings.video.seed.desc = Seme casuale opzionale per risultati riproducibili; lascia vuoto per casuale
1370
1394
  settings.vision.capture.auto = Cattura automatica
1371
1395
  settings.vision.capture.enabled = Fotocamera
1372
1396
  settings.vision.capture.height = Altezza cattura fotocamera (px)
@@ -1526,6 +1550,10 @@ updater.check.launch = Controlla all'avvio
1526
1550
  update.released = build
1527
1551
  update.snap = Vai allo Snap Store
1528
1552
  update.title = Controllo degli aggiornamenti
1553
+ vid.status.downloading = Download del video... si prega di attendere...
1554
+ vid.status.generating = Generazione video da
1555
+ vid.status.prompt.error = Si è verificato un errore nel prompt di miglioramento
1556
+ vid.status.prompt.wait = Preparazione del prompt... si prega di attendere...
1529
1557
  vision.capture.auto = Cattura automatica
1530
1558
  vision.capture.auto.click = La cattura automatica è abilitata!
1531
1559
  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
@@ -1128,6 +1132,8 @@ settings.audio.input.stop_interval.desc = Interwał w sekundach dla automatyczne
1128
1132
  settings.audio.input.timeout = Limit czasu nagrywania
1129
1133
  settings.audio.input.timeout.continuous = Włącz limit czasu w trybie ciągłym
1130
1134
  settings.audio.input.timeout.desc = Limit czasu (w sekundach) dla automatycznego zatrzymania nagrywania, 0 aby wyłączyć, domyślnie: 120
1135
+ settings.audio.input.vad.prefix = VAD prefix padding (in ms)
1136
+ settings.audio.input.vad.silence = VAD end silence (in ms)
1131
1137
  settings.audio.output.backend = Backend dla wyjścia audio
1132
1138
  settings.audio.output.backend.desc = Wybierz backend dla wyjścia audio.
1133
1139
  settings.audio.output.device = Urządzenie do wyjścia audio
@@ -1199,6 +1205,7 @@ settings.func_call.native = Używaj natywnych wywołań funkcji API
1199
1205
  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
1206
  settings.img_dialog_open = Otwórz okno dialogowe obrazu po wygenerowaniu (Tryb obrazu)
1201
1207
  settings.img_prompt_model = Model do generowania promptów
1208
+ settings.img_prompt_model.desc = LLM used to refine your prompt before image generation (not the image model)
1202
1209
  settings.img_quality = Jakość obrazu
1203
1210
  settings.img_resolution = Rozmiar obrazu
1204
1211
  settings.layout.animation.disable = Wyłącz animacje
@@ -1297,6 +1304,8 @@ settings.prompt.expert = Ekspert: Główna wskazówka
1297
1304
  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
1305
  settings.prompt.img = Generowanie obrazu
1299
1306
  settings.prompt.img.desc = Prompt do generowania poleceń dla DALL-E (jeśli surowy tryb jest wyłączony). Tylko tryb obrazu.
1307
+ settings.prompt.video = Video generation
1308
+ settings.prompt.video.desc = Prompt for generating prompts for video model (if raw-mode is disabled). Image / Videos mode only.
1300
1309
  settings.remote_tools.code_interpreter = Interpreter kodu
1301
1310
  settings.remote_tools.code_interpreter.desc = Włącz narzędzie `code_interpreter` w trybie Czat / za pośrednictwem OpenAI Responses API.
1302
1311
  settings.remote_tools.file_search = File search
@@ -1340,7 +1349,9 @@ settings.section.ctx = Kontekst
1340
1349
  settings.section.debug = Debugowanie
1341
1350
  settings.section.files = Pliki i załączniki
1342
1351
  settings.section.general = Ogólne
1343
- settings.section.images = Obrazy
1352
+ settings.section.images = Obrazy i wideo
1353
+ settings.section.images.image = Image
1354
+ settings.section.images.video = Video
1344
1355
  settings.section.layout = Wygląd
1345
1356
  settings.section.llama_index = Indeksy / LlamaIndex
1346
1357
  settings.section.llama-index.chat = Czat
@@ -1368,6 +1379,22 @@ settings.upload.data_dir.desc = Włącz, aby przechowywać wszystko w jednym kat
1368
1379
  settings.upload.store = Przechowuj załączniki w katalogu upload w katalogu roboczym
1369
1380
  settings.upload.store.desc = Włącz przechowywanie lokalnej kopii przesłanych załączników do przyszłego użytku
1370
1381
  settings.use_context = Włącz kontekst (pamięć)
1382
+ settings.video.aspect_ratio = Aspect ratio
1383
+ settings.video.aspect_ratio.desc = Frame aspect ratio (e.g., 16:9, 9:16, 1:1); availability depends on the selected model
1384
+ settings.video.duration = Video duration
1385
+ settings.video.duration.desc = Clip length in seconds; limits may vary by model
1386
+ settings.video.fps = FPS
1387
+ settings.video.fps.desc = Frames per second (e.g., 24, 25, 30); may be rounded or ignored by the model
1388
+ settings.video.generate_audio = Generate audio
1389
+ settings.video.generate_audio.desc = Include synthesized background audio if supported by the model
1390
+ settings.video.negative_prompt = Negative prompt
1391
+ settings.video.negative_prompt.desc = Words or phrases to avoid in the output (comma-separated)
1392
+ settings.video.prompt_model = Prompt enhancement model
1393
+ settings.video.prompt_model.desc = LLM used to refine your prompt before video generation (not the video model)
1394
+ settings.video.resolution = Video resolution
1395
+ settings.video.resolution.desc = Target output resolution (e.g., 720p, 1080p); availability depends on the model
1396
+ settings.video.seed = Seed
1397
+ settings.video.seed.desc = Optional random seed for reproducible results; leave empty for random
1371
1398
  settings.vision.capture.auto = Auto przechwyt.
1372
1399
  settings.vision.capture.enabled = Kamera
1373
1400
  settings.vision.capture.height = Kamera - obraz szerokość (px)
@@ -1527,6 +1554,10 @@ updater.check.launch = Sprawdzaj przy uruchamianiu
1527
1554
  update.released = wydanie
1528
1555
  update.snap = Pobierz ze Snap Store
1529
1556
  update.title = Sprawdzanie dostępności aktualizacji
1557
+ vid.status.downloading = Downloading video... please wait...
1558
+ vid.status.generating = Generating video from
1559
+ vid.status.prompt.error = Enhancement prompt error occured
1560
+ vid.status.prompt.wait = Preparing prompt... please wait...
1530
1561
  vision.capture.auto = Auto przechwyt.
1531
1562
  vision.capture.auto.click = Auto przechwyt. jest włączone!
1532
1563
  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
@@ -1127,6 +1128,8 @@ settings.audio.input.stop_interval.desc = Інтервал у секундах
1127
1128
  settings.audio.input.timeout = Тайм-аут запису
1128
1129
  settings.audio.input.timeout.continuous = Увімкнути тайм-аут у безперервному режимі
1129
1130
  settings.audio.input.timeout.desc = Тайм-аут (в секундах) для автоматичної зупинки запису, 0 для відключення, за замовчуванням: 120
1131
+ settings.audio.input.vad.prefix = Заповнення префікса VAD (в мс)
1132
+ settings.audio.input.vad.silence = Кінцева тиша VAD (в мс)
1130
1133
  settings.audio.output.backend = Бекенд для аудіовиходу
1131
1134
  settings.audio.output.backend.desc = Виберіть бекенд для аудіовиходу.
1132
1135
  settings.audio.output.device = Пристрій для аудіовиходу
@@ -1198,6 +1201,7 @@ settings.func_call.native = Використовувати рідні викли
1198
1201
  settings.func_call.native.desc = Якщо увімкнено, програма буде використовувати рідні виклики функцій API замість внутрішнього формату pygpt і нижченаведених запитів команд не використовуватимуться. Лише режими чату та асистентів.
1199
1202
  settings.img_dialog_open = Відкрити діалогове вікно зображення після генерації (Режим зображення)
1200
1203
  settings.img_prompt_model = Модель Генерації Запиту
1204
+ settings.img_prompt_model.desc = LLM, що використовується для уточнення вашого запиту перед генерацією зображень (не модель зображень)
1201
1205
  settings.img_quality = Якість Зображення
1202
1206
  settings.img_resolution = Розмір Зображення
1203
1207
  settings.layout.animation.disable = Вимкнути анімації
@@ -1296,6 +1300,8 @@ settings.prompt.expert = Експерт: Основний запит
1296
1300
  settings.prompt.expert.desc = Інструкція (системний запит) для ведучого експерта, як керувати підеекспертами. Інструкції для підеекспертів даються з їхніх налаштувань.
1297
1301
  settings.prompt.img = Генерація зображення
1298
1302
  settings.prompt.img.desc = Підказка для генерації команддля DALL-E (якщо вимкнено сирівний режим). Тільки режим зображення.
1303
+ settings.prompt.video = Генерація відео
1304
+ settings.prompt.video.desc = Запит для генерації запитів для відеомоделі (якщо режим без обробки вимкнено). Тільки режим Зображення/Відео.
1299
1305
  settings.remote_tools.code_interpreter = Інтерпретатор коду
1300
1306
  settings.remote_tools.code_interpreter.desc = Увімкніть віддалений інструмент `code_interpreter` у режимі Чат / через Responses API OpenAI.
1301
1307
  settings.remote_tools.file_search = File search
@@ -1339,7 +1345,9 @@ settings.section.ctx = Контекст
1339
1345
  settings.section.debug = Налагодження
1340
1346
  settings.section.files = Файли та вкладення
1341
1347
  settings.section.general = Загальні
1342
- settings.section.images = Зображення
1348
+ settings.section.images = Зображення і відео
1349
+ settings.section.images.image = Зображення
1350
+ settings.section.images.video = Відео
1343
1351
  settings.section.layout = Макет
1344
1352
  settings.section.llama_index = Індекси / LlamaIndex
1345
1353
  settings.section.llama-index.chat = Чат
@@ -1367,6 +1375,22 @@ settings.upload.data_dir.desc = Увімкніть, щоб зберігати в
1367
1375
  settings.upload.store = Зберігати вкладення у директорії завантаження робочого каталогу
1368
1376
  settings.upload.store.desc = Увімкнути зберігання локальної копії завантажених вкладень для майбутнього використання
1369
1377
  settings.use_context = Використовувати контекст (пам'ять)
1378
+ settings.video.aspect_ratio = Співвідношення сторін
1379
+ settings.video.aspect_ratio.desc = Співвідношення сторін кадру (наприклад, 16:9, 9:16, 1:1); доступність залежить від вибраної моделі
1380
+ settings.video.duration = Тривалість відео
1381
+ settings.video.duration.desc = Довжина кліпу в секундах; межі можуть відрізнятися залежно від моделі
1382
+ settings.video.fps = FPS
1383
+ settings.video.fps.desc = Кількість кадрів на секунду (наприклад, 24, 25, 30); може бути округлена або проігнорована моделлю
1384
+ settings.video.generate_audio = Генерувати аудіо
1385
+ settings.video.generate_audio.desc = Включити синтезоване фонове аудіо, якщо модель його підтримує
1386
+ settings.video.negative_prompt = Негативний запит
1387
+ settings.video.negative_prompt.desc = Слова чи фрази для уникнення в результаті (через кому)
1388
+ settings.video.prompt_model = Модель покращення запиту
1389
+ settings.video.prompt_model.desc = LLM, що використовується для уточнення вашого запиту перед генерацією відео (не відеомодель)
1390
+ settings.video.resolution = Роздільна здатність відео
1391
+ settings.video.resolution.desc = Цільова вихідна роздільна здатність (наприклад, 720p, 1080p); доступність залежить від моделі
1392
+ settings.video.seed = Seed
1393
+ settings.video.seed.desc = Опціональний випадковий seed для відтворюваних результатів; залиште порожнім для випадкового
1370
1394
  settings.vision.capture.auto = Автоматичне захоплення
1371
1395
  settings.vision.capture.enabled = Камера
1372
1396
  settings.vision.capture.height = Висота захоплення з камери (пікселі)
@@ -1526,6 +1550,10 @@ updater.check.launch = Перевіряти при запуску
1526
1550
  update.released = збірка
1527
1551
  update.snap = Перейти до Snap Store
1528
1552
  update.title = Перевірка оновлень
1553
+ vid.status.downloading = Завантаження відео... будь ласка, зачекайте...
1554
+ vid.status.generating = Генерація відео з
1555
+ vid.status.prompt.error = Виникла помилка під час покращення запиту
1556
+ vid.status.prompt.wait = Підготовка запиту... будь ласка, зачекайте...
1529
1557
  vision.capture.auto = Автоматичне захоплення
1530
1558
  vision.capture.auto.click = Увімкнуто автоматичне захоплення!
1531
1559
  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提供的模型進行聊天
@@ -1127,6 +1128,8 @@ settings.audio.input.stop_interval.desc = 自动转录音频片段的间隔(
1127
1128
  settings.audio.input.timeout = 录音超时
1128
1129
  settings.audio.input.timeout.continuous = 在连续模式下启用超时
1129
1130
  settings.audio.input.timeout.desc = 自动停止录音的超时时间(秒),0为禁用,默认:120
1131
+ settings.audio.input.vad.prefix = VAD 前缀填充(以毫秒为单位)
1132
+ settings.audio.input.vad.silence = VAD 结束静音(以毫秒为单位)
1130
1133
  settings.audio.output.backend = 音频输出的后端
1131
1134
  settings.audio.output.backend.desc = 选择音频输出的后端。
1132
1135
  settings.audio.output.device = 音频输出的设备
@@ -1198,6 +1201,7 @@ settings.func_call.native = 使用本机 API 函数调用
1198
1201
  settings.func_call.native.desc = 如果启用,应用程序将使用本机 API 函数调用,而不是内部 pygpt 格式,并且下面的命令提示将不被使用。仅聊天和助手模式。
1199
1202
  settings.img_dialog_open = 生成后打开图像对话框(图像模式)
1200
1203
  settings.img_prompt_model = DALL-E:提示生成模型
1204
+ settings.img_prompt_model.desc = 用于在图像生成前优化您的提示的LLM(不是图像模型)
1201
1205
  settings.img_quality = DALL-E:图像质量
1202
1206
  settings.img_resolution = DALL-E:图像尺寸
1203
1207
  settings.layout.animation.disable = 禁用动画
@@ -1296,6 +1300,8 @@ settings.prompt.expert = 专家:主提示
1296
1300
  settings.prompt.expert.desc = 对主专家如何处理奴隶专家的指令(系统提示)。奴隶专家的指令根据他们的预设给出。
1297
1301
  settings.prompt.img = DALL-E:生成图像
1298
1302
  settings.prompt.img.desc = 提示用于生成DALL-E的命令(如果原始模式被禁用)。仅图像模式。
1303
+ settings.prompt.video = 视频生成
1304
+ settings.prompt.video.desc = 为视频模型生成提示(如果未禁用原始模式)。仅限图像/视频模式。
1299
1305
  settings.remote_tools.code_interpreter = 代码解释器
1300
1306
  settings.remote_tools.code_interpreter.desc = 在聊天模式/通过 OpenAI Responses API 启用“code_interpreter”远程工具。
1301
1307
  settings.remote_tools.file_search = File search
@@ -1339,7 +1345,9 @@ settings.section.ctx = 上下文
1339
1345
  settings.section.debug = 调试
1340
1346
  settings.section.files = 文件和附件
1341
1347
  settings.section.general = 一般
1342
- settings.section.images = 圖像
1348
+ settings.section.images = 图像和视频
1349
+ settings.section.images.image = 图像
1350
+ settings.section.images.video = 视频
1343
1351
  settings.section.layout = 布局
1344
1352
  settings.section.llama_index = 索引 / LlamaIndex
1345
1353
  settings.section.llama-index.chat = 聊天
@@ -1367,6 +1375,22 @@ settings.upload.data_dir.desc = 启用以将所有内容存储在一个数据目
1367
1375
  settings.upload.store = 在工作目录上传目录中存储附件
1368
1376
  settings.upload.store.desc = 启用以存储上传附件的本地副本以供将来使用
1369
1377
  settings.use_context = 使用上下文(记忆)
1378
+ settings.video.aspect_ratio = 纵横比
1379
+ settings.video.aspect_ratio.desc = 帧的纵横比(例如,16:9、9:16、1:1);可用性取决于所选模型
1380
+ settings.video.duration = 视频时长
1381
+ settings.video.duration.desc = 剪辑长度(以秒为单位);限制可能因模型而异
1382
+ settings.video.fps = FPS
1383
+ settings.video.fps.desc = 每秒帧数(例如,24、25、30);可能会被模型四舍五入或忽略
1384
+ settings.video.generate_audio = 生成音频
1385
+ settings.video.generate_audio.desc = 如果模型支持,包含合成背景音频
1386
+ settings.video.negative_prompt = 负面提示
1387
+ settings.video.negative_prompt.desc = 在输出中要避免的词语或短语(用逗号分隔)
1388
+ settings.video.prompt_model = 提示增强模型
1389
+ settings.video.prompt_model.desc = 用于在视频生成前优化您的提示的LLM(不是视频模型)
1390
+ settings.video.resolution = 视频分辨率
1391
+ settings.video.resolution.desc = 目标输出分辨率(例如,720p,1080p);可用性取决于模型
1392
+ settings.video.seed = 随机种子
1393
+ settings.video.seed.desc = 可选的随机种子以获得可重复的结果;留空为随机
1370
1394
  settings.vision.capture.auto = 自动捕获
1371
1395
  settings.vision.capture.enabled = 相机
1372
1396
  settings.vision.capture.height = 相机高度(px)
@@ -1526,6 +1550,10 @@ updater.check.launch = 啟動時檢查
1526
1550
  update.released = 發布時間
1527
1551
  update.snap = 前往Snap商店
1528
1552
  update.title = 檢查更新中
1553
+ vid.status.downloading = 正在下载视频...请稍候...
1554
+ vid.status.generating = 正在从中生成视频
1555
+ vid.status.prompt.error = 提示增强出错
1556
+ vid.status.prompt.wait = 正在准备提示...请稍候...
1529
1557
  vision.capture.auto = 自動捕獲
1530
1558
  vision.capture.auto.click = 已啟用自動捕獲!
1531
1559
  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