jbilcke-hf HF staff commited on
Commit
75aad1e
·
1 Parent(s): ef22617
package-lock.json CHANGED
@@ -23,6 +23,8 @@
23
  "node-fetch": "^3.3.1",
24
  "openai": "^3.3.0",
25
  "puppeteer": "^20.8.0",
 
 
26
  "temp-dir": "^3.0.0",
27
  "ts-node": "^10.9.1",
28
  "uuid": "^9.0.0",
@@ -766,6 +768,11 @@
766
  "readable-stream": "^3.4.0"
767
  }
768
  },
 
 
 
 
 
769
  "node_modules/body-parser": {
770
  "version": "1.20.1",
771
  "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz",
@@ -1144,6 +1151,43 @@
1144
  "url": "https://github.com/sponsors/d-fischer"
1145
  }
1146
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1147
  "node_modules/create-require": {
1148
  "version": "1.1.1",
1149
  "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
@@ -1718,6 +1762,11 @@
1718
  "node": ">=10.13.0"
1719
  }
1720
  },
 
 
 
 
 
1721
  "node_modules/ffmpeg-concat/node_modules/fs-extra": {
1722
  "version": "7.0.1",
1723
  "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz",
@@ -1739,6 +1788,84 @@
1739
  "graceful-fs": "^4.1.6"
1740
  }
1741
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1742
  "node_modules/ffmpeg-concat/node_modules/universalify": {
1743
  "version": "0.1.2",
1744
  "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
@@ -2145,6 +2272,14 @@
2145
  "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz",
2146
  "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw=="
2147
  },
 
 
 
 
 
 
 
 
2148
  "node_modules/gl": {
2149
  "version": "6.0.2",
2150
  "resolved": "https://registry.npmjs.org/gl/-/gl-6.0.2.tgz",
@@ -2626,6 +2761,11 @@
2626
  "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
2627
  "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA=="
2628
  },
 
 
 
 
 
2629
  "node_modules/isarray": {
2630
  "version": "0.0.1",
2631
  "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
@@ -3118,6 +3258,17 @@
3118
  "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
3119
  "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
3120
  },
 
 
 
 
 
 
 
 
 
 
 
3121
  "node_modules/nan": {
3122
  "version": "2.17.0",
3123
  "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz",
@@ -3212,9 +3363,9 @@
3212
  }
3213
  },
3214
  "node_modules/node-addon-api": {
3215
- "version": "5.1.0",
3216
- "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz",
3217
- "integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA=="
3218
  },
3219
  "node_modules/node-bitmap": {
3220
  "version": "0.0.1",
@@ -4007,6 +4158,14 @@
4007
  "uuid": "bin/uuid"
4008
  }
4009
  },
 
 
 
 
 
 
 
 
4010
  "node_modules/require-directory": {
4011
  "version": "2.1.1",
4012
  "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
@@ -4020,6 +4179,14 @@
4020
  "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
4021
  "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ=="
4022
  },
 
 
 
 
 
 
 
 
4023
  "node_modules/resolve-from": {
4024
  "version": "4.0.0",
4025
  "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
@@ -4166,18 +4333,18 @@
4166
  "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
4167
  },
4168
  "node_modules/sharp": {
4169
- "version": "0.31.3",
4170
- "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.31.3.tgz",
4171
- "integrity": "sha512-XcR4+FCLBFKw1bdB+GEhnUNXNXvnt0tDo4WsBsraKymuo/IAuPuCBVAL2wIkUw2r/dwFW5Q5+g66Kwl2dgDFVg==",
4172
  "hasInstallScript": true,
4173
  "dependencies": {
4174
  "color": "^4.2.3",
4175
- "detect-libc": "^2.0.1",
4176
- "node-addon-api": "^5.0.0",
4177
  "prebuild-install": "^7.1.1",
4178
- "semver": "^7.3.8",
4179
  "simple-get": "^4.0.1",
4180
- "tar-fs": "^2.1.1",
4181
  "tunnel-agent": "^0.6.0"
4182
  },
4183
  "engines": {
@@ -4187,11 +4354,6 @@
4187
  "url": "https://opencollective.com/libvips"
4188
  }
4189
  },
