weshop-cli 0.1.0 → 0.2.1

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 (366) hide show
  1. package/README.md +169 -7
  2. package/dist/client.d.ts +2 -0
  3. package/dist/client.js +1 -1
  4. package/dist/client.js.map +1 -1
  5. package/dist/commands/2d-to-3d-image-converter.d.ts +2 -0
  6. package/dist/commands/2d-to-3d-image-converter.js +27 -0
  7. package/dist/commands/2d-to-3d-image-converter.js.map +1 -0
  8. package/dist/commands/ai-3d-rendering.d.ts +2 -0
  9. package/dist/commands/ai-3d-rendering.js +29 -0
  10. package/dist/commands/ai-3d-rendering.js.map +1 -0
  11. package/dist/commands/ai-action-figure-generators.d.ts +2 -0
  12. package/dist/commands/ai-action-figure-generators.js +28 -0
  13. package/dist/commands/ai-action-figure-generators.js.map +1 -0
  14. package/dist/commands/ai-aging.d.ts +2 -0
  15. package/dist/commands/ai-aging.js +27 -0
  16. package/dist/commands/ai-aging.js.map +1 -0
  17. package/dist/commands/ai-babe.d.ts +2 -0
  18. package/dist/commands/ai-babe.js +26 -0
  19. package/dist/commands/ai-babe.js.map +1 -0
  20. package/dist/commands/ai-bikini-model.d.ts +2 -0
  21. package/dist/commands/ai-bikini-model.js +36 -0
  22. package/dist/commands/ai-bikini-model.js.map +1 -0
  23. package/dist/commands/ai-bikini-photo-editor.d.ts +2 -0
  24. package/dist/commands/ai-bikini-photo-editor.js +26 -0
  25. package/dist/commands/ai-bikini-photo-editor.js.map +1 -0
  26. package/dist/commands/ai-bikini-video.d.ts +2 -0
  27. package/dist/commands/ai-bikini-video.js +30 -0
  28. package/dist/commands/ai-bikini-video.js.map +1 -0
  29. package/dist/commands/ai-christmas-photo.d.ts +2 -0
  30. package/dist/commands/ai-christmas-photo.js +29 -0
  31. package/dist/commands/ai-christmas-photo.js.map +1 -0
  32. package/dist/commands/ai-clothes-changer.d.ts +2 -0
  33. package/dist/commands/ai-clothes-changer.js +35 -0
  34. package/dist/commands/ai-clothes-changer.js.map +1 -0
  35. package/dist/commands/ai-collage-maker.d.ts +2 -0
  36. package/dist/commands/ai-collage-maker.js +33 -0
  37. package/dist/commands/ai-collage-maker.js.map +1 -0
  38. package/dist/commands/ai-dog.d.ts +2 -0
  39. package/dist/commands/ai-dog.js +30 -0
  40. package/dist/commands/ai-dog.js.map +1 -0
  41. package/dist/commands/ai-elf.d.ts +2 -0
  42. package/dist/commands/ai-elf.js +28 -0
  43. package/dist/commands/ai-elf.js.map +1 -0
  44. package/dist/commands/ai-face-merge.d.ts +2 -0
  45. package/dist/commands/ai-face-merge.js +34 -0
  46. package/dist/commands/ai-face-merge.js.map +1 -0
  47. package/dist/commands/ai-feet.d.ts +2 -0
  48. package/dist/commands/ai-feet.js +27 -0
  49. package/dist/commands/ai-feet.js.map +1 -0
  50. package/dist/commands/ai-flag-generator.d.ts +2 -0
  51. package/dist/commands/ai-flag-generator.js +28 -0
  52. package/dist/commands/ai-flag-generator.js.map +1 -0
  53. package/dist/commands/ai-generated-bikini-girls.d.ts +2 -0
  54. package/dist/commands/ai-generated-bikini-girls.js +34 -0
  55. package/dist/commands/ai-generated-bikini-girls.js.map +1 -0
  56. package/dist/commands/ai-generated-perfect-female-body.d.ts +2 -0
  57. package/dist/commands/ai-generated-perfect-female-body.js +34 -0
  58. package/dist/commands/ai-generated-perfect-female-body.js.map +1 -0
  59. package/dist/commands/ai-ghost-mannequin-generator.d.ts +2 -0
  60. package/dist/commands/ai-ghost-mannequin-generator.js +38 -0
  61. package/dist/commands/ai-ghost-mannequin-generator.js.map +1 -0
  62. package/dist/commands/ai-group-photo-generator.d.ts +2 -0
  63. package/dist/commands/ai-group-photo-generator.js +33 -0
  64. package/dist/commands/ai-group-photo-generator.js.map +1 -0
  65. package/dist/commands/ai-hair-color-changer.d.ts +2 -0
  66. package/dist/commands/ai-hair-color-changer.js +28 -0
  67. package/dist/commands/ai-hair-color-changer.js.map +1 -0
  68. package/dist/commands/ai-hairstyle-changer.d.ts +2 -0
  69. package/dist/commands/ai-hairstyle-changer.js +27 -0
  70. package/dist/commands/ai-hairstyle-changer.js.map +1 -0
  71. package/dist/commands/ai-hot-girl-image.d.ts +2 -0
  72. package/dist/commands/ai-hot-girl-image.js +34 -0
  73. package/dist/commands/ai-hot-girl-image.js.map +1 -0
  74. package/dist/commands/ai-image-animation.d.ts +2 -0
  75. package/dist/commands/ai-image-animation.js +39 -0
  76. package/dist/commands/ai-image-animation.js.map +1 -0
  77. package/dist/commands/ai-image-combiner.d.ts +2 -0
  78. package/dist/commands/ai-image-combiner.js +33 -0
  79. package/dist/commands/ai-image-combiner.js.map +1 -0
  80. package/dist/commands/ai-landscape-design-free.d.ts +2 -0
  81. package/dist/commands/ai-landscape-design-free.js +40 -0
  82. package/dist/commands/ai-landscape-design-free.js.map +1 -0
  83. package/dist/commands/ai-lingerie-models.d.ts +2 -0
  84. package/dist/commands/ai-lingerie-models.js +34 -0
  85. package/dist/commands/ai-lingerie-models.js.map +1 -0
  86. package/dist/commands/ai-photoshoot.d.ts +2 -0
  87. package/dist/commands/ai-photoshoot.js +59 -0
  88. package/dist/commands/ai-photoshoot.js.map +1 -0
  89. package/dist/commands/ai-poster-from-images.d.ts +2 -0
  90. package/dist/commands/ai-poster-from-images.js +48 -0
  91. package/dist/commands/ai-poster-from-images.js.map +1 -0
  92. package/dist/commands/ai-poster.d.ts +2 -0
  93. package/dist/commands/ai-poster.js +53 -0
  94. package/dist/commands/ai-poster.js.map +1 -0
  95. package/dist/commands/ai-room-planner.d.ts +2 -0
  96. package/dist/commands/ai-room-planner.js +28 -0
  97. package/dist/commands/ai-room-planner.js.map +1 -0
  98. package/dist/commands/ai-selfie.d.ts +2 -0
  99. package/dist/commands/ai-selfie.js +27 -0
  100. package/dist/commands/ai-selfie.js.map +1 -0
  101. package/dist/commands/ai-sexy-portrait.d.ts +2 -0
  102. package/dist/commands/ai-sexy-portrait.js +34 -0
  103. package/dist/commands/ai-sexy-portrait.js.map +1 -0
  104. package/dist/commands/ai-sexy-teens.d.ts +2 -0
  105. package/dist/commands/ai-sexy-teens.js +34 -0
  106. package/dist/commands/ai-sexy-teens.js.map +1 -0
  107. package/dist/commands/ai-spray-paint.d.ts +2 -0
  108. package/dist/commands/ai-spray-paint.js +28 -0
  109. package/dist/commands/ai-spray-paint.js.map +1 -0
  110. package/dist/commands/ai-swimsuit-model.d.ts +2 -0
  111. package/dist/commands/ai-swimsuit-model.js +27 -0
  112. package/dist/commands/ai-swimsuit-model.js.map +1 -0
  113. package/dist/commands/ai-tattoo-generator.d.ts +2 -0
  114. package/dist/commands/ai-tattoo-generator.js +27 -0
  115. package/dist/commands/ai-tattoo-generator.js.map +1 -0
  116. package/dist/commands/ai-text-remover-from-video.d.ts +2 -0
  117. package/dist/commands/ai-text-remover-from-video.js +21 -0
  118. package/dist/commands/ai-text-remover-from-video.js.map +1 -0
  119. package/dist/commands/ai-translate.d.ts +2 -0
  120. package/dist/commands/ai-translate.js +28 -0
  121. package/dist/commands/ai-translate.js.map +1 -0
  122. package/dist/commands/ai-video-enhancer.d.ts +2 -0
  123. package/dist/commands/ai-video-enhancer.js +29 -0
  124. package/dist/commands/ai-video-enhancer.js.map +1 -0
  125. package/dist/commands/ai-werewolf.d.ts +2 -0
  126. package/dist/commands/ai-werewolf.js +43 -0
  127. package/dist/commands/ai-werewolf.js.map +1 -0
  128. package/dist/commands/ai-xray-clothes.d.ts +2 -0
  129. package/dist/commands/ai-xray-clothes.js +28 -0
  130. package/dist/commands/ai-xray-clothes.js.map +1 -0
  131. package/dist/commands/ai-zombie.d.ts +2 -0
  132. package/dist/commands/ai-zombie.js +28 -0
  133. package/dist/commands/ai-zombie.js.map +1 -0
  134. package/dist/commands/aimodel.js +2 -2
  135. package/dist/commands/aimodel.js.map +1 -1
  136. package/dist/commands/aipose.js +2 -2
  137. package/dist/commands/aipose.js.map +1 -1
  138. package/dist/commands/aiproduct.js +2 -2
  139. package/dist/commands/aiproduct.js.map +1 -1
  140. package/dist/commands/anime-image-converter.d.ts +2 -0
  141. package/dist/commands/anime-image-converter.js +27 -0
  142. package/dist/commands/anime-image-converter.js.map +1 -0
  143. package/dist/commands/baby-face-generator.d.ts +2 -0
  144. package/dist/commands/baby-face-generator.js +39 -0
  145. package/dist/commands/baby-face-generator.js.map +1 -0
  146. package/dist/commands/bald-filter.d.ts +2 -0
  147. package/dist/commands/bald-filter.js +27 -0
  148. package/dist/commands/bald-filter.js.map +1 -0
  149. package/dist/commands/bangs-filter.d.ts +2 -0
  150. package/dist/commands/bangs-filter.js +28 -0
  151. package/dist/commands/bangs-filter.js.map +1 -0
  152. package/dist/commands/bikini-contest-photos.d.ts +2 -0
  153. package/dist/commands/bikini-contest-photos.js +34 -0
  154. package/dist/commands/bikini-contest-photos.js.map +1 -0
  155. package/dist/commands/bikini-try-on.d.ts +2 -0
  156. package/dist/commands/bikini-try-on.js +27 -0
  157. package/dist/commands/bikini-try-on.js.map +1 -0
  158. package/dist/commands/braces-filter.d.ts +2 -0
  159. package/dist/commands/braces-filter.js +27 -0
  160. package/dist/commands/braces-filter.js.map +1 -0
  161. package/dist/commands/brat-generator.d.ts +2 -0
  162. package/dist/commands/brat-generator.js +27 -0
  163. package/dist/commands/brat-generator.js.map +1 -0
  164. package/dist/commands/buzz-cut-ai.d.ts +2 -0
  165. package/dist/commands/buzz-cut-ai.js +27 -0
  166. package/dist/commands/buzz-cut-ai.js.map +1 -0
  167. package/dist/commands/celeb-ai.d.ts +2 -0
  168. package/dist/commands/celeb-ai.js +33 -0
  169. package/dist/commands/celeb-ai.js.map +1 -0
  170. package/dist/commands/chibi-maker.d.ts +2 -0
  171. package/dist/commands/chibi-maker.js +27 -0
  172. package/dist/commands/chibi-maker.js.map +1 -0
  173. package/dist/commands/clothing-magic-remover.d.ts +2 -0
  174. package/dist/commands/clothing-magic-remover.js +27 -0
  175. package/dist/commands/clothing-magic-remover.js.map +1 -0
  176. package/dist/commands/custom-bikini.d.ts +2 -0
  177. package/dist/commands/custom-bikini.js +34 -0
  178. package/dist/commands/custom-bikini.js.map +1 -0
  179. package/dist/commands/cute-anime-girl-ai-bikini.d.ts +2 -0
  180. package/dist/commands/cute-anime-girl-ai-bikini.js +34 -0
  181. package/dist/commands/cute-anime-girl-ai-bikini.js.map +1 -0
  182. package/dist/commands/demon-slayer-oc-maker.d.ts +2 -0
  183. package/dist/commands/demon-slayer-oc-maker.js +29 -0
  184. package/dist/commands/demon-slayer-oc-maker.js.map +1 -0
  185. package/dist/commands/dress-remover-magic-eraser.d.ts +2 -0
  186. package/dist/commands/dress-remover-magic-eraser.js +27 -0
  187. package/dist/commands/dress-remover-magic-eraser.js.map +1 -0
  188. package/dist/commands/expandimage.js +2 -2
  189. package/dist/commands/expandimage.js.map +1 -1
  190. package/dist/commands/face-forge.d.ts +2 -0
  191. package/dist/commands/face-forge.js +56 -0
  192. package/dist/commands/face-forge.js.map +1 -0
  193. package/dist/commands/fat-ai.d.ts +2 -0
  194. package/dist/commands/fat-ai.js +28 -0
  195. package/dist/commands/fat-ai.js.map +1 -0
  196. package/dist/commands/firered-image-edit.d.ts +2 -0
  197. package/dist/commands/firered-image-edit.js +36 -0
  198. package/dist/commands/firered-image-edit.js.map +1 -0
  199. package/dist/commands/flat-lay.d.ts +2 -0
  200. package/dist/commands/flat-lay.js +42 -0
  201. package/dist/commands/flat-lay.js.map +1 -0
  202. package/dist/commands/free-4k-video-upscaler.d.ts +2 -0
  203. package/dist/commands/free-4k-video-upscaler.js +26 -0
  204. package/dist/commands/free-4k-video-upscaler.js.map +1 -0
  205. package/dist/commands/free-ai-girlfriend-generator.d.ts +2 -0
  206. package/dist/commands/free-ai-girlfriend-generator.js +27 -0
  207. package/dist/commands/free-ai-girlfriend-generator.js.map +1 -0
  208. package/dist/commands/free-online-video-quality-enhancer.d.ts +2 -0
  209. package/dist/commands/free-online-video-quality-enhancer.js +26 -0
  210. package/dist/commands/free-online-video-quality-enhancer.js.map +1 -0
  211. package/dist/commands/free-sexy-ai-generator.d.ts +2 -0
  212. package/dist/commands/free-sexy-ai-generator.js +34 -0
  213. package/dist/commands/free-sexy-ai-generator.js.map +1 -0
  214. package/dist/commands/futuristic-elegance.d.ts +2 -0
  215. package/dist/commands/futuristic-elegance.js +29 -0
  216. package/dist/commands/futuristic-elegance.js.map +1 -0
  217. package/dist/commands/gemini-watermark-remover.d.ts +2 -0
  218. package/dist/commands/gemini-watermark-remover.js +21 -0
  219. package/dist/commands/gemini-watermark-remover.js.map +1 -0
  220. package/dist/commands/gender-swap.d.ts +2 -0
  221. package/dist/commands/gender-swap.js +28 -0
  222. package/dist/commands/gender-swap.js.map +1 -0
  223. package/dist/commands/ghibli-art-create.d.ts +2 -0
  224. package/dist/commands/ghibli-art-create.js +27 -0
  225. package/dist/commands/ghibli-art-create.js.map +1 -0
  226. package/dist/commands/grok-imagine-video.d.ts +2 -0
  227. package/dist/commands/grok-imagine-video.js +35 -0
  228. package/dist/commands/grok-imagine-video.js.map +1 -0
  229. package/dist/commands/grok-imagine.d.ts +2 -0
  230. package/dist/commands/grok-imagine.js +25 -0
  231. package/dist/commands/grok-imagine.js.map +1 -0
  232. package/dist/commands/hair-color-try-on.d.ts +2 -0
  233. package/dist/commands/hair-color-try-on.js +28 -0
  234. package/dist/commands/hair-color-try-on.js.map +1 -0
  235. package/dist/commands/happy-woman-bikini-ai-pic.d.ts +2 -0
  236. package/dist/commands/happy-woman-bikini-ai-pic.js +34 -0
  237. package/dist/commands/happy-woman-bikini-ai-pic.js.map +1 -0
  238. package/dist/commands/hot-bikini-models.d.ts +2 -0
  239. package/dist/commands/hot-bikini-models.js +34 -0
  240. package/dist/commands/hot-bikini-models.js.map +1 -0
  241. package/dist/commands/image-mixer.d.ts +2 -0
  242. package/dist/commands/image-mixer.js +33 -0
  243. package/dist/commands/image-mixer.js.map +1 -0
  244. package/dist/commands/image-to-sketch.d.ts +2 -0
  245. package/dist/commands/image-to-sketch.js +27 -0
  246. package/dist/commands/image-to-sketch.js.map +1 -0
  247. package/dist/commands/improve-video-quality-online-free.d.ts +2 -0
  248. package/dist/commands/improve-video-quality-online-free.js +26 -0
  249. package/dist/commands/improve-video-quality-online-free.js.map +1 -0
  250. package/dist/commands/kling.d.ts +2 -0
  251. package/dist/commands/kling.js +48 -0
  252. package/dist/commands/kling.js.map +1 -0
  253. package/dist/commands/logo-remover-from-video.d.ts +2 -0
  254. package/dist/commands/logo-remover-from-video.js +21 -0
  255. package/dist/commands/logo-remover-from-video.js.map +1 -0
  256. package/dist/commands/midjourney.d.ts +2 -0
  257. package/dist/commands/midjourney.js +33 -0
  258. package/dist/commands/midjourney.js.map +1 -0
  259. package/dist/commands/mugshot-creator.d.ts +2 -0
  260. package/dist/commands/mugshot-creator.js +28 -0
  261. package/dist/commands/mugshot-creator.js.map +1 -0
  262. package/dist/commands/murder-drones-oc.d.ts +2 -0
  263. package/dist/commands/murder-drones-oc.js +29 -0
  264. package/dist/commands/murder-drones-oc.js.map +1 -0
  265. package/dist/commands/outfit-generator.d.ts +2 -0
  266. package/dist/commands/outfit-generator.js +29 -0
  267. package/dist/commands/outfit-generator.js.map +1 -0
  268. package/dist/commands/personalized-swimsuit.d.ts +2 -0
  269. package/dist/commands/personalized-swimsuit.js +34 -0
  270. package/dist/commands/personalized-swimsuit.js.map +1 -0
  271. package/dist/commands/photo-to-bikini-ai.d.ts +2 -0
  272. package/dist/commands/photo-to-bikini-ai.js +27 -0
  273. package/dist/commands/photo-to-bikini-ai.js.map +1 -0
  274. package/dist/commands/pregnant-ai.d.ts +2 -0
  275. package/dist/commands/pregnant-ai.js +31 -0
  276. package/dist/commands/pregnant-ai.js.map +1 -0
  277. package/dist/commands/ps2-filter.d.ts +2 -0
  278. package/dist/commands/ps2-filter.js +28 -0
  279. package/dist/commands/ps2-filter.js.map +1 -0
  280. package/dist/commands/qwen-image-edit.d.ts +2 -0
  281. package/dist/commands/qwen-image-edit.js +31 -0
  282. package/dist/commands/qwen-image-edit.js.map +1 -0
  283. package/dist/commands/random-animal-generator.d.ts +2 -0
  284. package/dist/commands/random-animal-generator.js +28 -0
  285. package/dist/commands/random-animal-generator.js.map +1 -0
  286. package/dist/commands/remove-filter-from-photo.d.ts +2 -0
  287. package/dist/commands/remove-filter-from-photo.js +27 -0
  288. package/dist/commands/remove-filter-from-photo.js.map +1 -0
  289. package/dist/commands/remove-subtitles-from-video-online-free.d.ts +2 -0
  290. package/dist/commands/remove-subtitles-from-video-online-free.js +21 -0
  291. package/dist/commands/remove-subtitles-from-video-online-free.js.map +1 -0
  292. package/dist/commands/remove-text-from-video-online-free.d.ts +2 -0
  293. package/dist/commands/remove-text-from-video-online-free.js +21 -0
  294. package/dist/commands/remove-text-from-video-online-free.js.map +1 -0
  295. package/dist/commands/removebg.js +2 -2
  296. package/dist/commands/removebg.js.map +1 -1
  297. package/dist/commands/replace-face-in-video-online-free.d.ts +2 -0
  298. package/dist/commands/replace-face-in-video-online-free.js +34 -0
  299. package/dist/commands/replace-face-in-video-online-free.js.map +1 -0
  300. package/dist/commands/see-through-clothes-fitler.d.ts +2 -0
  301. package/dist/commands/see-through-clothes-fitler.js +28 -0
  302. package/dist/commands/see-through-clothes-fitler.js.map +1 -0
  303. package/dist/commands/seedance.d.ts +2 -0
  304. package/dist/commands/seedance.js +47 -0
  305. package/dist/commands/seedance.js.map +1 -0
  306. package/dist/commands/seedream.d.ts +2 -0
  307. package/dist/commands/seedream.js +53 -0
  308. package/dist/commands/seedream.js.map +1 -0
  309. package/dist/commands/sex-ai-generator.d.ts +2 -0
  310. package/dist/commands/sex-ai-generator.js +34 -0
  311. package/dist/commands/sex-ai-generator.js.map +1 -0
  312. package/dist/commands/sexy-ai-pics.d.ts +2 -0
  313. package/dist/commands/sexy-ai-pics.js +26 -0
  314. package/dist/commands/sexy-ai-pics.js.map +1 -0
  315. package/dist/commands/skin-color-changer.d.ts +2 -0
  316. package/dist/commands/skin-color-changer.js +28 -0
  317. package/dist/commands/skin-color-changer.js.map +1 -0
  318. package/dist/commands/sonic-oc.d.ts +2 -0
  319. package/dist/commands/sonic-oc.js +28 -0
  320. package/dist/commands/sonic-oc.js.map +1 -0
  321. package/dist/commands/sora-2.d.ts +2 -0
  322. package/dist/commands/sora-2.js +35 -0
  323. package/dist/commands/sora-2.js.map +1 -0
  324. package/dist/commands/sprunki-oc-maker.d.ts +2 -0
  325. package/dist/commands/sprunki-oc-maker.js +29 -0
  326. package/dist/commands/sprunki-oc-maker.js.map +1 -0
  327. package/dist/commands/square-face-icon-generator.d.ts +2 -0
  328. package/dist/commands/square-face-icon-generator.js +30 -0
  329. package/dist/commands/square-face-icon-generator.js.map +1 -0
  330. package/dist/commands/stardew-valley-portrait-maker.d.ts +2 -0
  331. package/dist/commands/stardew-valley-portrait-maker.js +28 -0
  332. package/dist/commands/stardew-valley-portrait-maker.js.map +1 -0
  333. package/dist/commands/string-bikini-beauty-contest.d.ts +2 -0
  334. package/dist/commands/string-bikini-beauty-contest.js +34 -0
  335. package/dist/commands/string-bikini-beauty-contest.js.map +1 -0
  336. package/dist/commands/swimsuit-try-on-haul.d.ts +2 -0
  337. package/dist/commands/swimsuit-try-on-haul.js +34 -0
  338. package/dist/commands/swimsuit-try-on-haul.js.map +1 -0
  339. package/dist/commands/video-resolution-enhancer-online-free.d.ts +2 -0
  340. package/dist/commands/video-resolution-enhancer-online-free.js +26 -0
  341. package/dist/commands/video-resolution-enhancer-online-free.js.map +1 -0
  342. package/dist/commands/video-upscaler-online-free.d.ts +2 -0
  343. package/dist/commands/video-upscaler-online-free.js +26 -0
  344. package/dist/commands/video-upscaler-online-free.js.map +1 -0
  345. package/dist/commands/video-watermark-remover.d.ts +2 -0
  346. package/dist/commands/video-watermark-remover.js +26 -0
  347. package/dist/commands/video-watermark-remover.js.map +1 -0
  348. package/dist/commands/virtualtryon.js +2 -2
  349. package/dist/commands/virtualtryon.js.map +1 -1
  350. package/dist/commands/wan-ai.d.ts +2 -0
  351. package/dist/commands/wan-ai.js +31 -0
  352. package/dist/commands/wan-ai.js.map +1 -0
  353. package/dist/commands/wild-graffiti.d.ts +2 -0
  354. package/dist/commands/wild-graffiti.js +28 -0
  355. package/dist/commands/wild-graffiti.js.map +1 -0
  356. package/dist/commands/z-image.d.ts +2 -0
  357. package/dist/commands/z-image.js +30 -0
  358. package/dist/commands/z-image.js.map +1 -0
  359. package/dist/index.js +231 -2
  360. package/dist/index.js.map +1 -1
  361. package/dist/printer.js +13 -3
  362. package/dist/printer.js.map +1 -1
  363. package/dist/run-helper.d.ts +7 -1
  364. package/dist/run-helper.js +33 -4
  365. package/dist/run-helper.js.map +1 -1
  366. package/package.json +1 -1
