@nodaro/prompts 1.36.0 → 1.37.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/index.cjs CHANGED
@@ -42010,6 +42010,8 @@ var NODE_PROMPT_FIELDS = {
42010
42010
  "cinematic-avatar": { prompt: "prompt", media: "video", inline: true },
42011
42011
  "video-sfx": { prompt: "prompt", negative: "negativePrompt", promptLabel: "Sound prompt", media: "audio", inline: true },
42012
42012
  "video-retake": { prompt: "prompt", promptLabel: "Retake prompt", media: "video", inline: true },
42013
+ // Video Mask (SAM 3) — the subject to track, like Generate Mask's "what to mask".
42014
+ "video-mask": { prompt: "prompt", promptLabel: "What to mask", media: "video", inline: true },
42013
42015
  // ── Audio / music ──
42014
42016
  "generate-music": { prompt: "prompt", media: "audio", inline: true },
42015
42017
  "suno-generate": { prompt: "prompt", media: "audio", inline: true },
@@ -43908,6 +43910,13 @@ var GENERATE_IMAGE_PRESETS = [
43908
43910
  ];
43909
43911
 
43910
43912
  // src/factory-presets/generate-video.ts
43913
+ var UGC_TAIL = "Keep it subtitle-free, do not generate a watermark.";
43914
+ var UGC_PAUSE = "A short natural pause before the first word and after the last.";
43915
+ var ugcSpeech = (line) => `The person says, in a natural American accent, lively and conversational, quicker on connecting words and slower on numbers: "{line || ${line}}"`;
43916
+ var UGC_VIDEO = { provider: "seedance-2-5", aspectRatio: "9:16", duration: 8, resolution: "720p", generateAudio: true };
43917
+ var UGC_SHORT_VIDEO = { ...UGC_VIDEO, duration: 5 };
43918
+ var ugcPrompt = (...parts) => [...parts, UGC_TAIL].join(" ");
43919
+ var TALKING_AT_HOME = "{image:1:person} talks straight to the viewer at eye level at home, face and shoulders close, the framing a little crooked, deep focus, plain colour, a faint natural sway;";
43911
43920
  var GENERATE_VIDEO_PRESETS = [
43912
43921
  // ── Camera Moves (composable cinematography fragments) ───────────────────
43913
43922
  {
@@ -45006,6 +45015,63 @@ var GENERATE_VIDEO_PRESETS = [
45006
45015
  promptPrefix: "edit {video:1} as follows:\n",
45007
45016
  promptSuffix: "Keep everything else in the clip unchanged: the same people, motion, framing and timing. Keep it subtitle-free, do not generate a watermark."
45008
45017
  }
45018
+ },
45019
+ // ── UGC & Creator (everyday talking-to-camera clips) ──────────────────────
45020
+ {
45021
+ id: "generate-video/ugc-talking-head",
45022
+ name: "UGC Talking Head",
45023
+ description: "Talks to the viewer at home \u2014 type the line to be spoken; write numbers as words.",
45024
+ group: "UGC & Creator",
45025
+ data: { ...UGC_VIDEO, prompt: ugcPrompt(`${TALKING_AT_HOME} hands move naturally while talking and hold nothing.`, ugcSpeech("I cut my weekly reporting from three hours to twenty minutes."), UGC_PAUSE) }
45026
+ },
45027
+ {
45028
+ id: "generate-video/ugc-product-closer",
45029
+ name: "UGC Product Closer",
45030
+ description: "Holds your product up while talking \u2014 wire a face photo and a product photo; type the line, numbers as words.",
45031
+ group: "UGC & Creator",
45032
+ data: { ...UGC_VIDEO, prompt: ugcPrompt(`${TALKING_AT_HOME} hands move naturally while talking and hold nothing until the first word.`, "As they say the first word, one hand lifts {image:2:product} into view and holds it up beside their face, its front turned to the viewer, while they talk; the other hand keeps moving naturally.", ugcSpeech("Honestly, this is the one I keep coming back to."), UGC_PAUSE, "After the last word, they lower the product with a small smile.") }
45033
+ },
45034
+ {
45035
+ id: "generate-video/handheld-unboxing",
45036
+ name: "Handheld Unboxing",
45037
+ description: "Opens a box with their own hands and reveals your product \u2014 wire a face photo and a product photo.",
45038
+ group: "UGC & Creator",
45039
+ data: { ...UGC_VIDEO, prompt: ugcPrompt(
45040
+ "Close on a table at home, seen the whole time through the eyes of {image:1:person} as they look down at it.",
45041
+ "From the first moment their own two hands are on the lid of a plain box, both forearms coming up from the bottom of the frame.",
45042
+ "One adult's left and right hand, no one else's; only their hands and forearms are seen.",
45043
+ "They open the box at once and lift out {image:2:product} with both hands, clear of the box by the middle of the clip.",
45044
+ "Until the end they hold it up in front of them, the whole of it in frame, tilting it slowly in the light with the same side toward them.",
45045
+ "Daylight, deep focus from their hands to the background, plain colour, the framing a little crooked, a faint natural sway."
45046
+ ) }
45047
+ },
45048
+ {
45049
+ id: "generate-video/get-ready-with-me",
45050
+ name: "Get Ready With Me",
45051
+ description: "Gets ready at a mirror while chatting \u2014 type the line, numbers as words.",
45052
+ group: "UGC & Creator",
45053
+ data: { ...UGC_VIDEO, prompt: ugcPrompt("{image:1:person} at a bathroom mirror applies a little makeup while chatting to the viewer, everyday light, deep focus, plain colour.", ugcSpeech("Two minutes and I'm ready to go."), UGC_PAUSE) }
45054
+ },
45055
+ {
45056
+ id: "generate-video/street-qa",
45057
+ name: "Street-Style Q&A",
45058
+ description: "A staged street-interview look \u2014 cast it yourself; type a short answer, numbers as words.",
45059
+ group: "UGC & Creator",
45060
+ data: { ...UGC_SHORT_VIDEO, prompt: ugcPrompt("A staged street-interview look: {image:1:person} stands on a sidewalk answering an interviewer who stays out of frame, beside the viewer; only the interviewer's hand is seen, holding a plain microphone out toward them from a lower corner of the frame, passers-by soft in the background.", "Their eyes stay on the interviewer the whole time, off to the side the microphone comes from.", "The answer starts at once, with no wait before the first word.", ugcSpeech("I'd say about twenty minutes a day, tops."), "After the last word, a small laugh and a shrug, eyes still on the interviewer.") }
45061
+ },
45062
+ {
45063
+ id: "generate-video/reaction-shot",
45064
+ name: "Reaction Shot",
45065
+ description: "A quick reaction to something out of frame.",
45066
+ group: "UGC & Creator",
45067
+ data: { ...UGC_SHORT_VIDEO, prompt: ugcPrompt("{image:1:person} sits on a couch at home, a cushion and a lamp behind them, looking off to one side at something just out of frame; at eye level, the framing a little crooked, deep focus, plain colour, a faint natural sway.", "Almost at once, what they see catches them by surprise: their eyes go wide, a hand flies to their mouth and they break into a laugh, their shoulders shaking.", "Still laughing, they glance briefly at the viewer, then look back off to the side, shaking their head.", "A short exclamation at most.") }
45068
+ },
45069
+ {
45070
+ id: "generate-video/acts-on-phone",
45071
+ name: "Acts on Phone, Screen Hidden",
45072
+ description: "Taps a phone whose screen faces away \u2014 type the line, numbers as words.",
45073
+ group: "UGC & Creator",
45074
+ data: { ...UGC_VIDEO, prompt: ugcPrompt(`${TALKING_AT_HOME} hands move naturally while talking and hold nothing until the last seconds.`, ugcSpeech("That's the whole setup, and it took me five minutes."), UGC_PAUSE, "In the last seconds the person picks up a phone and looks down into its screen while typing on it for a moment, then looks back up at the viewer; the screen faces away from the camera.") }
45009
45075
  }
45010
45076
  ];
45011
45077
 
@@ -46158,6 +46224,34 @@ var LLM_CHAT_PRESETS = [
46158
46224
  temperature: 0.9
46159
46225
  }
46160
46226
  },