4190
- "node_modules/sharp/node_modules/chownr": {
4191
- "version": "1.1.4",
4192
- "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
4193
- "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg=="
4194
- },
4195
  "node_modules/sharp/node_modules/lru-cache": {
4196
  "version": "6.0.0",
4197
  "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
@@ -4218,29 +4380,13 @@
4218
  }
4219
  },
4220
  "node_modules/sharp/node_modules/tar-fs": {
4221
- "version": "2.1.1",
4222
- "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz",
4223
- "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==",
4224
  "dependencies": {
4225
- "chownr": "^1.1.1",
4226
  "mkdirp-classic": "^0.5.2",
4227
  "pump": "^3.0.0",
4228
- "tar-stream": "^2.1.4"
4229
- }
4230
- },
4231
- "node_modules/sharp/node_modules/tar-stream": {
4232
- "version": "2.2.0",
4233
- "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
4234
- "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
4235
- "dependencies": {
4236
- "bl": "^4.0.3",
4237
- "end-of-stream": "^1.4.1",
4238
- "fs-constants": "^1.0.0",
4239
- "inherits": "^2.0.3",
4240
- "readable-stream": "^3.1.1"
4241
- },
4242
- "engines": {
4243
- "node": ">=6"
4244
  }
4245
  },
4246
  "node_modules/shebang-command": {
 
23
  "node-fetch": "^3.3.1",
24
  "openai": "^3.3.0",
25
  "puppeteer": "^20.8.0",
26
+ "resize-base64": "^1.0.12",
27
+ "sharp": "^0.32.4",
28
  "temp-dir": "^3.0.0",
29
  "ts-node": "^10.9.1",
30
  "uuid": "^9.0.0",
 
768
  "readable-stream": "^3.4.0"
769
  }
770
  },
771
+ "node_modules/bluebird": {
772
+ "version": "3.7.2",
773
+ "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
774
+ "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg=="
775
+ },
776
  "node_modules/body-parser": {
777
  "version": "1.20.1",
778
  "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz",
 
1151
  "url": "https://github.com/sponsors/d-fischer"
1152
  }
1153
  },
1154
+ "node_modules/create-readme": {
1155
+ "version": "1.2.0",
1156
+ "resolved": "https://registry.npmjs.org/create-readme/-/create-readme-1.2.0.tgz",
1157
+ "integrity": "sha512-HK3Jpr+5qIYHJHFBeZs0SaLdu7gGHdqS3KORfu5Ivp64Pw+SRSPZ9e0p++NP8JlYeqycxFdVg5yTix0VM5kHFA==",
1158
+ "dependencies": {
1159
+ "bluebird": "^3.1.1",
1160
+ "commander": "^2.9.0",
1161
+ "debug": "^4.1.0",
1162
+ "github-url-to-object": "^4.0.4",
1163
+ "mustache": "^3.0.0",
1164
+ "require-all": "^3.0.0"
1165
+ },
1166
+ "bin": {
1167
+ "create-readme": "bin/create-readme.js"
1168
+ }
1169
+ },
1170
+ "node_modules/create-readme/node_modules/debug": {
1171
+ "version": "4.3.4",
1172
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
1173
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
1174
+ "dependencies": {
1175
+ "ms": "2.1.2"
1176
+ },
1177
+ "engines": {
1178
+ "node": ">=6.0"
1179
+ },
1180
+ "peerDependenciesMeta": {
1181
+ "supports-color": {
1182
+ "optional": true
1183
+ }
1184
+ }
1185
+ },
1186
+ "node_modules/create-readme/node_modules/ms": {
1187
+ "version": "2.1.2",
1188
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
1189
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
1190
+ },
1191
  "node_modules/create-require": {
1192
  "version": "1.1.1",
1193
  "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
 
1762
  "node": ">=10.13.0"
1763
  }
1764
  },
