@nodaro/prompts 1.40.0 → 1.41.0
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/dist/{chunk-C46256GZ.js → chunk-QBUSJGV3.js} +43 -2
- package/dist/chunk-QBUSJGV3.js.map +1 -0
- package/dist/{chunk-DQFQJECU.cjs → chunk-XTOSNRWT.cjs} +43 -2
- package/dist/chunk-XTOSNRWT.cjs.map +1 -0
- package/dist/entries/doctrine.cjs +46 -46
- package/dist/entries/doctrine.js +1 -1
- package/dist/index.cjs +46 -46
- package/dist/index.js +1 -1
- package/package.json +2 -2
- package/src/prompt-wizard-categories.ts +4 -0
- package/src/provider-prompt-doctrine.ts +44 -0
- package/dist/chunk-C46256GZ.js.map +0 -1
- package/dist/chunk-DQFQJECU.cjs.map +0 -1
package/dist/index.cjs
CHANGED
|
@@ -10,7 +10,7 @@ require('./chunk-4GKTOVFM.cjs');
|
|
|
10
10
|
var chunkXUZXBY75_cjs = require('./chunk-XUZXBY75.cjs');
|
|
11
11
|
var chunkUXDKZVNN_cjs = require('./chunk-UXDKZVNN.cjs');
|
|
12
12
|
var chunkSZU4MZ36_cjs = require('./chunk-SZU4MZ36.cjs');
|
|
13
|
-
var
|
|
13
|
+
var chunkXTOSNRWT_cjs = require('./chunk-XTOSNRWT.cjs');
|
|
14
14
|
var chunkNAFD6MGH_cjs = require('./chunk-NAFD6MGH.cjs');
|
|
15
15
|
var chunk2NJTFCKQ_cjs = require('./chunk-2NJTFCKQ.cjs');
|
|
16
16
|
require('./chunk-TUHVGM6V.cjs');
|
|
@@ -558,183 +558,183 @@ Object.defineProperty(exports, "computePackSidecarCoverage", {
|
|
|
558
558
|
});
|
|
559
559
|
Object.defineProperty(exports, "AD_CREATIVE_ANALYSIS_FIELDS", {
|
|
560
560
|
enumerable: true,
|
|
561
|
-
get: function () { return
|
|
561
|
+
get: function () { return chunkXTOSNRWT_cjs.AD_CREATIVE_ANALYSIS_FIELDS; }
|
|
562
562
|
});
|
|
563
563
|
Object.defineProperty(exports, "AD_CREATIVE_ANALYSIS_SYSTEM_PROMPT", {
|
|
564
564
|
enumerable: true,
|
|
565
|
-
get: function () { return
|
|
565
|
+
get: function () { return chunkXTOSNRWT_cjs.AD_CREATIVE_ANALYSIS_SYSTEM_PROMPT; }
|
|
566
566
|
});
|
|
567
567
|
Object.defineProperty(exports, "AUDIO_WIZARD_CATEGORIES", {
|
|
568
568
|
enumerable: true,
|
|
569
|
-
get: function () { return
|
|
569
|
+
get: function () { return chunkXTOSNRWT_cjs.AUDIO_WIZARD_CATEGORIES; }
|
|
570
570
|
});
|
|
571
571
|
Object.defineProperty(exports, "DEFAULT_OWN_MOTION", {
|
|
572
572
|
enumerable: true,
|
|
573
|
-
get: function () { return
|
|
573
|
+
get: function () { return chunkXTOSNRWT_cjs.DEFAULT_OWN_MOTION; }
|
|
574
574
|
});
|
|
575
575
|
Object.defineProperty(exports, "IMAGE_REFERENCE_PROMPT_DOCTRINE", {
|
|
576
576
|
enumerable: true,
|
|
577
|
-
get: function () { return
|
|
577
|
+
get: function () { return chunkXTOSNRWT_cjs.IMAGE_REFERENCE_PROMPT_DOCTRINE; }
|
|
578
578
|
});
|
|
579
579
|
Object.defineProperty(exports, "IMAGE_WIZARD_CATEGORIES", {
|
|
580
580
|
enumerable: true,
|
|
581
|
-
get: function () { return
|
|
581
|
+
get: function () { return chunkXTOSNRWT_cjs.IMAGE_WIZARD_CATEGORIES; }
|
|
582
582
|
});
|
|
583
583
|
Object.defineProperty(exports, "LLM_CHAT_WIZARD_CATEGORIES", {
|
|
584
584
|
enumerable: true,
|
|
585
|
-
get: function () { return
|
|
585
|
+
get: function () { return chunkXTOSNRWT_cjs.LLM_CHAT_WIZARD_CATEGORIES; }
|
|
586
586
|
});
|
|
587
587
|
Object.defineProperty(exports, "MUSIC_WIZARD_CATEGORIES", {
|
|
588
588
|
enumerable: true,
|
|
589
|
-
get: function () { return
|
|
589
|
+
get: function () { return chunkXTOSNRWT_cjs.MUSIC_WIZARD_CATEGORIES; }
|
|
590
590
|
});
|
|
591
591
|
Object.defineProperty(exports, "OWN_MOTION_NODE_TYPES", {
|
|
592
592
|
enumerable: true,
|
|
593
|
-
get: function () { return
|
|
593
|
+
get: function () { return chunkXTOSNRWT_cjs.OWN_MOTION_NODE_TYPES; }
|
|
594
594
|
});
|
|
595
595
|
Object.defineProperty(exports, "POST_CONTENT_ANALYSIS_SYSTEM_PROMPT", {
|
|
596
596
|
enumerable: true,
|
|
597
|
-
get: function () { return
|
|
597
|
+
get: function () { return chunkXTOSNRWT_cjs.POST_CONTENT_ANALYSIS_SYSTEM_PROMPT; }
|
|
598
598
|
});
|
|
599
599
|
Object.defineProperty(exports, "PROVIDER_CAPABILITIES", {
|
|
600
600
|
enumerable: true,
|
|
601
|
-
get: function () { return
|
|
601
|
+
get: function () { return chunkXTOSNRWT_cjs.PROVIDER_CAPABILITIES; }
|
|
602
602
|
});
|
|
603
603
|
Object.defineProperty(exports, "PROVIDER_PROMPT_DOCTRINES", {
|
|
604
604
|
enumerable: true,
|
|
605
|
-
get: function () { return
|
|
605
|
+
get: function () { return chunkXTOSNRWT_cjs.PROVIDER_PROMPT_DOCTRINES; }
|
|
606
606
|
});
|
|
607
607
|
Object.defineProperty(exports, "REFERENCE_IMAGE_ROLES", {
|
|
608
608
|
enumerable: true,
|
|
609
|
-
get: function () { return
|
|
609
|
+
get: function () { return chunkXTOSNRWT_cjs.REFERENCE_IMAGE_ROLES; }
|
|
610
610
|
});
|
|
611
611
|
Object.defineProperty(exports, "SCENE3D_FIGURE_REFERENCE_RULE", {
|
|
612
612
|
enumerable: true,
|
|
613
|
-
get: function () { return
|
|
613
|
+
get: function () { return chunkXTOSNRWT_cjs.SCENE3D_FIGURE_REFERENCE_RULE; }
|
|
614
614
|
});
|
|
615
615
|
Object.defineProperty(exports, "SCENE3D_FREE_PLATE_SLOTS", {
|
|
616
616
|
enumerable: true,
|
|
617
|
-
get: function () { return
|
|
617
|
+
get: function () { return chunkXTOSNRWT_cjs.SCENE3D_FREE_PLATE_SLOTS; }
|
|
618
618
|
});
|
|
619
619
|
Object.defineProperty(exports, "SCENE3D_LAYOUT_REFERENCE_SCOPING_FIXTURE", {
|
|
620
620
|
enumerable: true,
|
|
621
|
-
get: function () { return
|
|
621
|
+
get: function () { return chunkXTOSNRWT_cjs.SCENE3D_LAYOUT_REFERENCE_SCOPING_FIXTURE; }
|
|
622
622
|
});
|
|
623
623
|
Object.defineProperty(exports, "SCENE3D_LAYOUT_REFERENCE_SCOPING_LINE", {
|
|
624
624
|
enumerable: true,
|
|
625
|
-
get: function () { return
|
|
625
|
+
get: function () { return chunkXTOSNRWT_cjs.SCENE3D_LAYOUT_REFERENCE_SCOPING_LINE; }
|
|
626
626
|
});
|
|
627
627
|
Object.defineProperty(exports, "SCENE3D_LAYOUT_SCOPING_FOR", {
|
|
628
628
|
enumerable: true,
|
|
629
|
-
get: function () { return
|
|
629
|
+
get: function () { return chunkXTOSNRWT_cjs.SCENE3D_LAYOUT_SCOPING_FOR; }
|
|
630
630
|
});
|
|
631
631
|
Object.defineProperty(exports, "SCENE3D_LAYOUT_SCOPING_IGNORE", {
|
|
632
632
|
enumerable: true,
|
|
633
|
-
get: function () { return
|
|
633
|
+
get: function () { return chunkXTOSNRWT_cjs.SCENE3D_LAYOUT_SCOPING_IGNORE; }
|
|
634
634
|
});
|
|
635
635
|
Object.defineProperty(exports, "SCENE3D_LAYOUT_SCOPING_LOOK_SOURCE", {
|
|
636
636
|
enumerable: true,
|
|
637
|
-
get: function () { return
|
|
637
|
+
get: function () { return chunkXTOSNRWT_cjs.SCENE3D_LAYOUT_SCOPING_LOOK_SOURCE; }
|
|
638
638
|
});
|
|
639
639
|
Object.defineProperty(exports, "SCENE3D_LAYOUT_SCOPING_MARKER", {
|
|
640
640
|
enumerable: true,
|
|
641
|
-
get: function () { return
|
|
641
|
+
get: function () { return chunkXTOSNRWT_cjs.SCENE3D_LAYOUT_SCOPING_MARKER; }
|
|
642
642
|
});
|
|
643
643
|
Object.defineProperty(exports, "SCENE3D_UNREFERENCED_FIGURES_WARNING_CODE", {
|
|
644
644
|
enumerable: true,
|
|
645
|
-
get: function () { return
|
|
645
|
+
get: function () { return chunkXTOSNRWT_cjs.SCENE3D_UNREFERENCED_FIGURES_WARNING_CODE; }
|
|
646
646
|
});
|
|
647
647
|
Object.defineProperty(exports, "TEXT_WIZARD_CATEGORIES", {
|
|
648
648
|
enumerable: true,
|
|
649
|
-
get: function () { return
|
|
649
|
+
get: function () { return chunkXTOSNRWT_cjs.TEXT_WIZARD_CATEGORIES; }
|
|
650
650
|
});
|
|
651
651
|
Object.defineProperty(exports, "VIDEO_WIZARD_CATEGORIES", {
|
|
652
652
|
enumerable: true,
|
|
653
|
-
get: function () { return
|
|
653
|
+
get: function () { return chunkXTOSNRWT_cjs.VIDEO_WIZARD_CATEGORIES; }
|
|
654
654
|
});
|
|
655
655
|
Object.defineProperty(exports, "appendScene3DStillScopingLines", {
|
|
656
656
|
enumerable: true,
|
|
657
|
-
get: function () { return
|
|
657
|
+
get: function () { return chunkXTOSNRWT_cjs.appendScene3DStillScopingLines; }
|
|
658
658
|
});
|
|
659
659
|
Object.defineProperty(exports, "buildAdCreativeAnalysisUserText", {
|
|
660
660
|
enumerable: true,
|
|
661
|
-
get: function () { return
|
|
661
|
+
get: function () { return chunkXTOSNRWT_cjs.buildAdCreativeAnalysisUserText; }
|
|
662
662
|
});
|
|
663
663
|
Object.defineProperty(exports, "buildCharacterPrompt", {
|
|
664
664
|
enumerable: true,
|
|
665
|
-
get: function () { return
|
|
665
|
+
get: function () { return chunkXTOSNRWT_cjs.buildCharacterPrompt; }
|
|
666
666
|
});
|
|
667
667
|
Object.defineProperty(exports, "buildCreaturePrompt", {
|
|
668
668
|
enumerable: true,
|
|
669
|
-
get: function () { return
|
|
669
|
+
get: function () { return chunkXTOSNRWT_cjs.buildCreaturePrompt; }
|
|
670
670
|
});
|
|
671
671
|
Object.defineProperty(exports, "buildFaceTemplateInputs", {
|
|
672
672
|
enumerable: true,
|
|
673
|
-
get: function () { return
|
|
673
|
+
get: function () { return chunkXTOSNRWT_cjs.buildFaceTemplateInputs; }
|
|
674
674
|
});
|
|
675
675
|
Object.defineProperty(exports, "buildLocationMotionPrompt", {
|
|
676
676
|
enumerable: true,
|
|
677
|
-
get: function () { return
|
|
677
|
+
get: function () { return chunkXTOSNRWT_cjs.buildLocationMotionPrompt; }
|
|
678
678
|
});
|
|
679
679
|
Object.defineProperty(exports, "buildLocationPrompt", {
|
|
680
680
|
enumerable: true,
|
|
681
|
-
get: function () { return
|
|
681
|
+
get: function () { return chunkXTOSNRWT_cjs.buildLocationPrompt; }
|
|
682
682
|
});
|
|
683
683
|
Object.defineProperty(exports, "buildLocationRefinePrompt", {
|
|
684
684
|
enumerable: true,
|
|
685
|
-
get: function () { return
|
|
685
|
+
get: function () { return chunkXTOSNRWT_cjs.buildLocationRefinePrompt; }
|
|
686
686
|
});
|
|
687
687
|
Object.defineProperty(exports, "buildMotionPrompt", {
|
|
688
688
|
enumerable: true,
|
|
689
|
-
get: function () { return
|
|
689
|
+
get: function () { return chunkXTOSNRWT_cjs.buildMotionPrompt; }
|
|
690
690
|
});
|
|
691
691
|
Object.defineProperty(exports, "buildObjectMotionPrompt", {
|
|
692
692
|
enumerable: true,
|
|
693
|
-
get: function () { return
|
|
693
|
+
get: function () { return chunkXTOSNRWT_cjs.buildObjectMotionPrompt; }
|
|
694
694
|
});
|
|
695
695
|
Object.defineProperty(exports, "buildObjectPrompt", {
|
|
696
696
|
enumerable: true,
|
|
697
|
-
get: function () { return
|
|
697
|
+
get: function () { return chunkXTOSNRWT_cjs.buildObjectPrompt; }
|
|
698
698
|
});
|
|
699
699
|
Object.defineProperty(exports, "buildScene3DLayoutScopingLine", {
|
|
700
700
|
enumerable: true,
|
|
701
|
-
get: function () { return
|
|
701
|
+
get: function () { return chunkXTOSNRWT_cjs.buildScene3DLayoutScopingLine; }
|
|
702
702
|
});
|
|
703
703
|
Object.defineProperty(exports, "buildScene3DUnreferencedFiguresWarning", {
|
|
704
704
|
enumerable: true,
|
|
705
|
-
get: function () { return
|
|
705
|
+
get: function () { return chunkXTOSNRWT_cjs.buildScene3DUnreferencedFiguresWarning; }
|
|
706
706
|
});
|
|
707
707
|
Object.defineProperty(exports, "getCategoriesForNodeType", {
|
|
708
708
|
enumerable: true,
|
|
709
|
-
get: function () { return
|
|
709
|
+
get: function () { return chunkXTOSNRWT_cjs.getCategoriesForNodeType; }
|
|
710
710
|
});
|
|
711
711
|
Object.defineProperty(exports, "getPromptDoctrine", {
|
|
712
712
|
enumerable: true,
|
|
713
|
-
get: function () { return
|
|
713
|
+
get: function () { return chunkXTOSNRWT_cjs.getPromptDoctrine; }
|
|
714
714
|
});
|
|
715
715
|
Object.defineProperty(exports, "getPromptTips", {
|
|
716
716
|
enumerable: true,
|
|
717
|
-
get: function () { return
|
|
717
|
+
get: function () { return chunkXTOSNRWT_cjs.getPromptTips; }
|
|
718
718
|
});
|
|
719
719
|
Object.defineProperty(exports, "hasScene3DLayoutScopingLine", {
|
|
720
720
|
enumerable: true,
|
|
721
|
-
get: function () { return
|
|
721
|
+
get: function () { return chunkXTOSNRWT_cjs.hasScene3DLayoutScopingLine; }
|
|
722
722
|
});
|
|
723
723
|
Object.defineProperty(exports, "isWizardSupported", {
|
|
724
724
|
enumerable: true,
|
|
725
|
-
get: function () { return
|
|
725
|
+
get: function () { return chunkXTOSNRWT_cjs.isWizardSupported; }
|
|
726
726
|
});
|
|
727
727
|
Object.defineProperty(exports, "ownMotionHint", {
|
|
728
728
|
enumerable: true,
|
|
729
|
-
get: function () { return
|
|
729
|
+
get: function () { return chunkXTOSNRWT_cjs.ownMotionHint; }
|
|
730
730
|
});
|
|
731
731
|
Object.defineProperty(exports, "renderScene3DLayoutScopingLine", {
|
|
732
732
|
enumerable: true,
|
|
733
|
-
get: function () { return
|
|
733
|
+
get: function () { return chunkXTOSNRWT_cjs.renderScene3DLayoutScopingLine; }
|
|
734
734
|
});
|
|
735
735
|
Object.defineProperty(exports, "scene3DLayoutVideoCaptions", {
|
|
736
736
|
enumerable: true,
|
|
737
|
-
get: function () { return
|
|
737
|
+
get: function () { return chunkXTOSNRWT_cjs.scene3DLayoutVideoCaptions; }
|
|
738
738
|
});
|
|
739
739
|
Object.defineProperty(exports, "CINEMATIC_LOOK_TAIL", {
|
|
740
740
|
enumerable: true,
|
package/dist/index.js
CHANGED
|
@@ -8,7 +8,7 @@ import './chunk-GILUVQQJ.js';
|
|
|
8
8
|
export { keepableDirectionHints } from './chunk-JZOPMVGY.js';
|
|
9
9
|
export { PROMPT_HINT_SEPARATOR, joinPromptHints } from './chunk-35UHMDGS.js';
|
|
10
10
|
export { computePackSidecarCoverage } from './chunk-FDOG7BNB.js';
|
|
11
|
-
export { AD_CREATIVE_ANALYSIS_FIELDS, AD_CREATIVE_ANALYSIS_SYSTEM_PROMPT, AUDIO_WIZARD_CATEGORIES, DEFAULT_OWN_MOTION, IMAGE_REFERENCE_PROMPT_DOCTRINE, IMAGE_WIZARD_CATEGORIES, LLM_CHAT_WIZARD_CATEGORIES, MUSIC_WIZARD_CATEGORIES, OWN_MOTION_NODE_TYPES, POST_CONTENT_ANALYSIS_SYSTEM_PROMPT, PROVIDER_CAPABILITIES, PROVIDER_PROMPT_DOCTRINES, REFERENCE_IMAGE_ROLES, SCENE3D_FIGURE_REFERENCE_RULE, SCENE3D_FREE_PLATE_SLOTS, SCENE3D_LAYOUT_REFERENCE_SCOPING_FIXTURE, SCENE3D_LAYOUT_REFERENCE_SCOPING_LINE, SCENE3D_LAYOUT_SCOPING_FOR, SCENE3D_LAYOUT_SCOPING_IGNORE, SCENE3D_LAYOUT_SCOPING_LOOK_SOURCE, SCENE3D_LAYOUT_SCOPING_MARKER, SCENE3D_UNREFERENCED_FIGURES_WARNING_CODE, TEXT_WIZARD_CATEGORIES, VIDEO_WIZARD_CATEGORIES, appendScene3DStillScopingLines, buildAdCreativeAnalysisUserText, buildCharacterPrompt, buildCreaturePrompt, buildFaceTemplateInputs, buildLocationMotionPrompt, buildLocationPrompt, buildLocationRefinePrompt, buildMotionPrompt, buildObjectMotionPrompt, buildObjectPrompt, buildScene3DLayoutScopingLine, buildScene3DUnreferencedFiguresWarning, getCategoriesForNodeType, getPromptDoctrine, getPromptTips, hasScene3DLayoutScopingLine, isWizardSupported, ownMotionHint, renderScene3DLayoutScopingLine, scene3DLayoutVideoCaptions } from './chunk-
|
|
11
|
+
export { AD_CREATIVE_ANALYSIS_FIELDS, AD_CREATIVE_ANALYSIS_SYSTEM_PROMPT, AUDIO_WIZARD_CATEGORIES, DEFAULT_OWN_MOTION, IMAGE_REFERENCE_PROMPT_DOCTRINE, IMAGE_WIZARD_CATEGORIES, LLM_CHAT_WIZARD_CATEGORIES, MUSIC_WIZARD_CATEGORIES, OWN_MOTION_NODE_TYPES, POST_CONTENT_ANALYSIS_SYSTEM_PROMPT, PROVIDER_CAPABILITIES, PROVIDER_PROMPT_DOCTRINES, REFERENCE_IMAGE_ROLES, SCENE3D_FIGURE_REFERENCE_RULE, SCENE3D_FREE_PLATE_SLOTS, SCENE3D_LAYOUT_REFERENCE_SCOPING_FIXTURE, SCENE3D_LAYOUT_REFERENCE_SCOPING_LINE, SCENE3D_LAYOUT_SCOPING_FOR, SCENE3D_LAYOUT_SCOPING_IGNORE, SCENE3D_LAYOUT_SCOPING_LOOK_SOURCE, SCENE3D_LAYOUT_SCOPING_MARKER, SCENE3D_UNREFERENCED_FIGURES_WARNING_CODE, TEXT_WIZARD_CATEGORIES, VIDEO_WIZARD_CATEGORIES, appendScene3DStillScopingLines, buildAdCreativeAnalysisUserText, buildCharacterPrompt, buildCreaturePrompt, buildFaceTemplateInputs, buildLocationMotionPrompt, buildLocationPrompt, buildLocationRefinePrompt, buildMotionPrompt, buildObjectMotionPrompt, buildObjectPrompt, buildScene3DLayoutScopingLine, buildScene3DUnreferencedFiguresWarning, getCategoriesForNodeType, getPromptDoctrine, getPromptTips, hasScene3DLayoutScopingLine, isWizardSupported, ownMotionHint, renderScene3DLayoutScopingLine, scene3DLayoutVideoCaptions } from './chunk-QBUSJGV3.js';
|
|
12
12
|
export { CINEMATIC_LOOK_TAIL, FILM_STILL_PREFIX, NEUTRAL_PERSON, REALISM_FINISH, REALISM_PASS_INSTRUCTION, REALISM_SKIN, REFERENCE_RULES, REFERENCE_RULES_MULTI_PERSON, SCENE_FRAME_RULE, filmStillPrefix, realismEmptyHands, realismViewpoint, referenceRulesBlock } from './chunk-T64D26P4.js';
|
|
13
13
|
export { DEFAULT_IDENTITY_LOCK, DEFAULT_TEMPLATES, applyTemplate, buildIdentityLockLine, characterLockToRefLock, collectIdentityLockClause, getIdentityLockClause, hasUpstreamCharacter, resolveTemplate, toIdentityLockMode, withForcedIdentityLock } from './chunk-BQWIPLLR.js';
|
|
14
14
|
import './chunk-ADMHDFHB.js';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nodaro/prompts",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.41.0",
|
|
4
4
|
"description": "Nodaro's prompt-engineering layer — person/picker catalogs with prompt hints, identity-lock clauses, entity prompt builders, brand presets, and prompt/reference assembly shared by the Nodaro platform and SDK.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "FSL-1.1-Apache-2.0",
|
|
@@ -70,7 +70,7 @@
|
|
|
70
70
|
"test": "vitest run"
|
|
71
71
|
},
|
|
72
72
|
"dependencies": {
|
|
73
|
-
"@nodaro/shared": "^3.
|
|
73
|
+
"@nodaro/shared": "^3.40.0"
|
|
74
74
|
},
|
|
75
75
|
"devDependencies": {
|
|
76
76
|
"tsup": "^8.5.0",
|
|
@@ -268,6 +268,8 @@ export const PROVIDER_CAPABILITIES: Record<string, Record<string, string>> = {
|
|
|
268
268
|
"wan-3": "Wan 3.0 — multimodal refs (10 images / 5 videos / 5 audio) or first+last frame, native audio, 2–30s, 480p/720p/1080p",
|
|
269
269
|
"wan-3-prime": "Wan 3.0 Prime — high-speed Wan 3.0 tier; same surface, faster turnaround at a higher rate",
|
|
270
270
|
"vidu-q4": "Vidu Q4 — start frame or up to 15 reference images + 3 MP3 audio refs, native audio, 3–16s, 540p–4K (image required)",
|
|
271
|
+
"kling-4": "Kling 4.0 — text, or up to 10 reference images / 5 videos / 7 characters / 3 voices; native audio, 3–30s, 720p/1080p",
|
|
272
|
+
"kling-4-keyframes": "Kling 4.0 Keyframes — start frame, up to 8 in-between frames and an end frame; native audio, 3–30s, 720p/1080p",
|
|
271
273
|
"grok-imagine-video-1.5": "Grok Imagine 1.5 — image-to-video only; requires an input image",
|
|
272
274
|
},
|
|
273
275
|
"image-to-video": {
|
|
@@ -305,6 +307,8 @@ export const PROVIDER_CAPABILITIES: Record<string, Record<string, string>> = {
|
|
|
305
307
|
"wan-3": "Wan 3.0 — multimodal refs (10 images / 5 videos / 5 audio) or first+last frame, native audio, 2–30s, 480p/720p/1080p",
|
|
306
308
|
"wan-3-prime": "Wan 3.0 Prime — high-speed Wan 3.0 tier; same surface, faster turnaround at a higher rate",
|
|
307
309
|
"vidu-q4": "Vidu Q4 — animate a start frame, or direct up to 15 reference images + 3 MP3 audio refs; native audio, 3–16s, 540p–4K",
|
|
310
|
+
"kling-4": "Kling 4.0 — a start frame joins up to 10 reference images, 5 videos, 7 characters and 3 voices; native audio, 3–30s, 720p/1080p",
|
|
311
|
+
"kling-4-keyframes": "Kling 4.0 Keyframes — start frame, up to 8 in-between frames and an end frame; native audio, 3–30s, 720p/1080p",
|
|
308
312
|
"grok-imagine-video-1.5": "Grok Imagine 1.5 — stylized animation, 1–15s, 480p/720p (image required)",
|
|
309
313
|
},
|
|
310
314
|
"video-to-video": {
|
|
@@ -423,6 +423,49 @@ Source: KIE Vidu Q4 market contracts (docs.kie.ai/market/vidu-q4/image-to-video,
|
|
|
423
423
|
docs.kie.ai/market/vidu-q4/reference-to-video). Captured 2026-10-17.`,
|
|
424
424
|
}
|
|
425
425
|
|
|
426
|
+
// Kling 4.0 — two KIE endpoints, two ids. No public Kling 4.0 prompt guide is
|
|
427
|
+
// captured, so like Vidu Q4 the body is KIE contract facts plus the
|
|
428
|
+
// platform-standard structure. The provider runner maps the platform's
|
|
429
|
+
// `@image_N` / `@audio_N` tokens and wired characters onto Kling's own names
|
|
430
|
+
// (`@image_1`, `@keyframe_1`, a subject's `@Name`, a voice's `@VoiceN`) and drops
|
|
431
|
+
// the `@` from any mention the request does not declare, which KIE rejects.
|
|
432
|
+
const KLING_4_DOCTRINE: ProviderPromptDoctrine = {
|
|
433
|
+
providers: ["kling-4", "kling-4-keyframes"],
|
|
434
|
+
heading: "Kling 4.0 (kling-4, kling-4-keyframes)",
|
|
435
|
+
tips: [
|
|
436
|
+
"kling-4: text only, or up to 10 images, 5 videos (2-30s), 7 characters and 3 voices (15 in all). Name each: @image_1, @video_1, a character's @Name, a voice clip @audio_1.",
|
|
437
|
+
"kling-4-keyframes: start frame, up to 8 in-between frames (Image References, in order), end frame — @first_frame, @keyframe_1 …, @last_frame. 3s takes 4 frames in all, 9s or longer 10.",
|
|
438
|
+
"3-30s (default 5), 720p (default) / 1080p, native audio always on. A reference video lends its camera moves and pacing; keep-original-sound keeps its own audio.",
|
|
439
|
+
"Prompt cap 8,000 chars. Aspect auto / 16:9 / 9:16 / 1:1 / 21:9 — Keyframes follows the start frame's shape once a frame is attached.",
|
|
440
|
+
],
|
|
441
|
+
doctrine: `Prompt structure (no public Kling 4.0 prompt guide is captured — the KIE API contract is the
|
|
442
|
+
doctrine source; platform-standard structure applies):
|
|
443
|
+
subject → action → scene/environment → lighting → camera movement → style → constraints.
|
|
444
|
+
|
|
445
|
+
**Two models**
|
|
446
|
+
- Kling 4.0 (kling-4) — reference-to-video. With no materials it is plain text-to-video. Materials: up to 10 reference images, 5 reference videos (2-30 seconds each), 7 subjects (characters) and 3 voices, at most 15 together. A wired start frame cannot be a frame here, so the platform adds it to the reference images and names it as the opening frame.
|
|
447
|
+
- Kling 4.0 Keyframes (kling-4-keyframes) — keyframe-to-video. A start frame, up to 8 in-between frames in time order, and an end frame; the story passes through each. With no frame it is text-to-video.
|
|
448
|
+
|
|
449
|
+
**Naming materials in the prompt**
|
|
450
|
+
- Every material is named with "@": @image_1 … for reference images, @video_1 … for reference videos, a character by its own name (@Maya), a voice clip as @audio_1 (sent to Kling as a named voice). Keyframes: @first_frame, @keyframe_1 … @keyframe_8, @last_frame.
|
|
451
|
+
- Kling refuses a prompt that names a material the request does not carry; the platform removes the "@" from such a mention so the run still starts — wire the material if the mention matters.
|
|
452
|
+
- Write the binding explicitly: "@Maya walks through the street from @image_1 and greets the camera in the voice of @audio_1".
|
|
453
|
+
|
|
454
|
+
**Keyframe rules**
|
|
455
|
+
- Total frames (start + in-between + end) are capped by duration: 3s → 4, 4s → 5, 5s → 6, 6s → 7, 7s → 8, 8s → 9, 9s or longer → 10. Describe how the shot moves from one frame to the next.
|
|
456
|
+
- Once any frame is attached the output takes the start frame's shape; aspect ratio applies to text-only runs.
|
|
457
|
+
|
|
458
|
+
**Reference videos**
|
|
459
|
+
- A reference video lends its camera moves and pacing — swap the characters or products in the prompt ("recreate the camera move of @video_1 with …"). Keep original sound keeps the clip's own audio; otherwise new sound is generated.
|
|
460
|
+
|
|
461
|
+
**Duration, resolution, audio**
|
|
462
|
+
- 3-30 seconds (default 5); 720p (default) or 1080p; aspect auto (follows the materials, 16:9 with none) / 16:9 / 9:16 / 1:1 / 21:9. Prompts up to 8,000 characters.
|
|
463
|
+
- Native audio is always generated (the contract cites lip-sync and dialogue in 10+ languages); not yet verified for scripted lines here, so plan key dialogue as a TTS + lip-sync pass.
|
|
464
|
+
|
|
465
|
+
Source: KIE Kling 4.0 market contracts (docs.kie.ai/market/kling/v4-reference-to-video,
|
|
466
|
+
docs.kie.ai/market/kling/v4-keyframe-to-video), live-probed 2026-10-23.`,
|
|
467
|
+
}
|
|
468
|
+
|
|
426
469
|
const HAPPYHORSE_DOCTRINE: ProviderPromptDoctrine = {
|
|
427
470
|
providers: ["happyhorse", "happyhorse-i2v", "happyhorse-ref2v", "happyhorse-edit"],
|
|
428
471
|
heading: "HappyHorse 1.1 (happyhorse, happyhorse-i2v, happyhorse-ref2v)",
|
|
@@ -482,6 +525,7 @@ export const PROVIDER_PROMPT_DOCTRINES: readonly ProviderPromptDoctrine[] = [
|
|
|
482
525
|
WAN_DOCTRINE,
|
|
483
526
|
WAN_3_DOCTRINE,
|
|
484
527
|
VIDU_Q4_DOCTRINE,
|
|
528
|
+
KLING_4_DOCTRINE,
|
|
485
529
|
HAPPYHORSE_DOCTRINE,
|
|
486
530
|
RUNWAY_KIE_DOCTRINE,
|
|
487
531
|
]
|