@nodaro/prompts 1.53.2 → 1.55.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/{catalog-packs-DeMcSVCR.d.cts → catalog-packs-Bw7OpufR.d.cts} +1 -1
- package/dist/{catalog-packs-DjqvicAR.d.ts → catalog-packs-CyS8NdLM.d.ts} +1 -1
- package/dist/{chunk-HOZPYHRA.js → chunk-242NZ6SI.js} +5 -5
- package/dist/{chunk-HOZPYHRA.js.map → chunk-242NZ6SI.js.map} +1 -1
- package/dist/{chunk-GRSKB3P7.cjs → chunk-2LWYFWZL.cjs} +528 -2
- package/dist/chunk-2LWYFWZL.cjs.map +1 -0
- package/dist/{chunk-P4BXE4OA.cjs → chunk-2MTFPGQC.cjs} +13 -13
- package/dist/{chunk-P4BXE4OA.cjs.map → chunk-2MTFPGQC.cjs.map} +1 -1
- package/dist/{chunk-EKRO42T3.cjs → chunk-32BMZ4Q5.cjs} +113 -41
- package/dist/chunk-32BMZ4Q5.cjs.map +1 -0
- package/dist/{chunk-WQ7FWGZ2.js → chunk-4MCK7Y6C.js} +524 -3
- package/dist/chunk-4MCK7Y6C.js.map +1 -0
- package/dist/{chunk-FFPFBNXH.cjs → chunk-7ZWWJY24.cjs} +8 -2
- package/dist/chunk-7ZWWJY24.cjs.map +1 -0
- package/dist/{chunk-F22GZF7T.cjs → chunk-AMUXCE7X.cjs} +8 -8
- package/dist/{chunk-F22GZF7T.cjs.map → chunk-AMUXCE7X.cjs.map} +1 -1
- package/dist/{chunk-OQ3J7OGR.cjs → chunk-BHBZN2AP.cjs} +49 -49
- package/dist/{chunk-OQ3J7OGR.cjs.map → chunk-BHBZN2AP.cjs.map} +1 -1
- package/dist/{chunk-YAIPYPMM.js → chunk-BJGD4DBP.js} +4 -4
- package/dist/{chunk-YAIPYPMM.js.map → chunk-BJGD4DBP.js.map} +1 -1
- package/dist/{chunk-ZRORO6OM.js → chunk-CYYHQNW3.js} +4 -4
- package/dist/{chunk-ZRORO6OM.js.map → chunk-CYYHQNW3.js.map} +1 -1
- package/dist/{chunk-E5EKWWOO.cjs → chunk-FEHXLXAV.cjs} +8 -7
- package/dist/chunk-FEHXLXAV.cjs.map +1 -0
- package/dist/{chunk-5XPELUES.js → chunk-GJX5N63V.js} +8 -2
- package/dist/chunk-GJX5N63V.js.map +1 -0
- package/dist/{chunk-XR7RAHZI.js → chunk-HZH6XXYK.js} +81 -9
- package/dist/chunk-HZH6XXYK.js.map +1 -0
- package/dist/{chunk-OMRFKG4M.js → chunk-KBWUO4P7.js} +3 -3
- package/dist/{chunk-OMRFKG4M.js.map → chunk-KBWUO4P7.js.map} +1 -1
- package/dist/{chunk-XRCK3BCF.cjs → chunk-M25N26II.cjs} +55 -10
- package/dist/chunk-M25N26II.cjs.map +1 -0
- package/dist/{chunk-PHCYQWJP.js → chunk-NCF5TAR6.js} +55 -10
- package/dist/chunk-NCF5TAR6.js.map +1 -0
- package/dist/{chunk-NUC5RV4P.cjs → chunk-NDKJW7RP.cjs} +4 -4
- package/dist/{chunk-NUC5RV4P.cjs.map → chunk-NDKJW7RP.cjs.map} +1 -1
- package/dist/{chunk-ED47NNIN.js → chunk-OXNJVQ2V.js} +3 -3
- package/dist/{chunk-ED47NNIN.js.map → chunk-OXNJVQ2V.js.map} +1 -1
- package/dist/{chunk-PWYASBX2.cjs → chunk-P5HAPDV3.cjs} +18 -18
- package/dist/{chunk-PWYASBX2.cjs.map → chunk-P5HAPDV3.cjs.map} +1 -1
- package/dist/{chunk-EUU5W7XR.js → chunk-TMYYALRF.js} +4 -4
- package/dist/{chunk-EUU5W7XR.js.map → chunk-TMYYALRF.js.map} +1 -1
- package/dist/{chunk-H322GC7M.js → chunk-VX3BIUGY.js} +5 -4
- package/dist/chunk-VX3BIUGY.js.map +1 -0
- package/dist/{chunk-VBCVQPQ4.js → chunk-WDKQQ7WL.js} +3 -3
- package/dist/{chunk-VBCVQPQ4.js.map → chunk-WDKQQ7WL.js.map} +1 -1
- package/dist/{chunk-KTNCB2IE.cjs → chunk-XMRDZRGV.cjs} +35 -35
- package/dist/{chunk-KTNCB2IE.cjs.map → chunk-XMRDZRGV.cjs.map} +1 -1
- package/dist/{chunk-7BWDATUZ.cjs → chunk-Y3TSRO3S.cjs} +125 -125
- package/dist/{chunk-7BWDATUZ.cjs.map → chunk-Y3TSRO3S.cjs.map} +1 -1
- package/dist/entries/assembly.cjs +29 -29
- package/dist/entries/assembly.d.cts +9 -0
- package/dist/entries/assembly.d.ts +9 -0
- package/dist/entries/assembly.js +6 -6
- package/dist/entries/catalog-packs.d.cts +4 -4
- package/dist/entries/catalog-packs.d.ts +4 -4
- package/dist/entries/doctrine.cjs +46 -46
- package/dist/entries/doctrine.js +1 -1
- package/dist/entries/person.d.cts +3 -3
- package/dist/entries/person.d.ts +3 -3
- package/dist/entries/picker-art.cjs +22 -22
- package/dist/entries/picker-art.d.cts +1 -1
- package/dist/entries/picker-art.d.ts +1 -1
- package/dist/entries/picker-art.js +2 -2
- package/dist/entries/picker-catalogs.cjs +57 -57
- package/dist/entries/picker-catalogs.d.cts +3 -3
- package/dist/entries/picker-catalogs.d.ts +3 -3
- package/dist/entries/picker-catalogs.js +5 -5
- package/dist/entries/pickers.cjs +383 -383
- package/dist/entries/pickers.js +3 -3
- package/dist/entries/presets.cjs +55 -35
- package/dist/entries/presets.d.cts +29 -1
- package/dist/entries/presets.d.ts +29 -1
- package/dist/entries/presets.js +1 -1
- package/dist/entries/prompt-builder.cjs +76 -76
- package/dist/entries/prompt-builder.js +5 -5
- package/dist/{images-ChAOLY5V.d.cts → images-BQ1jUWyZ.d.cts} +32 -3
- package/dist/{images-ChAOLY5V.d.ts → images-BQ1jUWyZ.d.ts} +32 -3
- package/dist/index.cjs +657 -637
- package/dist/index.d.cts +4 -4
- package/dist/index.d.ts +4 -4
- package/dist/index.js +12 -12
- package/dist/{picker-catalogs-DzLCu6qQ.d.cts → picker-catalogs-BuMGOVWC.d.cts} +1 -1
- package/dist/{picker-catalogs-SDSWrufc.d.ts → picker-catalogs-CVQopXwp.d.ts} +1 -1
- package/package.json +2 -2
- package/src/__tests__/doctrine-roster-completeness.test.ts +3 -0
- package/src/__tests__/factory-preset-previews.test.ts +38 -0
- package/src/__tests__/factory-preset-shelves.test.ts +30 -0
- package/src/__tests__/picker-art-images.test.ts +54 -0
- package/src/__tests__/seedance-extend.test.ts +37 -23
- package/src/__tests__/video-reference-features.test.ts +7 -5
- package/src/__tests__/video-reference-seatless-assets.test.ts +132 -0
- package/src/factory-presets/index.ts +4 -0
- package/src/factory-presets/preview-files.generated.ts +472 -0
- package/src/factory-presets/previews.ts +17 -2
- package/src/factory-presets/shelves.ts +50 -0
- package/src/picker-art/images.ts +39 -2
- package/src/picker-catalogs.ts +4 -2
- package/src/prompt-wizard-categories.ts +15 -3
- package/src/provider-prompt-doctrine.ts +44 -5
- package/src/seatless-assets.ts +141 -0
- package/src/video-reference-resolver.ts +31 -4
- package/dist/chunk-5XPELUES.js.map +0 -1
- package/dist/chunk-E5EKWWOO.cjs.map +0 -1
- package/dist/chunk-EKRO42T3.cjs.map +0 -1
- package/dist/chunk-FFPFBNXH.cjs.map +0 -1
- package/dist/chunk-GRSKB3P7.cjs.map +0 -1
- package/dist/chunk-H322GC7M.js.map +0 -1
- package/dist/chunk-PHCYQWJP.js.map +0 -1
- package/dist/chunk-WQ7FWGZ2.js.map +0 -1
- package/dist/chunk-XR7RAHZI.js.map +0 -1
- package/dist/chunk-XRCK3BCF.cjs.map +0 -1
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { tidyReferenceTokenGaps, unboundReferenceTokenText, renderDescribedReferenceLines, renderReferenceCaptionLines, appendReferenceLines, resolveCharacterMentions, referenceDescriptionLine, insertBeforeStyleSection, applyReferenceOrderToVideo, sectionedClauseCosts, asBodyClauses, renderSubjectHints, SUBJECT_VIDEO_HINT_MODE_DEFAULT, partitionStyleClauses, renderStructuredFields, composeSectionedPrompt, buildImagePromptWithOverflow, SUBJECT_IMAGE_HINT_MODE_DEFAULT } from './chunk-
|
|
1
|
+
import { tidyReferenceTokenGaps, unboundReferenceTokenText, renderDescribedReferenceLines, renderReferenceCaptionLines, appendReferenceLines, resolveCharacterMentions, referenceDescriptionLine, insertBeforeStyleSection, applyReferenceOrderToVideo, sectionedClauseCosts, asBodyClauses, renderSubjectHints, SUBJECT_VIDEO_HINT_MODE_DEFAULT, partitionStyleClauses, renderStructuredFields, composeSectionedPrompt, buildImagePromptWithOverflow, SUBJECT_IMAGE_HINT_MODE_DEFAULT } from './chunk-BJGD4DBP.js';
|
|
2
2
|
import { keepableDirectionHints } from './chunk-JZOPMVGY.js';
|
|
3
3
|
import { buildIdentityLockLine, withForcedIdentityLock } from './chunk-BQWIPLLR.js';
|
|
4
|
-
import { getParameterPromptHint } from './chunk-
|
|
5
|
-
import { styleReferenceDescription, VIDEO_HINT_MODE_DEFAULT, IMAGE_HINT_MODE_DEFAULT } from './chunk-
|
|
6
|
-
import { getMusicEra, getMusicGenre, buildMusicMoodHints } from './chunk-
|
|
4
|
+
import { getParameterPromptHint } from './chunk-TMYYALRF.js';
|
|
5
|
+
import { styleReferenceDescription, VIDEO_HINT_MODE_DEFAULT, IMAGE_HINT_MODE_DEFAULT } from './chunk-WDKQQ7WL.js';
|
|
6
|
+
import { getMusicEra, getMusicGenre, buildMusicMoodHints } from './chunk-VX3BIUGY.js';
|
|
7
7
|
import { findCharacterMentionTokens, roleToPhrase, resolveDefaultRole, DEFAULT_USAGE_MODE, usageModeDirective, REFERENCE_ROLE_PRESETS } from '@nodaro/shared/entities';
|
|
8
8
|
import { imageReferenceLimit, SEEDANCE_2_REF_LIMITS, VIDEO_REF_LIMITS_BY_PROVIDER } from '@nodaro/shared/models';
|
|
9
9
|
import { resolveFrameDelivery } from '@nodaro/shared/video';
|
|
@@ -78,6 +78,68 @@ function resolveRefIdTokens(prompt, ctx) {
|
|
|
78
78
|
return label ?? "";
|
|
79
79
|
}).replace(MALFORMED_REF_ID_TOKEN_RE, "");
|
|
80
80
|
}
|
|
81
|
+
function identityDescription(mode, override, canonical, injection) {
|
|
82
|
+
if (mode === "none" || mode === "name") return "";
|
|
83
|
+
const parts = [];
|
|
84
|
+
const o = override?.trim();
|
|
85
|
+
const c = canonical?.trim();
|
|
86
|
+
if (o) parts.push(o);
|
|
87
|
+
else if ((mode === "identical" || mode === "face-pose") && c) parts.push(c);
|
|
88
|
+
const i = injection?.trim();
|
|
89
|
+
if (i) parts.push(i);
|
|
90
|
+
return parts.join(". ");
|
|
91
|
+
}
|
|
92
|
+
function resolveSeatlessAssets(args) {
|
|
93
|
+
const bySlug = /* @__PURE__ */ new Map();
|
|
94
|
+
for (const r of args.wiredCharRefs) {
|
|
95
|
+
if (r.source !== "wired-character" || !r.characterSlug) continue;
|
|
96
|
+
const known = bySlug.get(r.characterSlug);
|
|
97
|
+
if (!known || known.variantSlug && !r.variantSlug) bySlug.set(r.characterSlug, r);
|
|
98
|
+
}
|
|
99
|
+
const nameOf = (slug) => {
|
|
100
|
+
const r = bySlug.get(slug);
|
|
101
|
+
return r?.defaultName || r?.characterSlug || slug;
|
|
102
|
+
};
|
|
103
|
+
let prompt = args.prompt;
|
|
104
|
+
const mentioned = /* @__PURE__ */ new Set();
|
|
105
|
+
if (prompt && bySlug.size > 0) {
|
|
106
|
+
const tokens = findCharacterMentionTokens(prompt, [...bySlug.keys()]);
|
|
107
|
+
for (const t of [...tokens].sort((a, b) => b.offset - a.offset)) {
|
|
108
|
+
mentioned.add(t.characterSlug);
|
|
109
|
+
prompt = prompt.slice(0, t.offset) + nameOf(t.characterSlug) + prompt.slice(t.offset + t.token.length);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
const identities = [];
|
|
113
|
+
const described = /* @__PURE__ */ new Set();
|
|
114
|
+
const describe = (slug, name, description) => {
|
|
115
|
+
if (described.has(slug)) return;
|
|
116
|
+
described.add(slug);
|
|
117
|
+
if (description) identities.push({ name, description });
|
|
118
|
+
};
|
|
119
|
+
for (const [slug, r] of bySlug) {
|
|
120
|
+
const shown = !args.suppressedCanonicalSlugs.has(slug) || mentioned.has(slug);
|
|
121
|
+
if (!shown) continue;
|
|
122
|
+
describe(
|
|
123
|
+
slug,
|
|
124
|
+
nameOf(slug),
|
|
125
|
+
identityDescription(r.defaultUsageMode ?? DEFAULT_USAGE_MODE, r.descriptionOverride, r.characterCanonicalDescription, r.elementInjection)
|
|
126
|
+
);
|
|
127
|
+
}
|
|
128
|
+
const extraNamesById = /* @__PURE__ */ new Map();
|
|
129
|
+
for (const ex of args.extraRefs ?? []) {
|
|
130
|
+
if (!ex.characterSlug) continue;
|
|
131
|
+
const meta = args.lookupCharacterBySlug?.(ex.characterSlug);
|
|
132
|
+
const name = bySlug.has(ex.characterSlug) ? nameOf(ex.characterSlug) : meta?.characterName || ex.characterSlug;
|
|
133
|
+
if (ex.id) extraNamesById.set(ex.id, name);
|
|
134
|
+
const own = (ex.descriptionOverride ?? "").trim() || (ex.description ?? "").trim();
|
|
135
|
+
describe(
|
|
136
|
+
ex.characterSlug,
|
|
137
|
+
name,
|
|
138
|
+
identityDescription(ex.usageMode ?? meta?.defaultUsageMode ?? DEFAULT_USAGE_MODE, own, meta?.canonicalDescription, ex.elementInjection)
|
|
139
|
+
);
|
|
140
|
+
}
|
|
141
|
+
return { prompt, identities, extraNamesById };
|
|
142
|
+
}
|
|
81
143
|
|
|
82
144
|
// src/video-reference-resolver.ts
|
|
83
145
|
var REFERENCE_TOKEN_RE = /\{(image|video|audio):(\d+)(?::([a-zA-Z0-9_ -]+))?\}/gi;
|
|
@@ -173,8 +235,17 @@ function resolveVideoReferenceCore(args) {
|
|
|
173
235
|
video: args.videoRefCount ?? 0,
|
|
174
236
|
audio: args.audioRefCount ?? 0
|
|
175
237
|
});
|
|
238
|
+
const seatless = args.assetsTakeNoSeat === true ? resolveSeatlessAssets({
|
|
239
|
+
prompt: args.prompt,
|
|
240
|
+
wiredCharRefs: args.wiredCharRefs,
|
|
241
|
+
suppressedCanonicalSlugs: new Set(args.suppressedCanonicalCharacterIds ?? []),
|
|
242
|
+
extraRefs: args.extraRefs,
|
|
243
|
+
lookupCharacterBySlug: args.lookupCharacterBySlug
|
|
244
|
+
}) : void 0;
|
|
176
245
|
const describedAndCaptionLines = [
|
|
177
|
-
...renderDescribedReferenceLines(
|
|
246
|
+
...renderDescribedReferenceLines(
|
|
247
|
+
seatless ? [...seatless.identities, ...args.describedReferences ?? []] : args.describedReferences
|
|
248
|
+
),
|
|
178
249
|
...renderReferenceCaptionLines(args.videoCaptions, args.audioCaptions, {
|
|
179
250
|
video: args.videoRefCount ?? 0,
|
|
180
251
|
audio: args.audioRefCount ?? 0
|
|
@@ -198,14 +269,15 @@ function resolveVideoReferenceCore(args) {
|
|
|
198
269
|
for (const ex of args.extraRefs ?? []) {
|
|
199
270
|
if (ex.id && !nameByRefId.has(ex.id)) nameByRefId.set(ex.id, "");
|
|
200
271
|
}
|
|
272
|
+
for (const [id, name] of seatless?.extraNamesById ?? []) nameByRefId.set(id, name);
|
|
201
273
|
for (const [id, name] of args.refNamesById ?? []) {
|
|
202
274
|
if (id) nameByRefId.set(id, name);
|
|
203
275
|
}
|
|
204
276
|
const slotByRefId = /* @__PURE__ */ new Map();
|
|
205
|
-
if (wiredCharRefs.length === 0 && !hasExtras) {
|
|
277
|
+
if (seatless || wiredCharRefs.length === 0 && !hasExtras) {
|
|
206
278
|
const counts = tokenCounts(leadingRefUrls.length);
|
|
207
279
|
const resolved2 = resolveReferenceTokens(
|
|
208
|
-
resolveRefIdTokens(args.prompt, { slotById: slotByRefId, nameById: nameByRefId, imageCount: counts.image }),
|
|
280
|
+
resolveRefIdTokens(seatless ? seatless.prompt : args.prompt, { slotById: slotByRefId, nameById: nameByRefId, imageCount: counts.image }),
|
|
209
281
|
counts
|
|
210
282
|
);
|
|
211
283
|
return {
|
|
@@ -978,5 +1050,5 @@ function planFrameDelivery(args) {
|
|
|
978
1050
|
}
|
|
979
1051
|
|
|
980
1052
|
export { REF_BINDING, SEEDANCE_VIDEO_EDIT_PREFIX, appendField, appendMusicMeta, assembleImageInput, assembleSunoInput, buildSeedanceVideoEditPrompt, buildSurroundFillPrompt, composeSoundHintFromConnections, composeVideoPromptText, getEffectiveSunoCustomMode, identityRefsSentence, imageBindingFor, placeFramesAfterReferences, planFrameDelivery, promptBindsFirstFrame, resolveGeminiOmniI2vInputs, resolveRefIdTokens, resolveReferenceTokens, resolveSeedance2Inputs, resolveVeoI2vInputs, resolveVideoReferenceCore, truncateForField };
|
|
981
|
-
//# sourceMappingURL=chunk-
|
|
982
|
-
//# sourceMappingURL=chunk-
|
|
1053
|
+
//# sourceMappingURL=chunk-HZH6XXYK.js.map
|
|
1054
|
+
//# sourceMappingURL=chunk-HZH6XXYK.js.map
|