46227
+ {
46228
+ id: "llm-chat/ugc-monologue-writer",
46229
+ name: "UGC Monologue Writer",
46230
+ description: "A talking-to-camera script as JSON: hook, beats, closer.",
46231
+ group: "Writing & Marketing",
46232
+ data: {
46233
+ systemPrompt: `You write the script of a short vertical video in which one person talks straight to the camera about a product, a site or an idea. Return it as JSON with three parts.
46234
+
46235
+ hook \u2014 the first line: one short spoken clause of at most 8 words. It leads with the payload the viewer can check (a number, a price, a time saved, a before and after, a named result) and opens on the claim itself \u2014 no greeting, no filler, no introduction first.
46236
+
46237
+ beats \u2014 one beat per point the video makes, in order. When the user lists screenshots, write one beat per screenshot, in the same order. The first beat names the product. Every beat is one short spoken sentence a person says in one easy breath; nothing is crammed in.
46238
+
46239
+ closer \u2014 the last line. It ends on one simple physical action the speaker can do on camera.
46240
+
46241
+ Leave room for a short pause at the start and the end of each clip. Sound said, not written: contractions, one connecting word, sentences of mixed length, and one live, imperfect moment such as a small self-correction or an aside. Carry emphasis with word choice and repetition, never with capitals or stage directions. Write only what is spoken: no speaker names, brackets, emoji or sound effects.
46242
+
46243
+ Spell the brand exactly as the user gives it, every time. Write numbers as digits, except inside the brand's own name. Use only figures the user supplies. Write in the language the user writes in.
46244
+
46245
+ When the script is in Hebrew: write spoken Israeli Hebrew, the way a person talks to their phone, not ad copy. Every first-person verb and adjective agrees with the speaker's gender, and never switches. Speak to the viewer in the plural ("\u05EA\u05E0\u05E1\u05D5"), so the viewer is not given a gender. Keep sentences short. Write numbers and prices as digits ("3", "\u20AA49", "20%"). Keep the brand exactly as given, usually in Latin letters; when a Hebrew prefix joins it, use a hyphen ("\u05D1-Planwell"). Leave out vowel points. The hook is at most 8 words, as in English, a word with a joined prefix counting as one word, and opens on the result, the number or the contrast \u2014 never on a greeting or a filler word.
46246
+
46247
+ Return only this JSON, no code fences, no commentary:
46248
+ {"hook": "\u2026", "beats": ["\u2026", "\u2026"], "closer": "\u2026"}`,
46249
+ llmModel: "claude-opus-5.5",
46250
+ reasoningEffort: "high",
46251
+ temperature: 0.8,
46252
+ maxTokens: 2048
46253
+ }
46254
+ },
46161
46255
  // ── Utility ──────────────────────────────────────────────────────────────
