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,27 @@
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 aiSwimSuitModelCmd = new Command("ai-swimsuit-model")
5
+ .summary("AI swimsuit model — transform a person photo into a swimsuit model image")
6
+ .description("Transform a portrait or full-body photo into a swimsuit model image.\n\n" +
7
+ "Default prompt (used when --prompt is omitted):\n" +
8
+ ` "${DEFAULT_PROMPT}"\n\n` +
9
+ "Examples:\n" +
10
+ " weshop ai-swimsuit-model --image ./person.png\n" +
11
+ " weshop ai-swimsuit-model --image ./person.png --prompt 'One-piece swimsuit on a tropical beach'\n" +
12
+ " weshop ai-swimsuit-model --image ./person.png --batch 2")
13
+ .requiredOption("--image <path|url>", "Input person photo — local file path or URL")
14
+ .option("--prompt <text>", "Custom swimsuit scene instruction")
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("ai-swimsuit-model", "v1.0", { image: opts.image, wait: opts.wait }, params, extraInput);
26
+ });
27
+ //# sourceMappingURL=ai-swimsuit-model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-swimsuit-model.js","sourceRoot":"","sources":["../../src/commands/ai-swimsuit-model.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,kBAAkB,GAAG,IAAI,OAAO,CAAC,mBAAmB,CAAC;KAC/D,OAAO,CAAC,0EAA0E,CAAC;KACnF,WAAW,CACV,0EAA0E;IAC1E,mDAAmD;IACnD,MAAM,cAAc,OAAO;IAC3B,aAAa;IACb,mDAAmD;IACnD,qGAAqG;IACrG,2DAA2D,CAC5D;KACA,cAAc,CAAC,oBAAoB,EAAE,6CAA6C,CAAC;KACnF,MAAM,CAAC,iBAAiB,EAAE,mCAAmC,CAAC;KAC9D,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,mBAAmB,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AAC5G,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { Command } from "commander";
2
+ export declare const aiTattooGeneratorCmd: Command;
@@ -0,0 +1,27 @@
1
+ import { Command } from "commander";
2
+ import { executeRun } from "../run-helper.js";
3
+ const DEFAULT_PROMPT = "Generate aline art style single piece no color tattoo design try-on, small, on arm.";
4
+ export const aiTattooGeneratorCmd = new Command("ai-tattoo-generator")
5
+ .summary("AI tattoo generator — create a tattoo design try-on from text or reference image")
6
+ .description("Generate a tattoo design and apply it as a try-on. Image is optional.\n\n" +
7
+ "Default prompt (used when --prompt is omitted):\n" +
8
+ ` "${DEFAULT_PROMPT}"\n\n` +
9
+ "Examples:\n" +
10
+ " weshop ai-tattoo-generator --image ./person.png\n" +
11
+ " weshop ai-tattoo-generator --image ./person.png --prompt 'Dragon tattoo on forearm, black ink'\n" +
12
+ " weshop ai-tattoo-generator --prompt 'Minimalist mountain tattoo design' --batch 4")
13
+ .option("--image <path|url>", "Reference person image — local file path or URL (optional)")
14
+ .option("--prompt <text>", "Describe the desired tattoo design and placement")
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("ai-tattoo-generator", "v1.0", { image: opts.image, wait: opts.wait }, params, extraInput);
26
+ });
27
+ //# sourceMappingURL=ai-tattoo-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-tattoo-generator.js","sourceRoot":"","sources":["../../src/commands/ai-tattoo-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,cAAc,GAAG,qFAAqF,CAAC;AAE7G,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,OAAO,CAAC,qBAAqB,CAAC;KACnE,OAAO,CAAC,kFAAkF,CAAC;KAC3F,WAAW,CACV,2EAA2E;IAC3E,mDAAmD;IACnD,MAAM,cAAc,OAAO;IAC3B,aAAa;IACb,qDAAqD;IACrD,oGAAoG;IACpG,qFAAqF,CACtF;KACA,MAAM,CAAC,oBAAoB,EAAE,4DAA4D,CAAC;KAC1F,MAAM,CAAC,iBAAiB,EAAE,kDAAkD,CAAC;KAC7E,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,qBAAqB,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AAC9G,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { Command } from "commander";
2
+ export declare const aiTextRemoverFromVideoCmd: Command;
@@ -0,0 +1,21 @@
1
+ import { Command } from "commander";
2
+ import { executeRun } from "../run-helper.js";
3
+ export const aiTextRemoverFromVideoCmd = new Command("ai-text-remover-from-video")
4
+ .summary("AI text remover from video — 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 ai-text-remover-from-video --video https://example.com/video.mp4\n" +
10
+ " weshop ai-text-remover-from-video --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("ai-text-remover-from-video", "v1.0", { videos: [opts.video], wait: opts.wait }, params, extraInput);
20
+ });
21
+ //# sourceMappingURL=ai-text-remover-from-video.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-text-remover-from-video.js","sourceRoot":"","sources":["../../src/commands/ai-text-remover-from-video.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,CAAC,MAAM,yBAAyB,GAAG,IAAI,OAAO,CAAC,4BAA4B,CAAC;KAC/E,OAAO,CAAC,8EAA8E,CAAC;KACvF,WAAW,CACV,uEAAuE;IACvE,kFAAkF;IAClF,8DAA8D;IAC9D,aAAa;IACb,6EAA6E;IAC7E,qFAAqF,CACtF;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,4BAA4B,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AACxH,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { Command } from "commander";
2
+ export declare const aiTranslateCmd: Command;
@@ -0,0 +1,28 @@
1
+ import { Command } from "commander";
2
+ import { executeRun } from "../run-helper.js";
3
+ const DEFAULT_PROMPT = "Translate all text in this image to English. Keep the same design and aesthetics to maintain the style of the image. Don't simply put the text on the new image, try to generate text as original.";
4
+ export const aiTranslateCmd = new Command("ai-translate")
5
+ .summary("AI image text translator — translate text in an image to another language while preserving design")
6
+ .description("Translate all text in an image to English (or a specified language) while preserving\n" +
7
+ "the original design, layout, and visual style.\n\n" +
8
+ "Default prompt (used when --prompt is omitted):\n" +
9
+ ` "${DEFAULT_PROMPT}"\n\n` +
10
+ "Examples:\n" +
11
+ " weshop ai-translate --image ./poster.png\n" +
12
+ " weshop ai-translate --image ./menu.png --prompt 'Translate all text to French, keep original design'\n" +
13
+ " weshop ai-translate --image ./sign.png --batch 2")
14
+ .requiredOption("--image <path|url>", "Input image containing text — local file path or URL")
15
+ .option("--prompt <text>", "Custom translation instruction (default: translate to English)")
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("ai-translate", "v1.0", { image: opts.image, wait: opts.wait }, params, extraInput);
27
+ });
28
+ //# sourceMappingURL=ai-translate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-translate.js","sourceRoot":"","sources":["../../src/commands/ai-translate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,cAAc,GAClB,oMAAoM,CAAC;AAEvM,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,OAAO,CAAC,cAAc,CAAC;KACtD,OAAO,CAAC,mGAAmG,CAAC;KAC5G,WAAW,CACV,wFAAwF;IACxF,oDAAoD;IACpD,mDAAmD;IACnD,MAAM,cAAc,OAAO;IAC3B,aAAa;IACb,8CAA8C;IAC9C,0GAA0G;IAC1G,oDAAoD,CACrD;KACA,cAAc,CAAC,oBAAoB,EAAE,sDAAsD,CAAC;KAC5F,MAAM,CAAC,iBAAiB,EAAE,gEAAgE,CAAC;KAC3F,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 aiVideoEnhancerCmd: Command;
@@ -0,0 +1,29 @@
1
+ import { Command } from "commander";
2
+ import { executeRun } from "../run-helper.js";
3
+ export const aiVideoEnhancerCmd = new Command("ai-video-enhancer")
4
+ .summary("AI video enhancer — upscale and enhance video quality using AI")
5
+ .description("Upscale and enhance video quality 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
+ "Video requirements:\n" +
9
+ " - Max resolution: 2048x2048\n" +
10
+ " - Duration: 1–120 seconds\n\n" +
11
+ "Video size (--video-size): target output resolution, e.g. 2K, 4K\n\n" +
12
+ "Examples:\n" +
13
+ " weshop ai-video-enhancer --video https://example.com/video.mp4\n" +
14
+ " weshop ai-video-enhancer --video https://example.com/video.mp4 --video-size 4K\n" +
15
+ " weshop ai-video-enhancer --video https://example.com/video.mp4 --no-wait")
16
+ .requiredOption("--video <url>", "Input video URL")
17
+ .option("--video-size <size>", "Target output resolution, e.g. 2K or 4K")
18
+ .option("--task-name <name>", "Human-readable label for this run")
19
+ .option("--no-wait", "Return immediately after submission; use 'weshop status <id>' to check later")
20
+ .action(async (opts) => {
21
+ const params = {};
22
+ if (opts.videoSize)
23
+ params.videoSize = opts.videoSize;
24
+ const extraInput = {};
25
+ if (opts.taskName)
26
+ extraInput.taskName = opts.taskName;
27
+ await executeRun("ai-video-enhancer", "v1.0", { videos: [opts.video], wait: opts.wait }, params, extraInput);
28
+ });
29
+ //# sourceMappingURL=ai-video-enhancer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-video-enhancer.js","sourceRoot":"","sources":["../../src/commands/ai-video-enhancer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,OAAO,CAAC,mBAAmB,CAAC;KAC/D,OAAO,CAAC,gEAAgE,CAAC;KACzE,WAAW,CACV,iDAAiD;IACjD,kFAAkF;IAClF,8DAA8D;IAC9D,uBAAuB;IACvB,iCAAiC;IACjC,iCAAiC;IACjC,sEAAsE;IACtE,aAAa;IACb,oEAAoE;IACpE,oFAAoF;IACpF,4EAA4E,CAC7E;KACA,cAAc,CAAC,eAAe,EAAE,iBAAiB,CAAC;KAClD,MAAM,CAAC,qBAAqB,EAAE,yCAAyC,CAAC;KACxE,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,SAAS;QAAE,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;IAEtD,MAAM,UAAU,GAA4B,EAAE,CAAC;IAC/C,IAAI,IAAI,CAAC,QAAQ;QAAE,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAEvD,MAAM,UAAU,CAAC,mBAAmB,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AAC/G,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { Command } from "commander";
2
+ export declare const aiWerewolfCmd: Command;
@@ -0,0 +1,43 @@
1
+ import { Command } from "commander";
2
+ import { executeRun } from "../run-helper.js";
3
+ const DEFAULT_PROMPT = "The character in the image suddenly begins a violent werewolf transformation. Muscles rapidly expand, veins bulge under the skin. The character roars in pain as their clothes tear apart from the expanding body. Dark fur quickly grows across the arms, chest, and face, covering the body as the transformation continues. Hands stretch and twist into sharp claws, fingers elongating. The jaw extends into a wolf-like muzzle, teeth sharpening into fangs. Eyes glow with a wild golden light. The camera slowly circles the character as the transformation intensifies, pieces of torn clothing flying through the air. By the end, a full ferocious werewolf stands where the human once was, breathing heavily, surrounded by drifting fabric fragments. cinematic lighting, dramatic shadows, dark fantasy atmosphere, high detail, dynamic motion, 4K.";
4
+ export const aiWerewolfCmd = new Command("ai-werewolf")
5
+ .summary("AI werewolf generator — create a dramatic werewolf transformation video from a person photo")
6
+ .description("Generate a cinematic werewolf transformation video from a person photo.\n" +
7
+ "Results come back in video[N].url.\n\n" +
8
+ "Model (--model):\n" +
9
+ " Kling_3_0 Kling 3.0 — supports 3s-15s duration (default)\n" +
10
+ " Kling_2_6 Kling 2.6 — supports 5s, 10s duration\n\n" +
11
+ "Duration (--duration):\n" +
12
+ " Kling_3_0: 3s-15s (default: 5s)\n" +
13
+ " Kling_2_6: 5s, 10s (default: 5s)\n\n" +
14
+ "Default prompt (used when --prompt is omitted):\n" +
15
+ " Dramatic werewolf transformation with muscle expansion, fur growth, claw formation,\n" +
16
+ " cinematic lighting, dark fantasy atmosphere.\n\n" +
17
+ "Examples:\n" +
18
+ " weshop ai-werewolf --image ./person.png --prompt 'Werewolf transformation under full moon'\n" +
19
+ " weshop ai-werewolf --image ./person.png --model Kling_3_0 --duration 10s\n" +
20
+ " weshop ai-werewolf --image ./person.png --no-wait")
21
+ .requiredOption("--image <path|url>", "Input person photo — local file path or URL")
22
+ .option("--prompt <text>", "Describe the werewolf transformation scene")
23
+ .option("--model <name>", "Kling model: Kling_3_0 (default) or Kling_2_6")
24
+ .option("--duration <time>", "Video duration, e.g. 5s, 10s (default: 5s)")
25
+ .option("--generate-audio <bool>", "Generate audio: true (default) or false")
26
+ .option("--batch <count>", "Number of videos to generate, 1-16 (default: 1)", (v) => parseInt(v, 10), 1)
27
+ .option("--task-name <name>", "Human-readable label for this run")
28
+ .option("--no-wait", "Return immediately after submission; use 'weshop status <id>' to check later")
29
+ .action(async (opts) => {
30
+ const params = {
31
+ textDescription: opts.prompt ?? DEFAULT_PROMPT,
32
+ modelName: opts.model ?? "Kling_3_0",
33
+ duration: opts.duration ?? "5s",
34
+ generateAudio: opts.generateAudio ?? "true",
35
+ };
36
+ if (opts.batch != null)
37
+ params.batchCount = opts.batch;
38
+ const extraInput = {};
39
+ if (opts.taskName)
40
+ extraInput.taskName = opts.taskName;
41
+ await executeRun("ai-werewolf", "v1.0", { image: opts.image, wait: opts.wait }, params, extraInput);
42
+ });
43
+ //# sourceMappingURL=ai-werewolf.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-werewolf.js","sourceRoot":"","sources":["../../src/commands/ai-werewolf.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,cAAc,GAClB,s0BAAs0B,CAAC;AAEz0B,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC,aAAa,CAAC;KACpD,OAAO,CAAC,6FAA6F,CAAC;KACtG,WAAW,CACV,2EAA2E;IAC3E,wCAAwC;IACxC,oBAAoB;IACpB,gEAAgE;IAChE,yDAAyD;IACzD,0BAA0B;IAC1B,uCAAuC;IACvC,0CAA0C;IAC1C,mDAAmD;IACnD,yFAAyF;IACzF,oDAAoD;IACpD,aAAa;IACb,gGAAgG;IAChG,8EAA8E;IAC9E,qDAAqD,CACtD;KACA,cAAc,CAAC,oBAAoB,EAAE,6CAA6C,CAAC;KACnF,MAAM,CAAC,iBAAiB,EAAE,4CAA4C,CAAC;KACvE,MAAM,CAAC,gBAAgB,EAAE,+CAA+C,CAAC;KACzE,MAAM,CAAC,mBAAmB,EAAE,4CAA4C,CAAC;KACzE,MAAM,CAAC,yBAAyB,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,MAAM,GAA4B;QACtC,eAAe,EAAE,IAAI,CAAC,MAAM,IAAI,cAAc;QAC9C,SAAS,EAAE,IAAI,CAAC,KAAK,IAAI,WAAW;QACpC,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI;QAC/B,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,aAAa,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AACtG,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { Command } from "commander";
2
+ export declare const aiXrayClothesCmd: 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 aiXrayClothesCmd = new Command("ai-xray-clothes")
5
+ .summary("AI x-ray 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 ai-xray-clothes --image ./person.png\n" +
12
+ " weshop ai-xray-clothes --image ./person.png --prompt 'Make the top appear as thin wet fabric'\n" +
13
+ " weshop ai-xray-clothes --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("ai-xray-clothes", "v1.0", { image: opts.image, wait: opts.wait }, params, extraInput);
27
+ });
28
+ //# sourceMappingURL=ai-xray-clothes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-xray-clothes.js","sourceRoot":"","sources":["../../src/commands/ai-xray-clothes.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,gBAAgB,GAAG,IAAI,OAAO,CAAC,iBAAiB,CAAC;KAC3D,OAAO,CAAC,sEAAsE,CAAC;KAC/E,WAAW,CACV,kFAAkF;IAClF,uCAAuC;IACvC,mDAAmD;IACnD,MAAM,cAAc,OAAO;IAC3B,aAAa;IACb,iDAAiD;IACjD,mGAAmG;IACnG,yDAAyD,CAC1D;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,iBAAiB,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,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 aiZombieCmd: Command;
@@ -0,0 +1,28 @@
1
+ import { Command } from "commander";
2
+ import { executeRun } from "../run-helper.js";
3
+ const DEFAULT_PROMPT = "Turn this person into zombie, realistic.";
4
+ export const aiZombieCmd = new Command("ai-zombie")
5
+ .summary("AI zombie filter — transform a portrait into a realistic zombie")
6
+ .description("Transform a portrait photo into a realistic zombie with decayed skin, wounds,\n" +
7
+ "and undead features.\n\n" +
8
+ "Default prompt (used when --prompt is omitted):\n" +
9
+ ` "${DEFAULT_PROMPT}"\n\n` +
10
+ "Examples:\n" +
11
+ " weshop ai-zombie --image ./person.png\n" +
12
+ " weshop ai-zombie --image ./person.png --prompt 'Fresh zombie, torn clothes, glowing eyes'\n" +
13
+ " weshop ai-zombie --image ./person.png --batch 2")
14
+ .requiredOption("--image <path|url>", "Input portrait image — local file path or URL")
15
+ .option("--prompt <text>", "Custom zombie transformation 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("ai-zombie", "v1.0", { image: opts.image, wait: opts.wait }, params, extraInput);
27
+ });
28
+ //# sourceMappingURL=ai-zombie.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-zombie.js","sourceRoot":"","sources":["../../src/commands/ai-zombie.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,cAAc,GAAG,0CAA0C,CAAC;AAElE,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,OAAO,CAAC,WAAW,CAAC;KAChD,OAAO,CAAC,iEAAiE,CAAC;KAC1E,WAAW,CACV,iFAAiF;IACjF,0BAA0B;IAC1B,mDAAmD;IACnD,MAAM,cAAc,OAAO;IAC3B,aAAa;IACb,2CAA2C;IAC3C,+FAA+F;IAC/F,mDAAmD,CACpD;KACA,cAAc,CAAC,oBAAoB,EAAE,+CAA+C,CAAC;KACrF,MAAM,CAAC,iBAAiB,EAAE,0CAA0C,CAAC;KACrE,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,WAAW,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AACpG,CAAC,CAAC,CAAC"}
@@ -35,7 +35,7 @@ export const aimodelCmd = new Command("aimodel")
35
35
  .option("--negative-prompt <text>", "Describe elements to avoid in the result, e.g. 'blurry, dark'")
