studio-lumiere-cli 0.1.10 → 0.1.12

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/README.md CHANGED
@@ -36,14 +36,37 @@ npm run sync
36
36
  ## Commands
37
37
 
38
38
  The CLI exposes:
39
- `generate`, `refine`, `upscale`, `muse`, `video`, `tired-girl`, `annotate`,
39
+ `generate`, `refine`, `upscale`, `muse`, `caption`, `video`, `stitch`, `tired-girl`, `annotate`,
40
40
  `before-after`, `grid`, `collate`, `list`.
41
41
 
42
+ The `caption` command analyzes an image with Gemini and returns one overlay-ready
43
+ top line and one bottom line for social media traction and engagement. It saves
44
+ its result under `outputs/captions/<timestamp>/caption.json`.
45
+
42
46
  The `video` command now supports:
43
47
  - `gemini` with `veo-3.1` and `veo-3.1-fast`
44
48
  - `kie.ai` with `kling-3.0`
45
49
  - optional `--start-frame` and `--end-frame` inputs
46
50
  - saving the generated video locally under `outputs/videos/<timestamp>/video.mp4`
51
+ - silent local output videos with no audio track
52
+
53
+ The `stitch` command concatenates mixed image/video sequences into one output video using bundled FFmpeg.
54
+
55
+ Video outputs are normalized to be silent:
56
+ - Kling / KIE is requested with `sound: false`
57
+ - Veo outputs are saved locally without audio by stripping the audio track after download
58
+
59
+ Example:
60
+
61
+ ```
62
+ lumiere caption --image "./output.png"
63
+ ```
64
+
65
+ Typical follow-up workflow:
66
+
67
+ 1. run `lumiere caption` to get `topText` and `bottomText`
68
+ 2. run `lumiere annotate` once for the top text
69
+ 3. run `lumiere annotate` again on the annotated output for the bottom text
47
70
 
48
71
  For full flag documentation and examples, see:
49
72
  `studio-cli/.agents/skills/studio-lumiere-cli/SKILL.md`.
package/dist/cli.js CHANGED
@@ -1,9 +1,27 @@
1
1
  #!/usr/bin/env node
2
2
  import "dotenv/config";
3
3
  import { Command } from "commander";
4
- import { generateImages, refineImage, upscaleImage, generateTiredGirl, createMuse, generateVideo, annotateImage, createImageGrid, createBeforeAfter, TEMPLATES, ETHNICITIES, SKIN_TONES, HAIR_COLORS, BACKGROUNDS, BACKGROUND_TYPES, VIBES, PHOTOGRAPHY_STYLES, RESOLUTIONS, OCCASIONS } from "./index.js";
4
+ import { generateImages, refineImage, upscaleImage, generateTiredGirl, createMuse, generateVideo, generateCaption, stitchMedia, annotateImage, createImageGrid, createBeforeAfter, TEMPLATES, ETHNICITIES, SKIN_TONES, HAIR_COLORS, BACKGROUNDS, BACKGROUND_TYPES, VIBES, PHOTOGRAPHY_STYLES, RESOLUTIONS, OCCASIONS } from "./index.js";
5
5
  const program = new Command();
6
6
  const parseList = (value) => value.split(",").map((v) => v.trim()).filter(Boolean);
7
+ const parseMediaSpec = (value) => {
8
+ const trimmed = value.trim();
9
+ if (!trimmed) {
10
+ throw new Error("Empty media spec.");
11
+ }
12
+ const atIndex = trimmed.lastIndexOf("@");
13
+ if (atIndex <= 0 || atIndex === trimmed.length - 1) {
14
+ return { path: trimmed };
15
+ }
16
+ const candidateDuration = Number(trimmed.slice(atIndex + 1));
17
+ if (!Number.isFinite(candidateDuration) || candidateDuration <= 0) {
18
+ return { path: trimmed };
19
+ }
20
+ return {
21
+ path: trimmed.slice(0, atIndex),
22
+ durationSeconds: candidateDuration
23
+ };
24
+ };
7
25
  const normalizeFraming = (value) => {
8
26
  if (!value)
9
27
  return undefined;
@@ -31,6 +49,16 @@ const normalizeVideoEngine = (value) => {
31
49
  return "kie";
32
50
  throw new Error(`Unknown video engine: ${value}. Use gemini|kie.ai.`);
33
51
  };
52
+ const normalizeSocialPlatform = (value) => {
53
+ if (!value)
54
+ return undefined;
55
+ const normalized = value.trim().toLowerCase();
56
+ if (normalized === "instagram" || normalized === "ig")
57
+ return "instagram";
58
+ if (normalized === "facebook" || normalized === "fb")
59
+ return "facebook";
60
+ throw new Error(`Unknown social platform: ${value}. Use instagram|facebook.`);
61
+ };
34
62
  const loadConfig = (options) => {
35
63
  const apiKey = process.env.GEMINI_API_KEY;
36
64
  if (!apiKey && !options?.allowMissingGemini) {
@@ -163,6 +191,22 @@ program
163
191
  });
164
192
  console.log(JSON.stringify(result, null, 2));
165
193
  });
