@sogni-ai/sogni-intelligence-client 3.0.9 → 3.0.11
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/public-skill-runtime/index.d.ts +1 -1
- package/dist/public-skill-runtime/index.d.ts.map +1 -1
- package/dist/public-skill-runtime/index.js +14 -3
- package/dist/public-skill-runtime/index.js.map +1 -1
- package/dist/tools/definitions/edit-image/definition.js +1 -1
- package/dist/tools/definitions/edit-image/definition.js.map +1 -1
- package/dist/tools/shared/seedancePolicyErrors.d.ts +6 -6
- package/dist/tools/shared/seedancePolicyErrors.d.ts.map +1 -1
- package/dist/tools/shared/seedancePolicyErrors.js +17 -12
- package/dist/tools/shared/seedancePolicyErrors.js.map +1 -1
- package/dist-esm/public-skill-runtime/index.js +14 -3
- package/dist-esm/public-skill-runtime/index.js.map +1 -1
- package/dist-esm/tools/definitions/edit-image/definition.js +1 -1
- package/dist-esm/tools/definitions/edit-image/definition.js.map +1 -1
- package/dist-esm/tools/shared/seedancePolicyErrors.js +17 -12
- package/dist-esm/tools/shared/seedancePolicyErrors.js.map +1 -1
- package/package.json +1 -1
|
@@ -82,7 +82,7 @@ COMPOSITE GPT IMAGE 2 STORYBOARD SHEETS: When numberOfVariations=1 and the user
|
|
|
82
82
|
model: {
|
|
83
83
|
type: 'string',
|
|
84
84
|
enum: ['gpt-image-2', 'qwen-lightning', 'qwen', 'flux2'],
|
|
85
|
-
description: '
|
|
85
|
+
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 and Z-image 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.',
|
|
86
86
|
},
|
|
87
87
|
sourceImageIndex: {
|
|
88
88
|
type: 'number',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../../src/tools/definitions/edit-image/definition.ts"],"names":[],"mappings":";;;AAMA,wFAAqF;AACrF,sDAAmE;AAEtD,QAAA,UAAU,GAAmB;IACxC,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE;QACR,IAAI,EAAE,YAAY;QAClB,WAAW,EACT,iiCAAiiC;QACniC,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE;;EAErB,iDAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+oBA8DsnB;iBACtoB;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,aAAa,EAAE,gBAAgB,EAAE,MAAM,EAAE,OAAO,CAAC;oBACxD,WAAW,EACT,
|
|
1
|
+
{"version":3,"file":"definition.js","sourceRoot":"","sources":["../../../../src/tools/definitions/edit-image/definition.ts"],"names":[],"mappings":";;;AAMA,wFAAqF;AACrF,sDAAmE;AAEtD,QAAA,UAAU,GAAmB;IACxC,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE;QACR,IAAI,EAAE,YAAY;QAClB,WAAW,EACT,iiCAAiiC;QACniC,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE;;EAErB,iDAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+oBA8DsnB;iBACtoB;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,aAAa,EAAE,gBAAgB,EAAE,MAAM,EAAE,OAAO,CAAC;oBACxD,WAAW,EACT,wlDAAwlD;iBAC3lD;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,mCAAwB,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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { type VendorModelPremiumRequiredPayload } from '../../media/index.js';
|
|
2
2
|
export declare const SEEDANCE_INPUT_IMAGE_PRIVACY_POLICY_CODE = "InputImageSensitiveContentDetected.PrivacyInformation";
|
|
3
|
-
export declare const SEEDANCE_REAL_PERSON_PRIVACY_MESSAGE = "Seedance
|
|
3
|
+
export declare const SEEDANCE_REAL_PERSON_PRIVACY_MESSAGE = "No problem \u2014 Seedance just has a content rule that keeps it from animating photos of real people directly, but we've got a couple of great ways to bring this to life! I can give the people a fun, clearly non-photographic makeover \u2014 anime, cartoon, claymation, LEGO, or bobblehead, or simply hide the faces \u2014 and then run Seedance on that. Or, if you'd like to keep the original look, I can switch to LTX 2.3, which animates your photo directly (it just won't use Seedance-fast). Which sounds best \u2014 a stylized spin, or LTX 2.3?";
|
|
4
4
|
export interface SeedanceStylizeRecoveryOption {
|
|
5
|
-
id: 'anime' | 'lego' | 'bobblehead' | 'claymation' | 'hide_faces';
|
|
5
|
+
id: 'anime' | 'cartoon' | 'lego' | 'bobblehead' | 'claymation' | 'hide_faces';
|
|
6
6
|
label: string;
|
|
7
7
|
editInstruction: string;
|
|
8
8
|
}
|
|
@@ -13,10 +13,10 @@ export interface SeedanceStylizeRecovery {
|
|
|
13
13
|
resubmitToolName: 'generate_video';
|
|
14
14
|
}
|
|
15
15
|
export declare const SEEDANCE_STYLIZE_RECOVERY: SeedanceStylizeRecovery;
|
|
16
|
-
export declare const SEEDANCE_PROVIDER_CONTENT_POLICY_MESSAGE = "Seedance
|
|
17
|
-
export declare const SEEDANCE_VENDOR_GENERATION_FAILED_MESSAGE = "Seedance
|
|
18
|
-
export declare const SEEDANCE_VENDOR_TIMEOUT_MESSAGE = "Seedance
|
|
19
|
-
export declare const SEEDANCE_REFERENCE_AUDIO_TOO_LONG_MESSAGE = "
|
|
16
|
+
export declare const SEEDANCE_PROVIDER_CONTENT_POLICY_MESSAGE = "Seedance'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.";
|
|
17
|
+
export declare const SEEDANCE_VENDOR_GENERATION_FAILED_MESSAGE = "Seedance hit a snag partway through this one, so no media was generated. The provider did not return a specific reason \u2014 a quick retry usually clears it up. If it happens again, you can report the issue right from this message.";
|
|
18
|
+
export declare const SEEDANCE_VENDOR_TIMEOUT_MESSAGE = "Seedance 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.";
|
|
19
|
+
export declare const SEEDANCE_REFERENCE_AUDIO_TOO_LONG_MESSAGE = "That reference audio is a little longer than this Seedance mode allows. Trim it to the mode's limit (or pick a shorter clip) and we'll give it another go.";
|
|
20
20
|
export interface SeedanceTerminalPolicyPayload {
|
|
21
21
|
error: 'seedance_input_image_privacy_policy' | 'seedance_content_policy';
|
|
22
22
|
message: typeof SEEDANCE_REAL_PERSON_PRIVACY_MESSAGE | typeof SEEDANCE_PROVIDER_CONTENT_POLICY_MESSAGE;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seedancePolicyErrors.d.ts","sourceRoot":"","sources":["../../../src/tools/shared/seedancePolicyErrors.ts"],"names":[],"mappings":"AAMA,OAAO,EAEL,KAAK,iCAAiC,EACvC,MAAM,sBAAsB,CAAC;AAE9B,eAAO,MAAM,wCAAwC,0DACI,CAAC;AAE1D,eAAO,MAAM,oCAAoC,
|
|
1
|
+
{"version":3,"file":"seedancePolicyErrors.d.ts","sourceRoot":"","sources":["../../../src/tools/shared/seedancePolicyErrors.ts"],"names":[],"mappings":"AAMA,OAAO,EAEL,KAAK,iCAAiC,EACvC,MAAM,sBAAsB,CAAC;AAE9B,eAAO,MAAM,wCAAwC,0DACI,CAAC;AAE1D,eAAO,MAAM,oCAAoC,wiBACke,CAAC;AAUphB,MAAM,WAAW,6BAA6B;IAC5C,EAAE,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,YAAY,GAAG,YAAY,GAAG,YAAY,CAAC;IAE9E,KAAK,EAAE,MAAM,CAAC;IAEd,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,iCAAiC,EAAE,SAAS,6BAA6B,EAqCrF,CAAC;AAEF,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,8BAA8B,CAAC;IACrC,OAAO,EAAE,SAAS,6BAA6B,EAAE,CAAC;IAElD,gBAAgB,EAAE,gBAAgB,CAAC;CACpC;AAED,eAAO,MAAM,yBAAyB,EAAE,uBAIvC,CAAC;AAEF,eAAO,MAAM,wCAAwC,6JACuG,CAAC;AAE7J,eAAO,MAAM,yCAAyC,6OACiL,CAAC;AACxO,eAAO,MAAM,+BAA+B,sMACyJ,CAAC;AAEtM,eAAO,MAAM,yCAAyC,+JACwG,CAAC;AAE/J,MAAM,WAAW,6BAA6B;IAC5C,KAAK,EAAE,qCAAqC,GAAG,yBAAyB,CAAC;IACzE,OAAO,EAAE,OAAO,oCAAoC,GAAG,OAAO,wCAAwC,CAAC;IACvG,WAAW,EAAE,0BAA0B,CAAC;IACxC,UAAU,EAAE,eAAe,CAAC;IAC5B,UAAU,CAAC,EAAE,IAAI,CAAC;IAClB,eAAe,EAAE,OAAO,wCAAwC,GAAG,MAAM,CAAC;IAK1E,QAAQ,CAAC,EAAE,uBAAuB,CAAC;CACpC;AAED,MAAM,WAAW,wCAAwC;IACvD,KAAK,EAAE,4BAA4B,GAAG,mCAAmC,CAAC;IAC1E,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,0BAA0B,CAAC;IACxC,UAAU,EAAE,eAAe,CAAC;IAC5B,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC;AAED,qBAAa,2BAA4B,SAAQ,KAAK;IACpD,QAAQ,CAAC,OAAO,EAAE,6BAA6B,CAAC;gBAEpC,OAAO,EAAE,6BAA6B;CAKnD;AA0JD,wBAAgB,sCAAsC,CACpD,KAAK,EAAE,OAAO,GACb,6BAA6B,GAAG,IAAI,CAiCtC;AAED,wBAAgB,oCAAoC,CAClD,KAAK,EAAE,OAAO,GACb,2BAA2B,GAAG,IAAI,CAGpC;AAED,wBAAgB,iDAAiD,CAC/D,KAAK,EAAE,OAAO,GACb,wCAAwC,GAAG,iCAAiC,GAAG,IAAI,CAwFrF"}
|
|
@@ -6,32 +6,37 @@ exports.seedanceTerminalPolicyErrorFromError = seedanceTerminalPolicyErrorFromEr
|
|
|
6
6
|
exports.seedanceTerminalGenerationFailurePayloadFromError = seedanceTerminalGenerationFailurePayloadFromError;
|
|
7
7
|
const index_js_1 = require("../../media/index.js");
|
|
8
8
|
exports.SEEDANCE_INPUT_IMAGE_PRIVACY_POLICY_CODE = 'InputImageSensitiveContentDetected.PrivacyInformation';
|
|
9
|
-
exports.SEEDANCE_REAL_PERSON_PRIVACY_MESSAGE = "Seedance
|
|
9
|
+
exports.SEEDANCE_REAL_PERSON_PRIVACY_MESSAGE = "No problem — Seedance just has a content rule that keeps it from animating photos of real people directly, but we've got a couple of great ways to bring this to life! I can give the people a fun, clearly non-photographic makeover — anime, cartoon, claymation, LEGO, or bobblehead, or simply hide the faces — and then run Seedance on that. Or, if you'd like to keep the original look, I can switch to LTX 2.3, which animates your photo directly (it just won't use Seedance-fast). Which sounds best — a stylized spin, or LTX 2.3?";
|
|
10
10
|
exports.SEEDANCE_STYLIZE_RECOVERY_OPTIONS = [
|
|
11
11
|
{
|
|
12
12
|
id: 'anime',
|
|
13
13
|
label: 'Anime version',
|
|
14
|
-
editInstruction: 'Redraw every person in the image as a
|
|
14
|
+
editInstruction: 'Redraw every person in the image as a clearly non-photographic 2D anime character, keeping their pose, outfit, and the overall scene composition; do not preserve a realistic face or skin texture.',
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
id: 'cartoon',
|
|
18
|
+
label: 'Cartoon version',
|
|
19
|
+
editInstruction: 'Redraw every person in the image as a clearly non-photographic cartoon character with simplified facial features, keeping their pose, outfit colors, and the overall scene composition.',
|
|
15
20
|
},
|
|
16
21
|
{
|
|
17
22
|
id: 'lego',
|
|
18
23
|
label: 'LEGO version',
|
|
19
|
-
editInstruction: 'Rebuild every person in the image as a LEGO minifigure, keeping their pose, outfit colors, and the overall scene composition.',
|
|
24
|
+
editInstruction: 'Rebuild every person in the image as a toy-like LEGO minifigure, keeping their pose, outfit colors, and the overall scene composition; avoid realistic human faces and skin.',
|
|
20
25
|
},
|
|
21
26
|
{
|
|
22
27
|
id: 'bobblehead',
|
|
23
28
|
label: 'Bobblehead version',
|
|
24
|
-
editInstruction: 'Turn every person in the image into a cute oversized-head bobblehead figurine
|
|
29
|
+
editInstruction: 'Turn every person in the image into a cute oversized-head bobblehead figurine with toy-like simplified features, keeping the outfit and overall scene composition but avoiding a realistic human likeness.',
|
|
25
30
|
},
|
|
26
31
|
{
|
|
27
32
|
id: 'claymation',
|
|
28
33
|
label: 'Claymation version',
|
|
29
|
-
editInstruction: 'Re-render every person in the image as a stop-motion claymation figure with visible clay texture, keeping their pose, outfit, and the overall scene composition.',
|
|
34
|
+
editInstruction: 'Re-render every person in the image as a stop-motion claymation figure with visible clay texture and simplified faces, keeping their pose, outfit, and the overall scene composition.',
|
|
30
35
|
},
|
|
31
36
|
{
|
|
32
37
|
id: 'hide_faces',
|
|
33
38
|
label: 'Just hide the faces',
|
|
34
|
-
editInstruction: 'Obscure every human face in the image (for example with a tasteful mask, helmet, or soft blur) while keeping the people, their pose, outfit, and the overall scene composition intact.',
|
|
39
|
+
editInstruction: 'Obscure every human face in the image (for example with a tasteful mask, helmet, shadow, or soft blur) while keeping the people, their pose, outfit, and the overall scene composition intact.',
|
|
35
40
|
},
|
|
36
41
|
];
|
|
37
42
|
exports.SEEDANCE_STYLIZE_RECOVERY = {
|
|
@@ -39,10 +44,10 @@ exports.SEEDANCE_STYLIZE_RECOVERY = {
|
|
|
39
44
|
options: exports.SEEDANCE_STYLIZE_RECOVERY_OPTIONS,
|
|
40
45
|
resubmitToolName: 'generate_video',
|
|
41
46
|
};
|
|
42
|
-
exports.SEEDANCE_PROVIDER_CONTENT_POLICY_MESSAGE = "Seedance
|
|
43
|
-
exports.SEEDANCE_VENDOR_GENERATION_FAILED_MESSAGE = "Seedance
|
|
44
|
-
exports.SEEDANCE_VENDOR_TIMEOUT_MESSAGE = "Seedance
|
|
45
|
-
exports.SEEDANCE_REFERENCE_AUDIO_TOO_LONG_MESSAGE =
|
|
47
|
+
exports.SEEDANCE_PROVIDER_CONTENT_POLICY_MESSAGE = "Seedance'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.";
|
|
48
|
+
exports.SEEDANCE_VENDOR_GENERATION_FAILED_MESSAGE = "Seedance 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.";
|
|
49
|
+
exports.SEEDANCE_VENDOR_TIMEOUT_MESSAGE = "Seedance 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.";
|
|
50
|
+
exports.SEEDANCE_REFERENCE_AUDIO_TOO_LONG_MESSAGE = "That reference audio is a little longer than this Seedance mode allows. Trim it to the mode's limit (or pick a shorter clip) and we'll give it another go.";
|
|
46
51
|
class SeedanceTerminalPolicyError extends Error {
|
|
47
52
|
constructor(payload) {
|
|
48
53
|
super(payload.message);
|
|
@@ -154,7 +159,7 @@ function shapeSeedanceInvalidParameterMessage(vendorMessage) {
|
|
|
154
159
|
if (SEEDANCE_FRAME_REFERENCE_CONFLICT_PATTERN.test(vendorMessage)) {
|
|
155
160
|
return {
|
|
156
161
|
vendorMessage,
|
|
157
|
-
userMessage: "Seedance can't
|
|
162
|
+
userMessage: "Seedance can't mix a locked first/last-frame image with audio, video, or extra image references in one request. Send that image as a reference instead of a frame anchor, or drop the extra audio/video reference, and we'll try again.",
|
|
158
163
|
};
|
|
159
164
|
}
|
|
160
165
|
return {
|
|
@@ -226,7 +231,7 @@ function seedanceTerminalGenerationFailurePayloadFromError(error) {
|
|
|
226
231
|
if (audioDurationLimit !== null) {
|
|
227
232
|
return {
|
|
228
233
|
error: 'seedance_reference_audio_too_long',
|
|
229
|
-
message: `
|
|
234
|
+
message: `That reference audio is a bit long — this Seedance mode allows up to ${audioDurationLimit}s. Trim it to ${audioDurationLimit}s or shorter and we'll give it another go.`,
|
|
230
235
|
retryPolicy: 'manual_user_confirmation',
|
|
231
236
|
nextAction: 'wait_for_user',
|
|
232
237
|
vendorErrorCode: 'InvalidParameter',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seedancePolicyErrors.js","sourceRoot":"","sources":["../../../src/tools/shared/seedancePolicyErrors.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"seedancePolicyErrors.js","sourceRoot":"","sources":["../../../src/tools/shared/seedancePolicyErrors.ts"],"names":[],"mappings":"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"}
|
|
@@ -3121,7 +3121,7 @@ function storyboardBoardDimensionsMatchAspect(boardDimensions, boardAspectRatio)
|
|
|
3121
3121
|
const ratioError = Math.abs(actualRatio - targetRatio) / targetRatio;
|
|
3122
3122
|
return ratioError <= 0.1;
|
|
3123
3123
|
}
|
|
3124
|
-
export function inferStoryboardLayoutSpec(userIntentText, frameCount, planningContract) {
|
|
3124
|
+
export function inferStoryboardLayoutSpec(userIntentText, frameCount, planningContract, geometryAuthorityText = userIntentText) {
|
|
3125
3125
|
const planningLayout = planningContract?.layout;
|
|
3126
3126
|
const userDefinedCanvas = typeof planningLayout?.storyboardCanvasSpecifiedByUser === 'boolean'
|
|
3127
3127
|
? planningLayout.storyboardCanvasSpecifiedByUser
|
|
@@ -3133,7 +3133,10 @@ export function inferStoryboardLayoutSpec(userIntentText, frameCount, planningCo
|
|
|
3133
3133
|
: '16:9';
|
|
3134
3134
|
const inferredTargetVideoAspect = inferStoryboardTargetVideoAspect(userIntentText, provisionalBoardAspectRatio, explicitTargetVideoAspectRatio);
|
|
3135
3135
|
const inferredTargetVideoAspectRatio = inferredTargetVideoAspect.aspectRatio;
|
|
3136
|
-
const
|
|
3136
|
+
const authorityTargetVideoAspect = geometryAuthorityText === userIntentText
|
|
3137
|
+
? inferredTargetVideoAspect
|
|
3138
|
+
: inferStoryboardTargetVideoAspect(geometryAuthorityText, provisionalBoardAspectRatio);
|
|
3139
|
+
const userDefinedTargetVideoAspect = authorityTargetVideoAspect.source !== 'board_fallback';
|
|
3137
3140
|
const cellAspectRatio = inferStoryboardCellAspectRatio(userIntentText, inferredTargetVideoAspectRatio);
|
|
3138
3141
|
const targetVideoAspectRatio = explicitTargetVideoAspectRatio ?? cellAspectRatio;
|
|
3139
3142
|
const balancedGrid = userDefinedCanvas
|
|
@@ -5566,12 +5569,20 @@ export function buildStoryboardProject(options) {
|
|
|
5566
5569
|
&& !storyboardBriefContains(primarySourceBrief, userIntentText)) {
|
|
5567
5570
|
layoutTextParts.push(primarySourceBrief);
|
|
5568
5571
|
}
|
|
5572
|
+
const geometryAuthorityParts = [userIntentText].filter(Boolean);
|
|
5573
|
+
if (options.promptAuthorship !== 'assistant'
|
|
5574
|
+
&& primarySourceBrief
|
|
5575
|
+
&& !storyboardBriefContains(userIntentText, primarySourceBrief)
|
|
5576
|
+
&& !storyboardBriefContains(primarySourceBrief, userIntentText)) {
|
|
5577
|
+
geometryAuthorityParts.push(primarySourceBrief);
|
|
5578
|
+
}
|
|
5579
|
+
const geometryAuthorityText = geometryAuthorityParts.join('\n\n') || userIntentText;
|
|
5569
5580
|
if (approvedScriptContext
|
|
5570
5581
|
&& !storyboardBriefContains(layoutTextParts.join('\n'), approvedScriptContext)) {
|
|
5571
5582
|
layoutTextParts.push(approvedScriptContext);
|
|
5572
5583
|
}
|
|
5573
5584
|
const layoutText = layoutTextParts.join('\n\n') || sourceText;
|
|
5574
|
-
const layout = inferStoryboardLayoutSpec(layoutText, options.frameCount, options.planningContract);
|
|
5585
|
+
const layout = inferStoryboardLayoutSpec(layoutText, options.frameCount, options.planningContract, geometryAuthorityText);
|
|
5575
5586
|
const requestedDurationSec = inferRequestedTotalVideoDurationSeconds(userIntentText);
|
|
5576
5587
|
const durationSec = requestedDurationSec ?? inferRequestedTotalVideoDurationSeconds(sourceText);
|
|
5577
5588
|
const references = buildStoryboardReferenceAssets(userIntentText, [
|