studio-lumiere-cli 0.1.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.
Files changed (114) hide show
  1. package/.agents/skills/annotate-image/SKILL.md +99 -0
  2. package/.agents/skills/config-troubleshooting/SKILL.md +97 -0
  3. package/.agents/skills/generate-images/SKILL.md +667 -0
  4. package/.agents/skills/generate-video/SKILL.md +328 -0
  5. package/.agents/skills/image-grid/SKILL.md +96 -0
  6. package/.agents/skills/image-overlay/SKILL.md +66 -0
  7. package/.agents/skills/image-overlay/agents/openai.yaml +4 -0
  8. package/.agents/skills/image-overlay/scripts/overlay-image.js +218 -0
  9. package/.agents/skills/muse-management/SKILL.md +232 -0
  10. package/.agents/skills/refine-images/SKILL.md +192 -0
  11. package/.agents/skills/tired-girl/SKILL.md +131 -0
  12. package/.env.example +2 -0
  13. package/AGENTS.md +66 -0
  14. package/README.md +96 -0
  15. package/dist/cli.d.ts +2 -0
  16. package/dist/cli.js +214 -0
  17. package/dist/cli.js.map +1 -0
  18. package/dist/clients/geminiClient.d.ts +37 -0
  19. package/dist/clients/geminiClient.js +129 -0
  20. package/dist/clients/geminiClient.js.map +1 -0
  21. package/dist/config/constants.d.ts +63 -0
  22. package/dist/config/constants.js +1005 -0
  23. package/dist/config/constants.js.map +1 -0
  24. package/dist/config/options.d.ts +1 -0
  25. package/dist/config/options.js +2 -0
  26. package/dist/config/options.js.map +1 -0
  27. package/dist/config/templates.d.ts +3 -0
  28. package/dist/config/templates.js +4 -0
  29. package/dist/config/templates.js.map +1 -0
  30. package/dist/config/tiredGirl.d.ts +3 -0
  31. package/dist/config/tiredGirl.js +9 -0
  32. package/dist/config/tiredGirl.js.map +1 -0
  33. package/dist/image/annotate.d.ts +2 -0
  34. package/dist/image/annotate.js +119 -0
  35. package/dist/image/annotate.js.map +1 -0
  36. package/dist/image/grid.d.ts +2 -0
  37. package/dist/image/grid.js +44 -0
  38. package/dist/image/grid.js.map +1 -0
  39. package/dist/index.d.ts +12 -0
  40. package/dist/index.js +13 -0
  41. package/dist/index.js.map +1 -0
  42. package/dist/pipelines/createMuse.d.ts +3 -0
  43. package/dist/pipelines/createMuse.js +49 -0
  44. package/dist/pipelines/createMuse.js.map +1 -0
  45. package/dist/pipelines/generateImages.d.ts +2 -0
  46. package/dist/pipelines/generateImages.js +140 -0
  47. package/dist/pipelines/generateImages.js.map +1 -0
  48. package/dist/pipelines/generateTiredGirl.d.ts +2 -0
  49. package/dist/pipelines/generateTiredGirl.js +73 -0
  50. package/dist/pipelines/generateTiredGirl.js.map +1 -0
  51. package/dist/pipelines/generateVideo.d.ts +2 -0
  52. package/dist/pipelines/generateVideo.js +27 -0
  53. package/dist/pipelines/generateVideo.js.map +1 -0
  54. package/dist/pipelines/refineImage.d.ts +2 -0
  55. package/dist/pipelines/refineImage.js +28 -0
  56. package/dist/pipelines/refineImage.js.map +1 -0
  57. package/dist/pipelines/resolve.d.ts +11 -0
  58. package/dist/pipelines/resolve.js +74 -0
  59. package/dist/pipelines/resolve.js.map +1 -0
  60. package/dist/pipelines/upscaleImage.d.ts +2 -0
  61. package/dist/pipelines/upscaleImage.js +23 -0
  62. package/dist/pipelines/upscaleImage.js.map +1 -0
  63. package/dist/prompt/buildPrompt.d.ts +4 -0
  64. package/dist/prompt/buildPrompt.js +322 -0
  65. package/dist/prompt/buildPrompt.js.map +1 -0
  66. package/dist/prompt/tiredGirlPrompt.d.ts +3 -0
  67. package/dist/prompt/tiredGirlPrompt.js +33 -0
  68. package/dist/prompt/tiredGirlPrompt.js.map +1 -0
  69. package/dist/storage/files.d.ts +15 -0
  70. package/dist/storage/files.js +34 -0
  71. package/dist/storage/files.js.map +1 -0
  72. package/dist/storage/museStore.d.ts +5 -0
  73. package/dist/storage/museStore.js +26 -0
  74. package/dist/storage/museStore.js.map +1 -0
  75. package/dist/types.d.ts +169 -0
  76. package/dist/types.js +2 -0
  77. package/dist/types.js.map +1 -0
  78. package/examples/generate.d.ts +1 -0
  79. package/examples/generate.js +28 -0
  80. package/examples/generate.js.map +1 -0
  81. package/examples/generate.ts +30 -0
  82. package/examples/muse.d.ts +1 -0
  83. package/examples/muse.js +18 -0
  84. package/examples/muse.js.map +1 -0
  85. package/examples/muse.ts +20 -0
  86. package/examples/video.d.ts +1 -0
  87. package/examples/video.js +18 -0
  88. package/examples/video.js.map +1 -0
  89. package/examples/video.ts +20 -0
  90. package/logo-round.png +0 -0
  91. package/logo.jpeg +0 -0
  92. package/package.json +27 -0
  93. package/src/cli.ts +259 -0
  94. package/src/clients/geminiClient.ts +168 -0
  95. package/src/config/constants.ts +1105 -0
  96. package/src/config/options.ts +15 -0
  97. package/src/config/templates.ts +4 -0
  98. package/src/config/tiredGirl.ts +11 -0
  99. package/src/image/annotate.ts +139 -0
  100. package/src/image/grid.ts +58 -0
  101. package/src/index.ts +27 -0
  102. package/src/pipelines/createMuse.ts +76 -0
  103. package/src/pipelines/generateImages.ts +203 -0
  104. package/src/pipelines/generateTiredGirl.ts +86 -0
  105. package/src/pipelines/generateVideo.ts +36 -0
  106. package/src/pipelines/refineImage.ts +36 -0
  107. package/src/pipelines/resolve.ts +88 -0
  108. package/src/pipelines/upscaleImage.ts +30 -0
  109. package/src/prompt/buildPrompt.ts +380 -0
  110. package/src/prompt/tiredGirlPrompt.ts +35 -0
  111. package/src/storage/files.ts +41 -0
  112. package/src/storage/museStore.ts +31 -0
  113. package/src/types.ts +198 -0
  114. package/tsconfig.json +15 -0