@@ -0,0 +1,31 @@
1
+ import { Command } from "commander";
2
+ import { executeRun } from "../run-helper.js";
3
+ export const qwenImageEditCmd = new Command("qwen-image-edit")
4
+ .summary("AI image editing — edit or generate images with natural language instructions")
5
+ .description("AI image editing — edit or generate images with natural language instructions using Qwen Image Edit.\n\n" +
6
+ "Provide a text prompt describing the desired edit or generation. Optionally attach up to 5\n" +
7
+ "reference images. When no image is provided the model generates from the prompt alone.\n\n" +
8
+ "Examples:\n" +
9
+ " weshop qwen-image-edit --prompt 'A cat sitting on a rainbow'\n" +
10
+ " weshop qwen-image-edit --image ./photo.png --prompt 'Make the sky more dramatic'\n" +
11
+ " weshop qwen-image-edit --image ./a.png --image ./b.png --prompt 'Combine these two scenes using image 1 as the base and image 2 as the style reference' --batch 2")
12
+ .option("--image <path|url...>", "Reference images — local file paths or URLs (up to 5, optional)")
13
+ .requiredOption("--prompt <text>", "Describe the desired edit or generation")
14
+ .option("--batch <count>", "Number of images to generate, 1-16 (default: 1)", (v) => parseInt(v, 10), 1)
15
+ .option("--task-name <name>", "Human-readable label for this run")
16
+ .option("--no-wait", "Return immediately after submission; use 'weshop status <id>' to check later")
17
+ .action(async (opts) => {
18
+ const imageList = opts.image;
19
+ if (imageList && imageList.length > 5) {
20
+ console.error("[error]\n message: Maximum 5 images allowed");
21
+ process.exit(1);
22
+ }
23
+ const params = { textDescription: opts.prompt };
24
+ if (opts.batch != null)
25
+ params.batchCount = opts.batch;
26
+ const extraInput = {};
27
+ if (opts.taskName)
28
+ extraInput.taskName = opts.taskName;
29
+ await executeRun("qwen-image-edit", "v1.0", { images: imageList, wait: opts.wait }, params, extraInput);
30
+ });
31
+ //# sourceMappingURL=qwen-image-edit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"qwen-image-edit.js","sourceRoot":"","sources":["../../src/commands/qwen-image-edit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,OAAO,CAAC,iBAAiB,CAAC;KAC3D,OAAO,CAAC,+EAA+E,CAAC;KACxF,WAAW,CACV,0GAA0G;IAC1G,8FAA8F;IAC9F,4FAA4F;IAC5F,aAAa;IACb,kEAAkE;IAClE,sFAAsF;IACtF,qKAAqK,CACtK;KACA,MAAM,CAAC,uBAAuB,EAAE,iEAAiE,CAAC;KAClG,cAAc,CAAC,iBAAiB,EAAE,yCAAyC,CAAC;KAC5E,MAAM,CAAC,iBAAiB,EAAE,iDAAiD,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;KACvG,MAAM,CAAC,oBAAoB,EAAE,mCAAmC,CAAC;KACjE,MAAM,CAAC,WAAW,EAAE,8EAA8E,CAAC;KACnG,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACrB,MAAM,SAAS,GAAyB,IAAI,CAAC,KAAK,CAAC;IACnD,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtC,OAAO,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAC9D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,MAAM,GAA4B,EAAE,eAAe,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;IACzE,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI;QAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;IAEvD,MAAM,UAAU,GAA4B,EAAE,CAAC;IAC/C,IAAI,IAAI,CAAC,QAAQ;QAAE,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAEvD,MAAM,UAAU,CAAC,iBAAiB,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AAC1G,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { Command } from "commander";
2
+ export declare const randomAnimalGeneratorCmd: Command;
@@ -0,0 +1,28 @@
1
+ import { Command } from "commander";
2
+ import { executeRun } from "../run-helper.js";
3
+ const DEFAULT_PROMPT = "A hyper-realistic, award-winning wildlife photograph of [ANY RANDOM ANIMAL] in its natural habitat. Captured in a National Geographic style to emphasize natural lighting and fur/scale texture. Shot on a Sony A1 with a 600mm f/4 lens for a shallow depth of field and a creamy bokeh background. The composition follows the rule of thirds, showing the animal in a candid, unposed moment—such as hunting, resting, or observing its surroundings. Incredible detail on the eyes, whiskers, and environment, 8k resolution, cinematic atmosphere, sharp focus, natural color grading.";
4
+ export const randomAnimalGeneratorCmd = new Command("random-animal-generator")
5
+ .summary("AI random animal generator — generate a hyper-realistic wildlife photo of any animal")
6
+ .description("Generate a hyper-realistic National Geographic-style wildlife photograph.\n" +
7
+ "Image is optional — text-only generation is supported.\n\n" +
8
+ "Default prompt (used when --prompt is omitted):\n" +
9
+ " Random animal in its natural habitat, National Geographic style, 8K resolution.\n\n" +
10
+ "Examples:\n" +
11
+ " weshop random-animal-generator\n" +
12
+ " weshop random-animal-generator --prompt 'A snow leopard stalking prey in the Himalayas'\n" +
13
+ " weshop random-animal-generator --batch 4")
14
+ .option("--image <path|url>", "Reference image — local file path or URL (optional)")
15
+ .option("--prompt <text>", "Describe the desired animal and scene")
16
+ .option("--batch <count>", "Number of images to generate, 1-16 (default: 1)", (v) => parseInt(v, 10), 1)
17
+ .option("--task-name <name>", "Human-readable label for this run")
18
+ .option("--no-wait", "Return immediately after submission; use 'weshop status <id>' to check later")
19
+ .action(async (opts) => {
20
+ const params = { textDescription: opts.prompt ?? DEFAULT_PROMPT };
21
+ if (opts.batch != null)
22
+ params.batchCount = opts.batch;
23
+ const extraInput = {};
24
+ if (opts.taskName)
25
+ extraInput.taskName = opts.taskName;
26
+ await executeRun("random-animal-generator", "v1.0", { image: opts.image, wait: opts.wait }, params, extraInput);
27
+ });
28
+ //# sourceMappingURL=random-animal-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"random-animal-generator.js","sourceRoot":"","sources":["../../src/commands/random-animal-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,cAAc,GAClB,6jBAA6jB,CAAC;AAEhkB,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,OAAO,CAAC,yBAAyB,CAAC;KAC3E,OAAO,CAAC,sFAAsF,CAAC;KAC/F,WAAW,CACV,6EAA6E;IAC7E,4DAA4D;IAC5D,mDAAmD;IACnD,uFAAuF;IACvF,aAAa;IACb,oCAAoC;IACpC,6FAA6F;IAC7F,4CAA4C,CAC7C;KACA,MAAM,CAAC,oBAAoB,EAAE,qDAAqD,CAAC;KACnF,MAAM,CAAC,iBAAiB,EAAE,uCAAuC,CAAC;KAClE,MAAM,CAAC,iBAAiB,EAAE,iDAAiD,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;KACvG,MAAM,CAAC,oBAAoB,EAAE,mCAAmC,CAAC;KACjE,MAAM,CAAC,WAAW,EAAE,8EAA8E,CAAC;KACnG,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACrB,MAAM,MAAM,GAA4B,EAAE,eAAe,EAAE,IAAI,CAAC,MAAM,IAAI,cAAc,EAAE,CAAC;IAC3F,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI;QAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;IACvD,MAAM,UAAU,GAA4B,EAAE,CAAC;IAC/C,IAAI,IAAI,CAAC,QAAQ;QAAE,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IACvD,MAAM,UAAU,CAAC,yBAAyB,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AAClH,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { Command } from "commander";
2
+ export declare const removeFilterFromPhotoCmd: Command;
@@ -0,0 +1,27 @@
1
+ import { Command } from "commander";
2
+ import { executeRun } from "../run-helper.js";
3
+ const DEFAULT_PROMPT = "Remove [any style] filter you think this photo have, including b&w filter.";
4
+ export const removeFilterFromPhotoCmd = new Command("remove-filter-from-photo")
5
+ .summary("AI filter remover — remove photo filters and restore natural image colors")
6
+ .description("Remove any applied filters from a photo and restore natural colors. Image is optional.\n\n" +
7
+ "Default prompt (used when --prompt is omitted):\n" +
8
+ ` "${DEFAULT_PROMPT}"\n\n` +
9
+ "Examples:\n" +
10
+ " weshop remove-filter-from-photo --image ./filtered-photo.png\n" +
11
+ " weshop remove-filter-from-photo --image ./photo.png --prompt 'Remove the vintage sepia filter'\n" +
12
+ " weshop remove-filter-from-photo --image ./photo.png --batch 2")
13
+ .option("--image <path|url>", "Input filtered photo — local file path or URL (optional)")
14
+ .option("--prompt <text>", "Describe the filter to remove (default: auto-detect and remove all filters)")
15
+ .option("--batch <count>", "Number of images to generate, 1-16 (default: 1)", (v) => parseInt(v, 10), 1)
16
+ .option("--task-name <name>", "Human-readable label for this run")
17
+ .option("--no-wait", "Return immediately after submission; use 'weshop status <id>' to check later")
18
+ .action(async (opts) => {
19
+ const params = { textDescription: opts.prompt ?? DEFAULT_PROMPT };
20
+ if (opts.batch != null)
21
+ params.batchCount = opts.batch;
22
+ const extraInput = {};
23
+ if (opts.taskName)
24
+ extraInput.taskName = opts.taskName;
25
+ await executeRun("remove-filter-from-photo", "v1.0", { image: opts.image, wait: opts.wait }, params, extraInput);
26
+ });
27
+ //# sourceMappingURL=remove-filter-from-photo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove-filter-from-photo.js","sourceRoot":"","sources":["../../src/commands/remove-filter-from-photo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,cAAc,GAAG,4EAA4E,CAAC;AAEpG,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,OAAO,CAAC,0BAA0B,CAAC;KAC5E,OAAO,CAAC,2EAA2E,CAAC;KACpF,WAAW,CACV,4FAA4F;IAC5F,mDAAmD;IACnD,MAAM,cAAc,OAAO;IAC3B,aAAa;IACb,kEAAkE;IAClE,oGAAoG;IACpG,iEAAiE,CAClE;KACA,MAAM,CAAC,oBAAoB,EAAE,0DAA0D,CAAC;KACxF,MAAM,CAAC,iBAAiB,EAAE,6EAA6E,CAAC;KACxG,MAAM,CAAC,iBAAiB,EAAE,iDAAiD,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;KACvG,MAAM,CAAC,oBAAoB,EAAE,mCAAmC,CAAC;KACjE,MAAM,CAAC,WAAW,EAAE,8EAA8E,CAAC;KACnG,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACrB,MAAM,MAAM,GAA4B,EAAE,eAAe,EAAE,IAAI,CAAC,MAAM,IAAI,cAAc,EAAE,CAAC;IAC3F,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI;QAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;IACvD,MAAM,UAAU,GAA4B,EAAE,CAAC;IAC/C,IAAI,IAAI,CAAC,QAAQ;QAAE,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IACvD,MAAM,UAAU,CAAC,0BAA0B,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AACnH,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { Command } from "commander";
2
+ export declare const removeSubtitlesFromVideoOnlineFreeCmd: Command;
@@ -0,0 +1,21 @@
1
+ import { Command } from "commander";
2
+ import { executeRun } from "../run-helper.js";
3
+ export const removeSubtitlesFromVideoOnlineFreeCmd = new Command("remove-subtitles-from-video-online-free")
4
+ .summary("Remove subtitles from video online free — remove subtitles or text overlays from a video")
5
+ .description("Remove subtitles, captions, or text overlays from a video.\n\n" +
6
+ "Provide the video as a URL (--video). Local video files are not auto-uploaded;\n" +
7
+ "use 'weshop upload' first to get a hosted URL if needed.\n\n" +
8
+ "Examples:\n" +
9
+ " weshop remove-subtitles-from-video-online-free --video https://example.com/video.mp4\n" +
10
+ " weshop remove-subtitles-from-video-online-free --video https://example.com/video.mp4 --no-wait")
11
+ .requiredOption("--video <url>", "Input video URL")
12
+ .option("--task-name <name>", "Human-readable label for this run")
13
+ .option("--no-wait", "Return immediately after submission; use 'weshop status <id>' to check later")
14
+ .action(async (opts) => {
15
+ const params = { watermarkSelectType: "autoDetect" };
16
+ const extraInput = {};
17
+ if (opts.taskName)
18
+ extraInput.taskName = opts.taskName;
19
+ await executeRun("remove-subtitles-from-video-online-free", "v1.0", { videos: [opts.video], wait: opts.wait }, params, extraInput);
20
+ });
21
+ //# sourceMappingURL=remove-subtitles-from-video-online-free.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove-subtitles-from-video-online-free.js","sourceRoot":"","sources":["../../src/commands/remove-subtitles-from-video-online-free.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,CAAC,MAAM,qCAAqC,GAAG,IAAI,OAAO,CAAC,yCAAyC,CAAC;KACxG,OAAO,CAAC,0FAA0F,CAAC;KACnG,WAAW,CACV,gEAAgE;IAChE,kFAAkF;IAClF,8DAA8D;IAC9D,aAAa;IACb,0FAA0F;IAC1F,kGAAkG,CACnG;KACA,cAAc,CAAC,eAAe,EAAE,iBAAiB,CAAC;KAClD,MAAM,CAAC,oBAAoB,EAAE,mCAAmC,CAAC;KACjE,MAAM,CAAC,WAAW,EAAE,8EAA8E,CAAC;KACnG,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACrB,MAAM,MAAM,GAA4B,EAAE,mBAAmB,EAAE,YAAY,EAAE,CAAC;IAC9E,MAAM,UAAU,GAA4B,EAAE,CAAC;IAC/C,IAAI,IAAI,CAAC,QAAQ;QAAE,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IACvD,MAAM,UAAU,CAAC,yCAAyC,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AACrI,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { Command } from "commander";
2
+ export declare const removeTextFromVideoOnlineFreeCmd: Command;
@@ -0,0 +1,21 @@
1
+ import { Command } from "commander";
2
+ import { executeRun } from "../run-helper.js";
3
+ export const removeTextFromVideoOnlineFreeCmd = new Command("remove-text-from-video-online-free")
4
+ .summary("Remove text from video online free — remove text overlays or watermarks from a video")
5
+ .description("Remove text overlays, watermarks, or logos from a video using AI.\n\n" +
6
+ "Provide the video as a URL (--video). Local video files are not auto-uploaded;\n" +
7
+ "use 'weshop upload' first to get a hosted URL if needed.\n\n" +
8
+ "Examples:\n" +
9
+ " weshop remove-text-from-video-online-free --video https://example.com/video.mp4\n" +
10
+ " weshop remove-text-from-video-online-free --video https://example.com/video.mp4 --no-wait")
11
+ .requiredOption("--video <url>", "Input video URL")
12
+ .option("--task-name <name>", "Human-readable label for this run")
13
+ .option("--no-wait", "Return immediately after submission; use 'weshop status <id>' to check later")
14
+ .action(async (opts) => {
15
+ const params = { watermarkSelectType: "autoDetect" };
16
+ const extraInput = {};
17
+ if (opts.taskName)
18
+ extraInput.taskName = opts.taskName;
19
+ await executeRun("remove-text-from-video-online-free", "v1.0", { videos: [opts.video], wait: opts.wait }, params, extraInput);
20
+ });
21
+ //# sourceMappingURL=remove-text-from-video-online-free.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove-text-from-video-online-free.js","sourceRoot":"","sources":["../../src/commands/remove-text-from-video-online-free.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,CAAC,MAAM,gCAAgC,GAAG,IAAI,OAAO,CAAC,oCAAoC,CAAC;KAC9F,OAAO,CAAC,sFAAsF,CAAC;KAC/F,WAAW,CACV,uEAAuE;IACvE,kFAAkF;IAClF,8DAA8D;IAC9D,aAAa;IACb,qFAAqF;IACrF,6FAA6F,CAC9F;KACA,cAAc,CAAC,eAAe,EAAE,iBAAiB,CAAC;KAClD,MAAM,CAAC,oBAAoB,EAAE,mCAAmC,CAAC;KACjE,MAAM,CAAC,WAAW,EAAE,8EAA8E,CAAC;KACnG,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACrB,MAAM,MAAM,GAA4B,EAAE,mBAAmB,EAAE,YAAY,EAAE,CAAC;IAC9E,MAAM,UAAU,GAA4B,EAAE,CAAC;IAC/C,IAAI,IAAI,CAAC,QAAQ;QAAE,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IACvD,MAAM,UAAU,CAAC,oCAAoC,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AAChI,CAAC,CAAC,CAAC"}
@@ -17,7 +17,7 @@ export const removebgCmd = new Command("removebg")
17
17
  .option("--bg-hex <color>", "Replace background with this hex color, e.g. '#ffffff' for white, '#000000' for black")
