Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
Commit
•
38b0287
1
Parent(s):
7fd5ad1
oh, wow
Browse files
package-lock.json
CHANGED
@@ -9,7 +9,7 @@
|
|
9 |
"version": "0.0.0",
|
10 |
"dependencies": {
|
11 |
"@aitube/clap": "0.0.25",
|
12 |
-
"@aitube/engine": "0.0.
|
13 |
"@aitube/timeline": "0.0.20",
|
14 |
"@fal-ai/serverless-client": "^0.10.3",
|
15 |
"@huggingface/hub": "^0.15.1",
|
@@ -106,9 +106,9 @@
|
|
106 |
}
|
107 |
},
|
108 |
"node_modules/@aitube/engine": {
|
109 |
-
"version": "0.0.
|
110 |
-
"resolved": "https://registry.npmjs.org/@aitube/engine/-/engine-0.0.
|
111 |
-
"integrity": "sha512-
|
112 |
"peerDependencies": {
|
113 |
"@aitube/clap": "0.0.25"
|
114 |
}
|
@@ -4844,9 +4844,9 @@
|
|
4844 |
"integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA=="
|
4845 |
},
|
4846 |
"node_modules/electron-to-chromium": {
|
4847 |
-
"version": "1.4.
|
4848 |
-
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.
|
4849 |
-
"integrity": "sha512-
|
4850 |
},
|
4851 |
"node_modules/emoji-regex": {
|
4852 |
"version": "9.2.2",
|
|
|
9 |
"version": "0.0.0",
|
10 |
"dependencies": {
|
11 |
"@aitube/clap": "0.0.25",
|
12 |
+
"@aitube/engine": "0.0.18",
|
13 |
"@aitube/timeline": "0.0.20",
|
14 |
"@fal-ai/serverless-client": "^0.10.3",
|
15 |
"@huggingface/hub": "^0.15.1",
|
|
|
106 |
}
|
107 |
},
|
108 |
"node_modules/@aitube/engine": {
|
109 |
+
"version": "0.0.18",
|
110 |
+
"resolved": "https://registry.npmjs.org/@aitube/engine/-/engine-0.0.18.tgz",
|
111 |
+
"integrity": "sha512-dON6+hS78j07wMwgaR7calIW+KOQOoyuSAejBuN/JxCZPDvS++QIGZ1uP2hru+kDG/NEpGxOlrcXZEZhMkzBEA==",
|
112 |
"peerDependencies": {
|
113 |
"@aitube/clap": "0.0.25"
|
114 |
}
|
|
|
4844 |
"integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA=="
|
4845 |
},
|
4846 |
"node_modules/electron-to-chromium": {
|
4847 |
+
"version": "1.4.797",
|
4848 |
+
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.797.tgz",
|
4849 |
+
"integrity": "sha512-RWMYymqyWwIdCEb7Psag5zyAHirYnB354ZREoF8c5QOHbt8AodF7lwVxGUnu5gzBVjzDo9R3XeTwy7pbvubxGw=="
|
4850 |
},
|
4851 |
"node_modules/emoji-regex": {
|
4852 |
"version": "9.2.2",
|
package.json
CHANGED
@@ -11,7 +11,7 @@
|
|
11 |
},
|
12 |
"dependencies": {
|
13 |
"@aitube/clap": "0.0.25",
|
14 |
-
"@aitube/engine": "0.0.
|
15 |
"@aitube/timeline": "0.0.20",
|
16 |
"@fal-ai/serverless-client": "^0.10.3",
|
17 |
"@huggingface/hub": "^0.15.1",
|
|
|
11 |
},
|
12 |
"dependencies": {
|
13 |
"@aitube/clap": "0.0.25",
|
14 |
+
"@aitube/engine": "0.0.18",
|
15 |
"@aitube/timeline": "0.0.20",
|
16 |
"@fal-ai/serverless-client": "^0.10.3",
|
17 |
"@huggingface/hub": "^0.15.1",
|
src/app/api/resolve/providers/falai/index.ts
CHANGED
@@ -89,6 +89,8 @@ export async function resolveSegment(request: ResolveRequest): Promise<ClapSegme
|
|
89 |
|
90 |
content = result.images[0]?.url
|
91 |
} else if (request.segment.category === ClapSegmentCategory.VIDEO) {
|
|
|
|
|
92 |
if (request.settings.falAiModelForVideo !== "fal-ai/stable-video") {
|
93 |
throw new Error(`only "fal-ai/stable-video" is supported by Clapper for the moment`)
|
94 |
}
|
|
|
89 |
|
90 |
content = result.images[0]?.url
|
91 |
} else if (request.segment.category === ClapSegmentCategory.VIDEO) {
|
92 |
+
|
93 |
+
// console.log(`request.settings.falAiModelForVideo = `, request.settings.falAiModelForVideo)
|
94 |
if (request.settings.falAiModelForVideo !== "fal-ai/stable-video") {
|
95 |
throw new Error(`only "fal-ai/stable-video" is supported by Clapper for the moment`)
|
96 |
}
|
src/controllers/settings/getDefaultSettingsState.ts
CHANGED
@@ -30,12 +30,12 @@ export function getDefaultSettingsState(): SettingsState {
|
|
30 |
|
31 |
censorNotForAllAudiencesContent: false,
|
32 |
|
33 |
-
imagePromptPrefix: "",
|
34 |
-
imagePromptSuffix: "",
|
35 |
-
imageNegativePrompt: "",
|
36 |
-
videoPromptPrefix: "",
|
37 |
-
videoPromptSuffix: "",
|
38 |
-
videoNegativePrompt: "",
|
39 |
|
40 |
assistantModel: "",
|
41 |
assistantTurboModel: "",
|
@@ -94,7 +94,7 @@ export function getDefaultSettingsState(): SettingsState {
|
|
94 |
stabilityAiModelForMusic: "",
|
95 |
|
96 |
falAiModelForImage: "fal-ai/fast-sdxl", // "fal-ai/fast-lightning-sdxl",
|
97 |
-
falAiModelForVideo: "fal-ai/
|
98 |
falAiModelForVoice: "fal-ai/metavoice-v1",
|
99 |
falAiModelForSound: "fal-ai/stable-audio",
|
100 |
falAiModelForMusic: "fal-ai/stable-audio",
|
|
|
30 |
|
31 |
censorNotForAllAudiencesContent: false,
|
32 |
|
33 |
+
imagePromptPrefix: "movie screencap, photo",
|
34 |
+
imagePromptSuffix: "high quality, beautiful, amazing, intricate details",
|
35 |
+
imageNegativePrompt: "ugly, imperfect, cropped, low resolution",
|
36 |
+
videoPromptPrefix: "movie screencap, photo",
|
37 |
+
videoPromptSuffix: "high quality, beautiful, amazing, intricate details",
|
38 |
+
videoNegativePrompt: "ugly, imperfect, cropped, low resolution",
|
39 |
|
40 |
assistantModel: "",
|
41 |
assistantTurboModel: "",
|
|
|
94 |
stabilityAiModelForMusic: "",
|
95 |
|
96 |
falAiModelForImage: "fal-ai/fast-sdxl", // "fal-ai/fast-lightning-sdxl",
|
97 |
+
falAiModelForVideo: "fal-ai/stable-video",
|
98 |
falAiModelForVoice: "fal-ai/metavoice-v1",
|
99 |
falAiModelForSound: "fal-ai/stable-audio",
|
100 |
falAiModelForMusic: "fal-ai/stable-audio",
|
src/lib/utils/decodeOutput.ts
CHANGED
@@ -11,13 +11,18 @@ export async function decodeOutput(input: any): Promise<string> {
|
|
11 |
? urlOrBase64
|
12 |
: (await fetchContentToBase64(urlOrBase64))
|
13 |
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
|
|
|
|
21 |
|
22 |
-
|
|
|
|
|
|
|
23 |
}
|
|
|
11 |
? urlOrBase64
|
12 |
: (await fetchContentToBase64(urlOrBase64))
|
13 |
|
14 |
+
|
15 |
+
if (base64Url.startsWith("data:image/")) {
|
16 |
+
// this step is important since some providers store data as PNG,
|
17 |
+
// which is a unreasonable since a few frames quickly add up to 10 Mb,
|
18 |
+
// we can't afford to have a 20 Gb .clap file
|
19 |
+
//
|
20 |
+
// if you really want to have a pro, Hollywood-grade storyboard storage,
|
21 |
+
// this isn't impossible but then you need to use either file paths or remote URL paths
|
22 |
+
const jpegImageAsBase64 = await convertToJpeg(base64Url)
|
23 |
|
24 |
+
return jpegImageAsBase64
|
25 |
+
}
|
26 |
+
|
27 |
+
return base64Url
|
28 |
}
|