weshop-cli 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (363) 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 +44 -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 +46 -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 +49 -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 +52 -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 +43 -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 +54 -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 +43 -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 +48 -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 +49 -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 +56 -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 +54 -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 +57 -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 +45 -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 +63 -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 +44 -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 +49 -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 +52 -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 +52 -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 +56 -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 +54 -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 +48 -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 +48 -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 +52 -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 +60 -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 +57 -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 +60 -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 +52 -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 +81 -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 +73 -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 +73 -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 +49 -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 +44 -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 +52 -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 +52 -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 +49 -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 +44 -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 +48 -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 +37 -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 +53 -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 +49 -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 +61 -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 +45 -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 +45 -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 +44 -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 +59 -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 +47 -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 +45 -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 +52 -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 +44 -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 +44 -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 +48 -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 +52 -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 +54 -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 +52 -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 +44 -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 +52 -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 +52 -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 +50 -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 +44 -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 +86 -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 +53 -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 +61 -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 +65 -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 +42 -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 +48 -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 +42 -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 +52 -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 +54 -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 +37 -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 +53 -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 +48 -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 +53 -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 +46 -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 +48 -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 +52 -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 +52 -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 +57 -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 +44 -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 +42 -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 +75 -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 +37 -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 +54 -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 +45 -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 +50 -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 +54 -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 +52 -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 +44 -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 +54 -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 +45 -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 +64 -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 +49 -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 +48 -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 +37 -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 +37 -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 +56 -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 +45 -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 +65 -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 +85 -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 +52 -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 +43 -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 +48 -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 +49 -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 +53 -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 +50 -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 +51 -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 +49 -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 +52 -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 +52 -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 +42 -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 +42 -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 +45 -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 +49 -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 +49 -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 +51 -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/package.json +1 -1
@@ -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,44 @@
1
+ import { Command } from "commander";
2
+ import { resolveImage, submitRun, waitForCompletion } from "../client.js";
3
+ import { printSubmitted, printPollResult, printError } from "../printer.js";
4
+ const DEFAULT_PROMPT = "Turn this photo into anime.";
5
+ export const animeImageConverterCmd = new Command("anime-image-converter")
6
+ .summary("AI anime image converter — transform any photo into anime art style")
7
+ .description("Convert any photo into anime-style artwork.\n\n" +
8
+ "Default prompt (used when --prompt is omitted):\n" +
9
+ ` "${DEFAULT_PROMPT}"\n\n` +
10
+ "Examples:\n" +
11
+ " weshop anime-image-converter --image ./photo.png\n" +
12
+ " weshop anime-image-converter --image ./portrait.png --prompt 'Studio Ghibli anime style, soft watercolor'\n" +
13
+ " weshop anime-image-converter --image ./photo.png --batch 4")
14
+ .requiredOption("--image <path|url>", "Input image — local file path or URL")
15
+ .option("--prompt <text>", "Custom anime 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
+ try {
21
+ const { url: imageUrl } = await resolveImage(opts.image);
22
+ const params = { textDescription: opts.prompt ?? DEFAULT_PROMPT, images: [imageUrl] };
23
+ if (opts.batch != null)
24
+ params.batchCount = opts.batch;
25
+ const input = { originalImage: imageUrl };
26
+ if (opts.taskName)
27
+ input.taskName = opts.taskName;
28
+ const body = { agent: { name: "anime-image-converter", version: "v1.0" }, input, params };
29
+ const { executionId } = await submitRun(body);
30
+ printSubmitted(executionId);
31
+ if (opts.wait !== false) {
32
+ printPollResult(await waitForCompletion(executionId));
33
+ }
34
+ else {
35
+ console.log("[info]");
36
+ console.log(` message: Use 'weshop status ${executionId}' to check progress`);
37
+ }
38
+ }
39
+ catch (err) {
40
+ printError(err);
41
+ process.exit(1);
42
+ }
43
+ });
44
+ //# 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,YAAY,EAAE,SAAS,EAAE,iBAAiB,EAAmB,MAAM,cAAc,CAAC;AAC3F,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE5E,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,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzD,MAAM,MAAM,GAA4B,EAAE,eAAe,EAAE,IAAI,CAAC,MAAM,IAAI,cAAc,EAAE,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/G,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI;YAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;QACvD,MAAM,KAAK,GAA4B,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC;QACnE,IAAI,IAAI,CAAC,QAAQ;YAAE,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAClD,MAAM,IAAI,GAAe,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QACtG,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC;QAC9C,cAAc,CAAC,WAAW,CAAC,CAAC;QAC5B,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YAAC,eAAe,CAAC,MAAM,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC;QAAC,CAAC;aAC9E,CAAC;YAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAAC,OAAO,CAAC,GAAG,CAAC,iCAAiC,WAAW,qBAAqB,CAAC,CAAC;QAAC,CAAC;IACjH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC;AACrD,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { Command } from "commander";
2
+ export declare const babyFaceGeneratorCmd: Command;
@@ -0,0 +1,59 @@
1
+ import { Command } from "commander";
2
+ import { resolveImage, submitRun, waitForCompletion } from "../client.js";
3
+ import { printSubmitted, printPollResult, printError } from "../printer.js";
4
+ 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.";
5
+ export const babyFaceGeneratorCmd = new Command("baby-face-generator")
6
+ .summary("AI baby face generator — predict what a baby would look like from two parent photos")
7
+ .description("Generate a realistic baby photo by blending features from two parent photos.\n" +
8
+ "Supports up to 2 images. Images are optional.\n\n" +
9
+ "In your --prompt, reference parents as 'image 1' and 'image 2'.\n\n" +
10
+ "Default prompt (used when --prompt is omitted):\n" +
11
+ " Female baby blending facial features, skin tones, and ethnic characteristics from both parents.\n\n" +
12
+ "Examples:\n" +
13
+ " weshop baby-face-generator --image ./parent1.png --image ./parent2.png\n" +
14
+ " weshop baby-face-generator --image ./mom.png --image ./dad.png --prompt 'Male baby, blend features from image 1 and image 2'\n" +
15
+ " weshop baby-face-generator --image ./parent1.png --image ./parent2.png --batch 4")
16
+ .option("--image <path|url...>", "Parent photos — local file paths or URLs (up to 2, optional)")
17
+ .option("--prompt <text>", "Custom baby generation instruction")
18
+ .option("--batch <count>", "Number of images to generate, 1-16 (default: 1)", (v) => parseInt(v, 10), 1)
19
+ .option("--task-name <name>", "Human-readable label for this run")
20
+ .option("--no-wait", "Return immediately after submission; use 'weshop status <id>' to check later")
21
+ .action(async (opts) => {
22
+ try {
23
+ const params = { textDescription: opts.prompt ?? DEFAULT_PROMPT };
24
+ if (opts.batch != null)
25
+ params.batchCount = opts.batch;
26
+ const input = {};
27
+ if (opts.taskName)
28
+ input.taskName = opts.taskName;
29
+ if (opts.image && opts.image.length > 0) {
30
+ const imageList = opts.image;
31
+ if (imageList.length > 2) {
32
+ console.error("[error]\n message: Maximum 2 images allowed");
33
+ process.exit(1);
34
+ }
35
+ const urls = [];
36
+ for (const img of imageList) {
37
+ const { url } = await resolveImage(img);
38
+ urls.push(url);
39
+ }
40
+ params.images = urls;
41
+ input.originalImage = urls[0];
42
+ }
43
+ const body = { agent: { name: "baby-face-generator", version: "v1.0" }, input, params };
44
+ const { executionId } = await submitRun(body);
45
+ printSubmitted(executionId);
46
+ if (opts.wait !== false) {
47
+ printPollResult(await waitForCompletion(executionId));
48
+ }
49
+ else {
50
+ console.log("[info]");
51
+ console.log(` message: Use 'weshop status ${executionId}' to check progress`);
52
+ }
53
+ }
54
+ catch (err) {
55
+ printError(err);
56
+ process.exit(1);
57
+ }
58
+ });
59
+ //# 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,YAAY,EAAE,SAAS,EAAE,iBAAiB,EAAmB,MAAM,cAAc,CAAC;AAC3F,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE5E,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,IAAI,CAAC;QACH,MAAM,MAAM,GAA4B,EAAE,eAAe,EAAE,IAAI,CAAC,MAAM,IAAI,cAAc,EAAE,CAAC;QAC3F,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI;YAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;QACvD,MAAM,KAAK,GAA4B,EAAE,CAAC;QAC1C,IAAI,IAAI,CAAC,QAAQ;YAAE,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAClD,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxC,MAAM,SAAS,GAAa,IAAI,CAAC,KAAK,CAAC;YACvC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAAC,OAAO,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;gBAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAAC,CAAC;YAC7G,MAAM,IAAI,GAAa,EAAE,CAAC;YAC1B,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;gBAAC,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC;gBAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAAC,CAAC;YACzF,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;YACrB,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAChC,CAAC;QACD,MAAM,IAAI,GAAe,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QACpG,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC;QAC9C,cAAc,CAAC,WAAW,CAAC,CAAC;QAC5B,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YAAC,eAAe,CAAC,MAAM,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC;QAAC,CAAC;aAC9E,CAAC;YAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAAC,OAAO,CAAC,GAAG,CAAC,iCAAiC,WAAW,qBAAqB,CAAC,CAAC;QAAC,CAAC;IACjH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC;AACrD,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { Command } from "commander";
2
+ export declare const baldFilterCmd: Command;
@@ -0,0 +1,47 @@
1
+ import { Command } from "commander";
2
+ import { resolveImage, submitRun, waitForCompletion } from "../client.js";
3
+ import { printSubmitted, printPollResult, printError } from "../printer.js";
4
+ const DEFAULT_PROMPT = "Change the hairstyle to bald. Don't change any other detail or face.";
5
+ export const baldFilterCmd = new Command("bald-filter")
6
+ .summary("AI bald filter — make a person appear bald while preserving all other facial details")
7
+ .description("Transform a portrait photo by removing the hair to make the person appear bald.\n\n" +
8
+ "Default prompt (used when --prompt is omitted):\n" +
9
+ ` "${DEFAULT_PROMPT}"\n\n` +
10
+ "Examples:\n" +
11
+ " weshop bald-filter --image ./person.png\n" +
12
+ " weshop bald-filter --image ./person.png --prompt 'Make bald with a shiny head'\n" +
13
+ " weshop bald-filter --image ./person.png --batch 2")
14
+ .requiredOption("--image <path|url>", "Input portrait image — local file path or URL")
15
+ .option("--prompt <text>", "Custom instruction (default: bald, no other changes)")
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
+ try {
21
+ const { url: imageUrl } = await resolveImage(opts.image);
22
+ const params = {
23
+ textDescription: opts.prompt ?? DEFAULT_PROMPT,
24
+ images: [imageUrl],
25
+ };
26
+ if (opts.batch != null)
27
+ params.batchCount = opts.batch;
28
+ const input = { originalImage: imageUrl };
29
+ if (opts.taskName)
30
+ input.taskName = opts.taskName;
31
+ const body = { agent: { name: "bald-filter", version: "v1.0" }, input, params };
32
+ const { executionId } = await submitRun(body);
33
+ printSubmitted(executionId);
34
+ if (opts.wait !== false) {
35
+ printPollResult(await waitForCompletion(executionId));
36
+ }
37
+ else {
38
+ console.log("[info]");
39
+ console.log(` message: Use 'weshop status ${executionId}' to check progress`);
40
+ }
41
+ }
42
+ catch (err) {
43
+ printError(err);
44
+ process.exit(1);
45
+ }
46
+ });
47
+ //# 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,YAAY,EAAE,SAAS,EAAE,iBAAiB,EAAmB,MAAM,cAAc,CAAC;AAC3F,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE5E,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,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzD,MAAM,MAAM,GAA4B;YACtC,eAAe,EAAE,IAAI,CAAC,MAAM,IAAI,cAAc;YAC9C,MAAM,EAAE,CAAC,QAAQ,CAAC;SACnB,CAAC;QACF,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI;YAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;QACvD,MAAM,KAAK,GAA4B,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC;QACnE,IAAI,IAAI,CAAC,QAAQ;YAAE,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAClD,MAAM,IAAI,GAAe,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAC5F,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC;QAC9C,cAAc,CAAC,WAAW,CAAC,CAAC;QAC5B,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YACxB,eAAe,CAAC,MAAM,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC;QACxD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,iCAAiC,WAAW,qBAAqB,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC;AACrD,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { Command } from "commander";
2
+ export declare const bangsFilterCmd: Command;
@@ -0,0 +1,45 @@
1
+ import { Command } from "commander";
2
+ import { resolveImage, submitRun, waitForCompletion } from "../client.js";
3
+ import { printSubmitted, printPollResult, printError } from "../printer.js";
4
+ const DEFAULT_PROMPT = "Give this person bangs naturally, don't change their hair color.";
5
+ export const bangsFilterCmd = new Command("bangs-filter")
6
+ .summary("AI bangs filter — add natural-looking bangs to a person's hairstyle")
7
+ .description("Transform a portrait photo by adding natural-looking bangs while preserving\n" +
8
+ "the original hair color and other details.\n\n" +
9
+ "Default prompt (used when --prompt is omitted):\n" +
10
+ ` "${DEFAULT_PROMPT}"\n\n` +
11
+ "Examples:\n" +
12
+ " weshop bangs-filter --image ./person.png\n" +
13
+ " weshop bangs-filter --image ./person.png --prompt 'Add curtain bangs, keep the blonde color'\n" +
14
+ " weshop bangs-filter --image ./person.png --batch 2")
15
+ .requiredOption("--image <path|url>", "Input portrait image — local file path or URL")
16
+ .option("--prompt <text>", "Custom bangs style 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
+ try {
22
+ const { url: imageUrl } = await resolveImage(opts.image);
23
+ const params = { textDescription: opts.prompt ?? DEFAULT_PROMPT, images: [imageUrl] };
24
+ if (opts.batch != null)
25
+ params.batchCount = opts.batch;
26
+ const input = { originalImage: imageUrl };
27
+ if (opts.taskName)
28
+ input.taskName = opts.taskName;
29
+ const body = { agent: { name: "bangs-filter", version: "v1.0" }, input, params };
30
+ const { executionId } = await submitRun(body);
31
+ printSubmitted(executionId);
32
+ if (opts.wait !== false) {
33
+ printPollResult(await waitForCompletion(executionId));
34
+ }
35
+ else {
36
+ console.log("[info]");
37
+ console.log(` message: Use 'weshop status ${executionId}' to check progress`);
38
+ }
39
+ }
40
+ catch (err) {
41
+ printError(err);
42
+ process.exit(1);
43
+ }
44
+ });
45
+ //# 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,YAAY,EAAE,SAAS,EAAE,iBAAiB,EAAmB,MAAM,cAAc,CAAC;AAC3F,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE5E,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,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzD,MAAM,MAAM,GAA4B,EAAE,eAAe,EAAE,IAAI,CAAC,MAAM,IAAI,cAAc,EAAE,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/G,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI;YAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;QACvD,MAAM,KAAK,GAA4B,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC;QACnE,IAAI,IAAI,CAAC,QAAQ;YAAE,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAClD,MAAM,IAAI,GAAe,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAC7F,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC;QAC9C,cAAc,CAAC,WAAW,CAAC,CAAC;QAC5B,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YAAC,eAAe,CAAC,MAAM,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC;QAAC,CAAC;aAC9E,CAAC;YAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAAC,OAAO,CAAC,GAAG,CAAC,iCAAiC,WAAW,qBAAqB,CAAC,CAAC;QAAC,CAAC;IACjH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC;AACrD,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { Command } from "commander";
2
+ export declare const bikiniContestPhotosCmd: Command;
@@ -0,0 +1,52 @@
1
+ import { Command } from "commander";
2
+ import { resolveImage, submitRun, waitForCompletion } from "../client.js";
3
+ import { printSubmitted, printPollResult, printError } from "../printer.js";
4
+ const DEFAULT_PROMPT = "naturally undress and change the outfit into a thin bikini while keeping body proportions natural. Keep Model dancing tiktok dance.";
5
+ export const bikiniContestPhotosCmd = new Command("bikini-contest-photos")
6
+ .summary("Bikini contest photos — transform a person photo into a bikini model image or video")
7
+ .description("Transform a portrait or full-body photo into a bikini model image or video.\n\n" +
8
+ "Generated type (--generated-type):\n" +
9
+ " video Generate a short video (default)\n" +
10
+ " image Generate a still image\n\n" +
11
+ "Default prompt (used when --prompt is omitted):\n" +
12
+ ` "${DEFAULT_PROMPT}"\n\n` +
13
+ "Examples:\n" +
14
+ " weshop bikini-contest-photos --image ./person.png --prompt 'Bikini model on a beach'\n" +
15
+ " weshop bikini-contest-photos --image ./person.png --generated-type image --batch 2\n" +
16
+ " weshop bikini-contest-photos --image ./person.png --generated-type video --no-wait")
17
+ .requiredOption("--image <path|url>", "Input portrait or full-body photo — local file path or URL")
18
+ .option("--prompt <text>", "Describe the desired bikini model scene")
19
+ .option("--generated-type <type>", "Output type: video (default) or image")
20
+ .option("--batch <count>", "Number of outputs to generate, 1-16 (default: 1)", (v) => parseInt(v, 10), 1)
21
+ .option("--task-name <name>", "Human-readable label for this run")
22
+ .option("--no-wait", "Return immediately after submission; use 'weshop status <id>' to check later")
23
+ .action(async (opts) => {
24
+ try {
25
+ const { url: imageUrl } = await resolveImage(opts.image);
26
+ const params = {
27
+ textDescription: opts.prompt ?? DEFAULT_PROMPT,
28
+ images: [imageUrl],
29
+ generatedType: opts.generatedType ?? "video",
30
+ };
31
+ if (opts.batch != null)
32
+ params.batchCount = opts.batch;
33
+ const input = { originalImage: imageUrl };
34
+ if (opts.taskName)
35
+ input.taskName = opts.taskName;
36
+ const body = { agent: { name: "bikini-contest-photos", version: "v1.0" }, input, params };
37
+ const { executionId } = await submitRun(body);
38
+ printSubmitted(executionId);
39
+ if (opts.wait !== false) {
40
+ printPollResult(await waitForCompletion(executionId));
41
+ }
42
+ else {
43
+ console.log("[info]");
44
+ console.log(` message: Use 'weshop status ${executionId}' to check progress`);
45
+ }
46
+ }
47
+ catch (err) {
48
+ printError(err);
49
+ process.exit(1);
50
+ }
51
+ });
52
+ //# sourceMappingURL=bikini-contest-photos.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bikini-contest-photos.js","sourceRoot":"","sources":["../../src/commands/bikini-contest-photos.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,iBAAiB,EAAmB,MAAM,cAAc,CAAC;AAC3F,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE5E,MAAM,cAAc,GAClB,qIAAqI,CAAC;AAExI,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,OAAO,CAAC,uBAAuB,CAAC;KACvE,OAAO,CAAC,qFAAqF,CAAC;KAC9F,WAAW,CACV,iFAAiF;IACjF,sCAAsC;IACtC,8CAA8C;IAC9C,sCAAsC;IACtC,mDAAmD;IACnD,MAAM,cAAc,OAAO;IAC3B,aAAa;IACb,0FAA0F;IAC1F,wFAAwF;IACxF,sFAAsF,CACvF;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,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzD,MAAM,MAAM,GAA4B;YACtC,eAAe,EAAE,IAAI,CAAC,MAAM,IAAI,cAAc;YAC9C,MAAM,EAAE,CAAC,QAAQ,CAAC;YAClB,aAAa,EAAE,IAAI,CAAC,aAAa,IAAI,OAAO;SAC7C,CAAC;QACF,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI;YAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;QACvD,MAAM,KAAK,GAA4B,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC;QACnE,IAAI,IAAI,CAAC,QAAQ;YAAE,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAClD,MAAM,IAAI,GAAe,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QACtG,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC;QAC9C,cAAc,CAAC,WAAW,CAAC,CAAC;QAC5B,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YAAC,eAAe,CAAC,MAAM,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC;QAAC,CAAC;aAC9E,CAAC;YAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAAC,OAAO,CAAC,GAAG,CAAC,iCAAiC,WAAW,qBAAqB,CAAC,CAAC;QAAC,CAAC;IACjH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC;AACrD,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { Command } from "commander";
2
+ export declare const bikiniTryOnCmd: Command;
@@ -0,0 +1,44 @@
1
+ import { Command } from "commander";
2
+ import { resolveImage, submitRun, waitForCompletion } from "../client.js";
3
+ import { printSubmitted, printPollResult, printError } from "../printer.js";
4
+ const DEFAULT_PROMPT = "naturally undress and change the outfit into a thin bikini while keeping body proportions natural. Keep Model dancing tiktok dance.";
5
+ export const bikiniTryOnCmd = new Command("bikini-try-on")
6
+ .summary("AI bikini try-on — virtually try on a bikini on a person photo")
7
+ .description("Virtually try on a bikini on a person photo while preserving body proportions.\n\n" +
8
+ "Default prompt (used when --prompt is omitted):\n" +
9
+ ` "${DEFAULT_PROMPT}"\n\n` +
10
+ "Examples:\n" +
11
+ " weshop bikini-try-on --image ./person.png\n" +
12
+ " weshop bikini-try-on --image ./person.png --prompt 'Red string bikini, poolside setting'\n" +
13
+ " weshop bikini-try-on --image ./person.png --batch 2")
14
+ .requiredOption("--image <path|url>", "Input person photo — local file path or URL")
15
+ .option("--prompt <text>", "Custom bikini try-on 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
+ try {
21
+ const { url: imageUrl } = await resolveImage(opts.image);
22
+ const params = { textDescription: opts.prompt ?? DEFAULT_PROMPT, images: [imageUrl] };
23
+ if (opts.batch != null)
24
+ params.batchCount = opts.batch;
25
+ const input = { originalImage: imageUrl };
26
+ if (opts.taskName)
27
+ input.taskName = opts.taskName;
28
+ const body = { agent: { name: "bikini-try-on", version: "v1.0" }, input, params };
29
+ const { executionId } = await submitRun(body);
30
+ printSubmitted(executionId);
31
+ if (opts.wait !== false) {
32
+ printPollResult(await waitForCompletion(executionId));
33
+ }
34
+ else {
35
+ console.log("[info]");
36
+ console.log(` message: Use 'weshop status ${executionId}' to check progress`);
37
+ }
38
+ }
39
+ catch (err) {
40
+ printError(err);
41
+ process.exit(1);
42
+ }
43
+ });
44
+ //# sourceMappingURL=bikini-try-on.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bikini-try-on.js","sourceRoot":"","sources":["../../src/commands/bikini-try-on.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,iBAAiB,EAAmB,MAAM,cAAc,CAAC;AAC3F,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE5E,MAAM,cAAc,GAClB,qIAAqI,CAAC;AAExI,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,OAAO,CAAC,eAAe,CAAC;KACvD,OAAO,CAAC,gEAAgE,CAAC;KACzE,WAAW,CACV,oFAAoF;IACpF,mDAAmD;IACnD,MAAM,cAAc,OAAO;IAC3B,aAAa;IACb,+CAA+C;IAC/C,8FAA8F;IAC9F,uDAAuD,CACxD;KACA,cAAc,CAAC,oBAAoB,EAAE,6CAA6C,CAAC;KACnF,MAAM,CAAC,iBAAiB,EAAE,kCAAkC,CAAC;KAC7D,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,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzD,MAAM,MAAM,GAA4B,EAAE,eAAe,EAAE,IAAI,CAAC,MAAM,IAAI,cAAc,EAAE,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/G,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI;YAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;QACvD,MAAM,KAAK,GAA4B,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC;QACnE,IAAI,IAAI,CAAC,QAAQ;YAAE,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAClD,MAAM,IAAI,GAAe,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAC9F,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC;QAC9C,cAAc,CAAC,WAAW,CAAC,CAAC;QAC5B,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YAAC,eAAe,CAAC,MAAM,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC;QAAC,CAAC;aAC9E,CAAC;YAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAAC,OAAO,CAAC,GAAG,CAAC,iCAAiC,WAAW,qBAAqB,CAAC,CAAC;QAAC,CAAC;IACjH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC;AACrD,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { Command } from "commander";
2
+ export declare const bracesFilterCmd: Command;
@@ -0,0 +1,44 @@
1
+ import { Command } from "commander";
2
+ import { resolveImage, submitRun, waitForCompletion } from "../client.js";
3
+ import { printSubmitted, printPollResult, printError } from "../printer.js";
4
+ const DEFAULT_PROMPT = "Add braces in this person's tooth";
5
+ export const bracesFilterCmd = new Command("braces-filter")
6
+ .summary("AI braces filter — add dental braces to a person's teeth in a portrait photo")
7
+ .description("Transform a portrait photo by adding realistic dental braces to the person's teeth.\n\n" +
8
+ "Default prompt (used when --prompt is omitted):\n" +
9
+ ` "${DEFAULT_PROMPT}"\n\n` +
10
+ "Examples:\n" +
11
+ " weshop braces-filter --image ./person.png\n" +
12
+ " weshop braces-filter --image ./person.png --prompt 'Add colorful rubber band braces'\n" +
13
+ " weshop braces-filter --image ./person.png --batch 2")
14
+ .requiredOption("--image <path|url>", "Input portrait image — local file path or URL")
15
+ .option("--prompt <text>", "Custom braces 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
+ try {
21
+ const { url: imageUrl } = await resolveImage(opts.image);
22
+ const params = { textDescription: opts.prompt ?? DEFAULT_PROMPT, images: [imageUrl] };
23
+ if (opts.batch != null)
24
+ params.batchCount = opts.batch;
25
+ const input = { originalImage: imageUrl };
26
+ if (opts.taskName)
27
+ input.taskName = opts.taskName;
28
+ const body = { agent: { name: "braces-filter", version: "v1.0" }, input, params };
29
+ const { executionId } = await submitRun(body);
30
+ printSubmitted(executionId);
31
+ if (opts.wait !== false) {
32
+ printPollResult(await waitForCompletion(executionId));
33
+ }
34
+ else {
35
+ console.log("[info]");
36
+ console.log(` message: Use 'weshop status ${executionId}' to check progress`);
37
+ }
38
+ }
39
+ catch (err) {
40
+ printError(err);
41
+ process.exit(1);
42
+ }
43
+ });
44
+ //# sourceMappingURL=braces-filter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"braces-filter.js","sourceRoot":"","sources":["../../src/commands/braces-filter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,iBAAiB,EAAmB,MAAM,cAAc,CAAC;AAC3F,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE5E,MAAM,cAAc,GAAG,mCAAmC,CAAC;AAE3D,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,OAAO,CAAC,eAAe,CAAC;KACxD,OAAO,CAAC,8EAA8E,CAAC;KACvF,WAAW,CACV,yFAAyF;IACzF,mDAAmD;IACnD,MAAM,cAAc,OAAO;IAC3B,aAAa;IACb,+CAA+C;IAC/C,0FAA0F;IAC1F,uDAAuD,CACxD;KACA,cAAc,CAAC,oBAAoB,EAAE,+CAA+C,CAAC;KACrF,MAAM,CAAC,iBAAiB,EAAE,2BAA2B,CAAC;KACtD,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,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzD,MAAM,MAAM,GAA4B,EAAE,eAAe,EAAE,IAAI,CAAC,MAAM,IAAI,cAAc,EAAE,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/G,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI;YAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;QACvD,MAAM,KAAK,GAA4B,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC;QACnE,IAAI,IAAI,CAAC,QAAQ;YAAE,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAClD,MAAM,IAAI,GAAe,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAC9F,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC;QAC9C,cAAc,CAAC,WAAW,CAAC,CAAC;QAC5B,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YAAC,eAAe,CAAC,MAAM,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC;QAAC,CAAC;aAC9E,CAAC;YAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAAC,OAAO,CAAC,GAAG,CAAC,iCAAiC,WAAW,qBAAqB,CAAC,CAAC;QAAC,CAAC;IACjH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC;AACrD,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { Command } from "commander";
2
+ export declare const bratGeneratorCmd: Command;
@@ -0,0 +1,48 @@
1
+ import { Command } from "commander";
2
+ import { resolveImage, submitRun, waitForCompletion } from "../client.js";
3
+ import { printSubmitted, printPollResult, printError } from "../printer.js";
4
+ const DEFAULT_PROMPT = "a pure [color] background with text [Brat] on it. 1:1 ratio.";
5
+ export const bratGeneratorCmd = new Command("brat-generator")
6
+ .summary("AI brat generator — create a Charli XCX brat-style album cover meme with custom text and color")
7
+ .description("Generate a brat-style meme or album cover inspired by Charli XCX.\n" +
8
+ "Image is optional — text-only generation is supported.\n\n" +
9
+ "Default prompt (used when --prompt is omitted):\n" +
10
+ ` "${DEFAULT_PROMPT}"\n\n` +
11
+ "Examples:\n" +
12
+ " weshop brat-generator --prompt 'a pure lime green background with text [brat] on it. 1:1 ratio.'\n" +
13
+ " weshop brat-generator --prompt 'a pure pink background with text [your name] on it. 1:1 ratio.' --batch 2")
14
+ .option("--image <path|url>", "Reference image — local file path or URL (optional)")
15
+ .option("--prompt <text>", "Describe the brat cover (default: random color with Brat text)")
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
+ try {
21
+ const params = { textDescription: opts.prompt ?? DEFAULT_PROMPT };
22
+ if (opts.batch != null)
23
+ params.batchCount = opts.batch;
24
+ const input = {};
25
+ if (opts.taskName)
26
+ input.taskName = opts.taskName;
27
+ if (opts.image) {
28
+ const { url: imageUrl } = await resolveImage(opts.image);
29
+ params.images = [imageUrl];
30
+ input.originalImage = imageUrl;
31
+ }
32
+ const body = { agent: { name: "brat-generator", version: "v1.0" }, input, params };
33
+ const { executionId } = await submitRun(body);
34
+ printSubmitted(executionId);
35
+ if (opts.wait !== false) {
36
+ printPollResult(await waitForCompletion(executionId));
37
+ }
38
+ else {
39
+ console.log("[info]");
40
+ console.log(` message: Use 'weshop status ${executionId}' to check progress`);
41
+ }
42
+ }
43
+ catch (err) {
44
+ printError(err);
45
+ process.exit(1);
46
+ }
47
+ });
48
+ //# sourceMappingURL=brat-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brat-generator.js","sourceRoot":"","sources":["../../src/commands/brat-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,iBAAiB,EAAmB,MAAM,cAAc,CAAC;AAC3F,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE5E,MAAM,cAAc,GAAG,8DAA8D,CAAC;AAEtF,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,OAAO,CAAC,gBAAgB,CAAC;KAC1D,OAAO,CAAC,gGAAgG,CAAC;KACzG,WAAW,CACV,qEAAqE;IACrE,4DAA4D;IAC5D,mDAAmD;IACnD,MAAM,cAAc,OAAO;IAC3B,aAAa;IACb,sGAAsG;IACtG,6GAA6G,CAC9G;KACA,MAAM,CAAC,oBAAoB,EAAE,qDAAqD,CAAC;KACnF,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,IAAI,CAAC;QACH,MAAM,MAAM,GAA4B,EAAE,eAAe,EAAE,IAAI,CAAC,MAAM,IAAI,cAAc,EAAE,CAAC;QAC3F,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI;YAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;QACvD,MAAM,KAAK,GAA4B,EAAE,CAAC;QAC1C,IAAI,IAAI,CAAC,QAAQ;YAAE,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAClD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzD,MAAM,CAAC,MAAM,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC3B,KAAK,CAAC,aAAa,GAAG,QAAQ,CAAC;QACjC,CAAC;QACD,MAAM,IAAI,GAAe,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAC/F,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC;QAC9C,cAAc,CAAC,WAAW,CAAC,CAAC;QAC5B,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YAAC,eAAe,CAAC,MAAM,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC;QAAC,CAAC;aAC9E,CAAC;YAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAAC,OAAO,CAAC,GAAG,CAAC,iCAAiC,WAAW,qBAAqB,CAAC,CAAC;QAAC,CAAC;IACjH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC;AACrD,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { Command } from "commander";
2
+ export declare const buzzCutAiCmd: Command;
@@ -0,0 +1,52 @@
1
+ import { Command } from "commander";
2
+ import { resolveImage, submitRun, waitForCompletion } from "../client.js";
3
+ import { printSubmitted, printPollResult, printError } from "../printer.js";
4
+ const DEFAULT_PROMPT = "Change the hairstyle to a buzz cut.";
5
+ export const buzzCutAiCmd = new Command("buzz-cut-ai")
6
+ .summary("AI buzz cut filter — change a person's hairstyle to a buzz cut")
7
+ .description("Transform a portrait photo by changing the hairstyle to a buzz cut.\n\n" +
8
+ "Default prompt (used when --prompt is omitted):\n" +
9
+ ` "${DEFAULT_PROMPT}"\n\n` +
10
+ "Examples:\n" +
11
+ " weshop buzz-cut-ai --image ./person.png\n" +
12
+ " weshop buzz-cut-ai --image ./person.png --prompt 'Short military buzz cut, keep face details'\n" +
13
+ " weshop buzz-cut-ai --image ./person.png --batch 2")
14
+ .requiredOption("--image <path|url>", "Input portrait image — local file path or URL")
15
+ .option("--prompt <text>", "Custom hairstyle instruction (default: buzz cut)")
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
+ try {
21
+ const { url: imageUrl } = await resolveImage(opts.image);
22
+ const params = {
23
+ textDescription: opts.prompt ?? DEFAULT_PROMPT,
24
+ images: [imageUrl],
25
+ };
26
+ if (opts.batch != null)
27
+ params.batchCount = opts.batch;
28
+ const input = { originalImage: imageUrl };
29
+ if (opts.taskName)
30
+ input.taskName = opts.taskName;
31
+ const body = {
32
+ agent: { name: "buzz-cut-ai", version: "v1.0" },
33
+ input,
34
+ params,
35
+ };
36
+ const { executionId } = await submitRun(body);
37
+ printSubmitted(executionId);
38
+ if (opts.wait !== false) {
39
+ const data = await waitForCompletion(executionId);
40
+ printPollResult(data);
41
+ }
42
+ else {
43
+ console.log("[info]");
44
+ console.log(` message: Use 'weshop status ${executionId}' to check progress`);
45
+ }
46
+ }
47
+ catch (err) {
48
+ printError(err);
49
+ process.exit(1);
50
+ }
51
+ });
52
+ //# sourceMappingURL=buzz-cut-ai.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buzz-cut-ai.js","sourceRoot":"","sources":["../../src/commands/buzz-cut-ai.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,iBAAiB,EAAmB,MAAM,cAAc,CAAC;AAC3F,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE5E,MAAM,cAAc,GAAG,qCAAqC,CAAC;AAE7D,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,OAAO,CAAC,aAAa,CAAC;KACnD,OAAO,CAAC,gEAAgE,CAAC;KACzE,WAAW,CACV,yEAAyE;IACzE,mDAAmD;IACnD,MAAM,cAAc,OAAO;IAC3B,aAAa;IACb,6CAA6C;IAC7C,mGAAmG;IACnG,qDAAqD,CACtD;KACA,cAAc,CAAC,oBAAoB,EAAE,+CAA+C,CAAC;KACrF,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,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEzD,MAAM,MAAM,GAA4B;YACtC,eAAe,EAAE,IAAI,CAAC,MAAM,IAAI,cAAc;YAC9C,MAAM,EAAE,CAAC,QAAQ,CAAC;SACnB,CAAC;QACF,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI;YAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;QAEvD,MAAM,KAAK,GAA4B,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC;QACnE,IAAI,IAAI,CAAC,QAAQ;YAAE,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAElD,MAAM,IAAI,GAAe;YACvB,KAAK,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE;YAC/C,KAAK;YACL,MAAM;SACP,CAAC;QAEF,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC;QAC9C,cAAc,CAAC,WAAW,CAAC,CAAC;QAE5B,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YACxB,MAAM,IAAI,GAAG,MAAM,iBAAiB,CAAC,WAAW,CAAC,CAAC;YAClD,eAAe,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,iCAAiC,WAAW,qBAAqB,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,UAAU,CAAC,GAAG,CAAC,CAAC;QAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { Command } from "commander";
2
+ export declare const celebAiCmd: Command;