jbilcke-hf HF staff commited on
Commit
38b0287
1 Parent(s): 7fd5ad1
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.17",
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.17",
110
- "resolved": "https://registry.npmjs.org/@aitube/engine/-/engine-0.0.17.tgz",
111
- "integrity": "sha512-1uC7diXvU1nzpOu5C6SdngerCe2Pn9xi5SEV4VQBbm8plYuiuWeDgzpwqCDcoa6lDz0o3ExQaovBL7nkGre0sg==",
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.796",
4848
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.796.tgz",
4849
- "integrity": "sha512-NglN/xprcM+SHD2XCli4oC6bWe6kHoytcyLKCWXmRL854F0qhPhaYgUswUsglnPxYaNQIg2uMY4BvaomIf3kLA=="
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.17",
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/fast-animatediff/turbo/text-to-video",
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
- // this step is important since some providers store data as PNG,
15
- // which is a unreasonable since a few frames quickly add up to 10 Mb,
16
- // we can't afford to have a 20 Gb .clap file
17
- //
18
- // if you really want to have a pro, Hollywood-grade storyboard storage,
19
- // this isn't impossible but then you need to use either file paths or remote URL paths
20
- const jpegImageAsBase64 = await convertToJpeg(base64Url)
 
 
21
 
22
- return jpegImageAsBase64
 
 
 
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
  }