@sogni-ai/sogni-intelligence-client 3.3.0 → 3.5.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/client/SogniClientWrapper.d.ts +1 -0
- package/dist/client/SogniClientWrapper.d.ts.map +1 -1
- package/dist/client/SogniClientWrapper.js +13 -5
- package/dist/client/SogniClientWrapper.js.map +1 -1
- package/dist/contracts/imagePrompt.d.ts +1 -1
- package/dist/contracts/imagePrompt.d.ts.map +1 -1
- package/dist/contracts/imagePrompt.js +7 -0
- package/dist/contracts/imagePrompt.js.map +1 -1
- package/dist/contracts/index.d.ts +1 -1
- package/dist/contracts/index.d.ts.map +1 -1
- package/dist/contracts/index.js +3 -1
- package/dist/contracts/index.js.map +1 -1
- package/dist/contracts/toolPromptMarkers.d.ts +2 -0
- package/dist/contracts/toolPromptMarkers.d.ts.map +1 -1
- package/dist/contracts/toolPromptMarkers.js +4 -1
- package/dist/contracts/toolPromptMarkers.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/media/vendorModelPremium.d.ts +1 -1
- package/dist/media/vendorModelPremium.d.ts.map +1 -1
- package/dist/media/vendorModelPremium.js +3 -1
- package/dist/media/vendorModelPremium.js.map +1 -1
- package/dist/media/videoSettings.d.ts +22 -1
- package/dist/media/videoSettings.d.ts.map +1 -1
- package/dist/media/videoSettings.js +92 -1
- package/dist/media/videoSettings.js.map +1 -1
- package/dist/openai-tools/_manifests.generated.d.ts.map +1 -1
- package/dist/openai-tools/_manifests.generated.js +1 -0
- package/dist/openai-tools/_manifests.generated.js.map +1 -1
- package/dist/openai-tools/generation-tools.json +1 -0
- package/dist/public-skill-runtime/index.d.ts +7 -0
- package/dist/public-skill-runtime/index.d.ts.map +1 -1
- package/dist/public-skill-runtime/index.js +19 -1
- package/dist/public-skill-runtime/index.js.map +1 -1
- package/dist/schemas/tools/generate_image.schema.json +1 -0
- package/dist/skills/asset_reference_management/modelRefRegistry.d.ts.map +1 -1
- package/dist/skills/asset_reference_management/modelRefRegistry.js +24 -0
- package/dist/skills/asset_reference_management/modelRefRegistry.js.map +1 -1
- package/dist/skills/asset_reference_management/types.d.ts +1 -1
- package/dist/skills/asset_reference_management/types.d.ts.map +1 -1
- package/dist/tools/definitions/edit-image/definition.js +2 -2
- package/dist/tools/definitions/edit-image/definition.js.map +1 -1
- package/dist/tools/definitions/generate-image/definition.js +4 -4
- package/dist/tools/definitions/generate-image/definition.js.map +1 -1
- package/dist/tools/definitions/generate-video/definition.d.ts.map +1 -1
- package/dist/tools/definitions/generate-video/definition.js +13 -2
- package/dist/tools/definitions/generate-video/definition.js.map +1 -1
- package/dist/tools/index.d.ts +4 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +11 -2
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/shared/happyhorsePolicyErrors.d.ts +30 -0
- package/dist/tools/shared/happyhorsePolicyErrors.d.ts.map +1 -0
- package/dist/tools/shared/happyhorsePolicyErrors.js +175 -0
- package/dist/tools/shared/happyhorsePolicyErrors.js.map +1 -0
- package/dist/tools/shared/happyhorseReferences.d.ts +24 -0
- package/dist/tools/shared/happyhorseReferences.d.ts.map +1 -0
- package/dist/tools/shared/happyhorseReferences.js +52 -0
- package/dist/tools/shared/happyhorseReferences.js.map +1 -0
- package/dist/tools/shared/modelRegistry.d.ts.map +1 -1
- package/dist/tools/shared/modelRegistry.js +4 -0
- package/dist/tools/shared/modelRegistry.js.map +1 -1
- package/dist/utils/helpers.d.ts +1 -0
- package/dist/utils/helpers.d.ts.map +1 -1
- package/dist/utils/helpers.js +30 -0
- package/dist/utils/helpers.js.map +1 -1
- package/dist-esm/client/SogniClientWrapper.js +13 -5
- package/dist-esm/client/SogniClientWrapper.js.map +1 -1
- package/dist-esm/contracts/imagePrompt.js +7 -0
- package/dist-esm/contracts/imagePrompt.js.map +1 -1
- package/dist-esm/contracts/index.js +1 -1
- package/dist-esm/contracts/index.js.map +1 -1
- package/dist-esm/contracts/toolPromptMarkers.js +3 -0
- package/dist-esm/contracts/toolPromptMarkers.js.map +1 -1
- package/dist-esm/index.js +1 -1
- package/dist-esm/index.js.map +1 -1
- package/dist-esm/media/vendorModelPremium.js +3 -1
- package/dist-esm/media/vendorModelPremium.js.map +1 -1
- package/dist-esm/media/videoSettings.js +90 -0
- package/dist-esm/media/videoSettings.js.map +1 -1
- package/dist-esm/openai-tools/_manifests.generated.js +1 -0
- package/dist-esm/openai-tools/_manifests.generated.js.map +1 -1
- package/dist-esm/openai-tools/generation-tools.json +1 -0
- package/dist-esm/public-skill-runtime/index.js +16 -0
- package/dist-esm/public-skill-runtime/index.js.map +1 -1
- package/dist-esm/schemas/tools/generate_image.schema.json +1 -0
- package/dist-esm/skills/asset_reference_management/modelRefRegistry.js +24 -0
- package/dist-esm/skills/asset_reference_management/modelRefRegistry.js.map +1 -1
- package/dist-esm/tools/definitions/edit-image/definition.js +2 -2
- package/dist-esm/tools/definitions/edit-image/definition.js.map +1 -1
- package/dist-esm/tools/definitions/generate-image/definition.js +4 -4
- package/dist-esm/tools/definitions/generate-image/definition.js.map +1 -1
- package/dist-esm/tools/definitions/generate-video/definition.js +14 -3
- package/dist-esm/tools/definitions/generate-video/definition.js.map +1 -1
- package/dist-esm/tools/index.js +3 -0
- package/dist-esm/tools/index.js.map +1 -1
- package/dist-esm/tools/shared/happyhorsePolicyErrors.js +168 -0
- package/dist-esm/tools/shared/happyhorsePolicyErrors.js.map +1 -0
- package/dist-esm/tools/shared/happyhorseReferences.js +46 -0
- package/dist-esm/tools/shared/happyhorseReferences.js.map +1 -0
- package/dist-esm/tools/shared/modelRegistry.js +4 -0
- package/dist-esm/tools/shared/modelRegistry.js.map +1 -1
- package/dist-esm/utils/helpers.js +29 -0
- package/dist-esm/utils/helpers.js.map +1 -1
- package/package.json +3 -3
|
@@ -18,6 +18,27 @@ const SEEDANCE_FORMAT = {
|
|
|
18
18
|
},
|
|
19
19
|
scanRegex: /@(?:Image|Video|Audio)\d+/g,
|
|
20
20
|
};
|
|
21
|
+
const HAPPYHORSE_FORMAT = {
|
|
22
|
+
format(index, type) {
|
|
23
|
+
if (type === 'video')
|
|
24
|
+
return `[Video ${index}]`;
|
|
25
|
+
if (type === 'audio')
|
|
26
|
+
return `[Audio ${index}]`;
|
|
27
|
+
return `[Image ${index}]`;
|
|
28
|
+
},
|
|
29
|
+
parse(token) {
|
|
30
|
+
const m = /^\[(Image|Video|Audio)\s+(\d+)\]$/.exec(token.trim());
|
|
31
|
+
if (!m)
|
|
32
|
+
return null;
|
|
33
|
+
const kind = m[1];
|
|
34
|
+
const idx = Number.parseInt(m[2], 10);
|
|
35
|
+
if (!Number.isFinite(idx) || idx < 1)
|
|
36
|
+
return null;
|
|
37
|
+
const t = kind === 'Video' ? 'video' : kind === 'Audio' ? 'audio' : 'image';
|
|
38
|
+
return { index: idx, type: t };
|
|
39
|
+
},
|
|
40
|
+
scanRegex: /\[(?:Image|Video|Audio)\s+\d+\]/g,
|
|
41
|
+
};
|
|
21
42
|
const GPT_IMAGE_2_FORMAT = {
|
|
22
43
|
format(index, type) {
|
|
23
44
|
if (type === 'video')
|
|
@@ -64,6 +85,7 @@ const CONTEXT_FORMAT = {
|
|
|
64
85
|
};
|
|
65
86
|
const MODEL_REF_FORMATS = {
|
|
66
87
|
seedance: SEEDANCE_FORMAT,
|
|
88
|
+
happyhorse: HAPPYHORSE_FORMAT,
|
|
67
89
|
'gpt-image-2': GPT_IMAGE_2_FORMAT,
|
|
68
90
|
ltx23: CONTEXT_FORMAT,
|
|
69
91
|
wan: CONTEXT_FORMAT,
|
|
@@ -87,6 +109,8 @@ export function getModelRefFormatResolution(modelId) {
|
|
|
87
109
|
}
|
|
88
110
|
if (trimmed.startsWith('seedance'))
|
|
89
111
|
return { format: SEEDANCE_FORMAT, model_id: 'seedance', fell_back: false };
|
|
112
|
+
if (trimmed.startsWith('happyhorse'))
|
|
113
|
+
return { format: HAPPYHORSE_FORMAT, model_id: 'happyhorse', fell_back: false };
|
|
90
114
|
if (trimmed.startsWith('gpt-image') || trimmed.startsWith('flux')) {
|
|
91
115
|
return {
|
|
92
116
|
format: GPT_IMAGE_2_FORMAT,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modelRefRegistry.js","sourceRoot":"","sources":["../../../src/skills/asset_reference_management/modelRefRegistry.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"modelRefRegistry.js","sourceRoot":"","sources":["../../../src/skills/asset_reference_management/modelRefRegistry.ts"],"names":[],"mappings":"AAqCA,MAAM,eAAe,GAAmB;IACtC,MAAM,CAAC,KAAK,EAAE,IAAI;QAChB,IAAI,IAAI,KAAK,OAAO;YAAE,OAAO,SAAS,KAAK,EAAE,CAAC;QAC9C,IAAI,IAAI,KAAK,OAAO;YAAE,OAAO,SAAS,KAAK,EAAE,CAAC;QAC9C,OAAO,SAAS,KAAK,EAAE,CAAC;IAC1B,CAAC;IACD,KAAK,CAAC,KAAK;QACT,MAAM,CAAC,GAAG,6BAA6B,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QAC3D,IAAI,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QACpB,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC,CAAC;QACvC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QAClD,MAAM,CAAC,GAAc,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;QACvF,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;IACjC,CAAC;IACD,SAAS,EAAE,4BAA4B;CACxC,CAAC;AASF,MAAM,iBAAiB,GAAmB;IACxC,MAAM,CAAC,KAAK,EAAE,IAAI;QAChB,IAAI,IAAI,KAAK,OAAO;YAAE,OAAO,UAAU,KAAK,GAAG,CAAC;QAChD,IAAI,IAAI,KAAK,OAAO;YAAE,OAAO,UAAU,KAAK,GAAG,CAAC;QAChD,OAAO,UAAU,KAAK,GAAG,CAAC;IAC5B,CAAC;IACD,KAAK,CAAC,KAAK;QACT,MAAM,CAAC,GAAG,mCAAmC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QACjE,IAAI,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QACpB,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC;QACnB,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC,CAAC;QACvC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QAClD,MAAM,CAAC,GAAc,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;QACvF,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;IACjC,CAAC;IACD,SAAS,EAAE,kCAAkC;CAC9C,CAAC;AAEF,MAAM,kBAAkB,GAAmB;IACzC,MAAM,CAAC,KAAK,EAAE,IAAI;QAChB,IAAI,IAAI,KAAK,OAAO;YAAE,OAAO,SAAS,KAAK,EAAE,CAAC;QAC9C,IAAI,IAAI,KAAK,OAAO;YAAE,OAAO,SAAS,KAAK,EAAE,CAAC;QAC9C,OAAO,SAAS,KAAK,EAAE,CAAC;IAC1B,CAAC;IACD,KAAK,CAAC,KAAK;QACT,MAAM,CAAC,GAAG,+BAA+B,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7D,IAAI,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QACpB,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC;QACnB,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC,CAAC;QACvC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QAClD,MAAM,CAAC,GAAc,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;QACvF,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;IACjC,CAAC;IACD,SAAS,EAAE,iGAAiG;CAC7G,CAAC;AAMF,MAAM,cAAc,GAAmB;IACrC,MAAM,CAAC,KAAK,EAAE,IAAI;QAChB,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QACpC,IAAI,IAAI,KAAK,OAAO;YAAE,OAAO,iBAAiB,IAAI,EAAE,CAAC;QACrD,IAAI,IAAI,KAAK,OAAO;YAAE,OAAO,iBAAiB,IAAI,EAAE,CAAC;QACrD,OAAO,iBAAiB,IAAI,EAAE,CAAC;IACjC,CAAC;IACD,KAAK,CAAC,KAAK;QACT,MAAM,CAAC,GAAG,qCAAqC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QACnE,IAAI,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QACpB,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC,CAAC;QACxC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QACpD,OAAO;YACL,KAAK,EAAE,IAAI,GAAG,CAAC;YACf,IAAI,EAAE,CAAC,CAAC,CAAC,CAAc;SACxB,CAAC;IACJ,CAAC;IACD,SAAS,EAAE,oCAAoC;CAChD,CAAC;AAEF,MAAM,iBAAiB,GAA8C;IACnE,QAAQ,EAAE,eAAe;IACzB,UAAU,EAAE,iBAAiB;IAC7B,aAAa,EAAE,kBAAkB;IACjC,KAAK,EAAE,cAAc;IACrB,GAAG,EAAE,cAAc;IACnB,iBAAiB,EAAE,cAAc;IACjC,IAAI,EAAE,kBAAkB;CACzB,CAAC;AAEF,SAAS,gBAAgB,CAAC,KAAa;IACrC,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;AAC/F,CAAC;AAMD,MAAM,UAAU,iBAAiB,CAAC,OAAe;IAC/C,OAAO,2BAA2B,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,OAAe;IACzD,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC7C,IAAI,OAAO,IAAI,iBAAiB,EAAE,CAAC;QACjC,OAAO;YACL,MAAM,EAAE,iBAAiB,CAAC,OAA4B,CAAC;YACvD,QAAQ,EAAE,OAA4B;YACtC,SAAS,EAAE,KAAK;SACjB,CAAC;IACJ,CAAC;IAGD,IAAI,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IAC/G,IAAI,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IACrH,IAAI,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAClE,OAAO;YACL,MAAM,EAAE,kBAAkB;YAC1B,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa;YAC7D,SAAS,EAAE,KAAK;SACjB,CAAC;IACJ,CAAC;IACD,IACE,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC;QACzB,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC;QACzB,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,EAChC,CAAC;QACD,OAAO;YACL,MAAM,EAAE,cAAc;YACtB,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,OAAO;YAC5G,SAAS,EAAE,KAAK;SACjB,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,iCAAiC,OAAO,8CAA8C,CAAC,CAAC;IACrG,OAAO;QACL,MAAM,EAAE,kBAAkB;QAC1B,QAAQ,EAAE,SAAS;QACnB,SAAS,EAAE,IAAI;KAChB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB;IAItC,OAAQ,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAgD;SACrF,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5B,QAAQ;QACR,MAAM,EAAE;YACN,GAAG,MAAM;YACT,SAAS,EAAE,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC;SAC9C;KACF,CAAC,CAAC,CAAC;AACR,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAe,EAAE,KAAa,EAAE,IAAe;IAC5E,OAAO,iBAAiB,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,sBAAsB;IACpC,OAAO,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAwB,CAAC;AAC/D,CAAC"}
|
|
@@ -4,7 +4,7 @@ export const definition = {
|
|
|
4
4
|
type: 'function',
|
|
5
5
|
function: {
|
|
6
6
|
name: 'edit_image',
|
|
7
|
-
description: 'Generate images guided by reference photos. Supports GPT Image 2 up to 16 images, Flux.2 up to 6 images, and Qwen up to 3 images. Best for style-guided generation, combining elements from multiple images, persona image creation, and uploaded brand asset reuse — logos, brand marks, mascots, product shots, photos, screenshots, sketches, or character designs the user expects to appear in or guide the result. Use this instead of generate_image when persona photos or uploaded image assets are meant to be reused in context, even if a specific model is requested. Exception: explicit Z-image/Z-image Turbo uploaded-image enhancement uses generate_image with sourceImageIndex and starting_image_strength because edit_image does not expose
|
|
7
|
+
description: 'Generate images guided by reference photos. Supports GPT Image 2 up to 16 images, Flux.2 up to 6 images, and Qwen up to 3 images. Best for style-guided generation, combining elements from multiple images, persona image creation, and uploaded brand asset reuse — logos, brand marks, mascots, product shots, photos, screenshots, sketches, or character designs the user expects to appear in or guide the result. Use this instead of generate_image when persona photos or uploaded image assets are meant to be reused in context, even if a specific model is requested. Exception: explicit Z-image/Z-image Turbo/Krea 2 Turbo uploaded-image enhancement uses generate_image with sourceImageIndex and starting_image_strength because edit_image does not expose those models. If a previous edit_image attempt did not preserve the uploaded asset well, stay on edit_image and tighten the prompt or switch model; generate_image has no access to the upload. For direct edits (remove objects, enhance), use restore_photo or refine_result unless the user explicitly requested Z-image or Krea 2 Turbo.',
|
|
8
8
|
parameters: {
|
|
9
9
|
type: 'object',
|
|
10
10
|
properties: {
|
|
@@ -79,7 +79,7 @@ COMPOSITE GPT IMAGE 2 STORYBOARD SHEETS: When numberOfVariations=1 and the user
|
|
|
79
79
|
model: {
|
|
80
80
|
type: 'string',
|
|
81
81
|
enum: ['gpt-image-2', 'qwen-lightning', 'qwen', 'flux2'],
|
|
82
|
-
description: 'The app auto-selects the edit model from the Default Media Quality setting (Fast→Qwen Lightning, HQ→full Qwen, Pro→Flux.2) as a FALLBACK for ordinary edits. That default is a floor, not a cap: set this parameter to override it whenever the task needs more fidelity than the fallback gives, and do not let a Fast default downgrade a fidelity-critical edit. Set "gpt-image-2" when the user names a ChatGPT, OpenAI, GPT, GPT-2, GPT Image, or gpt-image-2 model, OR for any detail-critical render or edit — dense labels, crisp or legible typography, fine text, multi-panel composition, timing notes, foley notes, professional storyboard-sheet/contact-sheet/panel layout, or a character/mascot/model sheet with turnarounds, expressions, accessories, palette swatches, and brand notes — INCLUDING editing an uploaded image that is itself a storyboard, contact sheet, multi-panel layout, or text-dense graphic. Choose "gpt-image-2" for these even when the Default Media Quality is Fast. If "gpt-image-2" is unavailable (for example insufficient credits), fall back to "qwen" (full Qwen Image Edit), never "qwen-lightning", for such fine-detail or legible-text edits. For ordinary single-subject edits with no fine text or panels, omit this parameter and let the quality default apply. Z-image
|
|
82
|
+
description: 'The app auto-selects the edit model from the Default Media Quality setting (Fast→Qwen Lightning, HQ→full Qwen, Pro→Flux.2) as a FALLBACK for ordinary edits. That default is a floor, not a cap: set this parameter to override it whenever the task needs more fidelity than the fallback gives, and do not let a Fast default downgrade a fidelity-critical edit. Set "gpt-image-2" when the user names a ChatGPT, OpenAI, GPT, GPT-2, GPT Image, or gpt-image-2 model, OR for any detail-critical render or edit — dense labels, crisp or legible typography, fine text, multi-panel composition, timing notes, foley notes, professional storyboard-sheet/contact-sheet/panel layout, or a character/mascot/model sheet with turnarounds, expressions, accessories, palette swatches, and brand notes — INCLUDING editing an uploaded image that is itself a storyboard, contact sheet, multi-panel layout, or text-dense graphic. Choose "gpt-image-2" for these even when the Default Media Quality is Fast. If "gpt-image-2" is unavailable (for example insufficient credits), fall back to "qwen" (full Qwen Image Edit), never "qwen-lightning", for such fine-detail or legible-text edits. For ordinary single-subject edits with no fine text or panels, omit this parameter and let the quality default apply. Z-image, Z-image Turbo, and Krea 2 Turbo are not edit_image models; route those explicit uploaded-image enhancement requests to generate_image with sourceImageIndex and starting_image_strength. If the user names another edit/image model, honor that requested model instead. GPT Image 2 always processes input images at high fidelity; do not set input_fidelity.',
|
|
83
83
|
},
|
|
84
84
|
sourceImageIndex: {
|
|
85
85
|
type: 'number',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../../src/tools/definitions/edit-image/definition.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AACrF,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAEnE,MAAM,CAAC,MAAM,UAAU,GAAmB;IACxC,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE;QACR,IAAI,EAAE,YAAY;QAClB,WAAW,EACT,
|
|
1
|
+
{"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../../src/tools/definitions/edit-image/definition.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AACrF,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAEnE,MAAM,CAAC,MAAM,UAAU,GAAmB;IACxC,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE;QACR,IAAI,EAAE,YAAY;QAClB,WAAW,EACT,4jCAA4jC;QAC9jC,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE;;EAErB,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+oBA8DsnB;iBACtoB;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,aAAa,EAAE,gBAAgB,EAAE,MAAM,EAAE,OAAO,CAAC;oBACxD,WAAW,EACT,umDAAumD;iBAC1mD;gBACD,gBAAgB,EAAE;oBAChB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,kiBAAkiB;iBACriB;gBACD,kBAAkB,EAAE;oBAClB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,wrBAAwrB;oBAC1rB,OAAO,EAAE,CAAC;oBACV,OAAO,EAAE,EAAE;iBACZ;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,qzBAAqzB;iBACxzB;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,uzBAAuzB;iBAC1zB;gBACD,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,GAAG,wBAAwB,imBAAimB;iBAC/nB;gBACD,eAAe,EAAE;oBACf,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC;oBAC/B,WAAW,EACT,4QAA4Q;iBAC/Q;gBACD,YAAY,EAAE;oBACZ,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;oBACpC,WAAW,EACT,uLAAuL;iBAC1L;gBACD,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,2jBAA2jB;iBAC9jB;aACF;YACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACrB;KACF;CACF,CAAC"}
|
|
@@ -4,7 +4,7 @@ export const definition = {
|
|
|
4
4
|
type: 'function',
|
|
5
5
|
function: {
|
|
6
6
|
name: 'generate_image',
|
|
7
|
-
description: 'Generate a new image from a text description. Usually this is text-only: do NOT use this tool when the user expects an existing image to be reused or preserved in the result. That includes (a) people from My Personas, and (b) uploaded assets such as logos, brand marks, mascots, product shots, photos, screenshots, sketches, character designs, or other reference images they want carried through. Use edit_image with sourceImageIndex=-1 (or the appropriate generated index) instead. Exception: when the user explicitly requests Z-image, Z Image,
|
|
7
|
+
description: 'Generate a new image from a text description. Usually this is text-only: do NOT use this tool when the user expects an existing image to be reused or preserved in the result. That includes (a) people from My Personas, and (b) uploaded assets such as logos, brand marks, mascots, product shots, photos, screenshots, sketches, character designs, or other reference images they want carried through. Use edit_image with sourceImageIndex=-1 (or the appropriate generated index) instead. Exception: when the user explicitly requests Z-image, Z Image, Z-image Turbo, or Krea 2 Turbo for an uploaded-image enhancement/image-to-image request, use this tool with model="z-turbo", model="z-image", or model="krea-2-turbo", sourceImageIndex=-1, and starting_image_strength because edit_image does not expose those models.',
|
|
8
8
|
parameters: {
|
|
9
9
|
type: 'object',
|
|
10
10
|
properties: {
|
|
@@ -40,13 +40,13 @@ VIDEO KEYFRAMES: When generating images intended as first+last frames for video
|
|
|
40
40
|
type: 'string',
|
|
41
41
|
enum: [
|
|
42
42
|
'gpt-image-2',
|
|
43
|
-
'z-turbo', 'z-image', 'chroma-v46-flash', 'chroma-detail', 'flux1-krea', 'flux2', 'pony-v7',
|
|
43
|
+
'z-turbo', 'z-image', 'krea-2-turbo', 'chroma-v46-flash', 'chroma-detail', 'flux1-krea', 'flux2', 'pony-v7',
|
|
44
44
|
'qwen-2512', 'qwen-2512-lightning',
|
|
45
45
|
'albedo-xl', 'animagine-xl', 'anima-pencil-xl', 'art-universe-xl', 'hyphoria-real',
|
|
46
46
|
'analog-madness-xl', 'cyberrealistic-xl', 'real-dream-xl', 'faetastic-xl',
|
|
47
47
|
'zavychroma-xl', 'pony-faetality', 'dreamshaper-xl',
|
|
48
48
|
],
|
|
49
|
-
description: 'DO NOT SET THIS PARAMETER unless the user names a specific model, asks for a very complex image render, asks for a video storyboard/storyboard sheet/contact sheet/panel layout image, or explicitly asks for Z-image/Z-image Turbo image-to-image. The app auto-selects based on quality settings. Set "gpt-image-2" when the user asks for a ChatGPT, OpenAI, GPT, GPT-2, GPT Image, or gpt-image-2 image/model, when they explicitly request very strong text rendering, or by default for complex single-image renders that need dense labels, crisp typography, multi-panel composition, timing notes, foley notes, professional storyboard-sheet layout, or a comprehensive character/mascot/model sheet with turnarounds, expressions, accessories, palette swatches, and brand notes. Set "z-turbo" when the user asks for Z-image Turbo; set "z-image" when they ask for Z-image without Turbo. If the user names another image model, honor that requested model instead. A model preference usually does not change which tool to use; the Z-image image-to-image exception uses sourceImageIndex plus starting_image_strength on this tool. NSFW rule: "gpt-image-2"/"flux2"/"flux1-krea" CANNOT do nudity — use "pony-v7", "chroma-detail", "chroma-v46-flash", or "z-turbo" instead.',
|
|
49
|
+
description: 'DO NOT SET THIS PARAMETER unless the user names a specific model, asks for a very complex image render, asks for a video storyboard/storyboard sheet/contact sheet/panel layout image, or explicitly asks for Z-image/Z-image Turbo/Krea 2 Turbo image-to-image. The app auto-selects based on quality settings. Set "gpt-image-2" when the user asks for a ChatGPT, OpenAI, GPT, GPT-2, GPT Image, or gpt-image-2 image/model, when they explicitly request very strong text rendering, or by default for complex single-image renders that need dense labels, crisp typography, multi-panel composition, timing notes, foley notes, professional storyboard-sheet layout, or a comprehensive character/mascot/model sheet with turnarounds, expressions, accessories, palette swatches, and brand notes. Set "z-turbo" when the user asks for Z-image Turbo; set "z-image" when they ask for Z-image without Turbo. Set "krea-2-turbo" when the user asks for Krea 2 Turbo. If the user names another image model, honor that requested model instead. A model preference usually does not change which tool to use; the Z-image and Krea 2 Turbo image-to-image exception uses sourceImageIndex plus starting_image_strength on this tool. NSFW rule: "gpt-image-2"/"flux2"/"flux1-krea" CANNOT do nudity — use "pony-v7", "chroma-detail", "chroma-v46-flash", or "z-turbo" instead.',
|
|
50
50
|
},
|
|
51
51
|
width: {
|
|
52
52
|
type: 'number',
|
|
@@ -68,7 +68,7 @@ VIDEO KEYFRAMES: When generating images intended as first+last frames for video
|
|
|
68
68
|
},
|
|
69
69
|
starting_image_strength: {
|
|
70
70
|
type: 'number',
|
|
71
|
-
description: 'Image-to-image strength (0.0-1.0). Only used when a source image is available and model supports img2img. Higher values = more deviation from the source image. 0.35 = conservative enhancement, 0.5 = balanced, 0.8 = creative. Set this with sourceImageIndex when the user explicitly requests Z-image/Z-image Turbo enhancement or any supported img2img starting-image workflow.',
|
|
71
|
+
description: 'Image-to-image strength (0.0-1.0). Only used when a source image is available and model supports img2img. Higher values = more deviation from the source image. 0.35 = conservative enhancement, 0.5 = balanced, 0.8 = creative. Set this with sourceImageIndex when the user explicitly requests Z-image/Z-image Turbo/Krea 2 Turbo enhancement or any supported img2img starting-image workflow.',
|
|
72
72
|
},
|
|
73
73
|
sourceImageIndex: {
|
|
74
74
|
type: 'number',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../../src/tools/definitions/generate-image/definition.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AACrF,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAEnE,MAAM,CAAC,MAAM,UAAU,GAAmB;IACxC,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE;QACR,IAAI,EAAE,gBAAgB;QACtB,WAAW,EACT,
|
|
1
|
+
{"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../../src/tools/definitions/generate-image/definition.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AACrF,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAEnE,MAAM,CAAC,MAAM,UAAU,GAAmB;IACxC,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE;QACR,IAAI,EAAE,gBAAgB;QACtB,WAAW,EACT,4yBAA4yB;QAC9yB,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE;;EAErB,uBAAuB;;;;;;;;;;;;;;;;;;;;;;siBAsB6gB;iBAC7hB;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE;wBACJ,aAAa;wBACb,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,kBAAkB,EAAE,eAAe,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS;wBAC3G,WAAW,EAAE,qBAAqB;wBAClC,WAAW,EAAE,cAAc,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,eAAe;wBAClF,mBAAmB,EAAE,mBAAmB,EAAE,eAAe,EAAE,cAAc;wBACzE,eAAe,EAAE,gBAAgB,EAAE,gBAAgB;qBACpD;oBACD,WAAW,EACT,0zCAA0zC;iBAC7zC;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,2yBAA2yB;iBAC9yB;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,4yBAA4yB;iBAC/yB;gBACD,kBAAkB,EAAE;oBAClB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,s9CAAs9C;oBACx9C,OAAO,EAAE,CAAC;oBACV,OAAO,EAAE,EAAE;iBACZ;gBACD,cAAc,EAAE;oBACd,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,oJAAoJ;iBACvJ;gBACD,uBAAuB,EAAE;oBACvB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,oYAAoY;iBACvY;gBACD,gBAAgB,EAAE;oBAChB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,sLAAsL;iBACzL;gBACD,IAAI,EAAE;oBACJ,IAAI,EAAE,SAAS;oBACf,WAAW,EACT,uIAAuI;iBAC1I;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,2KAA2K;iBAC9K;gBACD,eAAe,EAAE;oBACf,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC;oBAC/B,WAAW,EACT,4QAA4Q;iBAC/Q;gBACD,YAAY,EAAE;oBACZ,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;oBACpC,WAAW,EACT,uLAAuL;iBAC1L;gBACD,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,GAAG,wBAAwB,glBAAglB;iBAC9mB;aACF;YACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACrB;KACF;CACF,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { GENERATE_VIDEO_SKIP_PROMPT_PROCESSING_DESCRIPTION, LITERAL_VIDEO_PROMPT_OVERRIDE, SEEDANCE_EXPAND_PROMPT_DESCRIPTION, SEEDANCE_TOOL_MULTIMODAL_REFERENCE_GUIDANCE, } from '../../../contracts/toolPromptMarkers.js';
|
|
1
|
+
import { GENERATE_VIDEO_SKIP_PROMPT_PROCESSING_DESCRIPTION, LITERAL_VIDEO_PROMPT_OVERRIDE, SEEDANCE_EXPAND_PROMPT_DESCRIPTION, SEEDANCE_TOOL_MULTIMODAL_REFERENCE_GUIDANCE, HAPPYHORSE_GENERATE_VIDEO_MODEL_DESCRIPTION, } from '../../../contracts/toolPromptMarkers.js';
|
|
2
2
|
import { ASPECT_RATIO_DESCRIPTION } from '../../../media/index.js';
|
|
3
3
|
export const definition = {
|
|
4
4
|
type: "function",
|
|
@@ -62,9 +62,20 @@ BATCH VARIATIONS: When numberOfVariations > 1, use Dynamic Prompt syntax. This i
|
|
|
62
62
|
},
|
|
63
63
|
videoModel: {
|
|
64
64
|
type: "string",
|
|
65
|
-
enum: [
|
|
65
|
+
enum: [
|
|
66
|
+
"ltx23",
|
|
67
|
+
"wan22",
|
|
68
|
+
"seedance2",
|
|
69
|
+
"seedance2-mini",
|
|
70
|
+
"seedance2-fast",
|
|
71
|
+
"happyhorse-1.1-t2v",
|
|
72
|
+
"happyhorse-1.1-i2v",
|
|
73
|
+
"happyhorse-1.1-r2v",
|
|
74
|
+
],
|
|
66
75
|
description: 'Video model. "ltx23" (default): LTX 2.3 with native audio; Fast/HQ use the distilled 8-step worker and Default Media Quality Pro uses the non-distilled dev worker. "wan22": Fast 4-step, simple motion, no audio. Default: "ltx23". Seedance quality is selected only by model: use "seedance2-mini" for Seedance 2.0 Mini or faster/lower-cost 720p iteration, use "seedance2-fast" only when the user explicitly asks for Seedance Fast / seedance-fast, and use "seedance2" for the full Seedance 2.0 model, explicit non-fast/full-quality requests, 1080p/4K requests, or generated/uploaded storyboard images unless the user explicitly asks for a draft, Mini, or the fast model. Do not use Default Media Quality Fast/HQ/Pro or targetResolution to represent Seedance quality. ' +
|
|
67
|
-
SEEDANCE_TOOL_MULTIMODAL_REFERENCE_GUIDANCE
|
|
76
|
+
SEEDANCE_TOOL_MULTIMODAL_REFERENCE_GUIDANCE +
|
|
77
|
+
' ' +
|
|
78
|
+
HAPPYHORSE_GENERATE_VIDEO_MODEL_DESCRIPTION,
|
|
68
79
|
},
|
|
69
80
|
generateAudio: {
|
|
70
81
|
type: "boolean",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../../src/tools/definitions/generate-video/definition.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,iDAAiD,EACjD,6BAA6B,EAC7B,kCAAkC,EAClC,2CAA2C,GAC5C,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAEnE,MAAM,CAAC,MAAM,UAAU,GAAmB;IACxC,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE;QACR,IAAI,EAAE,gBAAgB;QACtB,WAAW,EACT,g5IAAg5I;QACl5I,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE;;EAErB,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;kcA4Bma;iBACzb;gBACD,YAAY,EAAE;oBACZ,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,kCAAkC;iBAChD;gBACD,oBAAoB,EAAE;oBACpB,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,iDAAiD;iBAC/D;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,8GAA8G;oBAChH,OAAO,EAAE,CAAC;oBACV,OAAO,EAAE,EAAE;iBACZ;gBACD,cAAc,EAAE;oBACd,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,mVAAmV;iBACtV;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../../src/tools/definitions/generate-video/definition.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,iDAAiD,EACjD,6BAA6B,EAC7B,kCAAkC,EAClC,2CAA2C,EAC3C,2CAA2C,GAC5C,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAEnE,MAAM,CAAC,MAAM,UAAU,GAAmB;IACxC,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE;QACR,IAAI,EAAE,gBAAgB;QACtB,WAAW,EACT,g5IAAg5I;QACl5I,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE;;EAErB,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;kcA4Bma;iBACzb;gBACD,YAAY,EAAE;oBACZ,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,kCAAkC;iBAChD;gBACD,oBAAoB,EAAE;oBACpB,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,iDAAiD;iBAC/D;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,8GAA8G;oBAChH,OAAO,EAAE,CAAC;oBACV,OAAO,EAAE,EAAE;iBACZ;gBACD,cAAc,EAAE;oBACd,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,mVAAmV;iBACtV;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE;wBACJ,OAAO;wBACP,OAAO;wBACP,WAAW;wBACX,gBAAgB;wBAChB,gBAAgB;wBAChB,oBAAoB;wBACpB,oBAAoB;wBACpB,oBAAoB;qBACrB;oBACD,WAAW,EACT,6vBAA6vB;wBAC7vB,2CAA2C;wBAC3C,GAAG;wBACH,2CAA2C;iBAC9C;gBACD,aAAa,EAAE;oBACb,IAAI,EAAE,SAAS;oBACf,WAAW,EACT,oKAAoK;iBACvK;gBACD,qBAAqB,EAAE;oBACrB,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACzB,WAAW,EACT,w0BAAw0B;iBAC30B;gBACD,qBAAqB,EAAE;oBACrB,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACzB,WAAW,EACT,mfAAmf;iBACtf;gBACD,qBAAqB,EAAE;oBACrB,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACzB,WAAW,EACT,yvBAAyvB;iBAC5vB;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,i/BAAi/B;iBACp/B;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,urBAAurB;iBAC1rB;gBACD,gBAAgB,EAAE;oBAChB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,o1BAAo1B;iBACv1B;gBACD,kBAAkB,EAAE;oBAClB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,4XAA4X;oBAC9X,OAAO,EAAE,CAAC;oBACV,OAAO,EAAE,EAAE;iBACZ;gBACD,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,wBAAwB;iBACtC;gBACD,gBAAgB,EAAE;oBAChB,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,8jBAA8jB;iBACjkB;aACF;YACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACrB;KACF;CACF,CAAC"}
|
package/dist-esm/tools/index.js
CHANGED
|
@@ -3,7 +3,10 @@ export { classifyError, parseResultForError, } from './shared/errorClassificatio
|
|
|
3
3
|
export { MODELS_BY_TOOL, getAlternativeModels, getModelArgKey, getModelOptions, isQualityTierTool, } from './shared/modelRegistry.js';
|
|
4
4
|
export * from './shared/policyChecks.js';
|
|
5
5
|
export * from './shared/seedancePolicyErrors.js';
|
|
6
|
+
export * from './shared/happyhorsePolicyErrors.js';
|
|
6
7
|
export { SEEDANCE_REFERENCE_LIMITS, SeedanceReferenceLimitError, validateSeedanceReferenceCounts, } from './shared/seedanceReferences.js';
|
|
8
|
+
export { HAPPYHORSE_REFERENCE_LIMITS, HappyHorseReferenceLimitError, getHappyHorseReferenceLimits, validateHappyHorseReferenceCounts, } from './shared/happyhorseReferences.js';
|
|
9
|
+
export { HAPPYHORSE_GENERATE_VIDEO_MODEL_DESCRIPTION, HAPPYHORSE_TOOL_REFERENCE_GUIDANCE, } from '../contracts/toolPromptMarkers.js';
|
|
7
10
|
export * from './shared/llmHelpers.js';
|
|
8
11
|
export * from './shared/promptRefinementCache.js';
|
|
9
12
|
export * from './shared/imageEncoding.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EACL,aAAa,EACb,mBAAmB,GACpB,MAAM,iCAAiC,CAAC;AAKzC,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,iBAAiB,GAClB,MAAM,2BAA2B,CAAC;AAEnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,kCAAkC,CAAC;AACjD,OAAO,EACL,yBAAyB,EACzB,2BAA2B,EAC3B,+BAA+B,GAChC,MAAM,gCAAgC,CAAC;AAMxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mCAAmC,CAAC;AAClD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oCAAoC,CAAC;AACnD,cAAc,8BAA8B,CAAC;AAC7C,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,EACvB,yBAAyB,EACzB,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACtB,6BAA6B,EAC7B,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,EACjB,uBAAuB,EACvB,2BAA2B,EAC3B,aAAa,EACb,4BAA4B,GAC7B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,eAAe,EACf,cAAc,EACd,0BAA0B,EAC1B,OAAO,EACP,MAAM,GACP,MAAM,aAAa,CAAC;AAUrB,OAAO,EACL,mDAAmD,EACnD,yCAAyC,GAC1C,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAGL,4BAA4B,EAC5B,wBAAwB,EACxB,6BAA6B,EAC7B,+BAA+B,EAC/B,iCAAiC,EACjC,gCAAgC,EAChC,mCAAmC,EACnC,+BAA+B,GAChC,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,0CAA0C,EAAE,MAAM,8BAA8B,CAAC;AAC1F,OAAO,EAAE,gDAAgD,EAAE,MAAM,yCAAyC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EACL,aAAa,EACb,mBAAmB,GACpB,MAAM,iCAAiC,CAAC;AAKzC,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,iBAAiB,GAClB,MAAM,2BAA2B,CAAC;AAEnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,kCAAkC,CAAC;AACjD,cAAc,oCAAoC,CAAC;AACnD,OAAO,EACL,yBAAyB,EACzB,2BAA2B,EAC3B,+BAA+B,GAChC,MAAM,gCAAgC,CAAC;AAMxC,OAAO,EACL,2BAA2B,EAC3B,6BAA6B,EAC7B,4BAA4B,EAC5B,iCAAiC,GAClC,MAAM,kCAAkC,CAAC;AAS1C,OAAO,EACL,2CAA2C,EAC3C,kCAAkC,GACnC,MAAM,mCAAmC,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,mCAAmC,CAAC;AAClD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,oCAAoC,CAAC;AACnD,cAAc,8BAA8B,CAAC;AAC7C,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,EACvB,yBAAyB,EACzB,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACtB,6BAA6B,EAC7B,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,EACjB,uBAAuB,EACvB,2BAA2B,EAC3B,aAAa,EACb,4BAA4B,GAC7B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,eAAe,EACf,cAAc,EACd,0BAA0B,EAC1B,OAAO,EACP,MAAM,GACP,MAAM,aAAa,CAAC;AAUrB,OAAO,EACL,mDAAmD,EACnD,yCAAyC,GAC1C,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAGL,4BAA4B,EAC5B,wBAAwB,EACxB,6BAA6B,EAC7B,+BAA+B,EAC/B,iCAAiC,EACjC,gCAAgC,EAChC,mCAAmC,EACnC,+BAA+B,GAChC,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,0CAA0C,EAAE,MAAM,8BAA8B,CAAC;AAC1F,OAAO,EAAE,gDAAgD,EAAE,MAAM,yCAAyC,CAAC"}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
import { vendorModelPremiumPayloadFromError, } from '../../media/index.js';
|
|
2
|
+
export const HAPPYHORSE_PROVIDER_CONTENT_POLICY_MESSAGE = "HappyHorse's content check didn't pass this one, so no video came back this time. We can adjust the prompt or try a different look and give it another go.";
|
|
3
|
+
export const HAPPYHORSE_VENDOR_GENERATION_FAILED_MESSAGE = "HappyHorse hit a snag partway through this one, so no media was generated. The provider did not return a specific reason — a quick retry usually clears it up. If it happens again, you can report the issue right from this message.";
|
|
4
|
+
export const HAPPYHORSE_VENDOR_TIMEOUT_MESSAGE = "HappyHorse took a bit too long on this one and timed out, so no media was generated. A quick retry usually does the trick; if it times out again, you can report the issue right from this message.";
|
|
5
|
+
export const HAPPYHORSE_INPUT_DOWNLOAD_FAILED_MESSAGE = "HappyHorse couldn't fetch one of the images for this video, so no media was generated. Make sure each reference image is a publicly reachable URL (or send it inline) and we'll try again.";
|
|
6
|
+
export class HappyHorseTerminalPolicyError extends Error {
|
|
7
|
+
constructor(payload) {
|
|
8
|
+
super(payload.message);
|
|
9
|
+
this.name = 'HappyHorseTerminalPolicyError';
|
|
10
|
+
this.payload = payload;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
function collectErrorText(value, seen = new WeakSet()) {
|
|
14
|
+
if (value === null || value === undefined)
|
|
15
|
+
return '';
|
|
16
|
+
if (typeof value === 'string')
|
|
17
|
+
return value;
|
|
18
|
+
if (typeof value === 'number' || typeof value === 'boolean') {
|
|
19
|
+
return String(value);
|
|
20
|
+
}
|
|
21
|
+
if (value instanceof Error) {
|
|
22
|
+
const cause = value.cause;
|
|
23
|
+
return [
|
|
24
|
+
value.name,
|
|
25
|
+
value.message,
|
|
26
|
+
cause ? collectErrorText(cause, seen) : '',
|
|
27
|
+
].filter(Boolean).join(' ');
|
|
28
|
+
}
|
|
29
|
+
if (typeof value !== 'object')
|
|
30
|
+
return String(value);
|
|
31
|
+
if (seen.has(value))
|
|
32
|
+
return '';
|
|
33
|
+
seen.add(value);
|
|
34
|
+
const record = value;
|
|
35
|
+
const nested = Object.values(record)
|
|
36
|
+
.map((nestedValue) => collectErrorText(nestedValue, seen))
|
|
37
|
+
.filter(Boolean)
|
|
38
|
+
.join(' ');
|
|
39
|
+
try {
|
|
40
|
+
return `${JSON.stringify(value)} ${nested}`.trim();
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
return nested;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
function extractHappyHorseFailureFields(value, seen = new WeakSet()) {
|
|
47
|
+
if (value && typeof value === 'object' && !seen.has(value)) {
|
|
48
|
+
seen.add(value);
|
|
49
|
+
const record = value;
|
|
50
|
+
const output = record.output;
|
|
51
|
+
if (output && typeof output === 'object') {
|
|
52
|
+
const out = output;
|
|
53
|
+
const code = typeof out.code === 'string' ? out.code : null;
|
|
54
|
+
const message = typeof out.message === 'string' ? out.message : null;
|
|
55
|
+
if (code || message)
|
|
56
|
+
return { code, message };
|
|
57
|
+
}
|
|
58
|
+
for (const nested of Object.values(record)) {
|
|
59
|
+
if (nested && typeof nested === 'object') {
|
|
60
|
+
const found = extractHappyHorseFailureFields(nested, seen);
|
|
61
|
+
if (found.code || found.message)
|
|
62
|
+
return found;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
const text = collectErrorText(value);
|
|
67
|
+
const code = text.match(/"code"\s*:\s*"([^"]+)"/i)?.[1] ?? null;
|
|
68
|
+
const messageRaw = text.match(/"(?:message|Message)"\s*:\s*"((?:[^"\\]|\\.)*)"/)?.[1] ?? null;
|
|
69
|
+
let message = null;
|
|
70
|
+
if (messageRaw) {
|
|
71
|
+
let parsed = messageRaw;
|
|
72
|
+
try {
|
|
73
|
+
parsed = JSON.parse(`"${messageRaw}"`);
|
|
74
|
+
}
|
|
75
|
+
catch {
|
|
76
|
+
}
|
|
77
|
+
message = parsed.replace(/\s*Request id:\s*[A-Za-z0-9._-]+/i, '').trim() || null;
|
|
78
|
+
}
|
|
79
|
+
return { code, message };
|
|
80
|
+
}
|
|
81
|
+
function textHasHappyHorseContentPolicySignal(text) {
|
|
82
|
+
return (/\bcontent[_\s-]?policy\b/i.test(text) ||
|
|
83
|
+
/\bmoderation\b/i.test(text) ||
|
|
84
|
+
/\bsafety\s+(?:system|review|violation|violations)\b/i.test(text) ||
|
|
85
|
+
/\bsafety[_\s-]?violations?\b/i.test(text) ||
|
|
86
|
+
/\bSensitiveContentDetected\b/i.test(text) ||
|
|
87
|
+
/\bsensitive\s+content\b/i.test(text) ||
|
|
88
|
+
/\bnsfw\b/i.test(text) ||
|
|
89
|
+
/\bDataInspection(?:Failed|Exception)?\b/i.test(text));
|
|
90
|
+
}
|
|
91
|
+
export function happyhorseTerminalPolicyPayloadFromError(error) {
|
|
92
|
+
if (error instanceof HappyHorseTerminalPolicyError)
|
|
93
|
+
return error.payload;
|
|
94
|
+
const text = collectErrorText(error);
|
|
95
|
+
if (!textHasHappyHorseContentPolicySignal(text))
|
|
96
|
+
return null;
|
|
97
|
+
if (!/\bhappy\s*horse\b/i.test(text) && !/\bhappyhorse\b/i.test(text))
|
|
98
|
+
return null;
|
|
99
|
+
const { code } = extractHappyHorseFailureFields(error);
|
|
100
|
+
return {
|
|
101
|
+
error: 'happyhorse_content_policy',
|
|
102
|
+
message: HAPPYHORSE_PROVIDER_CONTENT_POLICY_MESSAGE,
|
|
103
|
+
retryPolicy: 'manual_user_confirmation',
|
|
104
|
+
nextAction: 'wait_for_user',
|
|
105
|
+
vendorErrorCode: code ?? 'HAPPYHORSE_CONTENT_POLICY',
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
export function happyhorseTerminalPolicyErrorFromError(error) {
|
|
109
|
+
const payload = happyhorseTerminalPolicyPayloadFromError(error);
|
|
110
|
+
return payload ? new HappyHorseTerminalPolicyError(payload) : null;
|
|
111
|
+
}
|
|
112
|
+
export function happyhorseTerminalGenerationFailurePayloadFromError(error) {
|
|
113
|
+
const premiumPayload = vendorModelPremiumPayloadFromError(error);
|
|
114
|
+
if (premiumPayload)
|
|
115
|
+
return premiumPayload;
|
|
116
|
+
const text = collectErrorText(error);
|
|
117
|
+
if (!/\bAll\s+\d+\s+(?:video generation|sound-to-video|video-to-video)\s+jobs failed\b/i.test(text)
|
|
118
|
+
&& !/\bVendor task\b[\s\S]{0,140}\bstatus=failed\b/i.test(text)
|
|
119
|
+
&& !/\bVendor (?:job|dispatch) failed\b/i.test(text)
|
|
120
|
+
&& !/\bhappyhorse\b/i.test(text)
|
|
121
|
+
&& !/\bhappy\s*horse\b/i.test(text)) {
|
|
122
|
+
return null;
|
|
123
|
+
}
|
|
124
|
+
const { code, message } = extractHappyHorseFailureFields(error);
|
|
125
|
+
if (message && /\bfailed to download\b/i.test(message)) {
|
|
126
|
+
return {
|
|
127
|
+
error: 'happyhorse_input_download_failed',
|
|
128
|
+
message: HAPPYHORSE_INPUT_DOWNLOAD_FAILED_MESSAGE,
|
|
129
|
+
retryPolicy: 'manual_user_confirmation',
|
|
130
|
+
nextAction: 'wait_for_user',
|
|
131
|
+
vendorErrorCode: code ?? 'InvalidParameter',
|
|
132
|
+
vendorError: message.slice(0, 500),
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
if (/\b(?:timed?\s*out|timeout|deadline\s+exceeded)\b/i.test(text)) {
|
|
136
|
+
return {
|
|
137
|
+
error: 'happyhorse_generation_failed',
|
|
138
|
+
message: HAPPYHORSE_VENDOR_TIMEOUT_MESSAGE,
|
|
139
|
+
retryPolicy: 'manual_user_confirmation',
|
|
140
|
+
nextAction: 'wait_for_user',
|
|
141
|
+
reportIssue: true,
|
|
142
|
+
reportIssueReason: 'HappyHorse provider job timed out after starting.',
|
|
143
|
+
vendorErrorCode: code ?? 'PROVIDER_TIMEOUT',
|
|
144
|
+
...(text ? { vendorError: text.slice(0, 500) } : {}),
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
if (message) {
|
|
148
|
+
return {
|
|
149
|
+
error: 'happyhorse_generation_failed',
|
|
150
|
+
message: `HappyHorse rejected the request: ${message}`,
|
|
151
|
+
retryPolicy: 'manual_user_confirmation',
|
|
152
|
+
nextAction: 'wait_for_user',
|
|
153
|
+
...(code ? { vendorErrorCode: code } : {}),
|
|
154
|
+
vendorError: message.slice(0, 500),
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
return {
|
|
158
|
+
error: 'happyhorse_generation_failed',
|
|
159
|
+
message: HAPPYHORSE_VENDOR_GENERATION_FAILED_MESSAGE,
|
|
160
|
+
retryPolicy: 'manual_user_confirmation',
|
|
161
|
+
nextAction: 'wait_for_user',
|
|
162
|
+
reportIssue: true,
|
|
163
|
+
reportIssueReason: 'HappyHorse provider job failed after starting without a specific provider reason.',
|
|
164
|
+
...(code ? { vendorErrorCode: code } : {}),
|
|
165
|
+
...(text ? { vendorError: text.slice(0, 500) } : {}),
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
//# sourceMappingURL=happyhorsePolicyErrors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"happyhorsePolicyErrors.js","sourceRoot":"","sources":["../../../src/tools/shared/happyhorsePolicyErrors.ts"],"names":[],"mappings":"AAoBA,OAAO,EACL,kCAAkC,GAEnC,MAAM,sBAAsB,CAAC;AAE9B,MAAM,CAAC,MAAM,0CAA0C,GACrD,4JAA4J,CAAC;AAE/J,MAAM,CAAC,MAAM,2CAA2C,GACtD,uOAAuO,CAAC;AAE1O,MAAM,CAAC,MAAM,iCAAiC,GAC5C,qMAAqM,CAAC;AAExM,MAAM,CAAC,MAAM,wCAAwC,GACnD,4LAA4L,CAAC;AAuB/L,MAAM,OAAO,6BAA8B,SAAQ,KAAK;IAGtD,YAAY,OAAwC;QAClD,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,+BAA+B,CAAC;QAC5C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AAED,SAAS,gBAAgB,CAAC,KAAc,EAAE,OAAO,IAAI,OAAO,EAAU;IACpE,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACrD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QAC5D,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IACD,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAI,KAA6B,CAAC,KAAK,CAAC;QACnD,OAAO;YACL,KAAK,CAAC,IAAI;YACV,KAAK,CAAC,OAAO;YACb,KAAK,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;SAC3C,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACpD,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAC/B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAEhB,MAAM,MAAM,GAAG,KAAgC,CAAC;IAChD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;SACjC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;SACzD,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,GAAG,CAAC,CAAC;IAEb,IAAI,CAAC;QACH,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;IACrD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,MAAM,CAAC;IAChB,CAAC;AACH,CAAC;AAQD,SAAS,8BAA8B,CACrC,KAAc,EACd,OAAO,IAAI,OAAO,EAAU;IAE5B,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3D,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAChB,MAAM,MAAM,GAAG,KAAgC,CAAC;QAChD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC7B,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YACzC,MAAM,GAAG,GAAG,MAAiC,CAAC;YAC9C,MAAM,IAAI,GAAG,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;YAC5D,MAAM,OAAO,GAAG,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;YACrE,IAAI,IAAI,IAAI,OAAO;gBAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QAChD,CAAC;QACD,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3C,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACzC,MAAM,KAAK,GAAG,8BAA8B,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBAC3D,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO;oBAAE,OAAO,KAAK,CAAC;YAChD,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,IAAI,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IAChE,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,iDAAiD,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IAC9F,IAAI,OAAO,GAAkB,IAAI,CAAC;IAClC,IAAI,UAAU,EAAE,CAAC;QACf,IAAI,MAAM,GAAG,UAAU,CAAC;QACxB,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,UAAU,GAAG,CAAC,CAAC;QACzC,CAAC;QAAC,MAAM,CAAC;QAET,CAAC;QACD,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,mCAAmC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC;IACnF,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AAC3B,CAAC;AAED,SAAS,oCAAoC,CAAC,IAAY;IACxD,OAAO,CACL,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC;QACtC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;QAC5B,sDAAsD,CAAC,IAAI,CAAC,IAAI,CAAC;QACjE,+BAA+B,CAAC,IAAI,CAAC,IAAI,CAAC;QAC1C,+BAA+B,CAAC,IAAI,CAAC,IAAI,CAAC;QAC1C,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC;QACrC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;QACtB,0CAA0C,CAAC,IAAI,CAAC,IAAI,CAAC,CACtD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wCAAwC,CACtD,KAAc;IAEd,IAAI,KAAK,YAAY,6BAA6B;QAAE,OAAO,KAAK,CAAC,OAAO,CAAC;IAEzE,MAAM,IAAI,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACrC,IAAI,CAAC,oCAAoC,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAK7D,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAEnF,MAAM,EAAE,IAAI,EAAE,GAAG,8BAA8B,CAAC,KAAK,CAAC,CAAC;IACvD,OAAO;QACL,KAAK,EAAE,2BAA2B;QAClC,OAAO,EAAE,0CAA0C;QACnD,WAAW,EAAE,0BAA0B;QACvC,UAAU,EAAE,eAAe;QAC3B,eAAe,EAAE,IAAI,IAAI,2BAA2B;KACrD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sCAAsC,CACpD,KAAc;IAEd,MAAM,OAAO,GAAG,wCAAwC,CAAC,KAAK,CAAC,CAAC;IAChE,OAAO,OAAO,CAAC,CAAC,CAAC,IAAI,6BAA6B,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACrE,CAAC;AAED,MAAM,UAAU,mDAAmD,CACjE,KAAc;IAEd,MAAM,cAAc,GAAG,kCAAkC,CAAC,KAAK,CAAC,CAAC;IACjE,IAAI,cAAc;QAAE,OAAO,cAAc,CAAC;IAE1C,MAAM,IAAI,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACrC,IACE,CAAC,mFAAmF,CAAC,IAAI,CAAC,IAAI,CAAC;WAC5F,CAAC,gDAAgD,CAAC,IAAI,CAAC,IAAI,CAAC;WAC5D,CAAC,qCAAqC,CAAC,IAAI,CAAC,IAAI,CAAC;WACjD,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;WAC7B,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,EACnC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,8BAA8B,CAAC,KAAK,CAAC,CAAC;IAGhE,IAAI,OAAO,IAAI,yBAAyB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACvD,OAAO;YACL,KAAK,EAAE,kCAAkC;YACzC,OAAO,EAAE,wCAAwC;YACjD,WAAW,EAAE,0BAA0B;YACvC,UAAU,EAAE,eAAe;YAC3B,eAAe,EAAE,IAAI,IAAI,kBAAkB;YAC3C,WAAW,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;SACnC,CAAC;IACJ,CAAC;IAED,IAAI,mDAAmD,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACnE,OAAO;YACL,KAAK,EAAE,8BAA8B;YACrC,OAAO,EAAE,iCAAiC;YAC1C,WAAW,EAAE,0BAA0B;YACvC,UAAU,EAAE,eAAe;YAC3B,WAAW,EAAE,IAAI;YACjB,iBAAiB,EAAE,mDAAmD;YACtE,eAAe,EAAE,IAAI,IAAI,kBAAkB;YAC3C,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACrD,CAAC;IACJ,CAAC;IAID,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO;YACL,KAAK,EAAE,8BAA8B;YACrC,OAAO,EAAE,oCAAoC,OAAO,EAAE;YACtD,WAAW,EAAE,0BAA0B;YACvC,UAAU,EAAE,eAAe;YAC3B,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1C,WAAW,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;SACnC,CAAC;IACJ,CAAC;IAED,OAAO;QACL,KAAK,EAAE,8BAA8B;QACrC,OAAO,EAAE,2CAA2C;QACpD,WAAW,EAAE,0BAA0B;QACvC,UAAU,EAAE,eAAe;QAC3B,WAAW,EAAE,IAAI;QACjB,iBAAiB,EAAE,mFAAmF;QACtG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1C,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACrD,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
export const HAPPYHORSE_REFERENCE_LIMITS = Object.freeze({
|
|
2
|
+
'happyhorse-1.1-t2v': Object.freeze({ images: 0, videos: 0, audios: 0, assets: 0 }),
|
|
3
|
+
'happyhorse-1.1-i2v': Object.freeze({ images: 1, videos: 0, audios: 0, assets: 1 }),
|
|
4
|
+
'happyhorse-1.1-r2v': Object.freeze({ images: 9, videos: 0, audios: 0, assets: 9 }),
|
|
5
|
+
});
|
|
6
|
+
export function getHappyHorseReferenceLimits(modelId) {
|
|
7
|
+
if (!modelId)
|
|
8
|
+
return null;
|
|
9
|
+
return HAPPYHORSE_REFERENCE_LIMITS[modelId] ?? null;
|
|
10
|
+
}
|
|
11
|
+
export class HappyHorseReferenceLimitError extends Error {
|
|
12
|
+
constructor(modelId, limitKind, requestedCount, maxCount) {
|
|
13
|
+
const label = limitKind === 'assets' ? 'total references' : `${limitKind.slice(0, -1)} references`;
|
|
14
|
+
super(`HappyHorse (${modelId}) can use up to ${maxCount} ${label} per video; this request included ${requestedCount}. ` +
|
|
15
|
+
'No media was generated. Please choose fewer references or split the story into multiple clips.');
|
|
16
|
+
this.code = 'happyhorse_reference_limit_exceeded';
|
|
17
|
+
this.name = 'HappyHorseReferenceLimitError';
|
|
18
|
+
this.modelId = modelId;
|
|
19
|
+
this.limitKind = limitKind;
|
|
20
|
+
this.requestedCount = requestedCount;
|
|
21
|
+
this.maxCount = maxCount;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
export function validateHappyHorseReferenceCounts(modelId, counts) {
|
|
25
|
+
const limits = HAPPYHORSE_REFERENCE_LIMITS[modelId];
|
|
26
|
+
if (!limits) {
|
|
27
|
+
throw new HappyHorseReferenceLimitError(modelId, 'assets', 0, 0);
|
|
28
|
+
}
|
|
29
|
+
const images = Math.max(0, Math.floor(counts.images));
|
|
30
|
+
const videos = Math.max(0, Math.floor(counts.videos));
|
|
31
|
+
const audios = Math.max(0, Math.floor(counts.audios));
|
|
32
|
+
if (images > limits.images) {
|
|
33
|
+
throw new HappyHorseReferenceLimitError(modelId, 'images', images, limits.images);
|
|
34
|
+
}
|
|
35
|
+
if (videos > limits.videos) {
|
|
36
|
+
throw new HappyHorseReferenceLimitError(modelId, 'videos', videos, limits.videos);
|
|
37
|
+
}
|
|
38
|
+
if (audios > limits.audios) {
|
|
39
|
+
throw new HappyHorseReferenceLimitError(modelId, 'audios', audios, limits.audios);
|
|
40
|
+
}
|
|
41
|
+
const total = images + videos + audios;
|
|
42
|
+
if (total > limits.assets) {
|
|
43
|
+
throw new HappyHorseReferenceLimitError(modelId, 'assets', total, limits.assets);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=happyhorseReferences.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"happyhorseReferences.js","sourceRoot":"","sources":["../../../src/tools/shared/happyhorseReferences.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,7 @@ export const MODELS_BY_TOOL = {
|
|
|
12
12
|
{ key: 'gpt-image-2', displayName: 'GPT Image 2' },
|
|
13
13
|
{ key: 'z-turbo', displayName: 'Z-Image Turbo' },
|
|
14
14
|
{ key: 'z-image', displayName: 'Z-Image' },
|
|
15
|
+
{ key: 'krea-2-turbo', displayName: 'Krea 2 Turbo' },
|
|
15
16
|
{ key: 'chroma-v46-flash', displayName: 'Chroma v.46 Flash' },
|
|
16
17
|
{ key: 'chroma-detail', displayName: 'Chroma Detail' },
|
|
17
18
|
{ key: 'flux1-krea', displayName: 'Flux.1 Krea' },
|
|
@@ -48,6 +49,9 @@ export const MODELS_BY_TOOL = {
|
|
|
48
49
|
{ key: 'seedance2', displayName: 'Seedance 2.0' },
|
|
49
50
|
{ key: 'seedance2-mini', displayName: 'Seedance 2.0 Mini' },
|
|
50
51
|
{ key: 'seedance2-fast', displayName: 'Seedance 2.0 Fast' },
|
|
52
|
+
{ key: 'happyhorse-1.1-t2v', displayName: 'HappyHorse 1.1 (Text to Video)' },
|
|
53
|
+
{ key: 'happyhorse-1.1-i2v', displayName: 'HappyHorse 1.1 (Image to Video)' },
|
|
54
|
+
{ key: 'happyhorse-1.1-r2v', displayName: 'HappyHorse 1.1 (Reference to Video)' },
|
|
51
55
|
],
|
|
52
56
|
animate_photo: [
|
|
53
57
|
{ key: 'ltx23', displayName: 'LTX 2.3 22B' },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modelRegistry.js","sourceRoot":"","sources":["../../../src/tools/shared/modelRegistry.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"modelRegistry.js","sourceRoot":"","sources":["../../../src/tools/shared/modelRegistry.ts"],"names":[],"mappings":"AAiBA,MAAM,mBAAmB,GAAkB;IACzC,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,gCAAgC,EAAE;IAC9D,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,sBAAsB,EAAE;IAClD,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE;CAChD,CAAC;AAGF,MAAM,mBAAmB,GAAkB;IACzC,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,gCAAgC,EAAE;IAC9D,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,sBAAsB,EAAE;CACnD,CAAC;AAMF,MAAM,CAAC,MAAM,cAAc,GAAkC;IAC3D,cAAc,EAAE;QACd,EAAE,GAAG,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE;QAClD,EAAE,GAAG,EAAE,SAAS,EAAE,WAAW,EAAE,eAAe,EAAE;QAChD,EAAE,GAAG,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE;QAC1C,EAAE,GAAG,EAAE,cAAc,EAAE,WAAW,EAAE,cAAc,EAAE;QACpD,EAAE,GAAG,EAAE,kBAAkB,EAAE,WAAW,EAAE,mBAAmB,EAAE;QAC7D,EAAE,GAAG,EAAE,eAAe,EAAE,WAAW,EAAE,eAAe,EAAE;QACtD,EAAE,GAAG,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE;QACjD,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE;QAC3C,EAAE,GAAG,EAAE,SAAS,EAAE,WAAW,EAAE,wBAAwB,EAAE;QACzD,EAAE,GAAG,EAAE,WAAW,EAAE,WAAW,EAAE,iBAAiB,EAAE;QACpD,EAAE,GAAG,EAAE,qBAAqB,EAAE,WAAW,EAAE,2BAA2B,EAAE;QACxE,EAAE,GAAG,EAAE,WAAW,EAAE,WAAW,EAAE,0BAA0B,EAAE;QAC7D,EAAE,GAAG,EAAE,cAAc,EAAE,WAAW,EAAE,kBAAkB,EAAE;QACxD,EAAE,GAAG,EAAE,iBAAiB,EAAE,WAAW,EAAE,oBAAoB,EAAE;QAC7D,EAAE,GAAG,EAAE,iBAAiB,EAAE,WAAW,EAAE,oBAAoB,EAAE;QAC7D,EAAE,GAAG,EAAE,eAAe,EAAE,WAAW,EAAE,2BAA2B,EAAE;QAClE,EAAE,GAAG,EAAE,mBAAmB,EAAE,WAAW,EAAE,wBAAwB,EAAE;QACnE,EAAE,GAAG,EAAE,mBAAmB,EAAE,WAAW,EAAE,sBAAsB,EAAE;QACjE,EAAE,GAAG,EAAE,eAAe,EAAE,WAAW,EAAE,uBAAuB,EAAE;QAC9D,EAAE,GAAG,EAAE,cAAc,EAAE,WAAW,EAAE,0BAA0B,EAAE;QAChE,EAAE,GAAG,EAAE,eAAe,EAAE,WAAW,EAAE,iBAAiB,EAAE;QACxD,EAAE,GAAG,EAAE,gBAAgB,EAAE,WAAW,EAAE,qBAAqB,EAAE;QAC7D,EAAE,GAAG,EAAE,gBAAgB,EAAE,WAAW,EAAE,gBAAgB,EAAE;KACzD;IACD,UAAU,EAAE;QACV,EAAE,GAAG,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE;QAClD,EAAE,GAAG,EAAE,gBAAgB,EAAE,WAAW,EAAE,2BAA2B,EAAE;QACnE,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,sBAAsB,EAAE;QACpD,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE;KAC5C;IACD,aAAa,EAAE,mBAAmB;IAClC,WAAW,EAAE,mBAAmB;IAChC,aAAa,EAAE,mBAAmB;IAClC,YAAY,EAAE,mBAAmB;IACjC,cAAc,EAAE;QACd,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE;QAC5C,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE;QAC5C,EAAE,GAAG,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE;QACjD,EAAE,GAAG,EAAE,gBAAgB,EAAE,WAAW,EAAE,mBAAmB,EAAE;QAC3D,EAAE,GAAG,EAAE,gBAAgB,EAAE,WAAW,EAAE,mBAAmB,EAAE;QAC3D,EAAE,GAAG,EAAE,oBAAoB,EAAE,WAAW,EAAE,gCAAgC,EAAE;QAC5E,EAAE,GAAG,EAAE,oBAAoB,EAAE,WAAW,EAAE,iCAAiC,EAAE;QAC7E,EAAE,GAAG,EAAE,oBAAoB,EAAE,WAAW,EAAE,qCAAqC,EAAE;KAClF;IACD,aAAa,EAAE;QACb,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE;QAC5C,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE;KAC7C;IACD,cAAc,EAAE;QACd,EAAE,GAAG,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE;QAC9C,EAAE,GAAG,EAAE,WAAW,EAAE,WAAW,EAAE,0BAA0B,EAAE;QAC7D,EAAE,GAAG,EAAE,gBAAgB,EAAE,WAAW,EAAE,+BAA+B,EAAE;QACvE,EAAE,GAAG,EAAE,gBAAgB,EAAE,WAAW,EAAE,+BAA+B,EAAE;QACvE,EAAE,GAAG,EAAE,YAAY,EAAE,WAAW,EAAE,qBAAqB,EAAE;QACzD,EAAE,GAAG,EAAE,WAAW,EAAE,WAAW,EAAE,oBAAoB,EAAE;KACxD;IACD,cAAc,EAAE;QACd,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE;QACnD,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE;KAChD;CACF,CAAC;AAGF,MAAM,iBAAiB,GAAG;IACxB,eAAe;IACf,aAAa;IACb,eAAe;IACf,cAAc;CACf,CAAC;AAEF,MAAM,qBAAqB,GAAG,CAAC,gBAAgB,EAAE,eAAe,EAAE,gBAAgB,CAAC,CAAC;AAQpF,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC7C,IAAI,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,SAAS,CAAC;IAC3D,OAAO,qBAAqB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC;AAC3E,CAAC;AAGD,MAAM,UAAU,iBAAiB,CAAC,QAAgB;IAChD,OAAO,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC9C,CAAC;AAGD,MAAM,UAAU,eAAe,CAAC,QAAgB;IAC9C,OAAO,cAAc,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AACxC,CAAC;AAGD,MAAM,UAAU,oBAAoB,CAClC,QAAgB,EAChB,eAAwB;IAExB,MAAM,GAAG,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IACtC,IAAI,CAAC,eAAe;QAAE,OAAO,GAAG,CAAC;IACjC,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,eAAe,CAAC,CAAC;AACtD,CAAC"}
|
|
@@ -23,6 +23,9 @@ export function isLtxVideoModel(modelId) {
|
|
|
23
23
|
export function isSeedanceVideoModel(modelId) {
|
|
24
24
|
return modelId.startsWith('seedance-2-0');
|
|
25
25
|
}
|
|
26
|
+
export function isHappyHorseVideoModel(modelId) {
|
|
27
|
+
return modelId.startsWith('happyhorse-1.1');
|
|
28
|
+
}
|
|
26
29
|
export function getMaxContextImages(modelId) {
|
|
27
30
|
if (modelId.includes('qwen_image_edit')) {
|
|
28
31
|
return 3;
|
|
@@ -270,6 +273,32 @@ export function validateProjectConfig(config) {
|
|
|
270
273
|
throw new SogniValidationError('Seedance audio URL references require at least one image or video reference');
|
|
271
274
|
}
|
|
272
275
|
}
|
|
276
|
+
if (isHappyHorseVideoModel(config.modelId)) {
|
|
277
|
+
if (config.fps !== undefined && config.fps !== 24) {
|
|
278
|
+
throw new SogniValidationError('HappyHorse video models require fps to be 24');
|
|
279
|
+
}
|
|
280
|
+
if (config.duration !== undefined) {
|
|
281
|
+
if (typeof config.duration !== 'number' || config.duration < 3 || config.duration > 15) {
|
|
282
|
+
throw new SogniValidationError('HappyHorse video duration must be between 3 and 15 seconds');
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
const imageAssetCount = (config.referenceImage ? 1 : 0) +
|
|
286
|
+
(config.referenceImageEnd ? 1 : 0) +
|
|
287
|
+
referenceImageUrls.length;
|
|
288
|
+
const videoAssetCount = (config.referenceVideo ? 1 : 0) + referenceVideoUrls.length;
|
|
289
|
+
const audioAssetCount = (config.referenceAudio ? 1 : 0) +
|
|
290
|
+
(config.referenceAudioIdentity ? 1 : 0) +
|
|
291
|
+
referenceAudioUrls.length;
|
|
292
|
+
if (imageAssetCount > 9) {
|
|
293
|
+
throw new SogniValidationError('HappyHorse supports at most 9 image references per request');
|
|
294
|
+
}
|
|
295
|
+
if (videoAssetCount > 0) {
|
|
296
|
+
throw new SogniValidationError('HappyHorse does not support reference videos');
|
|
297
|
+
}
|
|
298
|
+
if (audioAssetCount > 0) {
|
|
299
|
+
throw new SogniValidationError('HappyHorse does not support reference audios; audio is generated natively');
|
|
300
|
+
}
|
|
301
|
+
}
|
|
273
302
|
}
|
|
274
303
|
if (isAudioProjectConfig(config)) {
|
|
275
304
|
if (config.outputFormat && !['mp3', 'flac', 'wav'].includes(config.outputFormat)) {
|