194
+ program
195
+ .command("caption")
196
+ .requiredOption("--image <path>", "Input image path")
197
+ .option("--platform <name>", "Target platform: instagram|facebook", "instagram")
198
+ .option("--objective <text>", "Copy objective", "generate traction and engagement")
199
+ .option("--audience <text>", "Target audience", "jewelry brands and jewelry founders")
200
+ .action(async (options) => {
201
+ const config = loadConfig();
202
+ const result = await generateCaption(config, {
203
+ image: options.image,
204
+ platform: normalizeSocialPlatform(options.platform),
205
+ objective: options.objective,
206
+ audience: options.audience
207
+ });
208
+ console.log(JSON.stringify(result, null, 2));
209
+ });
166
210
  program
167
211
  .command("video")
168
212
  .requiredOption("--prompt <text>")
@@ -185,6 +229,38 @@ program
185
229
  });
186
230
  console.log(JSON.stringify(result, null, 2));
187
231
  });
232
+ program
233
+ .command("stitch")
234
+ .requiredOption("--output <path>", "Output video path")
235
+ .option("--inputs <specs>", "Comma-separated ordered media specs: path or path@seconds")
236
+ .option("--input <spec>", "Repeatable ordered media spec: path or path@seconds", (value, previous = []) => {
237
+ previous.push(value);
238
+ return previous;
239
+ }, [])
240
+ .option("--image-duration <seconds>", "Default duration for image inputs", "1.5")
241
+ .option("--fps <number>", "Output frames per second", "30")
242
+ .option("--size <widthxheight>", "Output canvas size", "1080x1920")
243
+ .option("--fit <mode>", "contain|cover", "contain")
244
+ .option("--background <hex>", "Pad background color for contain mode", "#000000")
245
+ .action(async (options) => {
246
+ const mergedSpecs = [
247
+ ...(options.inputs ? parseList(options.inputs) : []),
248
+ ...(options.input ?? [])
249
+ ];
250
+ if (mergedSpecs.length === 0) {
251
+ throw new Error("stitch requires at least one --input or --inputs value.");
252
+ }
253
+ const result = await stitchMedia({
254
+ inputs: mergedSpecs.map(parseMediaSpec),
255
+ outputPath: options.output,
256
+ imageDurationSeconds: Number(options.imageDuration),
257
+ fps: Number(options.fps),
258
+ size: options.size,
259
+ fit: options.fit,
260
+ background: options.background
261
+ });
262
+ console.log(JSON.stringify(result, null, 2));
263
+ });
188
264
  program
189
265
  .command("tired-girl")