46162
46256
  {
46163
46257
  id: "llm-chat/prompt-enhancer",
@@ -46268,7 +46362,9 @@ var GENERATE_SCRIPT_PRESETS = [
46268
46362
  sceneCount: 4,
46269
46363
  targetLength: 30,
46270
46364
  structure: "freeform",
46271
- styleGuide: "Selfie-style UGC testimonial for {product}. Structure: Hook (stop the scroll) \u2192 Show (the product in real use) \u2192 Proof (a concrete result or detail) \u2192 Opinion (a genuine personal take). A real person sharing a real opinion \u2014 first-person, natural, unpolished. Short spoken sentences for clean lip-sync; no salesy voiceover."
46365
+ llmModel: "claude-opus-5.5",
46366
+ reasoningEffort: "high",
46367
+ styleGuide: "Selfie-style UGC testimonial for {product}. Open on the payload: the first spoken line is a short claim the viewer can check \u2014 a number, a price, a time saved, a before and after \u2014 never a greeting or an introduction. Then Show (the product in real use) \u2192 Proof (a concrete result or detail) \u2192 Opinion (a genuine personal take). Sound said, not written: contractions, sentences of mixed length, one small aside; carry emphasis with word choice, never capitals or stage directions. Spell the brand exactly as given and write numbers as digits. Use only figures the user supplies, in what is said and what is shown, and take the Proof from the topic. Short spoken sentences for clean lip-sync; no salesy voiceover."
46272
46368
  }
46273
46369
  },
46274
46370
  // ── Long-Form & Narrative ────────────────────────────────────────────────
@@ -46419,6 +46515,21 @@ var VIDEO_TO_VIDEO_PRESETS = [
46419
46515
  description: "Flowing washes on paper.",
46420
46516
  group: "Restyle Looks",
46421
46517
  data: { provider: "wan", promptPrefix: "Restyle as a flowing watercolor animation with soft washes, bleeding edges, and visible paper texture. Keep the original motion and composition.", negativePrompt: "photorealistic, harsh edges, blurry, flickering" }
46518
+ },
46519
+ {
46520
+ id: "video-to-video/phone-footage-look",
46521
+ name: "Phone Footage Look",
46522
+ description: "Everyday handheld look for b-roll \u2014 it re-renders faces, so not for talking clips.",
46523
+ group: "Restyle Looks",
46524
+ data: {
46525
+ provider: "wan-videoedit",
46526
+ v2vResolution: "720p",
46527
+ videoEditDuration: "0",
46528
+ audioSetting: "origin",
46529
+ promptExtend: false,
46530
+ promptPrefix: `Keep everything in this clip as it is \u2014 the same people, objects, colours and light \u2014 and only make it look like everyday handheld digital video, left unedited. ${REALISM_FINISH} The edges of the frame keep the light they have in the clip, and each moment keeps the brightness it has in the clip, from the first frame to the last. Preserve the original motion, composition and timing.`,
46531
+ negativePrompt: "cinematic grade, shallow depth of field, glow, skin smoothing, flickering, light leaks, flare, coloured bands at the edges of the frame, colour cast, shifted colours, oversaturated colours, vintage film look, overexposure, pulsing brightness, heavy grain"
46532
+ }
46422
46533
  }
46423
46534
  ];
46424
46535
  var ADD_CAPTIONS_PRESETS = [