1765
+ "node_modules/ffmpeg-concat/node_modules/chownr": {
1766
+ "version": "1.1.4",
1767
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
1768
+ "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg=="
1769
+ },
1770
  "node_modules/ffmpeg-concat/node_modules/fs-extra": {
1771
  "version": "7.0.1",
1772
  "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz",
 
1788
  "graceful-fs": "^4.1.6"
1789
  }
1790
  },
1791
+ "node_modules/ffmpeg-concat/node_modules/lru-cache": {
1792
+ "version": "6.0.0",
1793
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
1794
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
1795
+ "dependencies": {
1796
+ "yallist": "^4.0.0"
1797
+ },
1798
+ "engines": {
1799
+ "node": ">=10"
1800
+ }
1801
+ },
1802
+ "node_modules/ffmpeg-concat/node_modules/node-addon-api": {
1803
+ "version": "5.1.0",
1804
+ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz",
1805
+ "integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA=="
1806
+ },
1807
+ "node_modules/ffmpeg-concat/node_modules/semver": {
1808
+ "version": "7.5.4",
1809
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
1810
+ "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
1811
+ "dependencies": {
1812
+ "lru-cache": "^6.0.0"
1813
+ },
1814
+ "bin": {
1815
+ "semver": "bin/semver.js"
1816
+ },
1817
+ "engines": {
1818
+ "node": ">=10"
1819
+ }
1820
+ },
1821
+ "node_modules/ffmpeg-concat/node_modules/sharp": {
1822
+ "version": "0.31.3",
1823
+ "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.31.3.tgz",
1824
+ "integrity": "sha512-XcR4+FCLBFKw1bdB+GEhnUNXNXvnt0tDo4WsBsraKymuo/IAuPuCBVAL2wIkUw2r/dwFW5Q5+g66Kwl2dgDFVg==",
1825
+ "hasInstallScript": true,
1826
+ "dependencies": {
1827
+ "color": "^4.2.3",
1828
+ "detect-libc": "^2.0.1",
1829
+ "node-addon-api": "^5.0.0",
1830
+ "prebuild-install": "^7.1.1",
1831
+ "semver": "^7.3.8",
1832
+ "simple-get": "^4.0.1",
1833
+ "tar-fs": "^2.1.1",
1834
+ "tunnel-agent": "^0.6.0"
1835
+ },
1836
+ "engines": {
1837
+ "node": ">=14.15.0"
1838
+ },
1839
+ "funding": {
1840
+ "url": "https://opencollective.com/libvips"
1841
+ }
1842
+ },
1843
+ "node_modules/ffmpeg-concat/node_modules/tar-fs": {
1844
+ "version": "2.1.1",
1845
+ "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz",
1846
+ "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==",
1847
+ "dependencies": {
1848
+ "chownr": "^1.1.1",
1849
+ "mkdirp-classic": "^0.5.2",
1850
+ "pump": "^3.0.0",
1851
+ "tar-stream": "^2.1.4"
1852
+ }
1853
+ },
1854
+ "node_modules/ffmpeg-concat/node_modules/tar-stream": {
1855
+ "version": "2.2.0",
1856
+ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
1857
+ "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
1858
+ "dependencies": {
1859
+ "bl": "^4.0.3",
1860
+ "end-of-stream": "^1.4.1",
1861
+ "fs-constants": "^1.0.0",
1862
+ "inherits": "^2.0.3",
1863
+ "readable-stream": "^3.1.1"
1864
+ },
1865
+ "engines": {
1866
+ "node": ">=6"
1867
+ }
1868
+ },
1869
  "node_modules/ffmpeg-concat/node_modules/universalify": {
1870
  "version": "0.1.2",
1871
  "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
 
2272
  "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz",
2273
  "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw=="
2274
  },
2275
+ "node_modules/github-url-to-object": {
2276
+ "version": "4.0.6",
2277
+ "resolved": "https://registry.npmjs.org/github-url-to-object/-/github-url-to-object-4.0.6.tgz",
2278
+ "integrity": "sha512-NaqbYHMUAlPcmWFdrAB7bcxrNIiiJWJe8s/2+iOc9vlcHlwHqSGrPk+Yi3nu6ebTwgsZEa7igz+NH2vEq3gYwQ==",
2279
+ "dependencies": {
2280
+ "is-url": "^1.1.0"
2281
+ }
2282
+ },
2283
  "node_modules/gl": {
2284
  "version": "6.0.2",
2285
  "resolved": "https://registry.npmjs.org/gl/-/gl-6.0.2.tgz",
 
2761
  "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
2762
  "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA=="
2763
  },
