@atomic-chat/core 0.13.2 → 0.17.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 (377) hide show
  1. package/README.md +1 -1
  2. package/dist/backend/advisor/advisor.d.ts +8 -7
  3. package/dist/backend/advisor/advisor.js +17 -25
  4. package/dist/backend/advisor/advisor.js.map +1 -1
  5. package/dist/backend/catalog/index.d.ts +4 -2
  6. package/dist/backend/catalog/index.js +4 -2
  7. package/dist/backend/catalog/index.js.map +1 -1
  8. package/dist/backend/catalog/manifest.d.ts +5 -51
  9. package/dist/backend/catalog/manifest.js +5 -93
  10. package/dist/backend/catalog/manifest.js.map +1 -1
  11. package/dist/backend/catalog/upstream-releases-baseline.d.ts +2 -0
  12. package/dist/backend/catalog/upstream-releases-baseline.js +12 -0
  13. package/dist/backend/catalog/upstream-releases-baseline.js.map +1 -0
  14. package/dist/backend/catalog/upstream-releases-baseline.json +101 -0
  15. package/dist/backend/catalog/upstream-releases-catalog.d.ts +54 -0
  16. package/dist/backend/catalog/upstream-releases-catalog.js +148 -0
  17. package/dist/backend/catalog/upstream-releases-catalog.js.map +1 -0
  18. package/dist/backend/catalog/upstream-releases.d.ts +75 -0
  19. package/dist/backend/catalog/upstream-releases.js +155 -0
  20. package/dist/backend/catalog/upstream-releases.js.map +1 -0
  21. package/dist/backend/install/service.d.ts +7 -4
  22. package/dist/backend/install/service.js +4 -4
  23. package/dist/backend/install/service.js.map +1 -1
  24. package/dist/cli/commands/serve.js +10 -28
  25. package/dist/cli/commands/serve.js.map +1 -1
  26. package/dist/cli/main.d.ts +1 -1
  27. package/dist/cli/main.js +0 -1
  28. package/dist/cli/main.js.map +1 -1
  29. package/dist/client/control-client.d.ts +7 -19
  30. package/dist/client/control-client.js +9 -29
  31. package/dist/client/control-client.js.map +1 -1
  32. package/dist/cloud/registry.d.ts +14 -1
  33. package/dist/cloud/registry.js +73 -2
  34. package/dist/cloud/registry.js.map +1 -1
  35. package/dist/config/paths.d.ts +4 -3
  36. package/dist/config/paths.js +15 -14
  37. package/dist/config/paths.js.map +1 -1
  38. package/dist/contracts/diffusion.d.ts +45 -18
  39. package/dist/contracts/diffusion.js +1 -1
  40. package/dist/contracts/diffusion.js.map +1 -1
  41. package/dist/contracts/engines.d.ts +1 -1
  42. package/dist/contracts/engines.js +2 -0
  43. package/dist/contracts/engines.js.map +1 -1
  44. package/dist/contracts/errors.d.ts +1 -3
  45. package/dist/contracts/errors.js +16 -0
  46. package/dist/contracts/errors.js.map +1 -1
  47. package/dist/contracts/events.d.ts +11 -6
  48. package/dist/contracts/index.d.ts +1 -1
  49. package/dist/contracts/index.js +1 -1
  50. package/dist/contracts/index.js.map +1 -1
  51. package/dist/contracts/media.d.ts +186 -0
  52. package/dist/contracts/media.js +55 -0
  53. package/dist/contracts/media.js.map +1 -0
  54. package/dist/contracts/session.d.ts +10 -1
  55. package/dist/contracts/session.js +10 -0
  56. package/dist/contracts/session.js.map +1 -1
  57. package/dist/contracts/settings.d.ts +36 -1
  58. package/dist/contracts/settings.js.map +1 -1
  59. package/dist/core/atomic-core.d.ts +7 -5
  60. package/dist/core/atomic-core.js +1 -0
  61. package/dist/core/atomic-core.js.map +1 -1
  62. package/dist/core/create.js +48 -58
  63. package/dist/core/create.js.map +1 -1
  64. package/dist/core/managed-engines.js +2 -0
  65. package/dist/core/managed-engines.js.map +1 -1
  66. package/dist/core/prism.d.ts +23 -6
  67. package/dist/core/prism.js +45 -0
  68. package/dist/core/prism.js.map +1 -1
  69. package/dist/core/public-server.js +3 -2
  70. package/dist/core/public-server.js.map +1 -1
  71. package/dist/core/types.d.ts +11 -0
  72. package/dist/core/types.js.map +1 -1
  73. package/dist/decision/process.d.ts +4 -0
  74. package/dist/decision/process.js +10 -1
  75. package/dist/decision/process.js.map +1 -1
  76. package/dist/diffusion/args.d.ts +3 -2
  77. package/dist/diffusion/args.js +21 -4
  78. package/dist/diffusion/args.js.map +1 -1
  79. package/dist/diffusion/compat.d.ts +1 -1
  80. package/dist/diffusion/compat.js +6 -2
  81. package/dist/diffusion/compat.js.map +1 -1
  82. package/dist/diffusion/gallery.d.ts +24 -3
  83. package/dist/diffusion/gallery.js +151 -21
  84. package/dist/diffusion/gallery.js.map +1 -1
  85. package/dist/diffusion/index.d.ts +3 -0
  86. package/dist/diffusion/index.js +3 -0
  87. package/dist/diffusion/index.js.map +1 -1
  88. package/dist/diffusion/jobs.d.ts +6 -1
  89. package/dist/diffusion/jobs.js +10 -1
  90. package/dist/diffusion/jobs.js.map +1 -1
  91. package/dist/diffusion/media-header.d.ts +22 -0
  92. package/dist/diffusion/media-header.js +149 -0
  93. package/dist/diffusion/media-header.js.map +1 -0
  94. package/dist/diffusion/parse.d.ts +3 -1
  95. package/dist/diffusion/parse.js +36 -0
  96. package/dist/diffusion/parse.js.map +1 -1
  97. package/dist/diffusion/recipe.d.ts +10 -1
  98. package/dist/diffusion/recipe.js +85 -21
  99. package/dist/diffusion/recipe.js.map +1 -1
  100. package/dist/diffusion/remote-job.d.ts +76 -0
  101. package/dist/diffusion/remote-job.js +643 -0
  102. package/dist/diffusion/remote-job.js.map +1 -0
  103. package/dist/diffusion/remote-store.d.ts +38 -0
  104. package/dist/diffusion/remote-store.js +91 -0
  105. package/dist/diffusion/remote-store.js.map +1 -0
  106. package/dist/diffusion/service.d.ts +9 -1
  107. package/dist/diffusion/service.js +49 -9
  108. package/dist/diffusion/service.js.map +1 -1
  109. package/dist/diffusion/state.d.ts +13 -1
  110. package/dist/diffusion/state.js +8 -0
  111. package/dist/diffusion/state.js.map +1 -1
  112. package/dist/diffusion/tracker.d.ts +6 -0
  113. package/dist/diffusion/tracker.js +11 -0
  114. package/dist/diffusion/tracker.js.map +1 -1
  115. package/dist/diffusion/validate.js +2 -2
  116. package/dist/diffusion/validate.js.map +1 -1
  117. package/dist/diffusion/video-gallery.d.ts +11 -4
  118. package/dist/diffusion/video-gallery.js +62 -25
  119. package/dist/diffusion/video-gallery.js.map +1 -1
  120. package/dist/diffusion/video-history.js +4 -1
  121. package/dist/diffusion/video-history.js.map +1 -1
  122. package/dist/diffusion/video-recipe.js +58 -25
  123. package/dist/diffusion/video-recipe.js.map +1 -1
  124. package/dist/diffusion/wiring.d.ts +3 -0
  125. package/dist/diffusion/wiring.js +1 -0
  126. package/dist/diffusion/wiring.js.map +1 -1
  127. package/dist/diffusion/workflow.d.ts +8 -2
  128. package/dist/diffusion/workflow.js +13 -5
  129. package/dist/diffusion/workflow.js.map +1 -1
  130. package/dist/downloads/downloader.d.ts +6 -1
  131. package/dist/downloads/downloader.js +12 -1
  132. package/dist/downloads/downloader.js.map +1 -1
  133. package/dist/embedding/process.d.ts +4 -0
  134. package/dist/embedding/process.js +10 -1
  135. package/dist/embedding/process.js.map +1 -1
  136. package/dist/media/adapters/a1111.d.ts +32 -0
  137. package/dist/media/adapters/a1111.js +207 -0
  138. package/dist/media/adapters/a1111.js.map +1 -0
  139. package/dist/media/adapters/aimlapi-videos.d.ts +34 -0
  140. package/dist/media/adapters/aimlapi-videos.js +172 -0
  141. package/dist/media/adapters/aimlapi-videos.js.map +1 -0
  142. package/dist/media/adapters/dashscope-image.d.ts +26 -0
  143. package/dist/media/adapters/dashscope-image.js +160 -0
  144. package/dist/media/adapters/dashscope-image.js.map +1 -0
  145. package/dist/media/adapters/dashscope-video.d.ts +47 -0
  146. package/dist/media/adapters/dashscope-video.js +251 -0
  147. package/dist/media/adapters/dashscope-video.js.map +1 -0
  148. package/dist/media/adapters/gemini-image.d.ts +27 -0
  149. package/dist/media/adapters/gemini-image.js +181 -0
  150. package/dist/media/adapters/gemini-image.js.map +1 -0
  151. package/dist/media/adapters/gemini-veo.d.ts +39 -0
  152. package/dist/media/adapters/gemini-veo.js +196 -0
  153. package/dist/media/adapters/gemini-veo.js.map +1 -0
  154. package/dist/media/adapters/hf-images.d.ts +85 -0
  155. package/dist/media/adapters/hf-images.js +439 -0
  156. package/dist/media/adapters/hf-images.js.map +1 -0
  157. package/dist/media/adapters/hf-videos.d.ts +44 -0
  158. package/dist/media/adapters/hf-videos.js +265 -0
  159. package/dist/media/adapters/hf-videos.js.map +1 -0
  160. package/dist/media/adapters/minimax-image.d.ts +26 -0
  161. package/dist/media/adapters/minimax-image.js +111 -0
  162. package/dist/media/adapters/minimax-image.js.map +1 -0
  163. package/dist/media/adapters/minimax-video-v2.d.ts +34 -0
  164. package/dist/media/adapters/minimax-video-v2.js +191 -0
  165. package/dist/media/adapters/minimax-video-v2.js.map +1 -0
  166. package/dist/media/adapters/minimax-video.d.ts +28 -0
  167. package/dist/media/adapters/minimax-video.js +155 -0
  168. package/dist/media/adapters/minimax-video.js.map +1 -0
  169. package/dist/media/adapters/mistral-agent-image.d.ts +33 -0
  170. package/dist/media/adapters/mistral-agent-image.js +108 -0
  171. package/dist/media/adapters/mistral-agent-image.js.map +1 -0
  172. package/dist/media/adapters/nvidia-genai.d.ts +28 -0
  173. package/dist/media/adapters/nvidia-genai.js +182 -0
  174. package/dist/media/adapters/nvidia-genai.js.map +1 -0
  175. package/dist/media/adapters/openai-images.d.ts +23 -0
  176. package/dist/media/adapters/openai-images.js +164 -0
  177. package/dist/media/adapters/openai-images.js.map +1 -0
  178. package/dist/media/adapters/openai-videos.d.ts +34 -0
  179. package/dist/media/adapters/openai-videos.js +175 -0
  180. package/dist/media/adapters/openai-videos.js.map +1 -0
  181. package/dist/media/adapters/openrouter-images.d.ts +25 -0
  182. package/dist/media/adapters/openrouter-images.js +161 -0
  183. package/dist/media/adapters/openrouter-images.js.map +1 -0
  184. package/dist/media/adapters/openrouter-videos.d.ts +43 -0
  185. package/dist/media/adapters/openrouter-videos.js +208 -0
  186. package/dist/media/adapters/openrouter-videos.js.map +1 -0
  187. package/dist/media/adapters/registry.d.ts +7 -0
  188. package/dist/media/adapters/registry.js +45 -0
  189. package/dist/media/adapters/registry.js.map +1 -0
  190. package/dist/media/adapters/types.d.ts +133 -0
  191. package/dist/media/adapters/types.js +15 -0
  192. package/dist/media/adapters/types.js.map +1 -0
  193. package/dist/media/adapters/xai-images.d.ts +19 -0
  194. package/dist/media/adapters/xai-images.js +83 -0
  195. package/dist/media/adapters/xai-images.js.map +1 -0
  196. package/dist/media/adapters/xai-videos.d.ts +29 -0
  197. package/dist/media/adapters/xai-videos.js +148 -0
  198. package/dist/media/adapters/xai-videos.js.map +1 -0
  199. package/dist/media/catalog-baseline.d.ts +2 -0
  200. package/dist/media/catalog-baseline.js +10 -0
  201. package/dist/media/catalog-baseline.js.map +1 -0
  202. package/dist/media/catalog-baseline.json +1819 -0
  203. package/dist/media/catalog-service.d.ts +42 -0
  204. package/dist/media/catalog-service.js +111 -0
  205. package/dist/media/catalog-service.js.map +1 -0
  206. package/dist/media/catalog.d.ts +50 -0
  207. package/dist/media/catalog.js +315 -0
  208. package/dist/media/catalog.js.map +1 -0
  209. package/dist/media/http.d.ts +125 -0
  210. package/dist/media/http.js +308 -0
  211. package/dist/media/http.js.map +1 -0
  212. package/dist/media/index.d.ts +14 -0
  213. package/dist/media/index.js +15 -0
  214. package/dist/media/index.js.map +1 -0
  215. package/dist/media/mask.d.ts +12 -0
  216. package/dist/media/mask.js +57 -0
  217. package/dist/media/mask.js.map +1 -0
  218. package/dist/media/service.d.ts +42 -0
  219. package/dist/media/service.js +144 -0
  220. package/dist/media/service.js.map +1 -0
  221. package/dist/models/compatibility/inspect.d.ts +11 -2
  222. package/dist/models/compatibility/inspect.js +44 -13
  223. package/dist/models/compatibility/inspect.js.map +1 -1
  224. package/dist/models/compatibility/service.d.ts +3 -0
  225. package/dist/models/compatibility/service.js +1 -0
  226. package/dist/models/compatibility/service.js.map +1 -1
  227. package/dist/models/gguf/tensors.d.ts +1 -0
  228. package/dist/models/gguf/tensors.js +4 -1
  229. package/dist/models/gguf/tensors.js.map +1 -1
  230. package/dist/models/hf.d.ts +3 -16
  231. package/dist/models/hf.js +4 -42
  232. package/dist/models/hf.js.map +1 -1
  233. package/dist/router/resolve.d.ts +15 -4
  234. package/dist/router/resolve.js +25 -3
  235. package/dist/router/resolve.js.map +1 -1
  236. package/dist/runtime/environment/linux-provisioner.js +7 -67
  237. package/dist/runtime/environment/linux-provisioner.js.map +1 -1
  238. package/dist/runtime/environment/runtime-removal-plan.d.ts +19 -0
  239. package/dist/runtime/environment/runtime-removal-plan.js +74 -0
  240. package/dist/runtime/environment/runtime-removal-plan.js.map +1 -0
  241. package/dist/runtime/environment/windows-provisioner.js +20 -4
  242. package/dist/runtime/environment/windows-provisioner.js.map +1 -1
  243. package/dist/runtime/managed-engines/spec.d.ts +2 -2
  244. package/dist/runtime/managed-engines/spec.js +6 -0
  245. package/dist/runtime/managed-engines/spec.js.map +1 -1
  246. package/dist/runtime/managed-models/compatibility.d.ts +10 -0
  247. package/dist/runtime/managed-models/compatibility.js +18 -0
  248. package/dist/runtime/managed-models/compatibility.js.map +1 -1
  249. package/dist/runtime/managed-text/adapter.d.ts +17 -0
  250. package/dist/runtime/managed-text/adapter.js.map +1 -1
  251. package/dist/runtime/managed-text/lifecycle.d.ts +8 -0
  252. package/dist/runtime/managed-text/lifecycle.js +38 -1
  253. package/dist/runtime/managed-text/lifecycle.js.map +1 -1
  254. package/dist/runtime/managed-text/readiness.d.ts +21 -1
  255. package/dist/runtime/managed-text/readiness.js +64 -0
  256. package/dist/runtime/managed-text/readiness.js.map +1 -1
  257. package/dist/runtime/managed-text/request-rules.d.ts +9 -7
  258. package/dist/runtime/managed-text/request-rules.js +58 -2
  259. package/dist/runtime/managed-text/request-rules.js.map +1 -1
  260. package/dist/runtime/managed-text/setting-values.d.ts +9 -0
  261. package/dist/runtime/managed-text/setting-values.js +44 -0
  262. package/dist/runtime/managed-text/setting-values.js.map +1 -0
  263. package/dist/runtime/sglang/adapter.d.ts +50 -0
  264. package/dist/runtime/sglang/adapter.js +393 -0
  265. package/dist/runtime/sglang/adapter.js.map +1 -0
  266. package/dist/runtime/sglang/engine.d.ts +16 -0
  267. package/dist/runtime/sglang/engine.js +38 -0
  268. package/dist/runtime/sglang/engine.js.map +1 -0
  269. package/dist/runtime/sglang/index.d.ts +11 -0
  270. package/dist/runtime/sglang/index.js +12 -0
  271. package/dist/runtime/sglang/index.js.map +1 -0
  272. package/dist/runtime/sglang/memory.d.ts +64 -0
  273. package/dist/runtime/sglang/memory.js +90 -0
  274. package/dist/runtime/sglang/memory.js.map +1 -0
  275. package/dist/runtime/sglang/settings.d.ts +49 -0
  276. package/dist/runtime/sglang/settings.js +118 -0
  277. package/dist/runtime/sglang/settings.js.map +1 -0
  278. package/dist/runtime/shared/external-sessions.js +1 -0
  279. package/dist/runtime/shared/external-sessions.js.map +1 -1
  280. package/dist/runtime/shared/ports.d.ts +10 -0
  281. package/dist/runtime/shared/ports.js +30 -0
  282. package/dist/runtime/shared/ports.js.map +1 -1
  283. package/dist/runtime/tensorrt-llm/adapter.d.ts +1 -4
  284. package/dist/runtime/tensorrt-llm/adapter.js +28 -11
  285. package/dist/runtime/tensorrt-llm/adapter.js.map +1 -1
  286. package/dist/runtime/tensorrt-llm/check.js +1 -0
  287. package/dist/runtime/tensorrt-llm/check.js.map +1 -1
  288. package/dist/runtime/tensorrt-llm/compatibility.d.ts +30 -6
  289. package/dist/runtime/tensorrt-llm/compatibility.js +41 -9
  290. package/dist/runtime/tensorrt-llm/compatibility.js.map +1 -1
  291. package/dist/runtime/tensorrt-llm/cuda-graphs.d.ts +32 -0
  292. package/dist/runtime/tensorrt-llm/cuda-graphs.js +33 -0
  293. package/dist/runtime/tensorrt-llm/cuda-graphs.js.map +1 -0
  294. package/dist/runtime/tensorrt-llm/engine.js +11 -5
  295. package/dist/runtime/tensorrt-llm/engine.js.map +1 -1
  296. package/dist/runtime/tensorrt-llm/kv-cache.d.ts +16 -0
  297. package/dist/runtime/tensorrt-llm/kv-cache.js +21 -1
  298. package/dist/runtime/tensorrt-llm/kv-cache.js.map +1 -1
  299. package/dist/runtime/vllm/adapter.js +2 -47
  300. package/dist/runtime/vllm/adapter.js.map +1 -1
  301. package/dist/runtime/vllm/memory.js +3 -16
  302. package/dist/runtime/vllm/memory.js.map +1 -1
  303. package/dist/runtime/vllm/settings.d.ts +7 -0
  304. package/dist/runtime/vllm/settings.js +2 -30
  305. package/dist/runtime/vllm/settings.js.map +1 -1
  306. package/dist/server/control/router.js +5 -4
  307. package/dist/server/control/router.js.map +1 -1
  308. package/dist/server/control/routes/media.d.ts +9 -0
  309. package/dist/server/control/routes/media.js +24 -0
  310. package/dist/server/control/routes/media.js.map +1 -0
  311. package/dist/server/control/routes/model-compatibility.d.ts +9 -0
  312. package/dist/server/control/routes/model-compatibility.js +31 -0
  313. package/dist/server/control/routes/model-compatibility.js.map +1 -0
  314. package/dist/server/control/types.d.ts +18 -20
  315. package/dist/server/http.js +15 -2
  316. package/dist/server/http.js.map +1 -1
  317. package/dist/server/public/gates.d.ts +6 -1
  318. package/dist/server/public/gates.js +7 -3
  319. package/dist/server/public/gates.js.map +1 -1
  320. package/dist/server/public/images-params.js +18 -1
  321. package/dist/server/public/images-params.js.map +1 -1
  322. package/dist/server/public/images.d.ts +11 -2
  323. package/dist/server/public/images.js +73 -9
  324. package/dist/server/public/images.js.map +1 -1
  325. package/dist/server/public/index.d.ts +1 -0
  326. package/dist/server/public/index.js +16 -7
  327. package/dist/server/public/index.js.map +1 -1
  328. package/dist/server/public/listing.js +1 -0
  329. package/dist/server/public/listing.js.map +1 -1
  330. package/dist/server/public/remote-media.d.ts +51 -0
  331. package/dist/server/public/remote-media.js +225 -0
  332. package/dist/server/public/remote-media.js.map +1 -0
  333. package/dist/server/public/responses.js +4 -2
  334. package/dist/server/public/responses.js.map +1 -1
  335. package/dist/server/public/static-assets.generated.js +1 -1
  336. package/dist/server/public/static-assets.generated.js.map +1 -1
  337. package/dist/server/public/trace.js +2 -0
  338. package/dist/server/public/trace.js.map +1 -1
  339. package/dist/server/public/types.d.ts +12 -1
  340. package/dist/server/public/videos-params.js +13 -3
  341. package/dist/server/public/videos-params.js.map +1 -1
  342. package/dist/server/public/videos.d.ts +1 -0
  343. package/dist/server/public/videos.js +21 -3
  344. package/dist/server/public/videos.js.map +1 -1
  345. package/dist/settings/schema/llamacpp-upstream.json +9 -0
  346. package/dist/settings/schema/sglang.json +251 -0
  347. package/dist/settings/schema.js +27 -1
  348. package/dist/settings/schema.js.map +1 -1
  349. package/dist/version.d.ts +1 -1
  350. package/dist/version.js +1 -1
  351. package/package.json +2 -6
  352. package/src/settings/schema/llamacpp-upstream.json +9 -0
  353. package/src/settings/schema/sglang.json +251 -0
  354. package/dist/backend/catalog/bundled-manifest-baseline.d.ts +0 -2
  355. package/dist/backend/catalog/bundled-manifest-baseline.js +0 -65
  356. package/dist/backend/catalog/bundled-manifest-baseline.js.map +0 -1
  357. package/dist/contracts/model-setup.d.ts +0 -115
  358. package/dist/contracts/model-setup.js +0 -33
  359. package/dist/contracts/model-setup.js.map +0 -1
  360. package/dist/core/model-setup/index.d.ts +0 -4
  361. package/dist/core/model-setup/index.js +0 -5
  362. package/dist/core/model-setup/index.js.map +0 -1
  363. package/dist/core/model-setup/plan.d.ts +0 -56
  364. package/dist/core/model-setup/plan.js +0 -158
  365. package/dist/core/model-setup/plan.js.map +0 -1
  366. package/dist/core/model-setup/service.d.ts +0 -92
  367. package/dist/core/model-setup/service.js +0 -329
  368. package/dist/core/model-setup/service.js.map +0 -1
  369. package/dist/core/model-setup/store.d.ts +0 -29
  370. package/dist/core/model-setup/store.js +0 -116
  371. package/dist/core/model-setup/store.js.map +0 -1
  372. package/dist/core/model-setup/wiring.d.ts +0 -59
  373. package/dist/core/model-setup/wiring.js +0 -132
  374. package/dist/core/model-setup/wiring.js.map +0 -1
  375. package/dist/server/control/routes/model-setups.d.ts +0 -11
  376. package/dist/server/control/routes/model-setups.js +0 -55
  377. package/dist/server/control/routes/model-setups.js.map +0 -1