190
266
  .option("--muse-id <id>", "Muse ID (preferred)")
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,16 @@ export declare class GeminiClient {
5
5
  private retry;
6
6
  constructor(config: LumiereConfig);
7
7
  generateText(prompt: string): Promise<string>;
8
+ generateTextFromParts(params: {
9
+ parts: Array<{
10
+ text?: string;
11
+ inlineData?: {
12
+ mimeType: string;
13
+ data: string;
14
+ };
15
+ }>;
16
+ systemInstruction?: string;
17
+ }): Promise<string>;
8
18
  generateEnhancedPrompt(params: {
9
19
  parts: Array<{
10
20
  text?: string;
@@ -1,6 +1,8 @@
1
1
  import { GoogleGenAI } from "@google/genai";
2
2
  import { promises as fs } from "node:fs";
3
3
  import path from "node:path";
4
+ const VIDEO_POLL_INTERVAL_MS = 10_000;
5
+ const VIDEO_MAX_POLL_ATTEMPTS = 60;
4
6
  const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
5
7
  const isRetryableError = (error) => {
6
8
  const message = String(error?.message || "").toLowerCase();
@@ -53,7 +55,7 @@ export class GeminiClient {
53
55
  return response.text ?? "";
54
56
  }, this.retry);
55
57
  }
56
- async generateEnhancedPrompt(params) {
58
+ async generateTextFromParts(params) {
57
59
  return withRetry(async () => {
58
60
  const response = await this.ai.models.generateContent({
59
61
  model: this.models.prompt,
@@ -70,6 +72,9 @@ export class GeminiClient {
70
72
  return response.text ?? "";
71
73
  }, this.retry);
72
74
  }
75
+ async generateEnhancedPrompt(params) {
76
+ return this.generateTextFromParts(params);
77
+ }
73
78
  async generateImage(params) {
74
79
  return withRetry(async () => {
75
80
  const response = await this.ai.models.generateContent({
@@ -103,51 +108,56 @@ export class GeminiClient {
103
108
  }, this.retry);
104
109
  }
105
110
  async generateVideo(params) {
106
- return withRetry(async () => {
107
- const request = {
108
- model: params.model ?? this.models.video,
109
- prompt: params.prompt,
110
- config: {
111
- aspectRatio: params.aspectRatio,
112
- durationSeconds: params.durationSeconds
113
- }
114
- };
115
- if (params.startFramePath) {
116
- const bytes = await fs.readFile(params.startFramePath);
117
- const ext = path.extname(params.startFramePath).toLowerCase();
118
- const mimeType = ext === ".png"
119
- ? "image/png"
120
- : ext === ".webp"
121
- ? "image/webp"
122
- : "image/jpeg";
123
- request.image = {
124
- imageBytes: bytes.toString("base64"),
125
- mimeType
126
- };
127
- request.config.personGeneration = "allow_adult";
111
+ const request = {
112
+ model: params.model ?? this.models.video,
113
+ prompt: params.prompt,
114
+ config: {
115
+ aspectRatio: params.aspectRatio,
116
+ durationSeconds: params.durationSeconds
128
117
  }
129
- let operation = await this.ai.models.generateVideos(request);
130
- while (!operation.done) {
131
- await sleep(10000);
132
- operation = await this.ai.operations.getVideosOperation({ operation });
118
+ };
119
+ if (params.startFramePath) {
120
+ const bytes = await fs.readFile(params.startFramePath);
121
+ const ext = path.extname(params.startFramePath).toLowerCase();
122
+ const mimeType = ext === ".png"
123
+ ? "image/png"
124
+ : ext === ".webp"
125
+ ? "image/webp"
126
+ : "image/jpeg";
127
+ request.image = {
128
+ imageBytes: bytes.toString("base64"),
129
+ mimeType
130
+ };
131
+ request.config.personGeneration = "allow_adult";
132
+ }
133
+ let operation = await withRetry(() => this.ai.models.generateVideos(request), this.retry);
134
+ for (let attempt = 0; !operation.done; attempt += 1) {
135
+ if (attempt >= VIDEO_MAX_POLL_ATTEMPTS) {
136
+ throw new Error("Gemini video generation timed out.");
133
137
  }
134
- const generated = operation.response?.generatedVideos?.[0]?.video;
135
- if (!generated) {
136
- return { operationName: operation.name };
138
+ await sleep(VIDEO_POLL_INTERVAL_MS);
139
+ operation = await this.ai.operations.getVideosOperation({ operation });
140
+ }
141
+ const generated = operation.response?.generatedVideos?.[0]?.video;
142
+ if (!generated) {
143
+ const filterReasons = operation.response?.raiMediaFilteredReasons;
144
+ if (filterReasons && filterReasons.length > 0) {
145
+ throw new Error(`Gemini video was filtered: ${filterReasons[0]}`);
137
146
  }
138
- const tempPath = `${process.cwd()}\\lumiere-video-${Date.now()}.mp4`;
139
- await this.ai.files.download({
147
+ throw new Error("Gemini completed without returning a video.");
148
+ }
149
+ const tempPath = `${process.cwd()}\\lumiere-video-${Date.now()}.mp4`;
150
+ try {
151
+ await withRetry(() => this.ai.files.download({
140
152
  file: generated,
141
153
  downloadPath: tempPath
142
- });
143
- try {
144
- const rawBytes = await fs.readFile(tempPath);
145
- return { operationName: operation.name, videoBytes: new Uint8Array(rawBytes) };
146
- }
147
- finally {
148
- await fs.unlink(tempPath).catch(() => undefined);
149
- }
150
- }, this.retry);
154
+ }), this.retry);
155
+ const rawBytes = await fs.readFile(tempPath);
156
+ return { operationName: operation.name, videoBytes: new Uint8Array(rawBytes) };
157
+ }
158
+ finally {
159
+ await fs.unlink(tempPath).catch(() => undefined);
160
+ }
151
161
  }
152
162
  }
153
163
  //# sourceMappingURL=geminiClient.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"geminiClient.js","sourceRoot":"","sources":["../../src/clients/geminiClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"geminiClient.js","sourceRoot":"","sources":["../../src/clients/geminiClient.ts"],"names":[],"mappings":"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"}
@@ -104,6 +104,7 @@ export class KieClient {
104
104
  }
105
105
  const input = {
106
106
  prompt: params.prompt,
107
+ sound: false,
107
108
  mode: DEFAULT_MODE,
108
109
  multi_shots: false
109
110
  };
@@ -1 +1 @@
1
- {"version":3,"file":"kieClient.js","sourceRoot":"","sources":["../../src/clients/kieClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kieClient.js","sourceRoot":"","sources":["../../src/clients/kieClient.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -5,6 +5,8 @@ export { upscaleImage } from "./pipelines/upscaleImage.js";
5
5
  export { generateTiredGirl } from "./pipelines/generateTiredGirl.js";
6
6
  export { createMuse, generateMuseVariations } from "./pipelines/createMuse.js";
7
7
  export { generateVideo } from "./pipelines/generateVideo.js";
8
+ export { generateCaption } from "./pipelines/generateCaption.js";
9
+ export { stitchMedia } from "./pipelines/stitchMedia.js";
8
10
  export { annotateImage } from "./image/annotate.js";
9
11
  export { createImageGrid } from "./image/grid.js";
10
12
  export { createBeforeAfter } from "./image/beforeAfter.js";
package/dist/index.js CHANGED
@@ -5,6 +5,8 @@ export { upscaleImage } from "./pipelines/upscaleImage.js";
5
5
  export { generateTiredGirl } from "./pipelines/generateTiredGirl.js";
6
6
  export { createMuse, generateMuseVariations } from "./pipelines/createMuse.js";
7
7
  export { generateVideo } from "./pipelines/generateVideo.js";
8
+ export { generateCaption } from "./pipelines/generateCaption.js";
9
+ export { stitchMedia } from "./pipelines/stitchMedia.js";
8
10
  export { annotateImage } from "./image/annotate.js";
9
11
  export { createImageGrid } from "./image/grid.js";
10
12
  export { createBeforeAfter } from "./image/beforeAfter.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,UAAU,EACV,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,KAAK,EACL,kBAAkB,EAClB,WAAW,EACX,SAAS,EACT,uBAAuB,EACvB,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,UAAU,EACV,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,KAAK,EACL,kBAAkB,EAClB,WAAW,EACX,SAAS,EACT,uBAAuB,EACvB,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const runFfmpeg: (args: string[]) => Promise<void>;
2
+ export declare const stripAudioTrack: (inputPath: string, outputPath: string) => Promise<void>;
@@ -0,0 +1,40 @@
1
+ import { spawn } from "node:child_process";
2
+ import ffmpegStatic from "ffmpeg-static";
3
+ export const runFfmpeg = (args) => new Promise((resolve, reject) => {
4
+ const ffmpegPath = ffmpegStatic;
5
+ if (!ffmpegPath) {
6
+ reject(new Error("ffmpeg-static did not provide an ffmpeg binary path."));
7
+ return;
8
+ }
9
+ const child = spawn(ffmpegPath, args);
10
+ let stderr = "";
11
+ child.stderr?.on("data", (chunk) => {
12
+ stderr += chunk.toString();
13
+ });
14
+ child.on("error", (error) => {
15
+ reject(error);
16
+ });
17
+ child.on("close", (code) => {
18
+ if (code === 0) {
19
+ resolve();
20
+ return;
21
+ }
22
+ reject(new Error(stderr.trim() || `ffmpeg exited with code ${code}`));
23
+ });
24
+ });
25
+ export const stripAudioTrack = async (inputPath, outputPath) => {
26
+ await runFfmpeg([
27
+ "-y",
28
+ "-i",
29
+ inputPath,
30
+ "-map",
31
+ "0:v:0",
32
+ "-an",
33
+ "-c:v",
34
+ "copy",
35
+ "-movflags",
36
+ "+faststart",
37
+ outputPath
38
+ ]);
39
+ };
40
+ //# sourceMappingURL=ffmpeg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ffmpeg.js","sourceRoot":"","sources":["../../src/media/ffmpeg.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,YAAY,MAAM,eAAe,CAAC;AAEzC,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,IAAc,EAAiB,EAAE,CACzD,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;IAC9B,MAAM,UAAU,GAAG,YAAwC,CAAC;IAC5D,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,CAAC,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC,CAAC;QAC1E,OAAO;IACT,CAAC;IAED,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACtC,IAAI,MAAM,GAAG,EAAE,CAAC;IAEhB,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAsB,EAAE,EAAE;QAClD,MAAM,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAY,EAAE,EAAE;QACjC,MAAM,CAAC,KAAK,CAAC,CAAC;IAChB,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAmB,EAAE,EAAE;QACxC,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;YACf,OAAO,EAAE,CAAC;YACV,OAAO;QACT,CAAC;QACD,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,2BAA2B,IAAI,EAAE,CAAC,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEL,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAAE,SAAiB,EAAE,UAAkB,EAAiB,EAAE;IAC5F,MAAM,SAAS,CAAC;QACd,IAAI;QACJ,IAAI;QACJ,SAAS;QACT,MAAM;QACN,OAAO;QACP,KAAK;QACL,MAAM;QACN,MAAM;QACN,WAAW;QACX,YAAY;QACZ,UAAU;KACX,CAAC,CAAC;AACL,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { CaptionRequest, CaptionResult, LumiereConfig } from "../types.js";
2
+ export declare const generateCaption: (config: LumiereConfig, request: CaptionRequest) => Promise<CaptionResult>;
@@ -0,0 +1,86 @@
1
+ import path from "node:path";
2
+ import { GeminiClient } from "../clients/geminiClient.js";
3
+ import { readImageAsPart, resolveOutputDir, writeJson } from "../storage/files.js";
4
+ const DEFAULT_PLATFORM = "instagram";
5
+ const DEFAULT_OBJECTIVE = "generate traction and engagement";
6
+ const DEFAULT_AUDIENCE = "jewelry brands and jewelry founders";
7
+ const SYSTEM_INSTRUCTION = [
8
+ "You are an expert short-form social media strategist for visual brands.",
9
+ "Analyze the provided image and propose one strong pair of overlay lines for social media marketing.",
10
+ "The output must be optimized for traction and engagement, not generic description.",
11
+ "Respond with JSON only.",
12
+ "Use this exact schema:",
13
+ '{ "topText": string, "bottomText": string, "angle": string, "rationale": string }',
14
+ "Rules:",
15
+ "- topText should be a short hook, usually 2 to 8 words",
16
+ "- bottomText should be a payoff, CTA, or engagement prompt, usually 3 to 10 words",
17
+ "- both lines must be mobile-readable and overlay-friendly",
18
+ "- no hashtags",
19
+ "- no emojis",
20
+ "- no quotation marks around the text",
21
+ "- no markdown",
22
+ "- use plain ASCII only",
23
+ "- topText and bottomText must not feel repetitive",
24
+ "- angle should be a short label like aspiration, compare, save, curiosity, pain, or demo",
25
+ "- rationale should be brief and concrete"
26
+ ].join("\n");
27
+ const extractJsonObject = (raw) => {
28
+ const start = raw.indexOf("{");
29
+ const end = raw.lastIndexOf("}");
30
+ if (start === -1 || end === -1 || end <= start) {
31
+ throw new Error(`Caption generation did not return valid JSON: ${raw}`);
32
+ }
33
+ const candidate = raw.slice(start, end + 1);
34
+ return JSON.parse(candidate);
35
+ };
36
+ const requireText = (value, field) => {
37
+ if (typeof value !== "string") {
38
+ throw new Error(`Caption response is missing ${field}.`);
39
+ }
40
+ const normalized = value.replace(/\s+/g, " ").trim();
41
+ if (!normalized) {
42
+ throw new Error(`Caption response returned empty ${field}.`);
43
+ }
44
+ return normalized;
45
+ };
46
+ export const generateCaption = async (config, request) => {
47
+ if (!config.apiKey) {
48
+ throw new Error("Missing GEMINI_API_KEY in environment.");
49
+ }
50
+ const platform = request.platform ?? DEFAULT_PLATFORM;
51
+ const objective = request.objective?.trim() || DEFAULT_OBJECTIVE;
52
+ const audience = request.audience?.trim() || DEFAULT_AUDIENCE;
53
+ const outputDir = resolveOutputDir(request.outputDir ?? config.outputDir, "captions");
54
+ const rawResponse = await new GeminiClient(config).generateTextFromParts({
55
+ systemInstruction: SYSTEM_INSTRUCTION,
56
+ parts: [
57
+ {
58
+ text: [
59
+ `Platform: ${platform}`,
60
+ `Objective: ${objective}`,
61
+ `Audience: ${audience}`,
62
+ "Analyze this image and return the strongest single top/bottom overlay pair for social media marketing."
63
+ ].join("\n")
64
+ },
65
+ await readImageAsPart(request.image)
66
+ ]
67
+ });
68
+ const parsed = extractJsonObject(rawResponse);
69
+ const result = {
70
+ platform,
71
+ objective,
72
+ audience,
73
+ angle: requireText(parsed.angle, "angle"),
74
+ topText: requireText(parsed.topText, "topText"),
75
+ bottomText: requireText(parsed.bottomText, "bottomText"),
76
+ rationale: requireText(parsed.rationale, "rationale"),
77
+ logPath: path.join(outputDir, "caption.json")
78
+ };
79
+ await writeJson(result.logPath, {
80
+ image: request.image,
81
+ ...result,
82
+ rawResponse
83
+ });
84
+ return result;
85
+ };
86
+ //# sourceMappingURL=generateCaption.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateCaption.js","sourceRoot":"","sources":["../../src/pipelines/generateCaption.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
1
  import path from "node:path";
2
+ import { promises as fs } from "node:fs";
2
3
  import { GeminiClient } from "../clients/geminiClient.js";
3
4
  import { KieClient } from "../clients/kieClient.js";
5
+ import { stripAudioTrack } from "../media/ffmpeg.js";
4
6
  import { resolveOutputDir, saveBinary, writeJson } from "../storage/files.js";
5
7
  const DEFAULT_VIDEO_DURATION_SECONDS = 5;
6
8
  const GEMINI_MODELS = {
@@ -62,8 +64,14 @@ export const generateVideo = async (config, request) => {
62
64
  const videoUrl = "videoUrl" in result ? result.videoUrl : undefined;
63
65
  let videoPath;
64
66
  if (result.videoBytes) {
67
+ const rawVideoPath = path.join(outputDir, "video-raw.mp4");
65
68
  videoPath = path.join(outputDir, "video.mp4");
66
- await saveBinary(result.videoBytes, videoPath);
69
+ await saveBinary(result.videoBytes, rawVideoPath);
70
+ await stripAudioTrack(rawVideoPath, videoPath);
71
+ await fs.unlink(rawVideoPath).catch(() => undefined);
72
+ }
73
+ if (!videoPath) {
74
+ throw new Error("Video generation completed but no local video file was produced.");
67
75
  }
68
76
  const logPath = path.join(outputDir, "video.json");
69
77
  await writeJson(logPath, {
@@ -77,6 +85,7 @@ export const generateVideo = async (config, request) => {
77
85
  operationName,
78
86
  taskId,
79
87
  videoUrl,
88
+ outputAudio: false,
80
89
  videoPath
81
90
  });
82
91
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"generateVideo.js","sourceRoot":"","sources":["../../src/pipelines/generateVideo.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEpD,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAE9E,MAAM,8BAA8B,GAAG,CAAC,CAAC;AAEzC,MAAM,aAAa,GAAG;IACpB,SAAS,EAAE,0BAA0B;IACrC,cAAc,EAAE,+BAA+B;CACvC,CAAC;AAEX,MAAM,UAAU,GAAG;IACjB,WAAW,EAAE,iBAAiB;CACtB,CAAC;AAEX,MAAM,qBAAqB,GAAG,CAAC,OAAqB,EAAE,EAAE;IACtD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAC5B,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,CAC/B,KAAK,KAAK,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CACzC,CAAC;IAEF,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,MAAM,KAAK,KAAK;YACrB,CAAC,CAAC,EAAE,MAAM,EAAE,KAAc,EAAE,KAAK,EAAE,WAAoB,EAAE,aAAa,EAAE,UAAU,CAAC,WAAW,CAAC,EAAE;YACjG,CAAC,CAAC,EAAE,MAAM,EAAE,QAAiB,EAAE,KAAK,EAAE,SAAkB,EAAE,aAAa,EAAE,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC;IACxG,CAAC;IAED,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QACxB,MAAM,aAAa,GAAG,aAAa,CAAC,KAAmC,CAAC,CAAC;QACzE,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,SAAS,KAAK,2DAA2D,CAAC,CAAC;QAC7F,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;IAC1C,CAAC;IAED,MAAM,aAAa,GAAG,UAAU,CAAC,KAAgC,CAAC,CAAC;IACnE,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,SAAS,KAAK,6CAA6C,CAAC,CAAC;IAC/E,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;AAC1C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAChC,MAAqB,EACrB,OAAqB,EACC,EAAE;IACxB,MAAM,SAAS,GAAG,gBAAgB,CAAC,OAAO,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACpF,MAAM,SAAS,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;IACjD,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,8BAA8B,CAAC;IAElF,IAAI,SAAS,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACpD,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC5D,CAAC;IAED,IAAI,SAAS,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACtD,MAAM,IAAI,KAAK,CAAC,yHAAyH,CAAC,CAAC;IAC7I,CAAC;IAED,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,KAAK,KAAK;QACvC,CAAC,CAAC,MAAM,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC;YACxC,KAAK,EAAE,SAAS,CAAC,aAAa;YAC9B,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,cAAc,EAAE,OAAO,CAAC,UAAU;YAClC,YAAY,EAAE,OAAO,CAAC,QAAQ;YAC9B,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,eAAe;SAChB,CAAC;QACJ,CAAC,CAAC,MAAM,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC;YAC3C,KAAK,EAAE,SAAS,CAAC,aAAa;YAC9B,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,cAAc,EAAE,OAAO,CAAC,UAAU;YAClC,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,eAAe;SAChB,CAAC,CAAC;IACP,MAAM,aAAa,GAAG,eAAe,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;IACnF,MAAM,MAAM,GAAG,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9D,MAAM,QAAQ,GAAG,UAAU,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IAEpE,IAAI,SAA6B,CAAC;IAClC,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACtB,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QAC9C,MAAM,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IACjD,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IACnD,MAAM,SAAS,CAAC,OAAO,EAAE;QACvB,MAAM,EAAE,SAAS,CAAC,MAAM;QACxB,KAAK,EAAE,SAAS,CAAC,KAAK;QACtB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,eAAe;QACf,aAAa;QACb,MAAM;QACN,QAAQ;QACR,SAAS;KACV,CAAC,CAAC;IAEH,OAAO;QACL,MAAM,EAAE,SAAS,CAAC,MAAM;QACxB,KAAK,EAAE,SAAS,CAAC,KAAK;QACtB,aAAa;QACb,MAAM;QACN,QAAQ;QACR,SAAS;QACT,OAAO;KACR,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"generateVideo.js","sourceRoot":"","sources":["../../src/pipelines/generateVideo.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { StitchRequest, StitchResult } from "../types.js";
2
+ export declare const stitchMedia: (request: StitchRequest) => Promise<StitchResult>;
@@ -0,0 +1,124 @@
1
+ import path from "node:path";
2
+ import { runFfmpeg } from "../media/ffmpeg.js";
3
+ import { ensureDir, writeJson } from "../storage/files.js";
4
+ const IMAGE_EXTENSIONS = new Set([
5
+ ".jpg",
6
+ ".jpeg",
7
+ ".png",
8
+ ".webp",
9
+ ".bmp",
10
+ ".gif",
11
+ ".tif",
12
+ ".tiff",
13
+ ".avif"
14
+ ]);
15
+ const VIDEO_EXTENSIONS = new Set([
16
+ ".mp4",
17
+ ".mov",
18
+ ".m4v",
19
+ ".webm",
20
+ ".avi",
21
+ ".mkv",
22
+ ".mpeg",
23
+ ".mpg"
24
+ ]);
25
+ const DEFAULT_IMAGE_DURATION_SECONDS = 1.5;
26
+ const DEFAULT_FPS = 30;
27
+ const DEFAULT_SIZE = "1080x1920";
28
+ const DEFAULT_FIT = "contain";
29
+ const DEFAULT_BACKGROUND = "#000000";
30
+ const isImagePath = (filePath) => IMAGE_EXTENSIONS.has(path.extname(filePath).toLowerCase());
31
+ const isVideoPath = (filePath) => VIDEO_EXTENSIONS.has(path.extname(filePath).toLowerCase());
32
+ const parseSize = (size) => {
33
+ const match = /^(\d{2,5})x(\d{2,5})$/i.exec(size.trim());
34
+ if (!match) {
35
+ throw new Error(`Invalid size: ${size}. Use WIDTHxHEIGHT, e.g. 1080x1920.`);
36
+ }
37
+ const width = Number(match[1]);
38
+ const height = Number(match[2]);
39
+ if (!Number.isFinite(width) || !Number.isFinite(height) || width <= 0 || height <= 0) {
40
+ throw new Error(`Invalid size: ${size}.`);
41
+ }
42
+ return { width, height };
43
+ };
44
+ const normalizeDuration = (value, fallback) => {
45
+ const resolved = value ?? fallback;
46
+ if (resolved === undefined)
47
+ return undefined;
48
+ if (!Number.isFinite(resolved) || resolved <= 0) {
49
+ throw new Error(`Invalid duration: ${resolved}. Duration must be a positive number.`);
50
+ }
51
+ return resolved;
52
+ };
53
+ export const stitchMedia = async (request) => {
54
+ if (request.inputs.length === 0) {
55
+ throw new Error("stitch requires at least one input.");
56
+ }
57
+ const imageDurationSeconds = normalizeDuration(request.imageDurationSeconds, DEFAULT_IMAGE_DURATION_SECONDS);
58
+ const fps = Math.round(request.fps ?? DEFAULT_FPS);
59
+ if (!Number.isFinite(fps) || fps <= 0) {
60
+ throw new Error(`Invalid fps: ${request.fps}.`);
61
+ }
62
+ const size = request.size ?? DEFAULT_SIZE;
63
+ const { width, height } = parseSize(size);
64
+ const fit = request.fit ?? DEFAULT_FIT;
65
+ if (fit !== "contain" && fit !== "cover") {
66
+ throw new Error(`Invalid fit mode: ${fit}. Use contain|cover.`);
67
+ }
68
+ const background = request.background ?? DEFAULT_BACKGROUND;
69
+ const normalizedInputs = request.inputs.map((item) => {
70
+ const inputPath = item.path.trim();
71
+ if (!inputPath) {
72
+ throw new Error("Empty input path.");
73
+ }
74
+ if (!isImagePath(inputPath) && !isVideoPath(inputPath)) {
75
+ throw new Error(`Unsupported media type: ${inputPath}`);
76
+ }
77
+ return {
78
+ ...item,
79
+ path: inputPath,
80
+ type: isImagePath(inputPath) ? "image" : "video",
81
+ durationSeconds: normalizeDuration(item.durationSeconds, isImagePath(inputPath) ? imageDurationSeconds : undefined)
82
+ };
83
+ });
84
+ const filterChains = [];
85
+ const concatInputs = [];
86
+ const args = ["-y"];
87
+ normalizedInputs.forEach((item, index) => {
88
+ if (item.type === "image") {
89
+ args.push("-loop", "1", "-t", String(item.durationSeconds), "-i", item.path);
90
+ }
91
+ else {
92
+ args.push("-i", item.path);
93
+ }
94
+ const baseVideoFilter = fit === "cover"
95
+ ? `scale=${width}:${height}:force_original_aspect_ratio=increase,crop=${width}:${height},setsar=1`
96
+ : `scale=${width}:${height}:force_original_aspect_ratio=decrease,pad=${width}:${height}:(ow-iw)/2:(oh-ih)/2:${background},setsar=1`;
97
+ const filters = [baseVideoFilter, `fps=${fps}`, "format=yuv420p"];
98
+ if (item.durationSeconds) {
99
+ filters.push(`trim=duration=${item.durationSeconds}`);
100
+ }
101
+ filters.push("setpts=PTS-STARTPTS");
102
+ filterChains.push(`[${index}:v]${filters.join(",")}[v${index}]`);
103
+ concatInputs.push(`[v${index}]`);
104
+ });
105
+ const filterComplex = `${filterChains.join(";")};${concatInputs.join("")}concat=n=${normalizedInputs.length}:v=1:a=0[outv]`;
106
+ args.push("-filter_complex", filterComplex, "-map", "[outv]", "-an", "-r", String(fps), "-c:v", "libx264", "-pix_fmt", "yuv420p", request.outputPath);
107
+ await ensureDir(path.dirname(request.outputPath));
108
+ await runFfmpeg(args);
109
+ const logPath = path.join(path.dirname(request.outputPath), `${path.basename(request.outputPath, path.extname(request.outputPath))}.json`);
110
+ await writeJson(logPath, {
111
+ inputs: normalizedInputs,
112
+ outputPath: request.outputPath,
113
+ imageDurationSeconds,
114
+ fps,
115
+ size,
116
+ fit,
117
+ background
118
+ });
119
+ return {
120
+ outputPath: request.outputPath,
121
+ logPath
122
+ };
123
+ };
124
+ //# sourceMappingURL=stitchMedia.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stitchMedia.js","sourceRoot":"","sources":["../../src/pipelines/stitchMedia.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAG3D,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC;IAC/B,MAAM;IACN,OAAO;IACP,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,OAAO;CACR,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC;IAC/B,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;CACP,CAAC,CAAC;AAEH,MAAM,8BAA8B,GAAG,GAAG,CAAC;AAC3C,MAAM,WAAW,GAAG,EAAE,CAAC;AACvB,MAAM,YAAY,GAAG,WAAW,CAAC;AACjC,MAAM,WAAW,GAAG,SAAS,CAAC;AAC9B,MAAM,kBAAkB,GAAG,SAAS,CAAC;AAErC,MAAM,WAAW,GAAG,CAAC,QAAgB,EAAW,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AAC9G,MAAM,WAAW,GAAG,CAAC,QAAgB,EAAW,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AAE9G,MAAM,SAAS,GAAG,CAAC,IAAY,EAAqC,EAAE;IACpE,MAAM,KAAK,GAAG,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IACzD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,qCAAqC,CAAC,CAAC;IAC9E,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/B,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAChC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;QACrF,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,GAAG,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC3B,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,KAAyB,EAAE,QAAiB,EAAsB,EAAE;IAC7F,MAAM,QAAQ,GAAG,KAAK,IAAI,QAAQ,CAAC;IACnC,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC7C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,qBAAqB,QAAQ,uCAAuC,CAAC,CAAC;IACxF,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAAE,OAAsB,EAAyB,EAAE;IACjF,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,oBAAoB,GAAG,iBAAiB,CAC5C,OAAO,CAAC,oBAAoB,EAC5B,8BAA8B,CAC9B,CAAC;IACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,WAAW,CAAC,CAAC;IACnD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,gBAAgB,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,YAAY,CAAC;IAC1C,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,WAAW,CAAC;IACvC,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,sBAAsB,CAAC,CAAC;IAClE,CAAC;IACD,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,kBAAkB,CAAC;IAE5D,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACnD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACnC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACvC,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;YACvD,MAAM,IAAI,KAAK,CAAC,2BAA2B,SAAS,EAAE,CAAC,CAAC;QAC1D,CAAC;QAED,OAAO;YACL,GAAG,IAAI;YACP,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAgB,CAAC,CAAC,CAAC,OAAgB;YAClE,eAAe,EAAE,iBAAiB,CAAC,IAAI,CAAC,eAAe,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,SAAS,CAAC;SACpH,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,MAAM,IAAI,GAAa,CAAC,IAAI,CAAC,CAAC;IAE9B,gBAAgB,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QACvC,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC1B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/E,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;QAED,MAAM,eAAe,GACnB,GAAG,KAAK,OAAO;YACb,CAAC,CAAC,SAAS,KAAK,IAAI,MAAM,8CAA8C,KAAK,IAAI,MAAM,WAAW;YAClG,CAAC,CAAC,SAAS,KAAK,IAAI,MAAM,6CAA6C,KAAK,IAAI,MAAM,wBAAwB,UAAU,WAAW,CAAC;QAExI,MAAM,OAAO,GAAG,CAAC,eAAe,EAAE,OAAO,GAAG,EAAE,EAAE,gBAAgB,CAAC,CAAC;QAClE,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,OAAO,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;QACxD,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAEpC,YAAY,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC;QACjE,YAAY,CAAC,IAAI,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,gBAAgB,CAAC,MAAM,gBAAgB,CAAC;IAC5H,IAAI,CAAC,IAAI,CACP,iBAAiB,EACjB,aAAa,EACb,MAAM,EACN,QAAQ,EACR,KAAK,EACL,IAAI,EACJ,MAAM,CAAC,GAAG,CAAC,EACX,MAAM,EACN,SAAS,EACT,UAAU,EACV,SAAS,EACT,OAAO,CAAC,UAAU,CACnB,CAAC;IAEF,MAAM,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;IAClD,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC;IAEtB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CACvB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,EAChC,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAC9E,CAAC;IAEF,MAAM,SAAS,CAAC,OAAO,EAAE;QACvB,MAAM,EAAE,gBAAgB;QACxB,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,oBAAoB;QACpB,GAAG;QACH,IAAI;QACJ,GAAG;QACH,UAAU;KACX,CAAC,CAAC;IAEH,OAAO;QACL,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,OAAO;KACR,CAAC;AACJ,CAAC,CAAC"}
package/dist/types.d.ts CHANGED
@@ -85,6 +85,24 @@ export interface VideoResult {
85
85
  videoPath?: string;
86
86
  logPath: string;
87
87
  }
88
+ export type SocialPlatform = "instagram" | "facebook";
89
+ export interface CaptionRequest {
90
+ image: string;
91
+ platform?: SocialPlatform;
92
+ objective?: string;
93
+ audience?: string;
94
+ outputDir?: string;
95
+ }
96
+ export interface CaptionResult {
97
+ platform: SocialPlatform;
98
+ objective: string;
99
+ audience: string;
100
+ angle: string;
101
+ topText: string;
102
+ bottomText: string;
103
+ rationale: string;
104
+ logPath: string;
105
+ }
88
106
  export interface TiredGirlRequest {
89
107
  inputImage?: string;
90
108
  museId?: string;
@@ -120,6 +138,24 @@ export interface GridOptions {
120
138
  tileWidth?: number;
121
139
  tileHeight?: number;
122
140
  }
141
+ export type MediaFitMode = "contain" | "cover";
142
+ export interface StitchMediaItem {
143
+ path: string;
144
+ durationSeconds?: number;
145
+ }
146
+ export interface StitchRequest {
147
+ inputs: StitchMediaItem[];
148
+ outputPath: string;
149
+ imageDurationSeconds?: number;
150
+ fps?: number;
151
+ size?: string;
152
+ fit?: MediaFitMode;
153
+ background?: string;
154
+ }
155
+ export interface StitchResult {
156
+ outputPath: string;
157
+ logPath: string;
158
+ }
123
159
  export type BeforeAfterLayout = "horizontal" | "vertical" | "diagonal" | "inset";
124
160
  export type BeforeAfterOrder = "before-first" | "after-first";
125
161
  export type BeforeAfterDiagonalDirection = "tl-br" | "tr-bl";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "studio-lumiere-cli",
3
- "version": "0.1.10",
3
+ "version": "0.1.12",
4
4
  "description": "Local SDK + CLI for Studio Lumiere image and video generation",
5
5
  "type": "module",
6
6
  "bin": {
@@ -20,6 +20,7 @@
20
20
  "@google/genai": "^1.34.0",
21
21
  "commander": "^12.0.0",
22
22
  "dotenv": "^16.4.5",
23
+ "ffmpeg-static": "^5.3.0",
23
24
  "sharp": "^0.34.5"
24
25
  },
25
26
  "devDependencies": {