18
18
  .option("--bg-id <id>", "Replace background with a preset color by ID (use 'weshop info removeBG' to list)", parseInt)
19
19
  .option("--custom-mask <path|url>", "PNG mask image defining the protected region. Masked area is preserved, transparent area is editable. Must match source image dimensions")
20
- .option("--batch <count>", "Number of images to generate, 1-16 (default: 4)", parseInt)
20
+ .option("--batch <count>", "Number of images to generate, 1-16 (default: 1)", (v) => parseInt(v, 10), 1)
21
21
  .option("--task-name <name>", "Human-readable label for this run")
22
22
  .option("--no-wait", "Return immediately after submission; use 'weshop status <id>' to check later")
23
23
  .action(async (opts) => {
@@ -30,7 +30,7 @@ export const removebgCmd = new Command("removebg")
30
30
  params.backgroundId = opts.bgId;
31
31
  if (opts.customMask)
32
32
  params.customMaskUrl = (await resolveImage(opts.customMask)).url;
33
- if (opts.batch)
33
+ if (opts.batch != null)
34
34
  params.batchCount = opts.batch;
35
35
  const extraInput = {};
36
36
  if (opts.taskName)
@@ -1 +1 @@
1
- {"version":3,"file":"removebg.js","sourceRoot":"","sources":["../../src/commands/removebg.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC;KAC/C,OAAO,CAAC,wDAAwD,CAAC;KACjE,WAAW,CACV,6DAA6D;IAC7D,6BAA6B;IAC7B,qFAAqF;IACrF,qHAAqH;IACrH,4EAA4E;IAC5E,aAAa;IACb,2FAA2F;IAC3F,4FAA4F;IAC5F,sGAAsG,CACvG;KACA,cAAc,CAAC,oBAAoB,EAAE,8EAA8E,CAAC;KACpH,cAAc,CAAC,oBAAoB,EAAE,kDAAkD,CAAC;KACxF,MAAM,CAAC,kBAAkB,EAAE,uFAAuF,CAAC;KACnH,MAAM,CAAC,cAAc,EAAE,mFAAmF,EAAE,QAAQ,CAAC;KACrH,MAAM,CAAC,0BAA0B,EAAE,0IAA0I,CAAC;KAC9K,MAAM,CAAC,iBAAiB,EAAE,iDAAiD,EAAE,QAAQ,CAAC;KACtF,MAAM,CAAC,oBAAoB,EAAE,mCAAmC,CAAC;KACjE,MAAM,CAAC,WAAW,EAAE,8EAA8E,CAAC;KACnG,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACrB,MAAM,MAAM,GAA4B;QACtC,QAAQ,EAAE,IAAI,CAAC,QAAQ;KACxB,CAAC;IACF,IAAI,IAAI,CAAC,KAAK;QAAE,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC;IAClD,IAAI,IAAI,CAAC,IAAI;QAAE,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC;IAC/C,IAAI,IAAI,CAAC,UAAU;QAAE,MAAM,CAAC,aAAa,GAAG,CAAC,MAAM,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC;IACtF,IAAI,IAAI,CAAC,KAAK;QAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;IAE/C,MAAM,UAAU,GAA4B,EAAE,CAAC;IAC/C,IAAI,IAAI,CAAC,QAAQ;QAAE,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAEvD,MAAM,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AACjE,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"removebg.js","sourceRoot":"","sources":["../../src/commands/removebg.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC;KAC/C,OAAO,CAAC,wDAAwD,CAAC;KACjE,WAAW,CACV,6DAA6D;IAC7D,6BAA6B;IAC7B,qFAAqF;IACrF,qHAAqH;IACrH,4EAA4E;IAC5E,aAAa;IACb,2FAA2F;IAC3F,4FAA4F;IAC5F,sGAAsG,CACvG;KACA,cAAc,CAAC,oBAAoB,EAAE,8EAA8E,CAAC;KACpH,cAAc,CAAC,oBAAoB,EAAE,kDAAkD,CAAC;KACxF,MAAM,CAAC,kBAAkB,EAAE,uFAAuF,CAAC;KACnH,MAAM,CAAC,cAAc,EAAE,mFAAmF,EAAE,QAAQ,CAAC;KACrH,MAAM,CAAC,0BAA0B,EAAE,0IAA0I,CAAC;KAC9K,MAAM,CAAC,iBAAiB,EAAE,iDAAiD,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;KACvG,MAAM,CAAC,oBAAoB,EAAE,mCAAmC,CAAC;KACjE,MAAM,CAAC,WAAW,EAAE,8EAA8E,CAAC;KACnG,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACrB,MAAM,MAAM,GAA4B;QACtC,QAAQ,EAAE,IAAI,CAAC,QAAQ;KACxB,CAAC;IACF,IAAI,IAAI,CAAC,KAAK;QAAE,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC;IAClD,IAAI,IAAI,CAAC,IAAI;QAAE,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC;IAC/C,IAAI,IAAI,CAAC,UAAU;QAAE,MAAM,CAAC,aAAa,GAAG,CAAC,MAAM,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC;IACtF,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI;QAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;IAEvD,MAAM,UAAU,GAA4B,EAAE,CAAC;IAC/C,IAAI,IAAI,CAAC,QAAQ;QAAE,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAEvD,MAAM,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AACjE,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { Command } from "commander";
2
+ export declare const replaceFaceInVideoOnlineFreeCmd: Command;
@@ -0,0 +1,34 @@
1
+ import { Command } from "commander";
2
+ import { executeRun } from "../run-helper.js";
3
+ export const replaceFaceInVideoOnlineFreeCmd = new Command("replace-face-in-video-online-free")
4
+ .summary("AI video face swap — replace a face in a video with a reference face photo")
5
+ .description("Replace a face in a video with a reference face from a photo.\n\n" +
6
+ "Provide the video as a URL (--video). Local video files are not auto-uploaded;\n" +
7
+ "use 'weshop upload' first to get a hosted URL if needed.\n\n" +
8
+ "The --image option accepts a local file path or URL for the reference face photo.\n\n" +
9
+ "Video requirements:\n" +
10
+ " - Format: .mp4 or .mov only\n" +
11
+ " - Resolution: min 340x340, max 3850x3850\n" +
12
+ " - Duration: 3–30 seconds\n\n" +
13
+ "Face image requirements:\n" +
14
+ " - Min 300x300 pixels\n" +
15
+ " - Aspect ratio ≤ 2.5:1\n\n" +
16
+ "Examples:\n" +
17
+ " weshop replace-face-in-video-online-free --video https://example.com/video.mp4 --image ./face.png\n" +
18
+ " weshop replace-face-in-video-online-free --video https://example.com/video.mp4 --image ./face.png --no-wait")
19
+ .requiredOption("--video <url>", "Input video URL")
20
+ .requiredOption("--image <path|url>", "Reference face photo — local file path or URL")
21
+ .option("--batch <count>", "Number of outputs to generate, 1-16 (default: 1)", (v) => parseInt(v, 10), 1)
22
+ .option("--task-name <name>", "Human-readable label for this run")
23
+ .option("--no-wait", "Return immediately after submission; use 'weshop status <id>' to check later")
24
+ .action(async (opts) => {
25
+ const params = {};
26
+ if (opts.batch != null)
27
+ params.batchCount = opts.batch;
28
+ const extraInput = {};
29
+ if (opts.taskName)
30
+ extraInput.taskName = opts.taskName;
31
+ // image (face photo) goes through executeRun's single-image path; video goes via videos[]
32
+ await executeRun("replace-face-in-video-online-free", "v1.0", { image: opts.image, videos: [opts.video], wait: opts.wait }, params, extraInput);
33
+ });
34
+ //# sourceMappingURL=replace-face-in-video-online-free.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replace-face-in-video-online-free.js","sourceRoot":"","sources":["../../src/commands/replace-face-in-video-online-free.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,CAAC,MAAM,+BAA+B,GAAG,IAAI,OAAO,CAAC,mCAAmC,CAAC;KAC5F,OAAO,CAAC,4EAA4E,CAAC;KACrF,WAAW,CACV,mEAAmE;IACnE,kFAAkF;IAClF,8DAA8D;IAC9D,uFAAuF;IACvF,uBAAuB;IACvB,iCAAiC;IACjC,8CAA8C;IAC9C,gCAAgC;IAChC,4BAA4B;IAC5B,0BAA0B;IAC1B,8BAA8B;IAC9B,aAAa;IACb,uGAAuG;IACvG,+GAA+G,CAChH;KACA,cAAc,CAAC,eAAe,EAAE,iBAAiB,CAAC;KAClD,cAAc,CAAC,oBAAoB,EAAE,+CAA+C,CAAC;KACrF,MAAM,CAAC,iBAAiB,EAAE,kDAAkD,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;KACxG,MAAM,CAAC,oBAAoB,EAAE,mCAAmC,CAAC;KACjE,MAAM,CAAC,WAAW,EAAE,8EAA8E,CAAC;KACnG,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACrB,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI;QAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;IAEvD,MAAM,UAAU,GAA4B,EAAE,CAAC;IAC/C,IAAI,IAAI,CAAC,QAAQ;QAAE,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAEvD,0FAA0F;IAC1F,MAAM,UAAU,CACd,mCAAmC,EAAE,MAAM,EAC3C,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAC5D,MAAM,EACN,UAAU,CACX,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { Command } from "commander";
2
+ export declare const seeThroughClothesFitlerCmd: Command;
@@ -0,0 +1,28 @@
1
+ import { Command } from "commander";
2
+ import { executeRun } from "../run-helper.js";
3
+ const DEFAULT_PROMPT = "Change the fabric to a super-thin and sheer material with no color, allowing for faint visibility through it.";
4
+ export const seeThroughClothesFitlerCmd = new Command("see-through-clothes-fitler")
5
+ .summary("See-through clothes filter — make clothing appear sheer and see-through")
6
+ .description("Transform a photo by making the clothing appear as a super-thin sheer material\n" +
7
+ "with faint visibility through it.\n\n" +
8
+ "Default prompt (used when --prompt is omitted):\n" +
9
+ ` "${DEFAULT_PROMPT}"\n\n` +
10
+ "Examples:\n" +
11
+ " weshop see-through-clothes-fitler --image ./person.png\n" +
12
+ " weshop see-through-clothes-fitler --image ./person.png --prompt 'Make the top appear as thin wet fabric'\n" +
13
+ " weshop see-through-clothes-fitler --image ./person.png --batch 2")
14
+ .requiredOption("--image <path|url>", "Input photo — local file path or URL")
15
+ .option("--prompt <text>", "Custom sheer fabric instruction")
16
+ .option("--batch <count>", "Number of images to generate, 1-16 (default: 1)", (v) => parseInt(v, 10), 1)
17
+ .option("--task-name <name>", "Human-readable label for this run")
18
+ .option("--no-wait", "Return immediately after submission; use 'weshop status <id>' to check later")
19
+ .action(async (opts) => {
20
+ const params = { textDescription: opts.prompt ?? DEFAULT_PROMPT };
21
+ if (opts.batch != null)
22
+ params.batchCount = opts.batch;
23
+ const extraInput = {};
24
+ if (opts.taskName)
25
+ extraInput.taskName = opts.taskName;
26
+ await executeRun("see-through-clothes-fitler", "v1.0", { image: opts.image, wait: opts.wait }, params, extraInput);
27
+ });
28
+ //# sourceMappingURL=see-through-clothes-fitler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"see-through-clothes-fitler.js","sourceRoot":"","sources":["../../src/commands/see-through-clothes-fitler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,cAAc,GAClB,+GAA+G,CAAC;AAElH,MAAM,CAAC,MAAM,0BAA0B,GAAG,IAAI,OAAO,CAAC,4BAA4B,CAAC;KAChF,OAAO,CAAC,yEAAyE,CAAC;KAClF,WAAW,CACV,kFAAkF;IAClF,uCAAuC;IACvC,mDAAmD;IACnD,MAAM,cAAc,OAAO;IAC3B,aAAa;IACb,4DAA4D;IAC5D,8GAA8G;IAC9G,oEAAoE,CACrE;KACA,cAAc,CAAC,oBAAoB,EAAE,sCAAsC,CAAC;KAC5E,MAAM,CAAC,iBAAiB,EAAE,iCAAiC,CAAC;KAC5D,MAAM,CAAC,iBAAiB,EAAE,iDAAiD,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;KACvG,MAAM,CAAC,oBAAoB,EAAE,mCAAmC,CAAC;KACjE,MAAM,CAAC,WAAW,EAAE,8EAA8E,CAAC;KACnG,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACrB,MAAM,MAAM,GAA4B,EAAE,eAAe,EAAE,IAAI,CAAC,MAAM,IAAI,cAAc,EAAE,CAAC;IAC3F,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI;QAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;IACvD,MAAM,UAAU,GAA4B,EAAE,CAAC;IAC/C,IAAI,IAAI,CAAC,QAAQ;QAAE,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IACvD,MAAM,UAAU,CAAC,4BAA4B,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AACrH,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { Command } from "commander";
2
+ export declare const seedanceCmd: Command;
@@ -0,0 +1,47 @@
1
+ import { Command } from "commander";
2
+ import { executeRun } from "../run-helper.js";
3
+ export const seedanceCmd = new Command("seedance")
4
+ .summary("Seedance video generator — create cinematic AI videos using Seedance 2.0 by ByteDance")
5
+ .description("Generate cinematic AI videos using Seedance models by ByteDance.\n" +
6
+ "Results come back in video[N].url.\n\n" +
7
+ "Model (--model):\n" +
8
+ " Seedance_20 Seedance 2.0 (default)\n" +
9
+ " Seedance_15_Pro Seedance 1.5 Pro\n" +
10
+ " Seedance_10_Pro Seedance 1.0 Pro\n" +
11
+ " Seedance_10_Pro_Fast Seedance 1.0 Pro Fast\n\n" +
12
+ "Duration (--duration):\n" +
13
+ " Seedance_20/1.5_Pro: 4s-15s (default: 4s)\n" +
14
+ " Seedance_10_Pro/Fast: 2s-12s (default: 4s)\n\n" +
15
+ "Aspect ratio (--aspect-ratio):\n" +
16
+ " Seedance_20/1.5_Pro: 21:9, 16:9, 9:16, 3:4, 4:3, 1:1 (default: 3:4)\n" +
17
+ " Seedance_10_Pro/Fast: 16:9, 9:16, 3:4, 4:3, 1:1 (default: 3:4)\n\n" +
18
+ "Generate audio (--generate-audio): true or false (Seedance_20 and 1.5_Pro only, default: true)\n\n" +
19
+ "Examples:\n" +
20
+ " weshop seedance --image ./scene.png --prompt 'Cinematic drone shot over a city'\n" +
21
+ " weshop seedance --image ./photo.png --prompt 'Person walks in slow motion' --model Seedance_15_Pro --duration 8s\n" +
22
+ " weshop seedance --image ./landscape.png --prompt 'Sunset timelapse' --aspect-ratio 16:9 --no-wait")
23
+ .requiredOption("--image <path|url>", "Input image — local file path or URL")
24
+ .requiredOption("--prompt <text>", "Describe the desired video scene")
25
+ .option("--model <name>", "Seedance model version (default: Seedance_20)")
26
+ .option("--duration <time>", "Video duration, e.g. 4s, 8s (default: 4s)")
27
+ .option("--aspect-ratio <ratio>", "Output aspect ratio (default: 3:4)")
28
+ .option("--generate-audio <bool>", "Generate audio: true (default) or false (Seedance_20 and 1.5_Pro only)")
29
+ .option("--batch <count>", "Number of videos to generate, 1-16 (default: 1)", (v) => parseInt(v, 10), 1)
30
+ .option("--task-name <name>", "Human-readable label for this run")
31
+ .option("--no-wait", "Return immediately after submission; use 'weshop status <id>' to check later")
32
+ .action(async (opts) => {
33
+ const params = {
34
+ textDescription: opts.prompt,
35
+ modelName: opts.model ?? "Seedance_20",
36
+ duration: opts.duration ?? "4s",
37
+ aspectRatio: opts.aspectRatio ?? "3:4",
38
+ generateAudio: opts.generateAudio ?? "true",
39
+ };
40
+ if (opts.batch != null)
41
+ params.batchCount = opts.batch;
42
+ const extraInput = {};
43
+ if (opts.taskName)
44
+ extraInput.taskName = opts.taskName;
45
+ await executeRun("seedance", "v1.0", { image: opts.image, wait: opts.wait }, params, extraInput);
46
+ });
47
+ //# sourceMappingURL=seedance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seedance.js","sourceRoot":"","sources":["../../src/commands/seedance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC;KAC/C,OAAO,CAAC,uFAAuF,CAAC;KAChG,WAAW,CACV,oEAAoE;IACpE,wCAAwC;IACxC,oBAAoB;IACpB,iDAAiD;IACjD,2CAA2C;IAC3C,2CAA2C;IAC3C,kDAAkD;IAClD,0BAA0B;IAC1B,gDAAgD;IAChD,mDAAmD;IACnD,kCAAkC;IAClC,0EAA0E;IAC1E,uEAAuE;IACvE,oGAAoG;IACpG,aAAa;IACb,qFAAqF;IACrF,sHAAsH;IACtH,qGAAqG,CACtG;KACA,cAAc,CAAC,oBAAoB,EAAE,sCAAsC,CAAC;KAC5E,cAAc,CAAC,iBAAiB,EAAE,kCAAkC,CAAC;KACrE,MAAM,CAAC,gBAAgB,EAAE,+CAA+C,CAAC;KACzE,MAAM,CAAC,mBAAmB,EAAE,2CAA2C,CAAC;KACxE,MAAM,CAAC,wBAAwB,EAAE,oCAAoC,CAAC;KACtE,MAAM,CAAC,yBAAyB,EAAE,wEAAwE,CAAC;KAC3G,MAAM,CAAC,iBAAiB,EAAE,iDAAiD,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;KACvG,MAAM,CAAC,oBAAoB,EAAE,mCAAmC,CAAC;KACjE,MAAM,CAAC,WAAW,EAAE,8EAA8E,CAAC;KACnG,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACrB,MAAM,MAAM,GAA4B;QACtC,eAAe,EAAE,IAAI,CAAC,MAAM;QAC5B,SAAS,EAAE,IAAI,CAAC,KAAK,IAAI,aAAa;QACtC,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI;QAC/B,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,KAAK;QACtC,aAAa,EAAE,IAAI,CAAC,aAAa,IAAI,MAAM;KAC5C,CAAC;IACF,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI;QAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;IAEvD,MAAM,UAAU,GAA4B,EAAE,CAAC;IAC/C,IAAI,IAAI,CAAC,QAAQ;QAAE,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAEvD,MAAM,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AACnG,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { Command } from "commander";
2
+ export declare const seedreamCmd: Command;
@@ -0,0 +1,53 @@
1
+ import { Command } from "commander";
2
+ import { executeRun } from "../run-helper.js";
3
+ export const seedreamCmd = new Command("seedream")
4
+ .summary("AI image generation — create and edit images with Seedream 5.0")
5
+ .description("AI image generation — create and edit images using the Seedream 5.0 model by ByteDance.\n\n" +
6
+ "Provide a text prompt to generate images from scratch, or attach up to 14 reference images\n" +
7
+ "for guided editing. Images are optional — text-only generation is supported.\n\n" +
8
+ "Image size (--image-size):\n" +
9
+ " 2K 2K resolution (default)\n" +
10
+ " 3K 3K resolution\n\n" +
11
+ "Aspect ratio (--aspect-ratio):\n" +
12
+ " 1:1, 2:3, 3:2, 4:3, 3:4, 16:9, 9:16, 21:9 (default: 3:4)\n\n" +
13
+ "Output format (--output-format):\n" +
14
+ " jpeg JPEG format (default)\n" +
15
+ " png PNG format\n\n" +
16
+ "Tools (--tool):\n" +
17
+ " web_search Enable web search for prompt enrichment\n\n" +
18
+ "Examples:\n" +
19
+ " weshop seedream --prompt 'A futuristic cityscape at sunset'\n" +
20
+ " weshop seedream --image ./sketch.png --prompt 'Turn this into a photorealistic scene' --image-size 3K\n" +
21
+ " weshop seedream --prompt 'Product photo of sneakers' --aspect-ratio 1:1 --output-format png --batch 4")
22
+ .option("--image <path|url...>", "Reference images — local file paths or URLs (up to 14, optional)")
23
+ .requiredOption("--prompt <text>", "Describe the desired image or edit")
24
+ .option("--image-size <size>", "Output resolution: 2K (default) or 3K")
25
+ .option("--aspect-ratio <ratio>", "Output aspect ratio (default: 3:4)")
26
+ .option("--output-format <fmt>", "Output format: jpeg (default) or png")
27
+ .option("--tool <name...>", "Enable tools, e.g. web_search")
28
+ .option("--batch <count>", "Number of images to generate, 1-16 (default: 1)", (v) => parseInt(v, 10), 1)
29
+ .option("--task-name <name>", "Human-readable label for this run")
30
+ .option("--no-wait", "Return immediately after submission; use 'weshop status <id>' to check later")
31
+ .action(async (opts) => {
32
+ const imageList = opts.image;
33
+ if (imageList && imageList.length > 14) {
34
+ console.error("[error]\n message: Maximum 14 images allowed");
35
+ process.exit(1);
36
+ }
37
+ const params = { textDescription: opts.prompt };
38
+ if (opts.batch != null)
39
+ params.batchCount = opts.batch;
40
+ if (opts.imageSize)
41
+ params.imageSize = opts.imageSize;
42
+ if (opts.aspectRatio)
43
+ params.aspectRatio = opts.aspectRatio;
44
+ if (opts.outputFormat)
45
+ params.outputFormat = opts.outputFormat;
46
+ if (opts.tool)
47
+ params.tools = opts.tool;
48
+ const extraInput = {};
49
+ if (opts.taskName)
50
+ extraInput.taskName = opts.taskName;
51
+ await executeRun("seedream", "v1.0", { images: imageList, wait: opts.wait }, params, extraInput);
52
+ });
53
+ //# sourceMappingURL=seedream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seedream.js","sourceRoot":"","sources":["../../src/commands/seedream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC;KAC/C,OAAO,CAAC,gEAAgE,CAAC;KACzE,WAAW,CACV,6FAA6F;IAC7F,8FAA8F;IAC9F,kFAAkF;IAClF,8BAA8B;IAC9B,mCAAmC;IACnC,2BAA2B;IAC3B,kCAAkC;IAClC,iEAAiE;IACjE,oCAAoC;IACpC,kCAAkC;IAClC,yBAAyB;IACzB,mBAAmB;IACnB,4DAA4D;IAC5D,aAAa;IACb,iEAAiE;IACjE,2GAA2G;IAC3G,yGAAyG,CAC1G;KACA,MAAM,CAAC,uBAAuB,EAAE,kEAAkE,CAAC;KACnG,cAAc,CAAC,iBAAiB,EAAE,oCAAoC,CAAC;KACvE,MAAM,CAAC,qBAAqB,EAAE,uCAAuC,CAAC;KACtE,MAAM,CAAC,wBAAwB,EAAE,oCAAoC,CAAC;KACtE,MAAM,CAAC,uBAAuB,EAAE,sCAAsC,CAAC;KACvE,MAAM,CAAC,kBAAkB,EAAE,+BAA+B,CAAC;KAC3D,MAAM,CAAC,iBAAiB,EAAE,iDAAiD,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;KACvG,MAAM,CAAC,oBAAoB,EAAE,mCAAmC,CAAC;KACjE,MAAM,CAAC,WAAW,EAAE,8EAA8E,CAAC;KACnG,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACrB,MAAM,SAAS,GAAyB,IAAI,CAAC,KAAK,CAAC;IACnD,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QACvC,OAAO,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;QAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,MAAM,GAA4B,EAAE,eAAe,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;IACzE,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI;QAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;IACvD,IAAI,IAAI,CAAC,SAAS;QAAE,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;IACtD,IAAI,IAAI,CAAC,WAAW;QAAE,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;IAC5D,IAAI,IAAI,CAAC,YAAY;QAAE,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;IAC/D,IAAI,IAAI,CAAC,IAAI;QAAE,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC;IAExC,MAAM,UAAU,GAA4B,EAAE,CAAC;IAC/C,IAAI,IAAI,CAAC,QAAQ;QAAE,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAEvD,MAAM,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AACnG,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { Command } from "commander";
2
+ export declare const sexAiGeneratorCmd: Command;
@@ -0,0 +1,34 @@
1
+ import { Command } from "commander";
2
+ import { executeRun } from "../run-helper.js";
3
+ const DEFAULT_PROMPT = "naturally undress and change the outfit into a thin bikini while keeping body proportions natural. Keep Model dancing tiktok dance.";
4
+ export const sexAiGeneratorCmd = new Command("sex-ai-generator")
5
+ .summary("Sex AI generator — transform a person photo into a bikini model image or video")
6
+ .description("Transform a portrait or full-body photo into a bikini model image or video.\n\n" +
7
+ "Generated type (--generated-type):\n" +
8
+ " video Generate a short video (default)\n" +
9
+ " image Generate a still image\n\n" +
10
+ "Default prompt (used when --prompt is omitted):\n" +
11
+ ` "${DEFAULT_PROMPT}"\n\n` +
12
+ "Examples:\n" +
13
+ " weshop sex-ai-generator --image ./person.png --prompt 'Bikini model on a beach'\n" +
14
+ " weshop sex-ai-generator --image ./person.png --generated-type image --batch 2\n" +
15
+ " weshop sex-ai-generator --image ./person.png --generated-type video --no-wait")
16
+ .requiredOption("--image <path|url>", "Input portrait or full-body photo — local file path or URL")
17
+ .option("--prompt <text>", "Describe the desired bikini model scene")
18
+ .option("--generated-type <type>", "Output type: video (default) or image")
19
+ .option("--batch <count>", "Number of outputs to generate, 1-16 (default: 1)", (v) => parseInt(v, 10), 1)
20
+ .option("--task-name <name>", "Human-readable label for this run")
21
+ .option("--no-wait", "Return immediately after submission; use 'weshop status <id>' to check later")
22
+ .action(async (opts) => {
23
+ const params = {
24
+ textDescription: opts.prompt ?? DEFAULT_PROMPT,
25
+ generatedType: opts.generatedType ?? "video",
26
+ };
27
+ if (opts.batch != null)
28
+ params.batchCount = opts.batch;
29
+ const extraInput = {};
30
+ if (opts.taskName)
31
+ extraInput.taskName = opts.taskName;
32
+ await executeRun("sex-ai-generator", "v1.0", { image: opts.image, wait: opts.wait }, params, extraInput);
33
+ });
34
+ //# sourceMappingURL=sex-ai-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sex-ai-generator.js","sourceRoot":"","sources":["../../src/commands/sex-ai-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,cAAc,GAClB,qIAAqI,CAAC;AAExI,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,OAAO,CAAC,kBAAkB,CAAC;KAC7D,OAAO,CAAC,gFAAgF,CAAC;KACzF,WAAW,CACV,iFAAiF;IACjF,sCAAsC;IACtC,8CAA8C;IAC9C,sCAAsC;IACtC,mDAAmD;IACnD,MAAM,cAAc,OAAO;IAC3B,aAAa;IACb,qFAAqF;IACrF,mFAAmF;IACnF,iFAAiF,CAClF;KACA,cAAc,CAAC,oBAAoB,EAAE,4DAA4D,CAAC;KAClG,MAAM,CAAC,iBAAiB,EAAE,yCAAyC,CAAC;KACpE,MAAM,CAAC,yBAAyB,EAAE,uCAAuC,CAAC;KAC1E,MAAM,CAAC,iBAAiB,EAAE,kDAAkD,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;KACxG,MAAM,CAAC,oBAAoB,EAAE,mCAAmC,CAAC;KACjE,MAAM,CAAC,WAAW,EAAE,8EAA8E,CAAC;KACnG,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACrB,MAAM,MAAM,GAA4B;QACtC,eAAe,EAAE,IAAI,CAAC,MAAM,IAAI,cAAc;QAC9C,aAAa,EAAE,IAAI,CAAC,aAAa,IAAI,OAAO;KAC7C,CAAC;IACF,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI;QAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;IACvD,MAAM,UAAU,GAA4B,EAAE,CAAC;IAC/C,IAAI,IAAI,CAAC,QAAQ;QAAE,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IACvD,MAAM,UAAU,CAAC,kBAAkB,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AAC3G,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { Command } from "commander";
2
+ export declare const sexyAiPicsCmd: Command;
@@ -0,0 +1,26 @@
1
+ import { Command } from "commander";
2
+ import { executeRun } from "../run-helper.js";
3
+ const DEFAULT_PROMPT = "naturally undress and change the outfit into a thin bikini while keeping body proportions natural. Keep Model dancing tiktok dance.";
4
+ export const sexyAiPicsCmd = new Command("sexy-ai-pics")
5
+ .summary("AI sexy pics generator — generate stylish and attractive photos from a person image")
6
+ .description("Generate stylish, attractive photos from a person image. Prompt is required.\n\n" +
7
+ "Default prompt (used when --prompt is omitted):\n" +
8
+ ` "${DEFAULT_PROMPT}"\n\n` +
9
+ "Examples:\n" +
10
+ " weshop sexy-ai-pics --image ./person.png --prompt 'Glamour shot in a luxury hotel'\n" +
11
+ " weshop sexy-ai-pics --image ./person.png --prompt 'Bikini on a tropical beach' --batch 2")
12
+ .requiredOption("--image <path|url>", "Input person photo — local file path or URL")
13
+ .option("--prompt <text>", "Describe the desired scene")
14
+ .option("--batch <count>", "Number of images to generate, 1-16 (default: 1)", (v) => parseInt(v, 10), 1)
15
+ .option("--task-name <name>", "Human-readable label for this run")
16
+ .option("--no-wait", "Return immediately after submission; use 'weshop status <id>' to check later")
17
+ .action(async (opts) => {
18
+ const params = { textDescription: opts.prompt ?? DEFAULT_PROMPT };
19
+ if (opts.batch != null)
20
+ params.batchCount = opts.batch;
21
+ const extraInput = {};
22
+ if (opts.taskName)
23
+ extraInput.taskName = opts.taskName;
24
+ await executeRun("sexy-ai-pics", "v1.0", { image: opts.image, wait: opts.wait }, params, extraInput);
25
+ });
26
+ //# sourceMappingURL=sexy-ai-pics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sexy-ai-pics.js","sourceRoot":"","sources":["../../src/commands/sexy-ai-pics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,cAAc,GAClB,qIAAqI,CAAC;AAExI,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC,cAAc,CAAC;KACrD,OAAO,CAAC,qFAAqF,CAAC;KAC9F,WAAW,CACV,kFAAkF;IAClF,mDAAmD;IACnD,MAAM,cAAc,OAAO;IAC3B,aAAa;IACb,wFAAwF;IACxF,4FAA4F,CAC7F;KACA,cAAc,CAAC,oBAAoB,EAAE,6CAA6C,CAAC;KACnF,MAAM,CAAC,iBAAiB,EAAE,4BAA4B,CAAC;KACvD,MAAM,CAAC,iBAAiB,EAAE,iDAAiD,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;KACvG,MAAM,CAAC,oBAAoB,EAAE,mCAAmC,CAAC;KACjE,MAAM,CAAC,WAAW,EAAE,8EAA8E,CAAC;KACnG,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACrB,MAAM,MAAM,GAA4B,EAAE,eAAe,EAAE,IAAI,CAAC,MAAM,IAAI,cAAc,EAAE,CAAC;IAC3F,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI;QAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;IACvD,MAAM,UAAU,GAA4B,EAAE,CAAC;IAC/C,IAAI,IAAI,CAAC,QAAQ;QAAE,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IACvD,MAAM,UAAU,CAAC,cAAc,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AACvG,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { Command } from "commander";
2
+ export declare const skinColorChangerCmd: Command;
@@ -0,0 +1,28 @@
1
+ import { Command } from "commander";
2
+ import { executeRun } from "../run-helper.js";
3
+ const DEFAULT_PROMPT = "Change skin tone to a healthy wheat color while keeping original face detail and lighting composition.";
4
+ export const skinColorChangerCmd = new Command("skin-color-changer")
5
+ .summary("AI skin color changer — change a person's skin tone while preserving face details")
6
+ .description("Transform a portrait photo by changing the skin tone while preserving original\n" +
7
+ "face details and lighting composition.\n\n" +
8
+ "Default prompt (used when --prompt is omitted):\n" +
9
+ ` "${DEFAULT_PROMPT}"\n\n` +
10
+ "Examples:\n" +
11
+ " weshop skin-color-changer --image ./person.png\n" +
12
+ " weshop skin-color-changer --image ./person.png --prompt 'Change skin tone to a deep tan'\n" +
13
+ " weshop skin-color-changer --image ./person.png --batch 2")
14
+ .requiredOption("--image <path|url>", "Input portrait image — local file path or URL")
15
+ .option("--prompt <text>", "Custom skin tone instruction (default: healthy wheat color)")
16
+ .option("--batch <count>", "Number of images to generate, 1-16 (default: 1)", (v) => parseInt(v, 10), 1)
17
+ .option("--task-name <name>", "Human-readable label for this run")
18
+ .option("--no-wait", "Return immediately after submission; use 'weshop status <id>' to check later")
19
+ .action(async (opts) => {
20
+ const params = { textDescription: opts.prompt ?? DEFAULT_PROMPT };
21
+ if (opts.batch != null)
22
+ params.batchCount = opts.batch;
23
+ const extraInput = {};
24
+ if (opts.taskName)
25
+ extraInput.taskName = opts.taskName;
26
+ await executeRun("skin-color-changer", "v1.0", { image: opts.image, wait: opts.wait }, params, extraInput);
27
+ });
28
+ //# sourceMappingURL=skin-color-changer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skin-color-changer.js","sourceRoot":"","sources":["../../src/commands/skin-color-changer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,cAAc,GAClB,wGAAwG,CAAC;AAE3G,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,OAAO,CAAC,oBAAoB,CAAC;KACjE,OAAO,CAAC,mFAAmF,CAAC;KAC5F,WAAW,CACV,kFAAkF;IAClF,4CAA4C;IAC5C,mDAAmD;IACnD,MAAM,cAAc,OAAO;IAC3B,aAAa;IACb,oDAAoD;IACpD,8FAA8F;IAC9F,4DAA4D,CAC7D;KACA,cAAc,CAAC,oBAAoB,EAAE,+CAA+C,CAAC;KACrF,MAAM,CAAC,iBAAiB,EAAE,6DAA6D,CAAC;KACxF,MAAM,CAAC,iBAAiB,EAAE,iDAAiD,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;KACvG,MAAM,CAAC,oBAAoB,EAAE,mCAAmC,CAAC;KACjE,MAAM,CAAC,WAAW,EAAE,8EAA8E,CAAC;KACnG,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACrB,MAAM,MAAM,GAA4B,EAAE,eAAe,EAAE,IAAI,CAAC,MAAM,IAAI,cAAc,EAAE,CAAC;IAC3F,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI;QAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;IACvD,MAAM,UAAU,GAA4B,EAAE,CAAC;IAC/C,IAAI,IAAI,CAAC,QAAQ;QAAE,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IACvD,MAAM,UAAU,CAAC,oBAAoB,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AAC7G,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { Command } from "commander";
2
+ export declare const sonicOcCmd: Command;
@@ -0,0 +1,28 @@
1
+ import { Command } from "commander";
2
+ import { executeRun } from "../run-helper.js";
3
+ const DEFAULT_PROMPT = "Make a sonic oc based on this person's appearance";
4
+ export const sonicOcCmd = new Command("sonic-oc")
5
+ .summary("AI Sonic OC maker — create a Sonic the Hedgehog original character based on a person's appearance")
6
+ .description("Generate a Sonic the Hedgehog-style original character (OC) based on a person's appearance.\n" +
7
+ "Image is optional — you can generate a Sonic OC from a text description alone.\n\n" +
8
+ "Default prompt (used when --prompt is omitted):\n" +
9
+ ` "${DEFAULT_PROMPT}"\n\n` +
10
+ "Examples:\n" +
11
+ " weshop sonic-oc --image ./person.png\n" +
12
+ " weshop sonic-oc --prompt 'A fast blue hedgehog OC with red sneakers and a confident pose'\n" +
13
+ " weshop sonic-oc --image ./person.png --prompt 'Sonic OC with purple fur and gold rings' --batch 2")
14
+ .option("--image <path|url>", "Reference person image — local file path or URL (optional)")
15
+ .option("--prompt <text>", "Custom Sonic OC description (default: based on person's appearance)")
16
+ .option("--batch <count>", "Number of images to generate, 1-16 (default: 1)", (v) => parseInt(v, 10), 1)
17
+ .option("--task-name <name>", "Human-readable label for this run")
18
+ .option("--no-wait", "Return immediately after submission; use 'weshop status <id>' to check later")
19
+ .action(async (opts) => {
20
+ const params = { textDescription: opts.prompt ?? DEFAULT_PROMPT };
21
+ if (opts.batch != null)
22
+ params.batchCount = opts.batch;
23
+ const extraInput = {};
24
+ if (opts.taskName)
25
+ extraInput.taskName = opts.taskName;
26
+ await executeRun("sonic-oc", "v1.0", { image: opts.image, wait: opts.wait }, params, extraInput);
27
+ });
28
+ //# sourceMappingURL=sonic-oc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sonic-oc.js","sourceRoot":"","sources":["../../src/commands/sonic-oc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,cAAc,GAAG,mDAAmD,CAAC;AAE3E,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC;KAC9C,OAAO,CAAC,mGAAmG,CAAC;KAC5G,WAAW,CACV,+FAA+F;IAC/F,oFAAoF;IACpF,mDAAmD;IACnD,MAAM,cAAc,OAAO;IAC3B,aAAa;IACb,0CAA0C;IAC1C,+FAA+F;IAC/F,qGAAqG,CACtG;KACA,MAAM,CAAC,oBAAoB,EAAE,4DAA4D,CAAC;KAC1F,MAAM,CAAC,iBAAiB,EAAE,qEAAqE,CAAC;KAChG,MAAM,CAAC,iBAAiB,EAAE,iDAAiD,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;KACvG,MAAM,CAAC,oBAAoB,EAAE,mCAAmC,CAAC;KACjE,MAAM,CAAC,WAAW,EAAE,8EAA8E,CAAC;KACnG,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACrB,MAAM,MAAM,GAA4B,EAAE,eAAe,EAAE,IAAI,CAAC,MAAM,IAAI,cAAc,EAAE,CAAC;IAC3F,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI;QAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;IACvD,MAAM,UAAU,GAA4B,EAAE,CAAC;IAC/C,IAAI,IAAI,CAAC,QAAQ;QAAE,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IACvD,MAAM,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AACnG,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { Command } from "commander";
2
+ export declare const sora2Cmd: Command;