@@ -6,7 +6,7 @@
6
6
  */
7
7
  import { diffusionError } from './errors.js';
8
8
  import { MAX_BATCH } from './types.js';
9
- import { usesMask, usesReferences, videoWorkflowsForFamily, workflowOf, workflowsForSpec, } from './workflow.js';
9
+ import { isQwenImage21, usesMask, usesReferences, videoWorkflowsForFamily, workflowOf, workflowsForSpec, } from './workflow.js';
10
10
  /** `data:image/png;base64,....` → the base64 part. A plain payload is returned unchanged. */
11
11
  export function stripDataUrl(value) {
12
12
  if (!value.startsWith('data:'))
@@ -92,7 +92,7 @@ export async function validateRequest(request, spec, deps) {
92
92
  const workflow = workflowOf(request);
93
93
  if (workflow === 'create')
94
94
  return;
95
- if (spec.family === 'qwen-image-2.1' && usesReferences(workflow) && spec.files.llmVision === undefined)
95
+ if (isQwenImage21(spec.family) && usesReferences(workflow) && spec.files.llmVision === undefined)
96
96
  throw diffusionError('SIDE_FILE_MISSING', 'Qwen Image 2.1 editing needs its Qwen3-VL vision projector.', 'Load the model with llmVision so sd.cpp receives --llm_vision.');
97
97
  if (!workflowsForSpec(spec).includes(workflow))
98
98
  throw diffusionError('UNSUPPORTED_WORKFLOW', `This model cannot run the ${workflow} workflow.`, spec.family);
@@ -1 +1 @@
1
- {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/diffusion/validate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/diffusion/validate.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * The video gallery on disk: `<videoOutputDir>/<jobId>.webm` with its recipe as `<jobId>.json`
2
+ * The video gallery on disk: `<videoOutputDir>/<jobId>.webm` (or `.mp4`, a provider's clip) with its recipe as `<jobId>.json`
3
3
  * beside it, a `<jobId>.thumb.png` poster once the app rendered one, and the same `.flags.json`
4
4
  * as the image gallery, in its own folder. The core has no video decoder (AGENTS.md rule 8): it
5
5
  * checks the container's magic, writes the bytes as they came, and reads everything it knows about
@@ -8,9 +8,11 @@
8
8
  * A `.webm` without a parseable sidecar is somebody else's: it is never listed and never deleted,
9
9
  * even when it sits in the folder under a name that looks like ours.
10
10
  */
11
- import type { GalleryFlags, GalleryListOptions, GalleryVideoItem, VideoGalleryPage, VideoRecipe } from '../contracts/index.js';
11
+ import type { GalleryFlags, GalleryListOptions, GalleryVideoItem, VideoGalleryPage, VideoOutputFormat, VideoRecipe } from '../contracts/index.js';
12
12
  import type { GalleryLogger } from './gallery.js';
13
13
  export declare const VIDEO_SUFFIX = ".webm";
14
+ /** The file each container is stored as; WebM first, every local clip is one. */
15
+ export declare const VIDEO_SUFFIXES: Readonly<Record<VideoOutputFormat, string>>;
14
16
  export declare const POSTER_SUFFIX = ".thumb.png";
15
17
  /** The app's poster is a small PNG; anything larger is not one. */
16
18
  export declare const MAX_POSTER_BYTES: number;
@@ -28,7 +30,9 @@ export declare const VIDEO_WRITE_MESSAGES: {
28
30
  };
29
31
  /** `^[a-f0-9]{32}$`: the job id, which is also the file stem. */
30
32
  export declare function isValidVideoId(id: string): boolean;
31
- export declare function videoPath(dir: string, id: string): string;
33
+ export declare function videoPath(dir: string, id: string, format?: VideoOutputFormat): string;
34
+ /** Whether `bytes` are in the container `format` names. */
35
+ export declare function isVideoOf(format: VideoOutputFormat, bytes: Buffer): boolean;
32
36
  export declare function videoRecipePath(dir: string, id: string): string;
33
37
  export declare function videoPosterPath(dir: string, id: string): string;
34
38
  /**
@@ -39,7 +43,10 @@ export declare class VideoGallery {
39
43
  private readonly log;
40
44
  private readonly flagsLock;
41
45
  constructor(log?: GalleryLogger);
42
- /** Write the sidecar, then the clip, and answer the item with the bytes (the facade streams them). */
46
+ /**
47
+ * Write the sidecar, then the clip in the container its recipe names, and answer the item with the
48
+ * bytes (the facade streams them).
49
+ */
43
50
  save(dir: string, recipe: VideoRecipe, webm: Buffer): Promise<{
44
51
  item: GalleryVideoItem;
45
52
  bytes: Buffer;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * The video gallery on disk: `<videoOutputDir>/<jobId>.webm` with its recipe as `<jobId>.json`
2
+ * The video gallery on disk: `<videoOutputDir>/<jobId>.webm` (or `.mp4`, a provider's clip) with its recipe as `<jobId>.json`
3
3
  * beside it, a `<jobId>.thumb.png` poster once the app rendered one, and the same `.flags.json`
4
4
  * as the image gallery, in its own folder. The core has no video decoder (AGENTS.md rule 8): it
5
5
  * checks the container's magic, writes the bytes as they came, and reads everything it knows about
@@ -13,10 +13,14 @@ import { dirname, join } from 'node:path';
13
13
  import { isWithin } from './containment.js';
14
14
  import { diffusionError, ioError } from './errors.js';
15
15
  import { readFlags, writeAtomic, writeFlags } from './gallery.js';
16
+ import { isMp4 } from './media-header.js';
16
17
  import { AsyncMutex } from './mutex.js';
17
18
  import { isPng, parseHeader } from './png.js';
18
19
  import { parseVideoRecipe, RECIPE_SIDECAR_SUFFIX, serializeVideoRecipe } from './video-recipe.js';
19
20
  export const VIDEO_SUFFIX = '.webm';
21
+ /** The file each container is stored as; WebM first, every local clip is one. */
22
+ export const VIDEO_SUFFIXES = { webm: '.webm', mp4: '.mp4' };
23
+ const FORMATS = Object.keys(VIDEO_SUFFIXES);
20
24
  export const POSTER_SUFFIX = '.thumb.png';
21
25
  /** The app's poster is a small PNG; anything larger is not one. */
22
26
  export const MAX_POSTER_BYTES = 16 * 1024 * 1024;
@@ -51,8 +55,12 @@ export const VIDEO_WRITE_MESSAGES = {
51
55
  export function isValidVideoId(id) {
52
56
  return /^[a-f0-9]{32}$/.test(id);
53
57
  }
54
- export function videoPath(dir, id) {
55
- return join(dir, `${id}${VIDEO_SUFFIX}`);
58
+ export function videoPath(dir, id, format = 'webm') {
59
+ return join(dir, `${id}${VIDEO_SUFFIXES[format]}`);
60
+ }
61
+ /** Whether `bytes` are in the container `format` names. */
62
+ export function isVideoOf(format, bytes) {
63
+ return format === 'mp4' ? isMp4(bytes) : isWebm(bytes);
56
64
  }
57
65
  export function videoRecipePath(dir, id) {
58
66
  return join(dir, `${id}${RECIPE_SIDECAR_SUFFIX}`);
@@ -69,6 +77,18 @@ function checkedVideoPath(dir, id) {
69
77
  return path;
70
78
  }
71
79
  const isFile = (path) => stat(path).then((s) => s.isFile(), () => false);
80
+ /** The clip an id names, whichever container it is in; the WebM path when there is none. */
81
+ async function locateVideo(dir, id) {
82
+ const webm = checkedVideoPath(dir, id);
83
+ for (const format of FORMATS) {
84
+ const path = format === 'webm' ? webm : videoPath(dir, id, format);
85
+ if (await isFile(path))
86
+ return { path, exists: true };
87
+ }
88
+ return { path: webm, exists: false };
89
+ }
90
+ /** A clip's length: what its recipe recorded, else its frames over its rate. */
91
+ const clipSeconds = (recipe) => recipe.durationSecs ?? (recipe.fps > 0 ? recipe.frameCount / recipe.fps : 0);
72
92
  async function readRecipe(dir, id) {
73
93
  const text = await readFile(videoRecipePath(dir, id), 'utf8').catch(() => undefined);
74
94
  return text === undefined ? undefined : parseVideoRecipe(text);
@@ -87,7 +107,7 @@ async function itemFromRecipe(dir, id, path, recipe, flags) {
87
107
  height: recipe.height,
88
108
  fps: recipe.fps,
89
109
  frameCount: recipe.frameCount,
90
- durationSecs: recipe.fps > 0 ? recipe.frameCount / recipe.fps : 0,
110
+ durationSecs: clipSeconds(recipe),
91
111
  sizeBytes: meta.size,
92
112
  createdAtMs: recipe.createdAtMs,
93
113
  pinned: flag?.pinned ?? false,
@@ -97,19 +117,30 @@ async function itemFromRecipe(dir, id, path, recipe, flags) {
97
117
  }
98
118
  async function itemFromPath(dir, id, path, flags) {
99
119
  const recipe = await readRecipe(dir, id);
100
- return recipe ? itemFromRecipe(dir, id, path, recipe, flags) : undefined;
120
+ // The file must be the container the recipe says: a stray `.mp4` beside a WebM's sidecar is not ours.
121
+ if (!recipe || !path.endsWith(VIDEO_SUFFIXES[recipe.outputFormat]))
122
+ return undefined;
123
+ return itemFromRecipe(dir, id, path, recipe, flags);
101
124
  }
102
125
  /** Every owned clip, newest first. */
103
126
  async function scan(dir, flags) {
104
127
  const names = await readdir(dir).catch(() => []);
105
- const ids = names
106
- .filter((name) => name.endsWith(VIDEO_SUFFIX))
107
- .map((name) => name.slice(0, -VIDEO_SUFFIX.length))
108
- .filter(isValidVideoId);
128
+ const files = new Map();
129
+ for (const format of FORMATS) {
130
+ const suffix = VIDEO_SUFFIXES[format];
131
+ for (const name of names) {
132
+ if (!name.endsWith(suffix))
133
+ continue;
134
+ const id = name.slice(0, -suffix.length);
135
+ if (isValidVideoId(id) && !files.has(id))
136
+ files.set(id, join(dir, name));
137
+ }
138
+ }
139
+ const ids = [...files.keys()];
109
140
  const items = [];
110
141
  for (let at = 0; at < ids.length; at += SCAN_CONCURRENCY) {
111
142
  const batch = ids.slice(at, at + SCAN_CONCURRENCY);
112
- const found = await Promise.all(batch.map((id) => itemFromPath(dir, id, videoPath(dir, id), flags)));
143
+ const found = await Promise.all(batch.map((id) => itemFromPath(dir, id, files.get(id), flags)));
113
144
  for (const item of found)
114
145
  if (item)
115
146
  items.push(item);
@@ -126,15 +157,21 @@ export class VideoGallery {
126
157
  constructor(log = () => { }) {
127
158
  this.log = log;
128
159
  }
129
- /** Write the sidecar, then the clip, and answer the item with the bytes (the facade streams them). */
160
+ /**
161
+ * Write the sidecar, then the clip in the container its recipe names, and answer the item with the
162
+ * bytes (the facade streams them).
163
+ */
130
164
  async save(dir, recipe, webm) {
131
165
  await mkdir(dir, { recursive: true }).catch((error) => {
132
166
  throw ioError('Could not create the videos folder.', error);
133
167
  });
134
168
  const id = recipe.jobId;
135
- const path = checkedVideoPath(dir, id);
136
- if (!isWebm(webm))
137
- throw diffusionError('INVALID_OUTPUT', 'The video engine returned something that is not a WebM.');
169
+ checkedVideoPath(dir, id);
170
+ const path = videoPath(dir, id, recipe.outputFormat);
171
+ if (!isVideoOf(recipe.outputFormat, webm))
172
+ throw diffusionError('INVALID_OUTPUT', recipe.outputFormat === 'mp4'
173
+ ? 'The provider returned something that is not an MP4.'
174
+ : 'The video engine returned something that is not a WebM.');
138
175
  // The sidecar first: a clip without one is foreign, so a crash between the two leaves nothing listed.
139
176
  await writeAtomic(videoRecipePath(dir, id), serializeVideoRecipe(recipe), VIDEO_WRITE_MESSAGES);
140
177
  await writeAtomic(path, webm, VIDEO_WRITE_MESSAGES);
@@ -148,7 +185,7 @@ export class VideoGallery {
148
185
  height: recipe.height,
149
186
  fps: recipe.fps,
150
187
  frameCount: recipe.frameCount,
151
- durationSecs: recipe.fps > 0 ? recipe.frameCount / recipe.fps : 0,
188
+ durationSecs: clipSeconds(recipe),
152
189
  sizeBytes: webm.length,
153
190
  createdAtMs: recipe.createdAtMs,
154
191
  pinned: flag?.pinned ?? false,
@@ -160,8 +197,8 @@ export class VideoGallery {
160
197
  }
161
198
  /** The poster the app rendered from the first frame: a PNG with a readable header, kept as is. */
162
199
  async setPoster(dir, id, png) {
163
- const path = checkedVideoPath(dir, id);
164
- if (!(await isFile(path)) || (await readRecipe(dir, id)) === undefined)
200
+ const { path, exists } = await locateVideo(dir, id);
201
+ if (!exists || (await readRecipe(dir, id)) === undefined)
165
202
  throw diffusionError('JOB_NOT_FOUND', 'That video is no longer in the gallery.');
166
203
  if (png.length > MAX_POSTER_BYTES)
167
204
  throw diffusionError('INVALID_REQUEST', 'The poster is too large.', `${png.length} bytes`);
@@ -176,8 +213,8 @@ export class VideoGallery {
176
213
  return item;
177
214
  }
178
215
  async get(dir, id) {
179
- const path = checkedVideoPath(dir, id);
180
- if (!(await isFile(path)))
216
+ const { path, exists } = await locateVideo(dir, id);
217
+ if (!exists)
181
218
  return null;
182
219
  const flags = await this.flagsLock.run(() => readFlags(dir));
183
220
  return (await itemFromPath(dir, id, path, flags)) ?? null;
@@ -194,8 +231,8 @@ export class VideoGallery {
194
231
  const flags = await readFlags(dir);
195
232
  let changed = false;
196
233
  for (const id of ids) {
197
- const path = checkedVideoPath(dir, id);
198
- if (await isFile(path)) {
234
+ const { path, exists } = await locateVideo(dir, id);
235
+ if (exists) {
199
236
  if ((await readRecipe(dir, id)) === undefined) {
200
237
  this.log('warn', `refusing to delete foreign video ${id}`);
201
238
  continue;
@@ -215,8 +252,8 @@ export class VideoGallery {
215
252
  }
216
253
  setFlags(dir, id, update) {
217
254
  return this.flagsLock.run(async () => {
218
- const path = checkedVideoPath(dir, id);
219
- if (!(await isFile(path)))
255
+ const { path, exists } = await locateVideo(dir, id);
256
+ if (!exists)
220
257
  throw diffusionError('JOB_NOT_FOUND', 'That video is no longer in the gallery.');
221
258
  const flags = await readFlags(dir);
222
259
  const entry = { ...(flags.get(id) ?? { pinned: false, archived: false }) };
@@ -238,8 +275,8 @@ export class VideoGallery {
238
275
  }
239
276
  /** Byte-for-byte copy of the clip; the recipe stays behind with the gallery. */
240
277
  async export(dir, id, target) {
241
- const path = checkedVideoPath(dir, id);
242
- if (!(await isFile(path)))
278
+ const { path, exists } = await locateVideo(dir, id);
279
+ if (!exists)
243
280
  throw diffusionError('JOB_NOT_FOUND', 'That video is no longer in the gallery.');
244
281
  await mkdir(dirname(target), { recursive: true }).catch((error) => {
245
282
  throw ioError('Could not create the destination folder.', error);
@@ -1 +1 @@
1
- {"version":3,"file":"video-gallery.js","sourceRoot":"","sources":["../../src/diffusion/video-gallery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"video-gallery.js","sourceRoot":"","sources":["../../src/diffusion/video-gallery.ts"],"names":[],"mappings":"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"}
@@ -37,7 +37,10 @@ export function recipeInput(input, recipe) {
37
37
  */
38
38
  export function historyRecipes(recipes, input) {
39
39
  return recipes
40
- .filter((recipe) => recipe.model.family === input.family &&
40
+ .filter((recipe) =>
41
+ // A provider's clip says nothing about this machine.
42
+ recipe.engine.kind !== 'remote' &&
43
+ recipe.model.family === input.family &&
41
44
  recipe.engine.backend === input.backend &&
42
45
  recipe.engine.offload === input.offload &&
43
46
  !recipe.engine.cpuFallback &&
@@ -1 +1 @@
1
- {"version":3,"file":"video-history.js","sourceRoot":"","sources":["../../src/diffusion/video-history.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"video-history.js","sourceRoot":"","sources":["../../src/diffusion/video-history.ts"],"names":[],"mappings":"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"}
@@ -4,11 +4,11 @@
4
4
  * order of `ImageRecipe`'s sibling, so a clip copied anywhere can be reproduced. The parser is as
5
5
  * strict as `parseRecipe`, because it decides whether a `.webm` in the folder is ours.
6
6
  */
7
+ import { orderedEngine, parseRecipeEngine } from './recipe.js';
7
8
  import { VIDEO_WORKFLOWS } from './workflow.js';
8
9
  export const RECIPE_SIDECAR_SUFFIX = '.json';
9
- const ENGINES = ['sd-cpp', 'diffusers'];
10
- const BACKENDS = ['cpu', 'metal', 'cuda', 'vulkan', 'rocm'];
11
- const OFFLOADS = ['none', 'group', 'model'];
10
+ const OUTPUT_FORMATS = ['webm', 'mp4'];
11
+ const REMOTE_VIDEO_STRINGS = ['resolution', 'aspectRatio', 'size'];
12
12
  const isObject = (value) => value !== null && typeof value === 'object' && !Array.isArray(value);
13
13
  const isWhole = (value) => typeof value === 'number' && Number.isInteger(value) && value >= 0;
14
14
  /** Seeds as `parseRecipe` takes them: an `i64` as a double sees it. */
@@ -47,19 +47,55 @@ export function serializeVideoRecipe(recipe) {
47
47
  displayName: recipe.model.displayName,
48
48
  filename: recipe.model.filename,
49
49
  },
50
- engine: {
51
- kind: recipe.engine.kind,
52
- backend: recipe.engine.backend,
53
- tag: recipe.engine.tag,
54
- offload: recipe.engine.offload,
55
- cpuFallback: recipe.engine.cpuFallback,
56
- },
50
+ engine: orderedEngine(recipe.engine),
57
51
  createdAtMs: recipe.createdAtMs,
58
52
  durationMs: recipe.durationMs,
59
53
  ...(recipe.decodeMs === undefined ? {} : { decodeMs: recipe.decodeMs }),
54
+ ...(recipe.durationSecs === undefined ? {} : { durationSecs: recipe.durationSecs }),
55
+ ...(recipe.remote === undefined ? {} : { remote: orderedRemoteVideo(recipe.remote) }),
60
56
  };
61
57
  return `${JSON.stringify(ordered, null, 2)}\n`;
62
58
  }
59
+ function orderedRemoteVideo(options) {
60
+ const out = {};
61
+ if (options.durationSecs !== undefined)
62
+ out.durationSecs = options.durationSecs;
63
+ for (const key of REMOTE_VIDEO_STRINGS)
64
+ if (options[key] !== undefined)
65
+ out[key] = options[key];
66
+ if (options.generateAudio !== undefined)
67
+ out.generateAudio = options.generateAudio;
68
+ return out;
69
+ }
70
+ /** A remote clip's extra settings, or `undefined` when the value is not such an object. */
71
+ function parseRemoteVideo(value) {
72
+ if (value === undefined || value === null)
73
+ return null;
74
+ if (!isObject(value))
75
+ return undefined;
76
+ const out = {};
77
+ const duration = value['durationSecs'];
78
+ if (duration !== undefined && duration !== null) {
79
+ if (!isNumber(duration))
80
+ return undefined;
81
+ out.durationSecs = duration;
82
+ }
83
+ for (const key of REMOTE_VIDEO_STRINGS) {
84
+ const item = value[key];
85
+ if (item === undefined || item === null)
86
+ continue;
87
+ if (!isString(item))
88
+ return undefined;
89
+ out[key] = item;
90
+ }
91
+ const audio = value['generateAudio'];
92
+ if (audio !== undefined && audio !== null) {
93
+ if (typeof audio !== 'boolean')
94
+ return undefined;
95
+ out.generateAudio = audio;
96
+ }
97
+ return out;
98
+ }
63
99
  /** The recipe out of a sidecar, or `undefined` when the text is not one. */
64
100
  export function parseVideoRecipe(text) {
65
101
  let raw;
@@ -76,6 +112,8 @@ export function parseVideoRecipe(text) {
76
112
  const guidance = optional(raw['guidance'], isNumber);
77
113
  const samplingMethod = optional(raw['samplingMethod'], isString);
78
114
  const flowShift = optional(raw['flowShift'], isNumber);
115
+ const parsedEngine = parseRecipeEngine(engine);
116
+ const remote = parseRemoteVideo(raw['remote']);
79
117
  const ok = isString(raw['jobId']) &&
80
118
  isString(raw['prompt']) &&
81
119
  isWhole(raw['width']) &&
@@ -87,23 +125,20 @@ export function parseVideoRecipe(text) {
87
125
  isNumber(raw['cfgScale']) &&
88
126
  isI64(raw['seed']) &&
89
127
  among(raw['workflow'], VIDEO_WORKFLOWS) &&
90
- raw['outputFormat'] === 'webm' &&
128
+ among(raw['outputFormat'], OUTPUT_FORMATS) &&
91
129
  isString(model['modelId']) &&
92
130
  isString(model['family']) &&
93
131
  isString(model['displayName']) &&
94
132
  isString(model['filename']) &&
95
- among(engine['kind'], ENGINES) &&
96
- among(engine['backend'], BACKENDS) &&
97
- isString(engine['tag']) &&
98
- among(engine['offload'], OFFLOADS) &&
99
- typeof engine['cpuFallback'] === 'boolean' &&
133
+ parsedEngine !== undefined &&
134
+ remote !== undefined &&
100
135
  isWhole(raw['createdAtMs']) &&
101
136
  isWhole(raw['durationMs']) &&
102
137
  negativePrompt !== undefined &&
103
138
  guidance !== undefined &&
104
139
  samplingMethod !== undefined &&
105
140
  flowShift !== undefined;
106
- if (!ok)
141
+ if (!ok || parsedEngine === undefined || remote === undefined)
107
142
  return undefined;
108
143
  return {
109
144
  jobId: raw['jobId'],
@@ -121,24 +156,22 @@ export function parseVideoRecipe(text) {
121
156
  samplingMethod,
122
157
  flowShift,
123
158
  workflow: raw['workflow'],
124
- outputFormat: 'webm',
159
+ outputFormat: raw['outputFormat'],
125
160
  model: {
126
161
  modelId: model['modelId'],
127
162
  family: model['family'],
128
163
  displayName: model['displayName'],
129
164
  filename: model['filename'],
130
165
  },
131
- engine: {
132
- kind: engine['kind'],
133
- backend: engine['backend'],
134
- tag: engine['tag'],
135
- offload: engine['offload'],
136
- cpuFallback: engine['cpuFallback'],
137
- },
166
+ engine: parsedEngine,
138
167
  createdAtMs: raw['createdAtMs'],
139
168
  durationMs: raw['durationMs'],
140
169
  // Older clips have none; a malformed one is dropped rather than the clip.
141
170
  ...(isWhole(raw['decodeMs']) ? { decodeMs: raw['decodeMs'] } : {}),
171
+ ...(isNumber(raw['durationSecs']) && raw['durationSecs'] >= 0
172
+ ? { durationSecs: raw['durationSecs'] }
173
+ : {}),
174
+ ...(remote === null ? {} : { remote }),
142
175
  };
143
176
  }
144
177
  //# sourceMappingURL=video-recipe.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"video-recipe.js","sourceRoot":"","sources":["../../src/diffusion/video-recipe.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"video-recipe.js","sourceRoot":"","sources":["../../src/diffusion/video-recipe.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@ import type { CoreEvents, HardwareInfoResponse, SystemInfo } from '../contracts/
8
8
  import type { ProcessJournal } from '../lock/index.js';
9
9
  import type { BackendOutputSink, GpuClaimHook } from '../runtime/shared/index.js';
10
10
  import { DiffusionService } from './service.js';
11
+ import type { RemoteMediaGateway } from './remote-job.js';
11
12
  import type { DiffusionServiceDeps } from './service.js';
12
13
  export interface WireDiffusionOptions {
13
14
  layout: DataLayout;
@@ -25,6 +26,8 @@ export interface WireDiffusionOptions {
25
26
  env?: NodeJS.ProcessEnv;
26
27
  /** Core's GPU residency (task 2.15), asked before every `sd-server` spawn. */
27
28
  claimGpu?: GpuClaimHook;
29
+ /** Cloud and self-hosted providers' image and video models. */
30
+ remoteMedia?: RemoteMediaGateway;
28
31
  /** Test seams, straight through to the service. */
29
32
  overrides?: Pick<DiffusionServiceDeps, 'http' | 'spawn' | 'timings' | 'idleTickMs' | 'now' | 'sleep' | 'drawSeed'>;
30
33
  }
@@ -36,6 +36,7 @@ export function wireDiffusion(options) {
36
36
  ...(options.platform ? { platform: options.platform } : {}),
37
37
  ...(options.env ? { env: options.env } : {}),
38
38
  ...(options.claimGpu ? { claimGpu: options.claimGpu } : {}),
39
+ ...(options.remoteMedia ? { remoteMedia: options.remoteMedia } : {}),
39
40
  ...(options.backendOutput ? { backendOutput: options.backendOutput } : {}),
40
41
  ...options.overrides,
41
42
  });
@@ -1 +1 @@
1
- {"version":3,"file":"wiring.js","sourceRoot":"","sources":["../../src/diffusion/wiring.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAGjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAwB/C,8GAA8G;AAC9G,MAAM,UAAU,gBAAgB,CAC9B,OAA+C,EAC/C,UAAkB,EAClB,MAAoB,IAAI,CAAC,GAAG;IAE5B,OAAO;QACL,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,CACrC,OAAO,CAAC,GAAG,CAAC;YACV,WAAW,EAAE,UAAU;YACvB,GAAG;YACH,gBAAgB,EAAE,CAAC,MAAM,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI;YACrD,GAAG;YACH,QAAQ,EAAE,WAAW;YACrB,QAAQ,EAAE,OAAO;YACjB,IAAI;YACJ,UAAU,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,WAAW,EAAE;SAC1C,CAAC;QACJ,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC;KACrC,CAAA;AACH,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,kBAAkB,CAAC,QAElC;IACC,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAA;AACjD,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAA6B;IACzD,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC;QACnC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS;QAC/B,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI;QAC/B,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC;QAC9D,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjF,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5C,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1E,GAAG,OAAO,CAAC,SAAS;KACrB,CAAC,CAAA;IACF,OAAO,CAAC,KAAK,EAAE,CAAA;IACf,OAAO,OAAO,CAAA;AAChB,CAAC"}
1
+ {"version":3,"file":"wiring.js","sourceRoot":"","sources":["../../src/diffusion/wiring.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAGjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AA2B/C,8GAA8G;AAC9G,MAAM,UAAU,gBAAgB,CAC9B,OAA+C,EAC/C,UAAkB,EAClB,MAAoB,IAAI,CAAC,GAAG;IAE5B,OAAO;QACL,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,CACrC,OAAO,CAAC,GAAG,CAAC;YACV,WAAW,EAAE,UAAU;YACvB,GAAG;YACH,gBAAgB,EAAE,CAAC,MAAM,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI;YACrD,GAAG;YACH,QAAQ,EAAE,WAAW;YACrB,QAAQ,EAAE,OAAO;YACjB,IAAI;YACJ,UAAU,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,WAAW,EAAE;SAC1C,CAAC;QACJ,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC;KACrC,CAAA;AACH,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,kBAAkB,CAAC,QAElC;IACC,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAA;AACjD,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAA6B;IACzD,MAAM,OAAO,GAAG,IAAI,gBAAgB,CAAC;QACnC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS;QAC/B,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI;QAC/B,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC;QAC9D,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjF,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5C,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpE,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1E,GAAG,OAAO,CAAC,SAAS;KACrB,CAAC,CAAA;IACF,OAAO,CAAC,KAAK,EAAE,CAAA;IACf,OAAO,OAAO,CAAA;AAChB,CAAC"}
@@ -17,12 +17,18 @@ export declare function usesReferences(workflow: ImageWorkflowId): boolean;
17
17
  * `upscale` is a re-detail pass that keeps most of the enlarged source.
18
18
  */
19
19
  export declare function defaultStrength(workflow: ImageWorkflowId): number;
20
+ /**
21
+ * Qwen Image 2.1 and its 8-step Turbo checkpoint: one architecture, the same text encoder, vision
22
+ * projector and VAE, so the same workflows and the same engine floor.
23
+ */
24
+ export declare function isQwenImage21(family: string): boolean;
20
25
  /**
21
26
  * img2img and masking are generic in sd.cpp (the init image is VAE-encoded and noised to `strength`,
22
27
  * a mask blends latents), so the established base families get them; a distilled model such as
23
28
  * Krea 2 Turbo keeps to its verified Create. Reference-guided generation and instruction edits need
24
- * a model trained on reference images: FLUX.2 Klein and Qwen Image 2.1, which also needs its vision
25
- * projector loaded (`workflowsForSpec`). Anything else, video families included, only creates.
29
+ * a model trained on reference images: FLUX.2 Klein and Qwen Image 2.1 (Turbo included, which the
30
+ * official checkpoint trains for editing), which also needs its vision projector loaded
31
+ * (`workflowsForSpec`). Anything else, video families included, only creates.
26
32
  */
27
33
  export declare function workflowsForFamily(family: string): ImageWorkflowId[];
28
34
  /** The workflows the loaded server can actually run: Qwen Image 2.1 without `llmVision` only creates. */