2764
+ "node_modules/is-url": {
2765
+ "version": "1.2.4",
2766
+ "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz",
2767
+ "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww=="
2768
+ },
2769
  "node_modules/isarray": {
2770
  "version": "0.0.1",
2771
  "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
 
3258
  "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
3259
  "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
3260
  },
3261
+ "node_modules/mustache": {
3262
+ "version": "3.2.1",
3263
+ "resolved": "https://registry.npmjs.org/mustache/-/mustache-3.2.1.tgz",
3264
+ "integrity": "sha512-RERvMFdLpaFfSRIEe632yDm5nsd0SDKn8hGmcUwswnyiE5mtdZLDybtHAz6hjJhawokF0hXvGLtx9mrQfm6FkA==",
3265
+ "bin": {
3266
+ "mustache": "bin/mustache"
3267
+ },
3268
+ "engines": {
3269
+ "npm": ">=1.4.0"
3270
+ }
3271
+ },
3272
  "node_modules/nan": {
3273
  "version": "2.17.0",
3274
  "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz",
 
3363
  }
3364
  },
3365
  "node_modules/node-addon-api": {
3366
+ "version": "6.1.0",
3367
+ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz",
3368
+ "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA=="
3369
  },
3370
  "node_modules/node-bitmap": {
3371
  "version": "0.0.1",
 
4158
  "uuid": "bin/uuid"
4159
  }
4160
  },
4161
+ "node_modules/require-all": {
4162
+ "version": "3.0.0",
4163
+ "resolved": "https://registry.npmjs.org/require-all/-/require-all-3.0.0.tgz",
4164
+ "integrity": "sha512-jPGN876lc5exWYrMcgZSd7U42P0PmVQzxnQB13fCSzmyGnqQWW4WUz5DosZ/qe24hz+5o9lSvW2epBNZ1xa6Fw==",
4165
+ "engines": {
4166
+ "node": ">= 0.8"
4167
+ }
4168
+ },
4169
  "node_modules/require-directory": {
4170
  "version": "2.1.1",
4171
  "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
 
4179
  "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
4180
  "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ=="
4181
  },
4182
+ "node_modules/resize-base64": {
4183
+ "version": "1.0.12",
4184
+ "resolved": "https://registry.npmjs.org/resize-base64/-/resize-base64-1.0.12.tgz",
4185
+ "integrity": "sha512-OIiowGyyrwzrwbufDLPpBfofuUAkPSA4OPzT5rTGxfU4iHszKYHNICd1uhnRNDBFnU08WU8mt94+OaBXgN+WMg==",
4186
+ "dependencies": {
4187
+ "create-readme": "^1.1.0"
4188
+ }
4189
+ },
4190
  "node_modules/resolve-from": {
4191
  "version": "4.0.0",
4192
  "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
 
4333
  "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
4334
  },
4335
  "node_modules/sharp": {
4336
+ "version": "0.32.4",
4337
+ "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.32.4.tgz",
4338
+ "integrity": "sha512-exUnZewqVZC6UXqXuQ8fyJJv0M968feBi04jb9GcUHrWtkRoAKnbJt8IfwT4NJs7FskArbJ14JAFGVuooszoGg==",
4339
  "hasInstallScript": true,
4340
  "dependencies": {
4341
  "color": "^4.2.3",
4342
+ "detect-libc": "^2.0.2",
4343
+ "node-addon-api": "^6.1.0",
4344
  "prebuild-install": "^7.1.1",
4345
+ "semver": "^7.5.4",
4346
  "simple-get": "^4.0.1",
4347
+ "tar-fs": "^3.0.4",
4348
  "tunnel-agent": "^0.6.0"
4349
  },
4350
  "engines": {
 
4354
  "url": "https://opencollective.com/libvips"
4355
  }
4356
  },
 
 
 
 
 
