@genfeedai/workflows 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.
@@ -0,0 +1,76 @@
1
+ {
2
+ "workflows": [
3
+ {
4
+ "slug": "single-image",
5
+ "title": "Single Image Generation",
6
+ "description": "Generate an AI image from a source image (img2img) with enhanced styling and effects",
7
+ "category": "image-generation",
8
+ "tags": ["image", "simple", "img2img", "enhancement"],
9
+ "tier": "free",
10
+ "icon": "🖼️",
11
+ "defaultModel": "nano-banana-pro",
12
+ "inputTypes": ["image", "text"],
13
+ "outputTypes": ["image"]
14
+ },
15
+ {
16
+ "slug": "single-video",
17
+ "title": "Single Video Generation",
18
+ "description": "Generate an AI video from a source image (img2video) with motion effects",
19
+ "category": "video-generation",
20
+ "tags": ["video", "simple", "img2video", "animation"],
21
+ "tier": "free",
22
+ "icon": "🎬",
23
+ "defaultModel": "nano-banana-pro",
24
+ "inputTypes": ["image", "text"],
25
+ "outputTypes": ["video"]
26
+ },
27
+ {
28
+ "slug": "image-series",
29
+ "title": "Image Series Generation",
30
+ "description": "Generate a series of related images from a concept using LLM-powered prompt expansion",
31
+ "category": "image-generation",
32
+ "tags": ["image", "series", "llm", "batch", "automation"],
33
+ "tier": "free",
34
+ "icon": "📸",
35
+ "defaultModel": "nano-banana-pro",
36
+ "inputTypes": ["text"],
37
+ "outputTypes": ["image"]
38
+ },
39
+ {
40
+ "slug": "image-to-video",
41
+ "title": "Image to Video Transition",
42
+ "description": "Create smooth interpolated video transitions between two images with easing effects",
43
+ "category": "video-generation",
44
+ "tags": ["video", "interpolation", "animation", "transition"],
45
+ "tier": "free",
46
+ "icon": "🎞️",
47
+ "defaultModel": "nano-banana-pro",
48
+ "inputTypes": ["image"],
49
+ "outputTypes": ["video"]
50
+ },
51
+ {
52
+ "slug": "full-pipeline",
53
+ "title": "Full Content Pipeline",
54
+ "description": "Complete end-to-end workflow: concept development to final video production",
55
+ "category": "full-pipeline",
56
+ "tags": ["pipeline", "advanced", "complete", "automation", "production"],
57
+ "tier": "free",
58
+ "icon": "⚡",
59
+ "defaultModel": "nano-banana-pro",
60
+ "inputTypes": ["text"],
61
+ "outputTypes": ["video"]
62
+ },
63
+ {
64
+ "slug": "ugc-factory",
65
+ "title": "UGC Content Factory",
66
+ "description": "Automated user-generated content creation for social media and marketing campaigns",
67
+ "category": "full-pipeline",
68
+ "tags": ["ugc", "social", "automation", "marketing", "content"],
69
+ "tier": "free",
70
+ "icon": "🏭",
71
+ "defaultModel": "nano-banana-pro",
72
+ "inputTypes": ["text"],
73
+ "outputTypes": ["video", "image"]
74
+ }
75
+ ]
76
+ }
package/package.json ADDED
@@ -0,0 +1,44 @@
1
+ {
2
+ "name": "@genfeedai/workflows",
3
+ "version": "0.1.0",
4
+ "license": "AGPL-3.0",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "git+https://github.com/genfeedai/core.git",
8
+ "directory": "packages/workflows"
9
+ },
10
+ "publishConfig": {
11
+ "access": "public",
12
+ "registry": "https://registry.npmjs.org/"
13
+ },
14
+ "main": "./dist/index.js",
15
+ "types": "./dist/index.d.ts",
16
+ "exports": {
17
+ ".": {
18
+ "types": "./dist/index.d.ts",
19
+ "import": "./dist/index.js",
20
+ "require": "./dist/index.cjs"
21
+ },
22
+ "./comfyui": {
23
+ "types": "./dist/comfyui/index.d.ts",
24
+ "import": "./dist/comfyui/index.js",
25
+ "require": "./dist/comfyui/index.cjs"
26
+ },
27
+ "./workflows/*": "./workflows/*"
28
+ },
29
+ "files": [
30
+ "dist",
31
+ "workflows",
32
+ "metadata"
33
+ ],
34
+ "scripts": {
35
+ "build": "tsup src/index.ts --format esm,cjs --dts --clean",
36
+ "dev": "tsup src/index.ts --format esm,cjs --dts --watch",
37
+ "prepublishOnly": "bun run build"
38
+ },
39
+ "devDependencies": {
40
+ "@genfeedai/types": "workspace:*",
41
+ "tsup": "8.4.0",
42
+ "typescript": "5.9.3"
43
+ }
44
+ }
@@ -0,0 +1,295 @@
1
+ {
2
+ "version": 1,
3
+ "name": "Full Content Pipeline",
4
+ "description": "Complete workflow: concept to images to videos to stitched output",
5
+ "edgeStyle": "smoothstep",
6
+ "createdAt": "2025-01-19T00:00:00.000Z",
7
+ "updatedAt": "2025-01-19T00:00:00.000Z",
8
+ "nodes": [
9
+ {
10
+ "id": "concept",
11
+ "type": "prompt",
12
+ "position": { "x": 50, "y": 300 },
13
+ "data": {
14
+ "label": "Concept",
15
+ "status": "idle",
16
+ "prompt": "Create a 3-scene story about a robot discovering nature for the first time. Scene 1: Robot in city. Scene 2: Robot enters forest. Scene 3: Robot watches sunset.",
17
+ "variables": {}
18
+ }
19
+ },
20
+ {
21
+ "id": "llm-story",
22
+ "type": "llm",
23
+ "position": { "x": 350, "y": 300 },
24
+ "data": {
25
+ "label": "Story Expander",
26
+ "status": "idle",
27
+ "inputPrompt": null,
28
+ "outputText": null,
29
+ "systemPrompt": "Expand the concept into 3 detailed visual prompts. For each scene, include: setting, lighting, mood, camera angle, and specific details. Number each 1., 2., 3.",
30
+ "temperature": 0.8,
31
+ "maxTokens": 2048,
32
+ "topP": 0.9,
33
+ "jobId": null
34
+ }
35
+ },
36
+ {
37
+ "id": "imageGen-1",
38
+ "type": "imageGen",
39
+ "position": { "x": 700, "y": 100 },
40
+ "data": {
41
+ "label": "Scene 1 Image",
42
+ "status": "idle",
43
+ "inputImages": [],
44
+ "inputPrompt": null,
45
+ "outputImage": null,
46
+ "model": "nano-banana-pro",
47
+ "aspectRatio": "16:9",
48
+ "resolution": "2K",
49
+ "outputFormat": "jpg",
50
+ "jobId": null
51
+ }
52
+ },
53
+ {
54
+ "id": "imageGen-2",
55
+ "type": "imageGen",
56
+ "position": { "x": 700, "y": 300 },
57
+ "data": {
58
+ "label": "Scene 2 Image",
59
+ "status": "idle",
60
+ "inputImages": [],
61
+ "inputPrompt": null,
62
+ "outputImage": null,
63
+ "model": "nano-banana-pro",
64
+ "aspectRatio": "16:9",
65
+ "resolution": "2K",
66
+ "outputFormat": "jpg",
67
+ "jobId": null
68
+ }
69
+ },
70
+ {
71
+ "id": "imageGen-3",
72
+ "type": "imageGen",
73
+ "position": { "x": 700, "y": 500 },
74
+ "data": {
75
+ "label": "Scene 3 Image",
76
+ "status": "idle",
77
+ "inputImages": [],
78
+ "inputPrompt": null,
79
+ "outputImage": null,
80
+ "model": "nano-banana-pro",
81
+ "aspectRatio": "16:9",
82
+ "resolution": "2K",
83
+ "outputFormat": "jpg",
84
+ "jobId": null
85
+ }
86
+ },
87
+ {
88
+ "id": "videoGen-1",
89
+ "type": "videoGen",
90
+ "position": { "x": 1050, "y": 150 },
91
+ "data": {
92
+ "label": "Scene 1-2 Video",
93
+ "status": "idle",
94
+ "inputImage": null,
95
+ "lastFrame": null,
96
+ "referenceImages": [],
97
+ "inputPrompt": null,
98
+ "negativePrompt": "blurry, distorted, artifacts",
99
+ "outputVideo": null,
100
+ "model": "veo-3.1",
101
+ "duration": 6,
102
+ "aspectRatio": "16:9",
103
+ "resolution": "1080p",
104
+ "generateAudio": true,
105
+ "jobId": null
106
+ }
107
+ },
108
+ {
109
+ "id": "videoGen-2",
110
+ "type": "videoGen",
111
+ "position": { "x": 1050, "y": 400 },
112
+ "data": {
113
+ "label": "Scene 2-3 Video",
114
+ "status": "idle",
115
+ "inputImage": null,
116
+ "lastFrame": null,
117
+ "referenceImages": [],
118
+ "inputPrompt": null,
119
+ "negativePrompt": "blurry, distorted, artifacts",
120
+ "outputVideo": null,
121
+ "model": "veo-3.1",
122
+ "duration": 6,
123
+ "aspectRatio": "16:9",
124
+ "resolution": "1080p",
125
+ "generateAudio": true,
126
+ "jobId": null
127
+ }
128
+ },
129
+ {
130
+ "id": "animation-1",
131
+ "type": "animation",
132
+ "position": { "x": 1400, "y": 150 },
133
+ "data": {
134
+ "label": "Ease Animation 1",
135
+ "status": "idle",
136
+ "inputVideo": null,
137
+ "outputVideo": null,
138
+ "curveType": "preset",
139
+ "preset": "easeInOutCubic",
140
+ "customCurve": [0.645, 0.045, 0.355, 1],
141
+ "speedMultiplier": 1
142
+ }
143
+ },
144
+ {
145
+ "id": "animation-2",
146
+ "type": "animation",
147
+ "position": { "x": 1400, "y": 400 },
148
+ "data": {
149
+ "label": "Ease Animation 2",
150
+ "status": "idle",
151
+ "inputVideo": null,
152
+ "outputVideo": null,
153
+ "curveType": "preset",
154
+ "preset": "easeInOutCubic",
155
+ "customCurve": [0.645, 0.045, 0.355, 1],
156
+ "speedMultiplier": 1
157
+ }
158
+ },
159
+ {
160
+ "id": "stitch-1",
161
+ "type": "videoStitch",
162
+ "position": { "x": 1750, "y": 275 },
163
+ "data": {
164
+ "label": "Video Stitcher",
165
+ "status": "idle",
166
+ "inputVideos": [],
167
+ "outputVideo": null,
168
+ "transitionType": "crossfade",
169
+ "transitionDuration": 0.5,
170
+ "seamlessLoop": true,
171
+ "audioCodec": "aac",
172
+ "outputQuality": "full"
173
+ }
174
+ },
175
+ {
176
+ "id": "output-1",
177
+ "type": "output",
178
+ "position": { "x": 2100, "y": 275 },
179
+ "data": {
180
+ "label": "Final Video",
181
+ "status": "idle",
182
+ "inputMedia": null,
183
+ "inputType": "video",
184
+ "outputName": "full-pipeline-output"
185
+ }
186
+ }
187
+ ],
188
+ "edges": [
189
+ {
190
+ "id": "e1",
191
+ "source": "concept",
192
+ "target": "llm-story",
193
+ "sourceHandle": "text",
194
+ "targetHandle": "prompt"
195
+ },
196
+ {
197
+ "id": "e2",
198
+ "source": "llm-story",
199
+ "target": "imageGen-1",
200
+ "sourceHandle": "text",
201
+ "targetHandle": "prompt"
202
+ },
203
+ {
204
+ "id": "e3",
205
+ "source": "llm-story",
206
+ "target": "imageGen-2",
207
+ "sourceHandle": "text",
208
+ "targetHandle": "prompt"
209
+ },
210
+ {
211
+ "id": "e4",
212
+ "source": "llm-story",
213
+ "target": "imageGen-3",
214
+ "sourceHandle": "text",
215
+ "targetHandle": "prompt"
216
+ },
217
+ {
218
+ "id": "e5",
219
+ "source": "imageGen-1",
220
+ "target": "videoGen-1",
221
+ "sourceHandle": "image",
222
+ "targetHandle": "image"
223
+ },
224
+ {
225
+ "id": "e6",
226
+ "source": "imageGen-2",
227
+ "target": "videoGen-1",
228
+ "sourceHandle": "image",
229
+ "targetHandle": "lastFrame"
230
+ },
231
+ {
232
+ "id": "e7",
233
+ "source": "imageGen-2",
234
+ "target": "videoGen-2",
235
+ "sourceHandle": "image",
236
+ "targetHandle": "image"
237
+ },
238
+ {
239
+ "id": "e8",
240
+ "source": "imageGen-3",
241
+ "target": "videoGen-2",
242
+ "sourceHandle": "image",
243
+ "targetHandle": "lastFrame"
244
+ },
245
+ {
246
+ "id": "e9",
247
+ "source": "llm-story",
248
+ "target": "videoGen-1",
249
+ "sourceHandle": "text",
250
+ "targetHandle": "prompt"
251
+ },
252
+ {
253
+ "id": "e10",
254
+ "source": "llm-story",
255
+ "target": "videoGen-2",
256
+ "sourceHandle": "text",
257
+ "targetHandle": "prompt"
258
+ },
259
+ {
260
+ "id": "e11",
261
+ "source": "videoGen-1",
262
+ "target": "animation-1",
263
+ "sourceHandle": "video",
264
+ "targetHandle": "video"
265
+ },
266
+ {
267
+ "id": "e12",
268
+ "source": "videoGen-2",
269
+ "target": "animation-2",
270
+ "sourceHandle": "video",
271
+ "targetHandle": "video"
272
+ },
273
+ {
274
+ "id": "e13",
275
+ "source": "animation-1",
276
+ "target": "stitch-1",
277
+ "sourceHandle": "video",
278
+ "targetHandle": "videos"
279
+ },
280
+ {
281
+ "id": "e14",
282
+ "source": "animation-2",
283
+ "target": "stitch-1",
284
+ "sourceHandle": "video",
285
+ "targetHandle": "videos"
286
+ },
287
+ {
288
+ "id": "e15",
289
+ "source": "stitch-1",
290
+ "target": "output-1",
291
+ "sourceHandle": "video",
292
+ "targetHandle": "media"
293
+ }
294
+ ]
295
+ }
@@ -0,0 +1,151 @@
1
+ {
2
+ "version": 1,
3
+ "name": "Image Series",
4
+ "description": "Generate a series of related images from a concept prompt using LLM expansion",
5
+ "edgeStyle": "smoothstep",
6
+ "createdAt": "2025-01-19T00:00:00.000Z",
7
+ "updatedAt": "2025-01-19T00:00:00.000Z",
8
+ "nodes": [
9
+ {
10
+ "id": "prompt-1",
11
+ "type": "prompt",
12
+ "position": { "x": 50, "y": 200 },
13
+ "data": {
14
+ "label": "Concept",
15
+ "status": "idle",
16
+ "prompt": "Create 3 variations of a futuristic city at sunset. Each should show different architectural styles but maintain a cohesive color palette.",
17
+ "variables": {}
18
+ }
19
+ },
20
+ {
21
+ "id": "llm-1",
22
+ "type": "llm",
23
+ "position": { "x": 350, "y": 200 },
24
+ "data": {
25
+ "label": "Prompt Expander",
26
+ "status": "idle",
27
+ "inputPrompt": null,
28
+ "outputText": null,
29
+ "systemPrompt": "You are a creative prompt engineer. Take the user's concept and expand it into 3 detailed, specific image generation prompts. Format each prompt on a new line starting with '1.', '2.', '3.'",
30
+ "temperature": 0.8,
31
+ "maxTokens": 1024,
32
+ "topP": 0.9,
33
+ "jobId": null
34
+ }
35
+ },
36
+ {
37
+ "id": "imageGen-1",
38
+ "type": "imageGen",
39
+ "position": { "x": 700, "y": 50 },
40
+ "data": {
41
+ "label": "Image 1",
42
+ "status": "idle",
43
+ "inputImages": [],
44
+ "inputPrompt": null,
45
+ "outputImage": null,
46
+ "model": "nano-banana-pro",
47
+ "aspectRatio": "16:9",
48
+ "resolution": "2K",
49
+ "outputFormat": "jpg",
50
+ "jobId": null
51
+ }
52
+ },
53
+ {
54
+ "id": "imageGen-2",
55
+ "type": "imageGen",
56
+ "position": { "x": 700, "y": 250 },
57
+ "data": {
58
+ "label": "Image 2",
59
+ "status": "idle",
60
+ "inputImages": [],
61
+ "inputPrompt": null,
62
+ "outputImage": null,
63
+ "model": "nano-banana-pro",
64
+ "aspectRatio": "16:9",
65
+ "resolution": "2K",
66
+ "outputFormat": "jpg",
67
+ "jobId": null
68
+ }
69
+ },
70
+ {
71
+ "id": "imageGen-3",
72
+ "type": "imageGen",
73
+ "position": { "x": 700, "y": 450 },
74
+ "data": {
75
+ "label": "Image 3",
76
+ "status": "idle",
77
+ "inputImages": [],
78
+ "inputPrompt": null,
79
+ "outputImage": null,
80
+ "model": "nano-banana-pro",
81
+ "aspectRatio": "16:9",
82
+ "resolution": "2K",
83
+ "outputFormat": "jpg",
84
+ "jobId": null
85
+ }
86
+ },
87
+ {
88
+ "id": "output-1",
89
+ "type": "output",
90
+ "position": { "x": 1050, "y": 250 },
91
+ "data": {
92
+ "label": "Final Output",
93
+ "status": "idle",
94
+ "inputMedia": null,
95
+ "inputType": null,
96
+ "outputName": "image-series"
97
+ }
98
+ }
99
+ ],
100
+ "edges": [
101
+ {
102
+ "id": "e1",
103
+ "source": "prompt-1",
104
+ "target": "llm-1",
105
+ "sourceHandle": "text",
106
+ "targetHandle": "prompt"
107
+ },
108
+ {
109
+ "id": "e2",
110
+ "source": "llm-1",
111
+ "target": "imageGen-1",
112
+ "sourceHandle": "text",
113
+ "targetHandle": "prompt"
114
+ },
115
+ {
116
+ "id": "e3",
117
+ "source": "llm-1",
118
+ "target": "imageGen-2",
119
+ "sourceHandle": "text",
120
+ "targetHandle": "prompt"
121
+ },
122
+ {
123
+ "id": "e4",
124
+ "source": "llm-1",
125
+ "target": "imageGen-3",
126
+ "sourceHandle": "text",
127
+ "targetHandle": "prompt"
128
+ },
129
+ {
130
+ "id": "e5",
131
+ "source": "imageGen-1",
132
+ "target": "output-1",
133
+ "sourceHandle": "image",
134
+ "targetHandle": "media"
135
+ },
136
+ {
137
+ "id": "e6",
138
+ "source": "imageGen-2",
139
+ "target": "output-1",
140
+ "sourceHandle": "image",
141
+ "targetHandle": "media"
142
+ },
143
+ {
144
+ "id": "e7",
145
+ "source": "imageGen-3",
146
+ "target": "output-1",
147
+ "sourceHandle": "image",
148
+ "targetHandle": "media"
149
+ }
150
+ ]
151
+ }
@@ -0,0 +1,132 @@
1
+ {
2
+ "version": 1,
3
+ "name": "Image to Video",
4
+ "description": "Create interpolated video between two images with easing animation",
5
+ "edgeStyle": "smoothstep",
6
+ "createdAt": "2025-01-19T00:00:00.000Z",
7
+ "updatedAt": "2025-01-19T00:00:00.000Z",
8
+ "nodes": [
9
+ {
10
+ "id": "image-1",
11
+ "type": "imageInput",
12
+ "position": { "x": 50, "y": 100 },
13
+ "data": {
14
+ "label": "Starting Frame",
15
+ "status": "idle",
16
+ "image": null,
17
+ "filename": null,
18
+ "dimensions": null,
19
+ "source": "upload"
20
+ }
21
+ },
22
+ {
23
+ "id": "image-2",
24
+ "type": "imageInput",
25
+ "position": { "x": 50, "y": 350 },
26
+ "data": {
27
+ "label": "Ending Frame",
28
+ "status": "idle",
29
+ "image": null,
30
+ "filename": null,
31
+ "dimensions": null,
32
+ "source": "upload"
33
+ }
34
+ },
35
+ {
36
+ "id": "prompt-1",
37
+ "type": "prompt",
38
+ "position": { "x": 50, "y": 550 },
39
+ "data": {
40
+ "label": "Motion Description",
41
+ "status": "idle",
42
+ "prompt": "Smooth cinematic transition with subtle camera movement",
43
+ "variables": {}
44
+ }
45
+ },
46
+ {
47
+ "id": "videoGen-1",
48
+ "type": "videoGen",
49
+ "position": { "x": 400, "y": 200 },
50
+ "data": {
51
+ "label": "Video Generator",
52
+ "status": "idle",
53
+ "inputImage": null,
54
+ "lastFrame": null,
55
+ "referenceImages": [],
56
+ "inputPrompt": null,
57
+ "negativePrompt": "blurry, distorted, artifacts",
58
+ "outputVideo": null,
59
+ "model": "veo-3.1-fast",
60
+ "duration": 8,
61
+ "aspectRatio": "16:9",
62
+ "resolution": "1080p",
63
+ "generateAudio": false,
64
+ "jobId": null
65
+ }
66
+ },
67
+ {
68
+ "id": "animation-1",
69
+ "type": "animation",
70
+ "position": { "x": 750, "y": 200 },
71
+ "data": {
72
+ "label": "Ease Animation",
73
+ "status": "idle",
74
+ "inputVideo": null,
75
+ "outputVideo": null,
76
+ "curveType": "preset",
77
+ "preset": "easeInOutCubic",
78
+ "customCurve": [0.645, 0.045, 0.355, 1],
79
+ "speedMultiplier": 1
80
+ }
81
+ },
82
+ {
83
+ "id": "output-1",
84
+ "type": "output",
85
+ "position": { "x": 1100, "y": 200 },
86
+ "data": {
87
+ "label": "Final Video",
88
+ "status": "idle",
89
+ "inputMedia": null,
90
+ "inputType": "video",
91
+ "outputName": "image-to-video"
92
+ }
93
+ }
94
+ ],
95
+ "edges": [
96
+ {
97
+ "id": "e1",
98
+ "source": "image-1",
99
+ "target": "videoGen-1",
100
+ "sourceHandle": "image",
101
+ "targetHandle": "image"
102
+ },
103
+ {
104
+ "id": "e2",
105
+ "source": "image-2",
106
+ "target": "videoGen-1",
107
+ "sourceHandle": "image",
108
+ "targetHandle": "lastFrame"
109
+ },
110
+ {
111
+ "id": "e3",
112
+ "source": "prompt-1",
113
+ "target": "videoGen-1",
114
+ "sourceHandle": "text",
115
+ "targetHandle": "prompt"
116
+ },
117
+ {
118
+ "id": "e4",
119
+ "source": "videoGen-1",
120
+ "target": "animation-1",
121
+ "sourceHandle": "video",
122
+ "targetHandle": "video"
123
+ },
124
+ {
125
+ "id": "e5",
126
+ "source": "animation-1",
127
+ "target": "output-1",
128
+ "sourceHandle": "video",
129
+ "targetHandle": "media"
130
+ }
131
+ ]
132
+ }