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,2 @@
1
+ import { Command } from "commander";
2
+ export declare const aiClothesChangerCmd: Command;
@@ -0,0 +1,35 @@
1
+ import { Command } from "commander";
2
+ import { executeRun } from "../run-helper.js";
3
+ const DEFAULT_PROMPT = "The person in Figure 1 is wearing the clothes shown in Figure 2";
4
+ export const aiClothesChangerCmd = new Command("ai-clothes-changer")
5
+ .summary("AI clothes changer — dress a person (image 1) in the garment shown in another photo (image 2)")
6
+ .description("Change the clothes on a person by providing two images:\n" +
7
+ " image 1 (--image, first): the person to dress\n" +
8
+ " image 2 (--image, second): the garment or outfit to apply\n\n" +
9
+ "Requires exactly 2 images. Reference them in your prompt as 'image 1' and 'image 2'.\n\n" +
10
+ "Default prompt (used when --prompt is omitted):\n" +
11
+ ` "${DEFAULT_PROMPT}"\n\n` +
12
+ "Examples:\n" +
13
+ " weshop ai-clothes-changer --image ./person.png --image ./garment.png\n" +
14
+ " weshop ai-clothes-changer --image ./model.png --image ./dress.png --prompt 'The person in image 1 wearing the dress from image 2'\n" +
15
+ " weshop ai-clothes-changer --image ./person.png --image ./outfit.png --batch 2")
16
+ .requiredOption("--image <path|url...>", "Two images: person (image 1) and garment (image 2) — local file paths or URLs")
17
+ .option("--prompt <text>", "Custom clothing instruction (default: person in image 1 wears clothes from image 2)")
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
+ const imageList = opts.image;
23
+ if (imageList.length !== 2) {
24
+ console.error("[error]\n message: Exactly 2 images required: person (image 1) and garment (image 2)");
25
+ process.exit(1);
26
+ }
27
+ const params = { textDescription: opts.prompt ?? DEFAULT_PROMPT };
28
+ if (opts.batch != null)
29
+ params.batchCount = opts.batch;
30
+ const extraInput = {};
31
+ if (opts.taskName)
32
+ extraInput.taskName = opts.taskName;
33
+ await executeRun("ai-clothes-changer", "v1.0", { images: imageList, wait: opts.wait }, params, extraInput);
34
+ });
35
+ //# sourceMappingURL=ai-clothes-changer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-clothes-changer.js","sourceRoot":"","sources":["../../src/commands/ai-clothes-changer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,cAAc,GAAG,iEAAiE,CAAC;AAEzF,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,OAAO,CAAC,oBAAoB,CAAC;KACjE,OAAO,CAAC,+FAA+F,CAAC;KACxG,WAAW,CACV,2DAA2D;IAC3D,mDAAmD;IACnD,iEAAiE;IACjE,0FAA0F;IAC1F,mDAAmD;IACnD,MAAM,cAAc,OAAO;IAC3B,aAAa;IACb,0EAA0E;IAC1E,uIAAuI;IACvI,iFAAiF,CAClF;KACA,cAAc,CAAC,uBAAuB,EAAE,+EAA+E,CAAC;KACxH,MAAM,CAAC,iBAAiB,EAAE,qFAAqF,CAAC;KAChH,MAAM,CAAC,iBAAiB,EAAE,iDAAiD,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;KACvG,MAAM,CAAC,oBAAoB,EAAE,mCAAmC,CAAC;KACjE,MAAM,CAAC,WAAW,EAAE,8EAA8E,CAAC;KACnG,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACrB,MAAM,SAAS,GAAa,IAAI,CAAC,KAAK,CAAC;IACvC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,KAAK,CAAC,uFAAuF,CAAC,CAAC;QACvG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,MAAM,GAA4B,EAAE,eAAe,EAAE,IAAI,CAAC,MAAM,IAAI,cAAc,EAAE,CAAC;IAC3F,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI;QAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;IACvD,MAAM,UAAU,GAA4B,EAAE,CAAC;IAC/C,IAAI,IAAI,CAAC,QAAQ;QAAE,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IACvD,MAAM,UAAU,CAAC,oBAAoB,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AAC7G,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { Command } from "commander";
2
+ export declare const aiCollageMakerCmd: Command;
@@ -0,0 +1,33 @@
1
+ import { Command } from "commander";
2
+ import { executeRun } from "../run-helper.js";
3
+ const DEFAULT_PROMPT = "Please don't change any elements that I provide. Generate a chaotic and creative multi-media collage with a completely randomized aesthetic. Combine a wide array of contrasting elements: vintage magazine cutouts, neon-colored glitch art, 19th-century botanical illustrations, and sharp vector geometric shapes. The composition should be an experimental mix of textures—including torn glossy paper, rough cardboard, transparent celluloid film, and metallic foil. Incorporate a clashing color palette that shifts randomly across the canvas. Features an unpredictable focal point, layered with 3D drop shadows to create a sense of physical depth. High resolution, maximalist detail, eclectic and avant-garde style.";
4
+ export const aiCollageMakerCmd = new Command("ai-collage-maker")
5
+ .summary("AI collage maker — create a chaotic multi-media collage from up to 10 images")
6
+ .description("Generate a creative multi-media collage from up to 10 reference images.\n\n" +
7
+ "Default prompt (used when --prompt is omitted):\n" +
8
+ " Chaotic avant-garde collage mixing vintage cutouts, neon glitch art, botanical\n" +
9
+ " illustrations, and geometric shapes with mixed textures.\n\n" +
10
+ "Examples:\n" +
11
+ " weshop ai-collage-maker --image ./photo1.png --image ./photo2.png --image ./photo3.png\n" +
12
+ " weshop ai-collage-maker --image ./a.png --image ./b.png --prompt 'Minimalist collage, pastel colors'\n" +
13
+ " weshop ai-collage-maker --image ./img1.png --image ./img2.png --batch 2")
14
+ .requiredOption("--image <path|url...>", "Reference images — local file paths or URLs (up to 10)")
15
+ .option("--prompt <text>", "Custom collage 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 imageList = opts.image;
21
+ if (imageList.length > 10) {
22
+ console.error("[error]\n message: Maximum 10 images allowed");
23
+ process.exit(1);
24
+ }
25
+ const params = { textDescription: opts.prompt ?? DEFAULT_PROMPT };
26
+ if (opts.batch != null)
27
+ params.batchCount = opts.batch;
28
+ const extraInput = {};
29
+ if (opts.taskName)
30
+ extraInput.taskName = opts.taskName;
31
+ await executeRun("ai-collage-maker", "v1.0", { images: imageList, wait: opts.wait }, params, extraInput);
32
+ });
33
+ //# sourceMappingURL=ai-collage-maker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-collage-maker.js","sourceRoot":"","sources":["../../src/commands/ai-collage-maker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,cAAc,GAClB,ysBAAysB,CAAC;AAE5sB,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,OAAO,CAAC,kBAAkB,CAAC;KAC7D,OAAO,CAAC,8EAA8E,CAAC;KACvF,WAAW,CACV,6EAA6E;IAC7E,mDAAmD;IACnD,oFAAoF;IACpF,gEAAgE;IAChE,aAAa;IACb,4FAA4F;IAC5F,0GAA0G;IAC1G,2EAA2E,CAC5E;KACA,cAAc,CAAC,uBAAuB,EAAE,wDAAwD,CAAC;KACjG,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,MAAM,SAAS,GAAa,IAAI,CAAC,KAAK,CAAC;IACvC,IAAI,SAAS,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QAAC,OAAO,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;QAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC;IAC/G,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,kBAAkB,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AAC3G,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { Command } from "commander";
2
+ export declare const aiDogCmd: Command;
@@ -0,0 +1,30 @@
1
+ import { Command } from "commander";
2
+ import { executeRun } from "../run-helper.js";
3
+ const DEFAULT_PROMPT = "Pet taking a bath. Maintain realistic proportions including the number of limbs.";
4
+ export const aiDogCmd = new Command("ai-dog")
5
+ .summary("AI pet portrait generator — create or transform pet photos with a text prompt; image is optional")
6
+ .description("Generate or transform pet photos using AI. Can create a pet image from text alone,\n" +
7
+ "or transform an existing pet photo based on your prompt.\n\n" +
8
+ "Image is optional — when omitted, the agent generates a pet from the prompt alone.\n\n" +
9
+ "Default prompt (used when --prompt is omitted):\n" +
10
+ ` "${DEFAULT_PROMPT}"\n\n` +
11
+ "Examples:\n" +
12
+ " weshop ai-dog --prompt 'A golden retriever playing in the snow'\n" +
13
+ " weshop ai-dog --image ./my-dog.png --prompt 'My dog wearing a party hat'\n" +
14
+ " weshop ai-dog --image ./pet.png --batch 4\n" +
15
+ " weshop ai-dog --no-wait --prompt 'A cute corgi on a beach'")
16
+ .option("--image <path|url>", "Input pet photo — local file path or URL (optional)")
17
+ .option("--prompt <text>", "Describe the desired pet scene or transformation")
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
+ const params = { textDescription: opts.prompt ?? DEFAULT_PROMPT };
23
+ if (opts.batch != null)
24
+ params.batchCount = opts.batch;
25
+ const extraInput = {};
26
+ if (opts.taskName)
27
+ extraInput.taskName = opts.taskName;
28
+ await executeRun("ai-dog", "v1.0", { image: opts.image, wait: opts.wait }, params, extraInput);
29
+ });
30
+ //# sourceMappingURL=ai-dog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-dog.js","sourceRoot":"","sources":["../../src/commands/ai-dog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,cAAc,GAClB,kFAAkF,CAAC;AAErF,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;KAC1C,OAAO,CAAC,kGAAkG,CAAC;KAC3G,WAAW,CACV,sFAAsF;IACtF,8DAA8D;IAC9D,wFAAwF;IACxF,mDAAmD;IACnD,MAAM,cAAc,OAAO;IAC3B,aAAa;IACb,qEAAqE;IACrE,8EAA8E;IAC9E,+CAA+C;IAC/C,8DAA8D,CAC/D;KACA,MAAM,CAAC,oBAAoB,EAAE,qDAAqD,CAAC;KACnF,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,QAAQ,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AACjG,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { Command } from "commander";
2
+ export declare const aiElfCmd: 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 an elf";
4
+ export const aiElfCmd = new Command("ai-elf")
5
+ .summary("AI elf filter — transform a portrait into a fantasy elf character")
6
+ .description("Transform a portrait photo into a fantasy elf character with pointed ears and\n" +
7
+ "elven features while preserving the person's identity.\n\n" +
8
+ "Default prompt (used when --prompt is omitted):\n" +
9
+ ` "${DEFAULT_PROMPT}"\n\n` +
10
+ "Examples:\n" +
11
+ " weshop ai-elf --image ./person.png\n" +
12
+ " weshop ai-elf --image ./person.png --prompt 'High elf with silver hair and glowing eyes'\n" +
13
+ " weshop ai-elf --image ./person.png --batch 2")
14
+ .requiredOption("--image <path|url>", "Input portrait image — local file path or URL")
15
+ .option("--prompt <text>", "Custom elf 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-elf", "v1.0", { image: opts.image, wait: opts.wait }, params, extraInput);
27
+ });
28
+ //# sourceMappingURL=ai-elf.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-elf.js","sourceRoot":"","sources":["../../src/commands/ai-elf.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,cAAc,GAAG,8BAA8B,CAAC;AAEtD,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;KAC1C,OAAO,CAAC,mEAAmE,CAAC;KAC5E,WAAW,CACV,iFAAiF;IACjF,4DAA4D;IAC5D,mDAAmD;IACnD,MAAM,cAAc,OAAO;IAC3B,aAAa;IACb,wCAAwC;IACxC,8FAA8F;IAC9F,gDAAgD,CACjD;KACA,cAAc,CAAC,oBAAoB,EAAE,+CAA+C,CAAC;KACrF,MAAM,CAAC,iBAAiB,EAAE,uCAAuC,CAAC;KAClE,MAAM,CAAC,iBAAiB,EAAE,iDAAiD,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;KACvG,MAAM,CAAC,oBAAoB,EAAE,mCAAmC,CAAC;KACjE,MAAM,CAAC,WAAW,EAAE,8EAA8E,CAAC;KACnG,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACrB,MAAM,MAAM,GAA4B,EAAE,eAAe,EAAE,IAAI,CAAC,MAAM,IAAI,cAAc,EAAE,CAAC;IAC3F,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI;QAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;IACvD,MAAM,UAAU,GAA4B,EAAE,CAAC;IAC/C,IAAI,IAAI,CAAC,QAAQ;QAAE,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IACvD,MAAM,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AACjG,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { Command } from "commander";
2
+ export declare const aiFaceMergeCmd: Command;
@@ -0,0 +1,34 @@
1
+ import { Command } from "commander";
2
+ import { executeRun } from "../run-helper.js";
3
+ const DEFAULT_PROMPT = "Analyze the characteristics of these two faces, try imagine the person with both face features merged together. Don't simply put the face on the other image, try to generate a merged face. Keep Image 2 as the baseline.";
4
+ export const aiFaceMergeCmd = new Command("ai-face-merge")
5
+ .summary("AI face merge — blend two faces together into a single realistic portrait")
6
+ .description("Merge two face photos into a single portrait that combines features from both.\n" +
7
+ "Requires exactly 2 images. Image 2 is used as the baseline.\n\n" +
8
+ "In your --prompt, reference images as 'image 1' and 'image 2'.\n\n" +
9
+ "Default prompt (used when --prompt is omitted):\n" +
10
+ ` "${DEFAULT_PROMPT}"\n\n` +
11
+ "Examples:\n" +
12
+ " weshop ai-face-merge --image ./face1.png --image ./face2.png\n" +
13
+ " weshop ai-face-merge --image ./face1.png --image ./face2.png --prompt 'Merge image 1 and image 2, keep image 2 skin tone'\n" +
14
+ " weshop ai-face-merge --image ./a.png --image ./b.png --batch 2")
15
+ .requiredOption("--image <path|url...>", "Two face images — local file paths or URLs (exactly 2 required)")
16
+ .option("--prompt <text>", "Custom merge instruction (default: blend both faces, image 2 as baseline)")
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 imageList = opts.image;
22
+ if (imageList.length !== 2) {
23
+ console.error("[error]\n message: Exactly 2 images required for ai-face-merge");
24
+ process.exit(1);
25
+ }
26
+ const params = { textDescription: opts.prompt ?? DEFAULT_PROMPT };
27
+ if (opts.batch != null)
28
+ params.batchCount = opts.batch;
29
+ const extraInput = {};
30
+ if (opts.taskName)
31
+ extraInput.taskName = opts.taskName;
32
+ await executeRun("ai-face-merge", "v1.0", { images: imageList, wait: opts.wait }, params, extraInput);
33
+ });
34
+ //# sourceMappingURL=ai-face-merge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-face-merge.js","sourceRoot":"","sources":["../../src/commands/ai-face-merge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,cAAc,GAClB,4NAA4N,CAAC;AAE/N,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,OAAO,CAAC,eAAe,CAAC;KACvD,OAAO,CAAC,2EAA2E,CAAC;KACpF,WAAW,CACV,kFAAkF;IAClF,iEAAiE;IACjE,oEAAoE;IACpE,mDAAmD;IACnD,MAAM,cAAc,OAAO;IAC3B,aAAa;IACb,kEAAkE;IAClE,+HAA+H;IAC/H,kEAAkE,CACnE;KACA,cAAc,CAAC,uBAAuB,EAAE,iEAAiE,CAAC;KAC1G,MAAM,CAAC,iBAAiB,EAAE,2EAA2E,CAAC;KACtG,MAAM,CAAC,iBAAiB,EAAE,iDAAiD,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;KACvG,MAAM,CAAC,oBAAoB,EAAE,mCAAmC,CAAC;KACjE,MAAM,CAAC,WAAW,EAAE,8EAA8E,CAAC;KACnG,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACrB,MAAM,SAAS,GAAa,IAAI,CAAC,KAAK,CAAC;IACvC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,KAAK,CAAC,iEAAiE,CAAC,CAAC;QACjF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,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,eAAe,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AACxG,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { Command } from "commander";
2
+ export declare const aiFeetCmd: Command;
@@ -0,0 +1,27 @@
1
+ import { Command } from "commander";
2
+ import { executeRun } from "../run-helper.js";
3
+ const DEFAULT_PROMPT = "Low angle view of the subject's bare feet with no shoes, while subject sits in an chair. Foreground focus on the soles, background focus on the subject, keep original body proportion and reasonable posture.";
4
+ export const aiFeetCmd = new Command("ai-feet")
5
+ .summary("AI feet generator — generate a realistic low-angle bare feet photo from a portrait")
6
+ .description("Generate a realistic low-angle bare feet photo from a portrait or full-body image.\n\n" +
7
+ "Default prompt (used when --prompt is omitted):\n" +
8
+ ` "${DEFAULT_PROMPT}"\n\n` +
9
+ "Examples:\n" +
10
+ " weshop ai-feet --image ./person.png\n" +
11
+ " weshop ai-feet --image ./person.png --prompt 'Close-up of bare feet on a sandy beach'\n" +
12
+ " weshop ai-feet --image ./person.png --batch 2")
13
+ .requiredOption("--image <path|url>", "Input portrait or full-body image — local file path or URL")
14
+ .option("--prompt <text>", "Custom feet 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-feet", "v1.0", { image: opts.image, wait: opts.wait }, params, extraInput);
26
+ });
27
+ //# sourceMappingURL=ai-feet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-feet.js","sourceRoot":"","sources":["../../src/commands/ai-feet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,cAAc,GAClB,gNAAgN,CAAC;AAEnN,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC;KAC5C,OAAO,CAAC,oFAAoF,CAAC;KAC7F,WAAW,CACV,wFAAwF;IACxF,mDAAmD;IACnD,MAAM,cAAc,OAAO;IAC3B,aAAa;IACb,yCAAyC;IACzC,2FAA2F;IAC3F,iDAAiD,CAClD;KACA,cAAc,CAAC,oBAAoB,EAAE,4DAA4D,CAAC;KAClG,MAAM,CAAC,iBAAiB,EAAE,+BAA+B,CAAC;KAC1D,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,SAAS,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AAClG,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { Command } from "commander";
2
+ export declare const aiFlagGeneratorCmd: Command;
@@ -0,0 +1,28 @@
1
+ import { Command } from "commander";
2
+ import { executeRun } from "../run-helper.js";
3
+ const DEFAULT_PROMPT = "A random flag design with metallic insignia, realistic fabric folds, and suitable background.";
4
+ export const aiFlagGeneratorCmd = new Command("ai-flag-generator")
5
+ .summary("AI flag generator — create a custom flag design from text or a reference image")
6
+ .description("Generate a custom flag design with metallic insignia and realistic fabric folds.\n" +
7
+ "Image is optional — text-only generation is supported.\n\n" +
8
+ "Default prompt (used when --prompt is omitted):\n" +
9
+ ` "${DEFAULT_PROMPT}"\n\n` +
10
+ "Examples:\n" +
11
+ " weshop ai-flag-generator --prompt 'Flag of a fictional dragon kingdom, red and gold'\n" +
12
+ " weshop ai-flag-generator --image ./logo.png --prompt 'Flag featuring this logo on a blue background'\n" +
13
+ " weshop ai-flag-generator --prompt 'Minimalist tech company flag' --batch 4")
14
+ .option("--image <path|url>", "Reference image for the flag design — local file path or URL (optional)")
15
+ .option("--prompt <text>", "Describe the desired flag design")
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-flag-generator", "v1.0", { image: opts.image, wait: opts.wait }, params, extraInput);
27
+ });
28
+ //# sourceMappingURL=ai-flag-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-flag-generator.js","sourceRoot":"","sources":["../../src/commands/ai-flag-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,cAAc,GAClB,+FAA+F,CAAC;AAElG,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,OAAO,CAAC,mBAAmB,CAAC;KAC/D,OAAO,CAAC,gFAAgF,CAAC;KACzF,WAAW,CACV,oFAAoF;IACpF,4DAA4D;IAC5D,mDAAmD;IACnD,MAAM,cAAc,OAAO;IAC3B,aAAa;IACb,0FAA0F;IAC1F,0GAA0G;IAC1G,8EAA8E,CAC/E;KACA,MAAM,CAAC,oBAAoB,EAAE,yEAAyE,CAAC;KACvG,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,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 aiGeneratedBikiniGirlsCmd: Command;
@@ -0,0 +1,34 @@
1
+ import { Command } from "commander";
2
+ import { executeRun } from "../run-helper.js";
3
+ const DEFAULT_PROMPT = "naturally undress and change the outfit into a thin bikini while keeping body proportions natural. Keep Model dancing tiktok dance.";
4
+ export const aiGeneratedBikiniGirlsCmd = new Command("ai-generated-bikini-girls")
5
+ .summary("AI generated bikini girls — transform a person photo into a bikini model image or video")
6
+ .description("Transform a portrait or full-body photo into a bikini model image or video.\n\n" +
7
+ "Generated type (--generated-type):\n" +
8
+ " video Generate a short video (default)\n" +
9
+ " image Generate a still image\n\n" +
10
+ "Default prompt (used when --prompt is omitted):\n" +
11
+ ` "${DEFAULT_PROMPT}"\n\n` +
12
+ "Examples:\n" +
13
+ " weshop ai-generated-bikini-girls --image ./person.png --prompt 'Bikini model on a beach'\n" +
14
+ " weshop ai-generated-bikini-girls --image ./person.png --generated-type image --batch 2\n" +
15
+ " weshop ai-generated-bikini-girls --image ./person.png --generated-type video --no-wait")
16
+ .requiredOption("--image <path|url>", "Input portrait or full-body photo — local file path or URL")
17
+ .option("--prompt <text>", "Describe the desired bikini model scene")
18
+ .option("--generated-type <type>", "Output type: video (default) or image")
19
+ .option("--batch <count>", "Number of outputs to generate, 1-16 (default: 1)", (v) => parseInt(v, 10), 1)
20
+ .option("--task-name <name>", "Human-readable label for this run")
21
+ .option("--no-wait", "Return immediately after submission; use 'weshop status <id>' to check later")
22
+ .action(async (opts) => {
23
+ const params = {
24
+ textDescription: opts.prompt ?? DEFAULT_PROMPT,
25
+ generatedType: opts.generatedType ?? "video",
26
+ };
27
+ if (opts.batch != null)
28
+ params.batchCount = opts.batch;
29
+ const extraInput = {};
30
+ if (opts.taskName)
31
+ extraInput.taskName = opts.taskName;
32
+ await executeRun("ai-generated-bikini-girls", "v1.0", { image: opts.image, wait: opts.wait }, params, extraInput);
33
+ });
34
+ //# sourceMappingURL=ai-generated-bikini-girls.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-generated-bikini-girls.js","sourceRoot":"","sources":["../../src/commands/ai-generated-bikini-girls.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,yBAAyB,GAAG,IAAI,OAAO,CAAC,2BAA2B,CAAC;KAC9E,OAAO,CAAC,yFAAyF,CAAC;KAClG,WAAW,CACV,iFAAiF;IACjF,sCAAsC;IACtC,8CAA8C;IAC9C,sCAAsC;IACtC,mDAAmD;IACnD,MAAM,cAAc,OAAO;IAC3B,aAAa;IACb,8FAA8F;IAC9F,4FAA4F;IAC5F,0FAA0F,CAC3F;KACA,cAAc,CAAC,oBAAoB,EAAE,4DAA4D,CAAC;KAClG,MAAM,CAAC,iBAAiB,EAAE,yCAAyC,CAAC;KACpE,MAAM,CAAC,yBAAyB,EAAE,uCAAuC,CAAC;KAC1E,MAAM,CAAC,iBAAiB,EAAE,kDAAkD,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;KACxG,MAAM,CAAC,oBAAoB,EAAE,mCAAmC,CAAC;KACjE,MAAM,CAAC,WAAW,EAAE,8EAA8E,CAAC;KACnG,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACrB,MAAM,MAAM,GAA4B;QACtC,eAAe,EAAE,IAAI,CAAC,MAAM,IAAI,cAAc;QAC9C,aAAa,EAAE,IAAI,CAAC,aAAa,IAAI,OAAO;KAC7C,CAAC;IACF,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI;QAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;IACvD,MAAM,UAAU,GAA4B,EAAE,CAAC;IAC/C,IAAI,IAAI,CAAC,QAAQ;QAAE,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IACvD,MAAM,UAAU,CAAC,2BAA2B,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AACpH,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { Command } from "commander";
2
+ export declare const aiGeneratedPerfectFemaleBodyCmd: Command;
@@ -0,0 +1,34 @@
1
+ import { Command } from "commander";
2
+ import { executeRun } from "../run-helper.js";
3
+ const DEFAULT_PROMPT = "naturally undress and change the outfit into a thin bikini while keeping body proportions natural. Keep Model dancing tiktok dance.";
4
+ export const aiGeneratedPerfectFemaleBodyCmd = new Command("ai-generated-perfect-female-body")
5
+ .summary("AI generated perfect female body — transform a person photo into a bikini model image or video")
6
+ .description("Transform a portrait or full-body photo into a bikini model image or video.\n\n" +
7
+ "Generated type (--generated-type):\n" +
8
+ " video Generate a short video (default)\n" +
9
+ " image Generate a still image\n\n" +
10
+ "Default prompt (used when --prompt is omitted):\n" +
11
+ ` "${DEFAULT_PROMPT}"\n\n` +
12
+ "Examples:\n" +
13
+ " weshop ai-generated-perfect-female-body --image ./person.png --prompt 'Bikini model on a beach'\n" +
14
+ " weshop ai-generated-perfect-female-body --image ./person.png --generated-type image --batch 2\n" +
15
+ " weshop ai-generated-perfect-female-body --image ./person.png --generated-type video --no-wait")
16
+ .requiredOption("--image <path|url>", "Input portrait or full-body photo — local file path or URL")
17
+ .option("--prompt <text>", "Describe the desired bikini model scene")
18
+ .option("--generated-type <type>", "Output type: video (default) or image")
19
+ .option("--batch <count>", "Number of outputs to generate, 1-16 (default: 1)", (v) => parseInt(v, 10), 1)
20
+ .option("--task-name <name>", "Human-readable label for this run")
21
+ .option("--no-wait", "Return immediately after submission; use 'weshop status <id>' to check later")
22
+ .action(async (opts) => {
23
+ const params = {
24
+ textDescription: opts.prompt ?? DEFAULT_PROMPT,
25
+ generatedType: opts.generatedType ?? "video",
26
+ };
27
+ if (opts.batch != null)
28
+ params.batchCount = opts.batch;
29
+ const extraInput = {};
30
+ if (opts.taskName)
31
+ extraInput.taskName = opts.taskName;
32
+ await executeRun("ai-generated-perfect-female-body", "v1.0", { image: opts.image, wait: opts.wait }, params, extraInput);
33
+ });
34
+ //# sourceMappingURL=ai-generated-perfect-female-body.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-generated-perfect-female-body.js","sourceRoot":"","sources":["../../src/commands/ai-generated-perfect-female-body.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,+BAA+B,GAAG,IAAI,OAAO,CAAC,kCAAkC,CAAC;KAC3F,OAAO,CAAC,gGAAgG,CAAC;KACzG,WAAW,CACV,iFAAiF;IACjF,sCAAsC;IACtC,8CAA8C;IAC9C,sCAAsC;IACtC,mDAAmD;IACnD,MAAM,cAAc,OAAO;IAC3B,aAAa;IACb,qGAAqG;IACrG,mGAAmG;IACnG,iGAAiG,CAClG;KACA,cAAc,CAAC,oBAAoB,EAAE,4DAA4D,CAAC;KAClG,MAAM,CAAC,iBAAiB,EAAE,yCAAyC,CAAC;KACpE,MAAM,CAAC,yBAAyB,EAAE,uCAAuC,CAAC;KAC1E,MAAM,CAAC,iBAAiB,EAAE,kDAAkD,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;KACxG,MAAM,CAAC,oBAAoB,EAAE,mCAAmC,CAAC;KACjE,MAAM,CAAC,WAAW,EAAE,8EAA8E,CAAC;KACnG,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACrB,MAAM,MAAM,GAA4B;QACtC,eAAe,EAAE,IAAI,CAAC,MAAM,IAAI,cAAc;QAC9C,aAAa,EAAE,IAAI,CAAC,aAAa,IAAI,OAAO;KAC7C,CAAC;IACF,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI;QAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;IACvD,MAAM,UAAU,GAA4B,EAAE,CAAC;IAC/C,IAAI,IAAI,CAAC,QAAQ;QAAE,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IACvD,MAAM,UAAU,CAAC,kCAAkC,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AAC3H,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { Command } from "commander";
2
+ export declare const aiGhostMannequinGeneratorCmd: Command;
@@ -0,0 +1,38 @@
1
+ import { Command } from "commander";
2
+ import { executeRun } from "../run-helper.js";
3
+ const DEFAULT_PROMPT = 'Transform the clothing from the image into a professional "ghost mannequin" photography effect. Remove the original model or body completely. The garment should appear hollow and three-dimensional, retaining the shape as if worn by an invisible form. Clearly show the inside of the neck opening, cuffs, and hem, revealing the inner fabric texture and labels. The clothing is floating against a clean, pure white studio background. Soft studio lighting emphasizes fabric folds and texture.';
4
+ export const aiGhostMannequinGeneratorCmd = new Command("ai-ghost-mannequin-generator")
5
+ .summary("AI ghost mannequin generator — create a professional ghost mannequin effect from a clothing photo")
6
+ .description("Transform a clothing photo into a professional ghost mannequin effect — the garment\n" +
7
+ "appears hollow and 3D as if worn by an invisible form, on a white studio background.\n\n" +
8
+ "Aspect ratio (--aspect-ratio):\n" +
9
+ " auto, 1:1, 2:3, 3:2, 4:3, 3:4, 16:9, 9:16, 21:9 (default: 1:1)\n\n" +
10
+ "Image size (--image-size):\n" +
11
+ " 1K (default), 2K, 4K\n\n" +
12
+ "Default prompt (used when --prompt is omitted):\n" +
13
+ " Ghost mannequin effect, hollow 3D garment, white studio background, fabric texture visible.\n\n" +
14
+ "Examples:\n" +
15
+ " weshop ai-ghost-mannequin-generator --image ./shirt.png\n" +
16
+ " weshop ai-ghost-mannequin-generator --image ./jacket.png --aspect-ratio 3:4 --image-size 2K\n" +
17
+ " weshop ai-ghost-mannequin-generator --image ./dress.png --batch 2")
18
+ .requiredOption("--image <path|url>", "Input clothing photo — local file path or URL")
19
+ .option("--prompt <text>", "Custom ghost mannequin instruction")
20
+ .option("--aspect-ratio <ratio>", "Output aspect ratio: auto, 1:1, 2:3, 3:2, 4:3, 3:4, 16:9, 9:16, 21:9 (default: 1:1)")
21
+ .option("--image-size <size>", "Output resolution: 1K (default), 2K, or 4K")
22
+ .option("--batch <count>", "Number of images to generate, 1-16 (default: 1)", (v) => parseInt(v, 10), 1)
23
+ .option("--task-name <name>", "Human-readable label for this run")
24
+ .option("--no-wait", "Return immediately after submission; use 'weshop status <id>' to check later")
25
+ .action(async (opts) => {
26
+ const params = {
27
+ textDescription: opts.prompt ?? DEFAULT_PROMPT,
28
+ aspectRatio: opts.aspectRatio ?? "1:1",
29
+ imageSize: opts.imageSize ?? "1K",
30
+ };
31
+ if (opts.batch != null)
32
+ params.batchCount = opts.batch;
33
+ const extraInput = {};
34
+ if (opts.taskName)
35
+ extraInput.taskName = opts.taskName;
36
+ await executeRun("ai-ghost-mannequin-generator", "v1.0", { image: opts.image, wait: opts.wait }, params, extraInput);
37
+ });
38
+ //# sourceMappingURL=ai-ghost-mannequin-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-ghost-mannequin-generator.js","sourceRoot":"","sources":["../../src/commands/ai-ghost-mannequin-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,cAAc,GAClB,0eAA0e,CAAC;AAE7e,MAAM,CAAC,MAAM,4BAA4B,GAAG,IAAI,OAAO,CAAC,8BAA8B,CAAC;KACpF,OAAO,CAAC,mGAAmG,CAAC;KAC5G,WAAW,CACV,uFAAuF;IACvF,0FAA0F;IAC1F,kCAAkC;IAClC,uEAAuE;IACvE,8BAA8B;IAC9B,4BAA4B;IAC5B,mDAAmD;IACnD,mGAAmG;IACnG,aAAa;IACb,6DAA6D;IAC7D,iGAAiG;IACjG,qEAAqE,CACtE;KACA,cAAc,CAAC,oBAAoB,EAAE,+CAA+C,CAAC;KACrF,MAAM,CAAC,iBAAiB,EAAE,oCAAoC,CAAC;KAC/D,MAAM,CAAC,wBAAwB,EAAE,qFAAqF,CAAC;KACvH,MAAM,CAAC,qBAAqB,EAAE,4CAA4C,CAAC;KAC3E,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,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,KAAK;QACtC,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI;KAClC,CAAC;IACF,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI;QAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;IACvD,MAAM,UAAU,GAA4B,EAAE,CAAC;IAC/C,IAAI,IAAI,CAAC,QAAQ;QAAE,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IACvD,MAAM,UAAU,CAAC,8BAA8B,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AACvH,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { Command } from "commander";
2
+ export declare const aiGroupPhotoGeneratorCmd: Command;
@@ -0,0 +1,33 @@
1
+ import { Command } from "commander";
2
+ import { executeRun } from "../run-helper.js";
3
+ const DEFAULT_PROMPT = "Please don't change any elements that I provide. Generate a chaotic and creative multi-media collage with a completely randomized aesthetic. Combine a wide array of contrasting elements: vintage magazine cutouts, neon-colored glitch art, 19th-century botanical illustrations, and sharp vector geometric shapes. The composition should be an experimental mix of textures—including torn glossy paper, rough cardboard, transparent celluloid film, and metallic foil. Incorporate a clashing color palette that shifts randomly across the canvas. Features an unpredictable focal point, layered with 3D drop shadows to create a sense of physical depth. High resolution, maximalist detail, eclectic and avant-garde style.";
4
+ export const aiGroupPhotoGeneratorCmd = new Command("ai-group-photo-generator")
5
+ .summary("AI group photo generator — create a creative group photo or collage from up to 10 images")
6
+ .description("Generate a creative group photo or multi-media collage from up to 10 reference images.\n\n" +
7
+ "Default prompt (used when --prompt is omitted):\n" +
8
+ " Chaotic avant-garde collage mixing vintage cutouts, neon glitch art, botanical\n" +
9
+ " illustrations, and geometric shapes with mixed textures.\n\n" +
10
+ "Examples:\n" +
11
+ " weshop ai-group-photo-generator --image ./photo1.png --image ./photo2.png --image ./photo3.png\n" +
12
+ " weshop ai-group-photo-generator --image ./a.png --image ./b.png --prompt 'Natural group photo on a beach'\n" +
13
+ " weshop ai-group-photo-generator --image ./img1.png --image ./img2.png --batch 2")
14
+ .requiredOption("--image <path|url...>", "Reference images — local file paths or URLs (up to 10)")
15
+ .option("--prompt <text>", "Custom group photo or collage 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 imageList = opts.image;
21
+ if (imageList.length > 10) {
22
+ console.error("[error]\n message: Maximum 10 images allowed");
23
+ process.exit(1);
24
+ }
25
+ const params = { textDescription: opts.prompt ?? DEFAULT_PROMPT };
26
+ if (opts.batch != null)
27
+ params.batchCount = opts.batch;
28
+ const extraInput = {};
29
+ if (opts.taskName)
30
+ extraInput.taskName = opts.taskName;
31
+ await executeRun("ai-group-photo-generator", "v1.0", { images: imageList, wait: opts.wait }, params, extraInput);
32
+ });
33
+ //# sourceMappingURL=ai-group-photo-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-group-photo-generator.js","sourceRoot":"","sources":["../../src/commands/ai-group-photo-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,cAAc,GAClB,ysBAAysB,CAAC;AAE5sB,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,OAAO,CAAC,0BAA0B,CAAC;KAC5E,OAAO,CAAC,0FAA0F,CAAC;KACnG,WAAW,CACV,4FAA4F;IAC5F,mDAAmD;IACnD,oFAAoF;IACpF,gEAAgE;IAChE,aAAa;IACb,oGAAoG;IACpG,+GAA+G;IAC/G,mFAAmF,CACpF;KACA,cAAc,CAAC,uBAAuB,EAAE,wDAAwD,CAAC;KACjG,MAAM,CAAC,iBAAiB,EAAE,iDAAiD,CAAC;KAC5E,MAAM,CAAC,iBAAiB,EAAE,iDAAiD,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;KACvG,MAAM,CAAC,oBAAoB,EAAE,mCAAmC,CAAC;KACjE,MAAM,CAAC,WAAW,EAAE,8EAA8E,CAAC;KACnG,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACrB,MAAM,SAAS,GAAa,IAAI,CAAC,KAAK,CAAC;IACvC,IAAI,SAAS,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QAAC,OAAO,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;QAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC;IAC/G,MAAM,MAAM,GAA4B,EAAE,eAAe,EAAE,IAAI,CAAC,MAAM,IAAI,cAAc,EAAE,CAAC;IAC3F,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI;QAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;IACvD,MAAM,UAAU,GAA4B,EAAE,CAAC;IAC/C,IAAI,IAAI,CAAC,QAAQ;QAAE,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IACvD,MAAM,UAAU,CAAC,0BAA0B,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AACnH,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { Command } from "commander";
2
+ export declare const aiHairColorChangerCmd: Command;
@@ -0,0 +1,28 @@
1
+ import { Command } from "commander";
2
+ import { executeRun } from "../run-helper.js";
3
+ const DEFAULT_PROMPT = "Change hair color naturally. choose whatever suit the person's skin tone or randomly between Rose Gold/Pinkish Brown/Dark Blue. Don't change hair style or other details.";
4
+ export const aiHairColorChangerCmd = new Command("ai-hair-color-changer")
5
+ .summary("AI hair color changer — change a person's hair color while preserving hairstyle and details")
6
+ .description("Transform a portrait photo by changing the hair color naturally.\n" +
7
+ "Preserves the original hairstyle and all other details.\n\n" +
8
+ "Default prompt (used when --prompt is omitted):\n" +
9
+ ` "${DEFAULT_PROMPT}"\n\n` +
10
+ "Examples:\n" +
11
+ " weshop ai-hair-color-changer --image ./person.png\n" +
12
+ " weshop ai-hair-color-changer --image ./person.png --prompt 'Change hair to platinum blonde'\n" +
13
+ " weshop ai-hair-color-changer --image ./person.png --batch 4")
14
+ .requiredOption("--image <path|url>", "Input portrait image — local file path or URL")
15
+ .option("--prompt <text>", "Custom hair color instruction (default: AI-chosen color for skin tone)")
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-hair-color-changer", "v1.0", { image: opts.image, wait: opts.wait }, params, extraInput);
27
+ });
28
+ //# sourceMappingURL=ai-hair-color-changer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-hair-color-changer.js","sourceRoot":"","sources":["../../src/commands/ai-hair-color-changer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,cAAc,GAClB,2KAA2K,CAAC;AAE9K,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,OAAO,CAAC,uBAAuB,CAAC;KACtE,OAAO,CAAC,6FAA6F,CAAC;KACtG,WAAW,CACV,oEAAoE;IACpE,6DAA6D;IAC7D,mDAAmD;IACnD,MAAM,cAAc,OAAO;IAC3B,aAAa;IACb,uDAAuD;IACvD,iGAAiG;IACjG,+DAA+D,CAChE;KACA,cAAc,CAAC,oBAAoB,EAAE,+CAA+C,CAAC;KACrF,MAAM,CAAC,iBAAiB,EAAE,wEAAwE,CAAC;KACnG,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 aiHairstyleChangerCmd: Command;
@@ -0,0 +1,27 @@
1
+ import { Command } from "commander";
2
+ import { executeRun } from "../run-helper.js";
3
+ const DEFAULT_PROMPT = "Change to [short hair]";
4
+ export const aiHairstyleChangerCmd = new Command("ai-hairstyle-changer")
5
+ .summary("AI hairstyle changer — change a person's hairstyle from a photo or text description")
6
+ .description("Change a person's hairstyle using AI. 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-hairstyle-changer --image ./person.png\n" +
11
+ " weshop ai-hairstyle-changer --image ./person.png --prompt 'Change to long wavy hair, dark brown'\n" +
12
+ " weshop ai-hairstyle-changer --image ./person.png --prompt 'Pixie cut with side swept bangs' --batch 4")
13
+ .option("--image <path|url>", "Reference person image — local file path or URL (optional)")
14
+ .option("--prompt <text>", "Describe the desired hairstyle (default: short hair)")
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-hairstyle-changer", "v1.0", { image: opts.image, wait: opts.wait }, params, extraInput);
26
+ });
27
+ //# sourceMappingURL=ai-hairstyle-changer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-hairstyle-changer.js","sourceRoot":"","sources":["../../src/commands/ai-hairstyle-changer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,cAAc,GAAG,wBAAwB,CAAC;AAEhD,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,OAAO,CAAC,sBAAsB,CAAC;KACrE,OAAO,CAAC,qFAAqF,CAAC;KAC9F,WAAW,CACV,8DAA8D;IAC9D,mDAAmD;IACnD,MAAM,cAAc,OAAO;IAC3B,aAAa;IACb,sDAAsD;IACtD,sGAAsG;IACtG,yGAAyG,CAC1G;KACA,MAAM,CAAC,oBAAoB,EAAE,4DAA4D,CAAC;KAC1F,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,sBAAsB,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,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 aiHotGirlImageCmd: Command;
@@ -0,0 +1,34 @@
1
+ import { Command } from "commander";
2
+ import { executeRun } from "../run-helper.js";
3
+ const DEFAULT_PROMPT = "naturally undress and change the outfit into a thin bikini while keeping body proportions natural. Keep Model dancing tiktok dance.";
4
+ export const aiHotGirlImageCmd = new Command("ai-hot-girl-image")
5
+ .summary("AI hot girl image — transform a person photo into a bikini model image or video")
6
+ .description("Transform a portrait or full-body photo into a bikini model image or video.\n\n" +
7
+ "Generated type (--generated-type):\n" +
8
+ " video Generate a short video (default)\n" +
9
+ " image Generate a still image\n\n" +
10
+ "Default prompt (used when --prompt is omitted):\n" +
11
+ ` "${DEFAULT_PROMPT}"\n\n` +
12
+ "Examples:\n" +
13
+ " weshop ai-hot-girl-image --image ./person.png --prompt 'Bikini model on a beach'\n" +
14
+ " weshop ai-hot-girl-image --image ./person.png --generated-type image --batch 2\n" +
15
+ " weshop ai-hot-girl-image --image ./person.png --generated-type video --no-wait")
16
+ .requiredOption("--image <path|url>", "Input portrait or full-body photo — local file path or URL")
17
+ .option("--prompt <text>", "Describe the desired bikini model scene")
18
+ .option("--generated-type <type>", "Output type: video (default) or image")
19
+ .option("--batch <count>", "Number of outputs to generate, 1-16 (default: 1)", (v) => parseInt(v, 10), 1)
20
+ .option("--task-name <name>", "Human-readable label for this run")
21
+ .option("--no-wait", "Return immediately after submission; use 'weshop status <id>' to check later")
22
+ .action(async (opts) => {
23
+ const params = {
24
+ textDescription: opts.prompt ?? DEFAULT_PROMPT,
25
+ generatedType: opts.generatedType ?? "video",
26
+ };
27
+ if (opts.batch != null)
28
+ params.batchCount = opts.batch;
29
+ const extraInput = {};
30
+ if (opts.taskName)
31
+ extraInput.taskName = opts.taskName;
32
+ await executeRun("ai-hot-girl-image", "v1.0", { image: opts.image, wait: opts.wait }, params, extraInput);
33
+ });
34
+ //# sourceMappingURL=ai-hot-girl-image.js.map