36
36
  .option("--pose <mode>", "Pose control: originalImagePose (default), referenceImagePose, or freePose")
37
37
  .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")
38
- .option("--batch <count>", "Number of images to generate, 1-16 (default: 4)", parseInt)
38
+ .option("--batch <count>", "Number of images to generate, 1-16 (default: 1)", (v) => parseInt(v, 10), 1)
39
39
  .option("--task-name <name>", "Human-readable label for this run")
40
40
  .option("--no-wait", "Return immediately after submission; use 'weshop status <id>' to check later")
41
41
  .action(async (opts) => {
@@ -55,7 +55,7 @@ export const aimodelCmd = new Command("aimodel")
55
55
  params.pose = opts.pose;
56
56
  if (opts.customMask)
57
57
  params.customMaskUrl = (await resolveImage(opts.customMask)).url;
58
- if (opts.batch)
58
+ if (opts.batch != null)
59
59
  params.batchCount = opts.batch;
60
60
  const extraInput = {};
61
61
  if (opts.taskName)
@@ -1 +1 @@
1
- {"version":3,"file":"aimodel.js","sourceRoot":"","sources":["../../src/commands/aimodel.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,UAAU,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC;KAC7C,OAAO,CAAC,kGAAkG,CAAC;KAC3G,WAAW,CACV,uGAAuG;IACvG,6BAA6B;IAC7B,wGAAwG;IACxG,uFAAuF;IACvF,uFAAuF;IACvF,2FAA2F;IAC3F,iGAAiG;IACjG,oFAAoF;IACpF,6HAA6H;IAC7H,wCAAwC;IACxC,+EAA+E;IAC/E,gEAAgE;IAChE,uBAAuB;IACvB,4EAA4E;IAC5E,iFAAiF;IACjF,2DAA2D;IAC3D,4EAA4E;IAC5E,qGAAqG;IACrG,oFAAoF;IACpF,aAAa;IACb,oIAAoI;IACpI,kIAAkI;IAClI,yIAAyI,CAC1I;KACA,cAAc,CAAC,oBAAoB,EAAE,8EAA8E,CAAC;KACpH,cAAc,CAAC,oBAAoB,EAAE,2CAA2C,CAAC;KACjF,cAAc,CAAC,0BAA0B,EAAE,iFAAiF,CAAC;KAC7H,MAAM,CAAC,iBAAiB,EAAE,0DAA0D,CAAC;KACrF,MAAM,CAAC,oBAAoB,EAAE,kFAAkF,EAAE,QAAQ,CAAC;KAC1H,MAAM,CAAC,iBAAiB,EAAE,0FAA0F,EAAE,QAAQ,CAAC;KAC/H,MAAM,CAAC,0BAA0B,EAAE,+DAA+D,CAAC;KACnG,MAAM,CAAC,eAAe,EAAE,4EAA4E,CAAC;KACrG,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,gBAAgB,EAAE,IAAI,CAAC,cAAc;QACrC,QAAQ,EAAE,IAAI,CAAC,QAAQ;KACxB,CAAC;IACF,IAAI,IAAI,CAAC,MAAM;QAAE,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC;IACtD,IAAI,IAAI,CAAC,UAAU;QAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;IACzD,IAAI,IAAI,CAAC,OAAO;QAAE,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC;IACvD,IAAI,IAAI,CAAC,cAAc;QAAE,MAAM,CAAC,kBAAkB,GAAG,IAAI,CAAC,cAAc,CAAC;IACzE,IAAI,IAAI,CAAC,IAAI;QAAE,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACvC,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,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AAChE,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"aimodel.js","sourceRoot":"","sources":["../../src/commands/aimodel.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,UAAU,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC;KAC7C,OAAO,CAAC,kGAAkG,CAAC;KAC3G,WAAW,CACV,uGAAuG;IACvG,6BAA6B;IAC7B,wGAAwG;IACxG,uFAAuF;IACvF,uFAAuF;IACvF,2FAA2F;IAC3F,iGAAiG;IACjG,oFAAoF;IACpF,6HAA6H;IAC7H,wCAAwC;IACxC,+EAA+E;IAC/E,gEAAgE;IAChE,uBAAuB;IACvB,4EAA4E;IAC5E,iFAAiF;IACjF,2DAA2D;IAC3D,4EAA4E;IAC5E,qGAAqG;IACrG,oFAAoF;IACpF,aAAa;IACb,oIAAoI;IACpI,kIAAkI;IAClI,yIAAyI,CAC1I;KACA,cAAc,CAAC,oBAAoB,EAAE,8EAA8E,CAAC;KACpH,cAAc,CAAC,oBAAoB,EAAE,2CAA2C,CAAC;KACjF,cAAc,CAAC,0BAA0B,EAAE,iFAAiF,CAAC;KAC7H,MAAM,CAAC,iBAAiB,EAAE,0DAA0D,CAAC;KACrF,MAAM,CAAC,oBAAoB,EAAE,kFAAkF,EAAE,QAAQ,CAAC;KAC1H,MAAM,CAAC,iBAAiB,EAAE,0FAA0F,EAAE,QAAQ,CAAC;KAC/H,MAAM,CAAC,0BAA0B,EAAE,+DAA+D,CAAC;KACnG,MAAM,CAAC,eAAe,EAAE,4EAA4E,CAAC;KACrG,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,gBAAgB,EAAE,IAAI,CAAC,cAAc;QACrC,QAAQ,EAAE,IAAI,CAAC,QAAQ;KACxB,CAAC;IACF,IAAI,IAAI,CAAC,MAAM;QAAE,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC;IACtD,IAAI,IAAI,CAAC,UAAU;QAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;IACzD,IAAI,IAAI,CAAC,OAAO;QAAE,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC;IACvD,IAAI,IAAI,CAAC,cAAc;QAAE,MAAM,CAAC,kBAAkB,GAAG,IAAI,CAAC,cAAc,CAAC;IACzE,IAAI,IAAI,CAAC,IAAI;QAAE,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACvC,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,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AAChE,CAAC,CAAC,CAAC"}
@@ -12,7 +12,7 @@ export const aiposeCmd = new Command("aipose")
12
12
  .requiredOption("--image <path|url>", "Source image — local file path or public URL (local files are auto-uploaded)")
13
13
  .requiredOption("--prompt <text>", "Pose instruction describing the desired pose")
14
14
  .option("--gen-version <ver>", "Generation quality: lite (default) or pro")
15
- .option("--batch <count>", "Number of images to generate, 1-16 (default: 4)", parseInt)
15
+ .option("--batch <count>", "Number of images to generate, 1-16 (default: 1)", (v) => parseInt(v, 10), 1)
16
16
  .option("--task-name <name>", "Human-readable label for this run")
17
17
  .option("--no-wait", "Return immediately after submission; use 'weshop status <id>' to check later")
18
18
  .action(async (opts) => {
@@ -21,7 +21,7 @@ export const aiposeCmd = new Command("aipose")
21
21
  };
22
22
  if (opts.genVersion)
23
23
  params.generateVersion = opts.genVersion;
24
- if (opts.batch)
24
+ if (opts.batch != null)
25
25
  params.batchCount = opts.batch;
26
26
  const extraInput = {};
27
27
  if (opts.taskName)
@@ -1 +1 @@
1
- {"version":3,"file":"aipose.js","sourceRoot":"","sources":["../../src/commands/aipose.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;KAC3C,OAAO,CAAC,sEAAsE,CAAC;KAC/E,WAAW,CACV,2EAA2E;IAC3E,uCAAuC;IACvC,8CAA8C;IAC9C,qCAAqC;IACrC,aAAa;IACb,6FAA6F;IAC7F,uGAAuG,CACxG;KACA,cAAc,CAAC,oBAAoB,EAAE,8EAA8E,CAAC;KACpH,cAAc,CAAC,iBAAiB,EAAE,8CAA8C,CAAC;KACjF,MAAM,CAAC,qBAAqB,EAAE,2CAA2C,CAAC;KAC1E,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,eAAe,EAAE,IAAI,CAAC,MAAM;KAC7B,CAAC;IACF,IAAI,IAAI,CAAC,UAAU;QAAE,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC;IAC9D,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,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AAC/D,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"aipose.js","sourceRoot":"","sources":["../../src/commands/aipose.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;KAC3C,OAAO,CAAC,sEAAsE,CAAC;KAC/E,WAAW,CACV,2EAA2E;IAC3E,uCAAuC;IACvC,8CAA8C;IAC9C,qCAAqC;IACrC,aAAa;IACb,6FAA6F;IAC7F,uGAAuG,CACxG;KACA,cAAc,CAAC,oBAAoB,EAAE,8EAA8E,CAAC;KACpH,cAAc,CAAC,iBAAiB,EAAE,8CAA8C,CAAC;KACjF,MAAM,CAAC,qBAAqB,EAAE,2CAA2C,CAAC;KAC1E,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;KAC7B,CAAC;IACF,IAAI,IAAI,CAAC,UAAU;QAAE,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC;IAC9D,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,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AAC/D,CAAC,CAAC,CAAC"}
@@ -24,7 +24,7 @@ export const aiproductCmd = new Command("aiproduct")
24
24
  .option("--location-id <id>", "Replace background with a preset scene by ID (use 'weshop info aiproduct' to list)", parseInt)
25
25
  .option("--negative-prompt <text>", "Describe elements to avoid in the result")
26
26
  .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")
27
- .option("--batch <count>", "Number of images to generate, 1-16 (default: 4)", parseInt)
27
+ .option("--batch <count>", "Number of images to generate, 1-16 (default: 1)", (v) => parseInt(v, 10), 1)
28
28
  .option("--task-name <name>", "Human-readable label for this run")
29
29
  .option("--no-wait", "Return immediately after submission; use 'weshop status <id>' to check later")
30
30
  .action(async (opts) => {
@@ -40,7 +40,7 @@ export const aiproductCmd = new Command("aiproduct")
40
40
  params.negTextDescription = opts.negativePrompt;
41
41
  if (opts.customMask)
42
42
  params.customMaskUrl = (await resolveImage(opts.customMask)).url;
43
- if (opts.batch)
43
+ if (opts.batch != null)
44
44
  params.batchCount = opts.batch;
45
45
  const extraInput = {};
46
46
  if (opts.taskName)
@@ -1 +1 @@
1
- {"version":3,"file":"aiproduct.js","sourceRoot":"","sources":["../../src/commands/aiproduct.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,YAAY,GAAG,IAAI,OAAO,CAAC,WAAW,CAAC;KACjD,OAAO,CAAC,gFAAgF,CAAC;KACzF,WAAW,CACV,qFAAqF;IACrF,6BAA6B;IAC7B,mEAAmE;IACnE,qHAAqH;IACrH,wCAAwC;IACxC,+EAA+E;IAC/E,gEAAgE;IAChE,+DAA+D;IAC/D,0FAA0F;IAC1F,oFAAoF;IACpF,aAAa;IACb,iJAAiJ;IACjJ,sIAAsI;IACtI,4IAA4I,CAC7I;KACA,cAAc,CAAC,oBAAoB,EAAE,8EAA8E,CAAC;KACpH,cAAc,CAAC,oBAAoB,EAAE,kDAAkD,CAAC;KACxF,cAAc,CAAC,0BAA0B,EAAE,iFAAiF,CAAC;KAC7H,MAAM,CAAC,iBAAiB,EAAE,0CAA0C,CAAC;KACrE,MAAM,CAAC,oBAAoB,EAAE,oFAAoF,EAAE,QAAQ,CAAC;KAC5H,MAAM,CAAC,0BAA0B,EAAE,0CAA0C,CAAC;KAC9E,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,gBAAgB,EAAE,IAAI,CAAC,cAAc;QACrC,QAAQ,EAAE,IAAI,CAAC,QAAQ;KACxB,CAAC;IACF,IAAI,IAAI,CAAC,MAAM;QAAE,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC;IACtD,IAAI,IAAI,CAAC,UAAU;QAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;IACzD,IAAI,IAAI,CAAC,cAAc;QAAE,MAAM,CAAC,kBAAkB,GAAG,IAAI,CAAC,cAAc,CAAC;IACzE,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,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AAClE,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"aiproduct.js","sourceRoot":"","sources":["../../src/commands/aiproduct.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,YAAY,GAAG,IAAI,OAAO,CAAC,WAAW,CAAC;KACjD,OAAO,CAAC,gFAAgF,CAAC;KACzF,WAAW,CACV,qFAAqF;IACrF,6BAA6B;IAC7B,mEAAmE;IACnE,qHAAqH;IACrH,wCAAwC;IACxC,+EAA+E;IAC/E,gEAAgE;IAChE,+DAA+D;IAC/D,0FAA0F;IAC1F,oFAAoF;IACpF,aAAa;IACb,iJAAiJ;IACjJ,sIAAsI;IACtI,4IAA4I,CAC7I;KACA,cAAc,CAAC,oBAAoB,EAAE,8EAA8E,CAAC;KACpH,cAAc,CAAC,oBAAoB,EAAE,kDAAkD,CAAC;KACxF,cAAc,CAAC,0BAA0B,EAAE,iFAAiF,CAAC;KAC7H,MAAM,CAAC,iBAAiB,EAAE,0CAA0C,CAAC;KACrE,MAAM,CAAC,oBAAoB,EAAE,oFAAoF,EAAE,QAAQ,CAAC;KAC5H,MAAM,CAAC,0BAA0B,EAAE,0CAA0C,CAAC;KAC9E,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,gBAAgB,EAAE,IAAI,CAAC,cAAc;QACrC,QAAQ,EAAE,IAAI,CAAC,QAAQ;KACxB,CAAC;IACF,IAAI,IAAI,CAAC,MAAM;QAAE,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC;IACtD,IAAI,IAAI,CAAC,UAAU;QAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;IACzD,IAAI,IAAI,CAAC,cAAc;QAAE,MAAM,CAAC,kBAAkB,GAAG,IAAI,CAAC,cAAc,CAAC;IACzE,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,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AAClE,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { Command } from "commander";
2
+ export declare const animeImageConverterCmd: Command;
@@ -0,0 +1,27 @@
1
+ import { Command } from "commander";
2
+ import { executeRun } from "../run-helper.js";
3
+ const DEFAULT_PROMPT = "Turn this photo into anime.";
4
+ export const animeImageConverterCmd = new Command("anime-image-converter")
5
+ .summary("AI anime image converter — transform any photo into anime art style")
6
+ .description("Convert any photo into anime-style artwork.\n\n" +
7
+ "Default prompt (used when --prompt is omitted):\n" +
8
+ ` "${DEFAULT_PROMPT}"\n\n` +
9
+ "Examples:\n" +
10
+ " weshop anime-image-converter --image ./photo.png\n" +
11
+ " weshop anime-image-converter --image ./portrait.png --prompt 'Studio Ghibli anime style, soft watercolor'\n" +
12
+ " weshop anime-image-converter --image ./photo.png --batch 4")
13
+ .requiredOption("--image <path|url>", "Input image — local file path or URL")
14
+ .option("--prompt <text>", "Custom anime style instruction")
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("anime-image-converter", "v1.0", { image: opts.image, wait: opts.wait }, params, extraInput);
26
+ });
27
+ //# sourceMappingURL=anime-image-converter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anime-image-converter.js","sourceRoot":"","sources":["../../src/commands/anime-image-converter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,cAAc,GAAG,6BAA6B,CAAC;AAErD,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,OAAO,CAAC,uBAAuB,CAAC;KACvE,OAAO,CAAC,qEAAqE,CAAC;KAC9E,WAAW,CACV,iDAAiD;IACjD,mDAAmD;IACnD,MAAM,cAAc,OAAO;IAC3B,aAAa;IACb,sDAAsD;IACtD,+GAA+G;IAC/G,8DAA8D,CAC/D;KACA,cAAc,CAAC,oBAAoB,EAAE,sCAAsC,CAAC;KAC5E,MAAM,CAAC,iBAAiB,EAAE,gCAAgC,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,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,uBAAuB,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AAChH,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { Command } from "commander";
2
+ export declare const babyFaceGeneratorCmd: Command;
@@ -0,0 +1,39 @@
1
+ import { Command } from "commander";
2
+ import { executeRun } from "../run-helper.js";
3
+ const DEFAULT_PROMPT = "Generate a realistic photo of a [female] baby based on the two uploaded parent photos. Blend the facial features, skin tones, ethnic characteristics and any specific feature from both parents to create a natural-looking child. Child photo only.";
4
+ export const babyFaceGeneratorCmd = new Command("baby-face-generator")
5
+ .summary("AI baby face generator — predict what a baby would look like from two parent photos")
6
+ .description("Generate a realistic baby photo by blending features from two parent photos.\n" +
7
+ "Supports up to 2 images. Images are optional.\n\n" +
8
+ "In your --prompt, reference parents as 'image 1' and 'image 2'.\n\n" +
9
+ "Default prompt (used when --prompt is omitted):\n" +
10
+ " Female baby blending facial features, skin tones, and ethnic characteristics from both parents.\n\n" +
11
+ "Examples:\n" +
12
+ " weshop baby-face-generator --image ./parent1.png --image ./parent2.png\n" +
13
+ " weshop baby-face-generator --image ./mom.png --image ./dad.png --prompt 'Male baby, blend features from image 1 and image 2'\n" +
14
+ " weshop baby-face-generator --image ./parent1.png --image ./parent2.png --batch 4")
15
+ .option("--image <path|url...>", "Parent photos — local file paths or URLs (up to 2, optional)")
16
+ .option("--prompt <text>", "Custom baby generation instruction")
17
+ .option("--batch <count>", "Number of images to generate, 1-16 (default: 1)", (v) => parseInt(v, 10), 1)
18
+ .option("--task-name <name>", "Human-readable label for this run")
19
+ .option("--no-wait", "Return immediately after submission; use 'weshop status <id>' to check later")
20
+ .action(async (opts) => {
21
+ const params = { textDescription: opts.prompt ?? DEFAULT_PROMPT };
22
+ if (opts.batch != null)
23
+ params.batchCount = opts.batch;
24
+ const extraInput = {};
25
+ if (opts.taskName)
26
+ extraInput.taskName = opts.taskName;
27
+ if (opts.image && opts.image.length > 0) {
28
+ const imageList = opts.image;
29
+ if (imageList.length > 2) {
30
+ console.error("[error]\n message: Maximum 2 images allowed");
31
+ process.exit(1);
32
+ }
33
+ await executeRun("baby-face-generator", "v1.0", { images: imageList, wait: opts.wait }, params, extraInput);
34
+ }
35
+ else {
36
+ await executeRun("baby-face-generator", "v1.0", { wait: opts.wait }, params, extraInput);
37
+ }
38
+ });
39
+ //# sourceMappingURL=baby-face-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"baby-face-generator.js","sourceRoot":"","sources":["../../src/commands/baby-face-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,cAAc,GAClB,sPAAsP,CAAC;AAEzP,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,OAAO,CAAC,qBAAqB,CAAC;KACnE,OAAO,CAAC,qFAAqF,CAAC;KAC9F,WAAW,CACV,gFAAgF;IAChF,mDAAmD;IACnD,qEAAqE;IACrE,mDAAmD;IACnD,uGAAuG;IACvG,aAAa;IACb,4EAA4E;IAC5E,kIAAkI;IAClI,oFAAoF,CACrF;KACA,MAAM,CAAC,uBAAuB,EAAE,8DAA8D,CAAC;KAC/F,MAAM,CAAC,iBAAiB,EAAE,oCAAoC,CAAC;KAC/D,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,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxC,MAAM,SAAS,GAAa,IAAI,CAAC,KAAK,CAAC;QACvC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAAC,OAAO,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;YAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAAC,CAAC;QAC7G,MAAM,UAAU,CAAC,qBAAqB,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IAC9G,CAAC;SAAM,CAAC;QACN,MAAM,UAAU,CAAC,qBAAqB,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IAC3F,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { Command } from "commander";
2
+ export declare const baldFilterCmd: Command;
@@ -0,0 +1,27 @@
1
+ import { Command } from "commander";
2
+ import { executeRun } from "../run-helper.js";
3
+ const DEFAULT_PROMPT = "Change the hairstyle to bald. Don't change any other detail or face.";
4
+ export const baldFilterCmd = new Command("bald-filter")
5
+ .summary("AI bald filter — make a person appear bald while preserving all other facial details")
6
+ .description("Transform a portrait photo by removing the hair to make the person appear bald.\n\n" +
7
+ "Default prompt (used when --prompt is omitted):\n" +
8
+ ` "${DEFAULT_PROMPT}"\n\n` +
9
+ "Examples:\n" +
10
+ " weshop bald-filter --image ./person.png\n" +
11
+ " weshop bald-filter --image ./person.png --prompt 'Make bald with a shiny head'\n" +
12
+ " weshop bald-filter --image ./person.png --batch 2")
13
+ .requiredOption("--image <path|url>", "Input portrait image — local file path or URL")
14
+ .option("--prompt <text>", "Custom instruction (default: bald, no other changes)")
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("bald-filter", "v1.0", { image: opts.image, wait: opts.wait }, params, extraInput);
26
+ });
27
+ //# sourceMappingURL=bald-filter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bald-filter.js","sourceRoot":"","sources":["../../src/commands/bald-filter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,cAAc,GAAG,sEAAsE,CAAC;AAE9F,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC,aAAa,CAAC;KACpD,OAAO,CAAC,sFAAsF,CAAC;KAC/F,WAAW,CACV,qFAAqF;IACrF,mDAAmD;IACnD,MAAM,cAAc,OAAO;IAC3B,aAAa;IACb,6CAA6C;IAC7C,oFAAoF;IACpF,qDAAqD,CACtD;KACA,cAAc,CAAC,oBAAoB,EAAE,+CAA+C,CAAC;KACrF,MAAM,CAAC,iBAAiB,EAAE,sDAAsD,CAAC;KACjF,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,aAAa,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AACtG,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { Command } from "commander";
2
+ export declare const bangsFilterCmd: Command;
@@ -0,0 +1,28 @@
1
+ import { Command } from "commander";
2
+ import { executeRun } from "../run-helper.js";
3
+ const DEFAULT_PROMPT = "Give this person bangs naturally, don't change their hair color.";
4
+ export const bangsFilterCmd = new Command("bangs-filter")
5
+ .summary("AI bangs filter — add natural-looking bangs to a person's hairstyle")
6
+ .description("Transform a portrait photo by adding natural-looking bangs while preserving\n" +
7
+ "the original hair color and other details.\n\n" +
8
+ "Default prompt (used when --prompt is omitted):\n" +
9
+ ` "${DEFAULT_PROMPT}"\n\n` +
10
+ "Examples:\n" +
11
+ " weshop bangs-filter --image ./person.png\n" +
12
+ " weshop bangs-filter --image ./person.png --prompt 'Add curtain bangs, keep the blonde color'\n" +
13
+ " weshop bangs-filter --image ./person.png --batch 2")
14
+ .requiredOption("--image <path|url>", "Input portrait image — local file path or URL")
15
+ .option("--prompt <text>", "Custom bangs style 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("bangs-filter", "v1.0", { image: opts.image, wait: opts.wait }, params, extraInput);
27
+ });
28
+ //# sourceMappingURL=bangs-filter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bangs-filter.js","sourceRoot":"","sources":["../../src/commands/bangs-filter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,cAAc,GAAG,kEAAkE,CAAC;AAE1F,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,OAAO,CAAC,cAAc,CAAC;KACtD,OAAO,CAAC,qEAAqE,CAAC;KAC9E,WAAW,CACV,+EAA+E;IAC/E,gDAAgD;IAChD,mDAAmD;IACnD,MAAM,cAAc,OAAO;IAC3B,aAAa;IACb,8CAA8C;IAC9C,kGAAkG;IAClG,sDAAsD,CACvD;KACA,cAAc,CAAC,oBAAoB,EAAE,+CAA+C,CAAC;KACrF,MAAM,CAAC,iBAAiB,EAAE,gCAAgC,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,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 bikiniContestPhotosCmd: Command;