package/src/types.ts ADDED
@@ -0,0 +1,198 @@
1
+ export type AspectRatio = "1:1" | "3:4" | "4:3" | "9:16" | "16:9";
2
+
3
+ export interface Option {
4
+ id: string;
5
+ name: string;
6
+ value: string;
7
+ visualColor?: string;
8
+ visualImage?: string;
9
+ }
10
+
11
+ export interface Template {
12
+ id: string;
13
+ name: string;
14
+ description: string;
15
+ visualUrl?: string;
16
+ basePrompt: string;
17
+ customizationLabel?: string;
18
+ customizationOptions?: Option[];
19
+ secondaryCustomizationLabel?: string;
20
+ secondaryCustomizationOptions?: Option[];
21
+ tertiaryCustomizationLabel?: string;
22
+ tertiaryCustomizationOptions?: Option[];
23
+ isAdminOnly?: boolean;
24
+ museEnabled?: boolean;
25
+ videoEnabled?: boolean;
26
+ }
27
+
28
+ export interface Resolution {
29
+ id: string;
30
+ label: string;
31
+ aspectRatio: AspectRatio;
32
+ icon?: string;
33
+ description: string;
34
+ instagramUse: string;
35
+ }
36
+
37
+ export interface OccasionTheme {
38
+ id: string;
39
+ name: string;
40
+ icon: string;
41
+ description: string;
42
+ autoConfig: {
43
+ vibe: string;
44
+ background: string;
45
+ backgroundType: string;
46
+ };
47
+ promptDetails?: {
48
+ setting: string;
49
+ atmosphere: string;
50
+ colorPalette: string;
51
+ culturalElements: string;
52
+ styling: string;
53
+ };
54
+ }
55
+
56
+ export interface GenerationSelections {
57
+ templateId: string;
58
+ detailId?: string;
59
+ secondaryDetailId?: string;
60
+ tertiaryDetailId?: string;
61
+ ethnicityId?: string;
62
+ skinToneId?: string;
63
+ hairColorId?: string;
64
+ backgroundId?: string;
65
+ backgroundTypeId?: string;
66
+ vibeId?: string;
67
+ resolutionId?: string;
68
+ occasionId?: string;
69
+ }
70
+
71
+ export interface GenerationRequest {
72
+ inputImages: string[];
73
+ quantity?: number;
74
+ selections: GenerationSelections;
75
+ styleHint?: string;
76
+ museId?: string;
77
+ museImagePaths?: string[];
78
+ outputDir?: string;
79
+ enhancePrompt?: boolean;
80
+ }
81
+
82
+ export interface GenerationResult {
83
+ prompt: string;
84
+ enhancedPrompt?: string;
85
+ outputImages: string[];
86
+ logPath: string;
87
+ }
88
+
89
+ export interface RefineRequest {
90
+ inputImage: string;
91
+ instruction: string;
92
+ sizeAdjustment?: number;
93
+ outputDir?: string;
94
+ }
95
+
96
+ export interface UpscaleRequest {
97
+ inputImage: string;
98
+ scale?: number;
99
+ outputDir?: string;
100
+ }
101
+
102
+ export interface MuseRecord {
103
+ id: string;
104
+ name: string;
105
+ imagePaths: string[];
106
+ createdAt: string;
107
+ }
108
+
109
+ export interface CreateMuseRequest {
110
+ name: string;
111
+ sourceImage: string;
112
+ variations?: number;
113
+ outputDir?: string;
114
+ }
115
+
116
+ export interface CreateMuseResult {
117
+ muse: MuseRecord;
118
+ variationPaths: string[];
119
+ logPath: string;
120
+ }
121
+
122
+ export interface VideoRequest {
123
+ prompt: string;
124
+ imageInput?: string;
125
+ durationSeconds?: number;
126
+ aspectRatio?: AspectRatio;
127
+ outputDir?: string;
128
+ }
129
+
130
+ export interface VideoResult {
131
+ operationName?: string;
132
+ videoPath?: string;
133
+ logPath: string;
134
+ }
135
+
136
+ export interface TiredGirlRequest {
137
+ inputImage?: string;
138
+ museId?: string;
139
+ styleIds?: string[];
140
+ quantity?: number;
141
+ outputDir?: string;
142
+ }
143
+
144
+ export interface TiredGirlResult {
145
+ outputImages: string[];
146
+ logPath: string;
147
+ }
148
+
149
+ export type TextPosition =
150
+ | "top-center"
151
+ | "top-left"
152
+ | "top-right"
153
+ | "bottom-center"
154
+ | "bottom-center-high"
155
+ | "bottom-left"
156
+ | "bottom-right"
157
+ | "center";
158
+
159
+ export interface TextOverlayOptions {
160
+ fontFamily?: string;
161
+ fontSize?: number;
162
+ fontWeight?: number;
163
+ color?: string;
164
+ strokeColor?: string;
165
+ strokeWidth?: number;
166
+ banner?: boolean;
167
+ bannerColor?: string;
168
+ bannerPadding?: number;
169
+ bannerRadius?: number;
170
+ position?: TextPosition;
171
+ padding?: number;
172
+ maxWidthRatio?: number;
173
+ }
174
+
175
+ export interface GridOptions {
176
+ columns: number;
177
+ rows: number;
178
+ padding?: number;
179
+ background?: string;
180
+ tileWidth?: number;
181
+ tileHeight?: number;
182
+ }
183
+
184
+ export interface LumiereConfig {
185
+ apiKey: string;
186
+ outputDir: string;
187
+ models?: {
188
+ prompt?: string;
189
+ image?: string;
190
+ video?: string;
191
+ };
192
+ retry?: {
193
+ maxRetries?: number;
194
+ baseDelayMs?: number;
195
+ maxDelayMs?: number;
196
+ };
197
+ }
198
+
package/tsconfig.json ADDED
@@ -0,0 +1,15 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2022",
4
+ "module": "NodeNext",
5
+ "moduleResolution": "NodeNext",
6
+ "outDir": "dist",
7
+ "rootDir": "src",
8
+ "declaration": true,
9
+ "sourceMap": true,
10
+ "strict": true,
11
+ "esModuleInterop": true,
12
+ "skipLibCheck": true
13
+ },
14
+ "include": ["src"]
15
+ }