4357
  "node_modules/sharp/node_modules/lru-cache": {
4358
  "version": "6.0.0",
4359
  "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
 
4380
  }
4381
  },
4382
  "node_modules/sharp/node_modules/tar-fs": {
4383
+ "version": "3.0.4",
4384
+ "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.4.tgz",
4385
+ "integrity": "sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w==",
4386
  "dependencies": {
 
4387
  "mkdirp-classic": "^0.5.2",
4388
  "pump": "^3.0.0",
4389
+ "tar-stream": "^3.1.5"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4390
  }
4391
  },
4392
  "node_modules/shebang-command": {
package.json CHANGED
@@ -30,6 +30,8 @@
30
  "node-fetch": "^3.3.1",
31
  "openai": "^3.3.0",
32
  "puppeteer": "^20.8.0",
 
 
33
  "temp-dir": "^3.0.0",
34
  "ts-node": "^10.9.1",
35
  "uuid": "^9.0.0",
 
30
  "node-fetch": "^3.3.1",
31
  "openai": "^3.3.0",
32
  "puppeteer": "^20.8.0",
33
+ "resize-base64": "^1.0.12",
34
+ "sharp": "^0.32.4",
35
  "temp-dir": "^3.0.0",
36
  "ts-node": "^10.9.1",
37
  "uuid": "^9.0.0",
src/production/renderStaticScene.mts CHANGED
@@ -14,20 +14,23 @@ export async function renderStaticScene(scene: RenderRequest): Promise<RenderedS
14
  let imageBase64 = ""
15
  let error = ""
16
 
 
 
 
17
  try {
18
  console.log(`calling generateImageSDXLAsBase64 with: `, JSON.stringify({
19
  positivePrompt: scene.prompt,
20
  seed: scene.seed || undefined,
21
  nbSteps: scene.nbSteps || undefined,
22
- width: 1024,
23
- height: 512
24
  }, null, 2))
25
  imageBase64 = await generateImageSDXLAsBase64({
26
  positivePrompt: scene.prompt,
27
  seed: scene.seed || undefined,
28
  nbSteps: scene.nbSteps || undefined,
29
- width: 1024,
30
- height: 512
31
  })
32
  console.log("successful generation!", imageBase64.slice(0, 30))
33
  error = ""
@@ -64,7 +67,7 @@ export async function renderStaticScene(scene: RenderRequest): Promise<RenderedS
64
  error = "failed to segment the image"
65
  } else {
66
  console.log("got the first frame! segmenting..")
67
- const result = await segmentImage(tmpImageFilePath, actionnables)
68
  mask = result.pngInBase64
69
  segments = result.segments
70
  console.log("success!", { segments })
 
14
  let imageBase64 = ""
15
  let error = ""
16
 
17
+ const width = 1024
18
+ const height = 512
19
+
20
  try {
21
  console.log(`calling generateImageSDXLAsBase64 with: `, JSON.stringify({
22
  positivePrompt: scene.prompt,
23
  seed: scene.seed || undefined,
24
  nbSteps: scene.nbSteps || undefined,
25
+ width,
26
+ height,
27
  }, null, 2))
28
  imageBase64 = await generateImageSDXLAsBase64({
29
  positivePrompt: scene.prompt,
30
  seed: scene.seed || undefined,
31
  nbSteps: scene.nbSteps || undefined,
32
+ width,
33
+ height
34
  })
35
  console.log("successful generation!", imageBase64.slice(0, 30))
36
  error = ""
 
67
  error = "failed to segment the image"
68
  } else {
69
  console.log("got the first frame! segmenting..")
70
+ const result = await segmentImage(tmpImageFilePath, actionnables, width, height)
71
  mask = result.pngInBase64
72
  segments = result.segments
73
  console.log("success!", { segments })
src/production/renderVideoScene.mts CHANGED
@@ -13,6 +13,9 @@ export async function renderVideoScene(scene: RenderRequest): Promise<RenderedSc
13
  let url = ""
14
  let error = ""
15
 
 
 
 
16
  try {
17
  url = await generateVideo(scene.prompt, {
18
  seed: getValidNumber(scene.seed, 0, 2147483647, generateSeed()),
@@ -50,7 +53,7 @@ export async function renderVideoScene(scene: RenderRequest): Promise<RenderedSc
50
  error = "failed to segment the image"
51
  } else {
52
  console.log("got the first frame! segmenting..")
53
- const result = await segmentImage(firstFrameFilePath, actionnables)
54
  mask = result.pngInBase64
55
  segments = result.segments
56
  // console.log("success!", { segments })
 
13
  let url = ""
14
  let error = ""
15
 
16
+ const width = 576
17
+ const height = 320
18
+
19
  try {
20
  url = await generateVideo(scene.prompt, {
21
  seed: getValidNumber(scene.seed, 0, 2147483647, generateSeed()),
 
53
  error = "failed to segment the image"
54
  } else {
55
  console.log("got the first frame! segmenting..")
56
+ const result = await segmentImage(firstFrameFilePath, actionnables, width, height)
57
  mask = result.pngInBase64
58
  segments = result.segments
59
  // console.log("success!", { segments })
src/utils/resizeBase64Image.mts ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import sharp from "sharp"
2
+
3
+ export async function resizeBase64Image(imgBase64: string, targetWidth: number, targetHeight: number): Promise<string> {
4
+ // Convert base64 to buffer
5
+ const buffer = Buffer.from(imgBase64, 'base64');
6
+
7
+ // Resize the buffer to the target size
8
+ const resizedBuffer = await sharp(buffer)
9
+ .resize(targetWidth, targetHeight)
10
+ .toBuffer();
11
+
12
+ // Convert the buffer back to base64
13
+ const resizedImageBase64 = resizedBuffer.toString('base64');
14
+
15
+ return resizedImageBase64;
16
+ }
src/utils/segmentImage.mts CHANGED
@@ -3,6 +3,7 @@ import puppeteer from "puppeteer"
3
  import { sleep } from "./sleep.mts"
4
  import { ImageSegment } from "../types.mts"
5
  import { downloadImageAsBase64 } from "./downloadFileAsBase64.mts"
 
6
 
7
  // we don't use replicas yet, because it ain't easy to get their hostname
8
  const instances: string[] = [
@@ -16,7 +17,9 @@ const instances: string[] = [
16
  // it takes about 30 seconds to compute
17
  export async function segmentImage(
18
  inputImageFilePath: string,
19
- actionnables: string[]
 
 
20
  ): Promise<{
21
  pngInBase64: string
22
  segments: ImageSegment[]
@@ -73,7 +76,10 @@ export async function segmentImage(
73
  // const tmpMaskFileName = `${uuidv4()}.png`
74
  // await downloadFileToTmp(maskUrl, tmpMaskFileName)
75
 
76
- const pngInBase64 = await downloadImageAsBase64(maskUrl)
 
 
 
77
  return {
78
  pngInBase64,
79
  segments,
 
3
  import { sleep } from "./sleep.mts"
4
  import { ImageSegment } from "../types.mts"
5
  import { downloadImageAsBase64 } from "./downloadFileAsBase64.mts"
6
+ import { resizeBase64Image } from "./resizeBase64Image.mts"
7
 
8
  // we don't use replicas yet, because it ain't easy to get their hostname
9
  const instances: string[] = [
 
17
  // it takes about 30 seconds to compute
18
  export async function segmentImage(
19
  inputImageFilePath: string,
20
+ actionnables: string[],
21
+ width: number,
22
+ height: number,
23
  ): Promise<{
24
  pngInBase64: string
25
  segments: ImageSegment[]
 
76
  // const tmpMaskFileName = `${uuidv4()}.png`
77
  // await downloadFileToTmp(maskUrl, tmpMaskFileName)
78
 
79
+ const rawPngInBase64 = await downloadImageAsBase64(maskUrl)
80
+
81
+ const pngInBase64 = await resizeBase64Image(rawPngInBase64, width, height)
82
+
83
  return {
84
  pngInBase64,
85
  segments,