kingkont 0.20.69 → 0.20.70
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.
- package/index.html +1 -0
- package/lib/providers.js +33 -1
- package/package.json +1 -1
- package/renderer/generate.js +2 -0
package/index.html
CHANGED
|
@@ -456,6 +456,7 @@
|
|
|
456
456
|
<button class="seg" data-vid-model="seedance-2-fast" type="button" title="Быстрее, чуть проще качество">⚡ Seedance 2 Fast</button>
|
|
457
457
|
<button class="seg" data-vid-model="kling-o1" type="button" title="Kling O1 — креативный, поддерживает reference-видео">Kling O1</button>
|
|
458
458
|
<button class="seg" data-vid-model="kling-3.0" type="button" title="Kling 3.0 — multi-shot до 15с">Kling 3.0</button>
|
|
459
|
+
<button class="seg" data-vid-model="omni" type="button" title="Gemini Omni — text/image/video→video, до 7 image-рефов, аудио и персонажи">Gemini Omni</button>
|
|
459
460
|
</div>
|
|
460
461
|
</div>
|
|
461
462
|
<div class="field-row" id="videoOptionsRow" style="display: none;">Параметры видео
|
package/lib/providers.js
CHANGED
|
@@ -87,7 +87,14 @@ const KIE_IMAGE_MODELS = {
|
|
|
87
87
|
'gpt-image-1.5': 'gpt-image/1.5-text-to-image',
|
|
88
88
|
};
|
|
89
89
|
const KIE_VIDEO_MODELS = {
|
|
90
|
-
'seedance-2':
|
|
90
|
+
'seedance-2': 'bytedance/seedance-2',
|
|
91
|
+
'seedance-2-fast': 'bytedance/seedance-2-fast',
|
|
92
|
+
'kling-o1': 'kwaivgi/kling-o1',
|
|
93
|
+
'kling-3.0': 'kling-3.0/video',
|
|
94
|
+
// Gemini Omni: text/image/video → video. Поддерживает до 7 image-рефов,
|
|
95
|
+
// до 1 видео (≤30 с), до 3 audio_ids, до 3 character_ids. KIE-doc:
|
|
96
|
+
// docs.kie.ai/market/gemini-omni-video. Slug: gemini-omni-video.
|
|
97
|
+
'omni': 'gemini-omni-video',
|
|
91
98
|
};
|
|
92
99
|
|
|
93
100
|
const CHATIUM_IMAGE_MODELS = {
|
|
@@ -113,6 +120,10 @@ const CHATIUM_VIDEO_MODELS = {
|
|
|
113
120
|
'runway': 'runway',
|
|
114
121
|
'grok-i2v': 'grok-imagine/image-to-video',
|
|
115
122
|
'grok-t2v': 'grok-imagine/text-to-video',
|
|
123
|
+
// Gemini Omni — KIE-only (OpenRouter video API его не имеет, только
|
|
124
|
+
// multimodal-chat Gemini'и читают видео на вход). Через Chatium-proxy
|
|
125
|
+
// должно работать если @start/sdk прокидывает slug в KIE.
|
|
126
|
+
'omni': 'gemini-omni-video',
|
|
116
127
|
};
|
|
117
128
|
|
|
118
129
|
// OpenRouter image-gen модели — приоритетный путь для nano-banana
|
|
@@ -639,6 +650,27 @@ async function _startGenerationViaKie({ kind, prompt, key, imageInputs, videoInp
|
|
|
639
650
|
if (quality) input.quality = quality;
|
|
640
651
|
input.output_format = 'jpg';
|
|
641
652
|
}
|
|
653
|
+
} else if (key === 'omni') {
|
|
654
|
+
// Gemini Omni KIE-формат: image_urls (≤7), video_list ({url,start,ends}),
|
|
655
|
+
// duration ENUM '4'|'6'|'8'|'10' как string, aspect_ratio '16:9'|'9:16',
|
|
656
|
+
// resolution '720p'|'1080p'|'4k'. НЕ принимает reference_image_urls /
|
|
657
|
+
// reference_video_urls — это для seedance/kling.
|
|
658
|
+
if (imageInputs?.length) input.image_urls = imageInputs.slice(0, 7);
|
|
659
|
+
if (videoInputs?.length) {
|
|
660
|
+
// KIE требует объекты {url, start, ends}; берём первое видео целиком
|
|
661
|
+
// (start=0, ends оставим без указания — KIE возьмёт всю длину).
|
|
662
|
+
input.video_list = [{ url: videoInputs[0], start: 0 }];
|
|
663
|
+
}
|
|
664
|
+
if (aspectRatio === '16:9' || aspectRatio === '9:16') {
|
|
665
|
+
input.aspect_ratio = aspectRatio;
|
|
666
|
+
}
|
|
667
|
+
if (resolution === '720p' || resolution === '1080p' || resolution === '4k') {
|
|
668
|
+
input.resolution = resolution;
|
|
669
|
+
}
|
|
670
|
+
// duration в Omni — STRING из {'4','6','8','10'}. Если юзер дал 5 — округлим.
|
|
671
|
+
const dur = +duration || 4;
|
|
672
|
+
const omniDur = dur <= 4 ? '4' : dur <= 6 ? '6' : dur <= 8 ? '8' : '10';
|
|
673
|
+
input.duration = omniDur;
|
|
642
674
|
} else {
|
|
643
675
|
if (imageInputs?.length) input.reference_image_urls = imageInputs;
|
|
644
676
|
if (videoInputs?.length) input.reference_video_urls = videoInputs;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "kingkont",
|
|
3
|
-
"version": "0.20.
|
|
3
|
+
"version": "0.20.70",
|
|
4
4
|
"description": "KingKont \u00b7 Chatium \u2014 \u043d\u043e\u0434-\u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440 \u0441\u0446\u0435\u043d \u0441 AI-\u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0435\u0439 (\u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438/\u0432\u0438\u0434\u0435\u043e/\u0433\u043e\u043b\u043e\u0441/SFX/\u043c\u0443\u0437\u044b\u043a\u0430/\u0442\u0435\u043a\u0441\u0442)",
|
|
5
5
|
"main": "main.js",
|
|
6
6
|
"bin": {
|
package/renderer/generate.js
CHANGED
|
@@ -1728,6 +1728,7 @@ $('genSubmit').addEventListener('click', async () => {
|
|
|
1728
1728
|
'seedance-2-fast': 'bytedance/seedance-2-fast',
|
|
1729
1729
|
'kling-o1': 'kwaivgi/kling-o1',
|
|
1730
1730
|
'kling-3.0': 'kling-3.0/video',
|
|
1731
|
+
'omni': 'gemini-omni-video',
|
|
1731
1732
|
};
|
|
1732
1733
|
const mk = state.videoModel || 'seedance-2';
|
|
1733
1734
|
patch.modelKey = mk;
|
|
@@ -1977,6 +1978,7 @@ $('genSubmit').addEventListener('click', async () => {
|
|
|
1977
1978
|
'seedance-2-fast': 'bytedance/seedance-2-fast',
|
|
1978
1979
|
'kling-o1': 'kwaivgi/kling-o1',
|
|
1979
1980
|
'kling-3.0': 'kling-3.0/video',
|
|
1981
|
+
'omni': 'gemini-omni-video',
|
|
1980
1982
|
}[state.videoModel || 'seedance-2'] || 'bytedance/seedance-2'),
|
|
1981
1983
|
refs: mediaRefs.map(r => ({ name: r.name, type: r.type, file: r.file })),
|
|
1982
1984
|
// Связь с родительской нодой (выведена через "вытягивание"). Хранится
|