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
@@ -0,0 +1,54 @@
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 = "Take a selfie angle photo of this person and Harry Potter. No need to show the phone. choose appropriate background.";
5
+ export const celebAiCmd = new Command("celeb-ai")
6
+ .summary("AI celebrity photo — place a person in a selfie with a celebrity or fictional character")
7
+ .description("Generate a selfie-style photo of the person alongside a celebrity or fictional character.\n" +
8
+ "Supports up to 2 input images.\n\n" +
9
+ "Default prompt (used when --prompt is omitted):\n" +
10
+ ` "${DEFAULT_PROMPT}"\n\n` +
11
+ "Examples:\n" +
12
+ " weshop celeb-ai --image ./person.png\n" +
13
+ " weshop celeb-ai --image ./person.png --prompt 'Selfie with Elon Musk at a tech conference'\n" +
14
+ " weshop celeb-ai --image ./person.png --batch 2")
15
+ .requiredOption("--image <path|url...>", "Input portrait image(s) — local file paths or URLs (up to 2)")
16
+ .option("--prompt <text>", "Describe the celebrity or character and scene (default: selfie with Harry Potter)")
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 imageList = opts.image;
23
+ if (imageList.length > 2) {
24
+ console.error("[error]\n message: Maximum 2 images allowed");
25
+ process.exit(1);
26
+ }
27
+ const urls = [];
28
+ for (const img of imageList) {
29
+ const { url } = await resolveImage(img);
30
+ urls.push(url);
31
+ }
32
+ const params = { textDescription: opts.prompt ?? DEFAULT_PROMPT, images: urls };
33
+ if (opts.batch != null)
34
+ params.batchCount = opts.batch;
35
+ const input = { originalImage: urls[0] };
36
+ if (opts.taskName)
37
+ input.taskName = opts.taskName;
38
+ const body = { agent: { name: "celeb-ai", version: "v1.0" }, input, params };
39
+ const { executionId } = await submitRun(body);
40
+ printSubmitted(executionId);
41
+ if (opts.wait !== false) {
42
+ printPollResult(await waitForCompletion(executionId));
43
+ }
44
+ else {
45
+ console.log("[info]");
46
+ console.log(` message: Use 'weshop status ${executionId}' to check progress`);
47
+ }
48
+ }
49
+ catch (err) {
50
+ printError(err);
51
+ process.exit(1);
52
+ }
53
+ });
54
+ //# sourceMappingURL=celeb-ai.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"celeb-ai.js","sourceRoot":"","sources":["../../src/commands/celeb-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,GAClB,sHAAsH,CAAC;AAEzH,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC;KAC9C,OAAO,CAAC,yFAAyF,CAAC;KAClG,WAAW,CACV,6FAA6F;IAC7F,oCAAoC;IACpC,mDAAmD;IACnD,MAAM,cAAc,OAAO;IAC3B,aAAa;IACb,0CAA0C;IAC1C,gGAAgG;IAChG,kDAAkD,CACnD;KACA,cAAc,CAAC,uBAAuB,EAAE,8DAA8D,CAAC;KACvG,MAAM,CAAC,iBAAiB,EAAE,mFAAmF,CAAC;KAC9G,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,SAAS,GAAa,IAAI,CAAC,KAAK,CAAC;QACvC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAAC,OAAO,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;YAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAAC,CAAC;QAC7G,MAAM,IAAI,GAAa,EAAE,CAAC;QAC1B,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;YAAC,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC;YAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAAC,CAAC;QACzF,MAAM,MAAM,GAA4B,EAAE,eAAe,EAAE,IAAI,CAAC,MAAM,IAAI,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QACzG,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI;YAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;QACvD,MAAM,KAAK,GAA4B,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAClE,IAAI,IAAI,CAAC,QAAQ;YAAE,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAClD,MAAM,IAAI,GAAe,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QACzF,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 chibiMakerCmd: 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 = "Turn this photo into a chibi sticker.";
5
+ export const chibiMakerCmd = new Command("chibi-maker")
6
+ .summary("AI chibi maker — convert a photo into a cute chibi character sticker")
7
+ .description("Transform any photo into a cute chibi-style character or avatar sticker.\n\n" +
8
+ "Default prompt (used when --prompt is omitted):\n" +
9
+ ` "${DEFAULT_PROMPT}"\n\n` +
10
+ "Examples:\n" +
11
+ " weshop chibi-maker --image ./person.png\n" +
12
+ " weshop chibi-maker --image ./person.png --prompt 'Chibi anime style with big sparkly eyes'\n" +
13
+ " weshop chibi-maker --image ./person.png --batch 4")
14
+ .requiredOption("--image <path|url>", "Input photo — local file path or URL")
15
+ .option("--prompt <text>", "Custom chibi 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 = {
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: "chibi-maker", 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=chibi-maker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chibi-maker.js","sourceRoot":"","sources":["../../src/commands/chibi-maker.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,uCAAuC,CAAC;AAE/D,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC,aAAa,CAAC;KACpD,OAAO,CAAC,sEAAsE,CAAC;KAC/E,WAAW,CACV,8EAA8E;IAC9E,mDAAmD;IACnD,MAAM,cAAc,OAAO;IAC3B,aAAa;IACb,6CAA6C;IAC7C,gGAAgG;IAChG,qDAAqD,CACtD;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;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 clothingMagicRemoverCmd: 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 = "undress the outfit into sexy bikini while keeping body proportions natural.";
5
+ export const clothingMagicRemoverCmd = new Command("clothing-magic-remover")
6
+ .summary("AI clothing remover — erase accessories or partial clothing while keeping textures realistic")
7
+ .description("Remove or erase clothing items from a person photo while keeping textures realistic.\n" +
8
+ "Prompt is required.\n\n" +
9
+ "Default prompt (used when --prompt is omitted):\n" +
10
+ ` "${DEFAULT_PROMPT}"\n\n` +
11
+ "Examples:\n" +
12
+ " weshop clothing-magic-remover --image ./person.png --prompt 'Remove the jacket, keep the shirt'\n" +
13
+ " weshop clothing-magic-remover --image ./person.png --prompt 'Erase the top, replace with bikini' --batch 2")
14
+ .requiredOption("--image <path|url>", "Input person photo — local file path or URL")
15
+ .requiredOption("--prompt <text>", "Describe what clothing to remove")
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, 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: "clothing-magic-remover", 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=clothing-magic-remover.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clothing-magic-remover.js","sourceRoot":"","sources":["../../src/commands/clothing-magic-remover.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,6EAA6E,CAAC;AAErG,MAAM,CAAC,MAAM,uBAAuB,GAAG,IAAI,OAAO,CAAC,wBAAwB,CAAC;KACzE,OAAO,CAAC,8FAA8F,CAAC;KACvG,WAAW,CACV,wFAAwF;IACxF,yBAAyB;IACzB,mDAAmD;IACnD,MAAM,cAAc,OAAO;IAC3B,aAAa;IACb,qGAAqG;IACrG,8GAA8G,CAC/G;KACA,cAAc,CAAC,oBAAoB,EAAE,6CAA6C,CAAC;KACnF,cAAc,CAAC,iBAAiB,EAAE,kCAAkC,CAAC;KACrE,MAAM,CAAC,iBAAiB,EAAE,iDAAiD,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;KACvG,MAAM,CAAC,oBAAoB,EAAE,mCAAmC,CAAC;KACjE,MAAM,CAAC,WAAW,EAAE,8EAA8E,CAAC;KACnG,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACrB,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,EAAE,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7F,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,wBAAwB,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QACvG,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 customBikiniCmd: 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 customBikiniCmd = new Command("custom-bikini")
6
+ .summary("Custom bikini — 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 custom-bikini --image ./person.png --prompt 'Bikini model on a beach'\n" +
15
+ " weshop custom-bikini --image ./person.png --generated-type image --batch 2\n" +
16
+ " weshop custom-bikini --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 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: "custom-bikini", 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=custom-bikini.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom-bikini.js","sourceRoot":"","sources":["../../src/commands/custom-bikini.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,eAAe,GAAG,IAAI,OAAO,CAAC,eAAe,CAAC;KACxD,OAAO,CAAC,6EAA6E,CAAC;KACtF,WAAW,CACV,iFAAiF;IACjF,sCAAsC;IACtC,8CAA8C;IAC9C,sCAAsC;IACtC,mDAAmD;IACnD,MAAM,cAAc,OAAO;IAC3B,aAAa;IACb,kFAAkF;IAClF,gFAAgF;IAChF,8EAA8E,CAC/E;KACA,cAAc,CAAC,oBAAoB,EAAE,4DAA4D,CAAC;KAClG,MAAM,CAAC,iBAAiB,EAAE,mCAAmC,CAAC;KAC9D,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,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 cuteAnimeGirlAiBikiniCmd: 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 cuteAnimeGirlAiBikiniCmd = new Command("cute-anime-girl-ai-bikini")
6
+ .summary("Cute anime girl AI bikini — 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 cute-anime-girl-ai-bikini --image ./person.png --prompt 'Bikini model on a beach'\n" +
15
+ " weshop cute-anime-girl-ai-bikini --image ./person.png --generated-type image --batch 2\n" +
16
+ " weshop cute-anime-girl-ai-bikini --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: "cute-anime-girl-ai-bikini", 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=cute-anime-girl-ai-bikini.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cute-anime-girl-ai-bikini.js","sourceRoot":"","sources":["../../src/commands/cute-anime-girl-ai-bikini.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,wBAAwB,GAAG,IAAI,OAAO,CAAC,2BAA2B,CAAC;KAC7E,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,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,2BAA2B,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAC1G,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 demonSlayerOcMakerCmd: Command;
@@ -0,0 +1,50 @@
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 person into Demon Slayer anime style, Kimetsu no Yaiba aesthetics, thick brush strokes, bold black outlines, expressive eyes with distinct pupils, wearing a custom slayer uniform and a patterned haori, Ufotable high-quality animation style, cinematic lighting, sharp focus, vibrant cel-shading, keep key facial and gender characteristics.";
5
+ export const demonSlayerOcMakerCmd = new Command("demon-slayer-oc-maker")
6
+ .summary("AI Demon Slayer OC maker — transform a person into a Kimetsu no Yaiba anime character")
7
+ .description("Transform a person photo into a Demon Slayer (Kimetsu no Yaiba) anime-style character.\n" +
8
+ "Image is optional.\n\n" +
9
+ "Default prompt (used when --prompt is omitted):\n" +
10
+ " Demon Slayer anime style, Ufotable animation quality, custom slayer uniform and haori,\n" +
11
+ " preserving key facial and gender characteristics.\n\n" +
12
+ "Examples:\n" +
13
+ " weshop demon-slayer-oc-maker --image ./person.png\n" +
14
+ " weshop demon-slayer-oc-maker --image ./person.png --prompt 'Water breathing style, blue haori'\n" +
15
+ " weshop demon-slayer-oc-maker --batch 2 --image ./person.png")
16
+ .option("--image <path|url>", "Reference person image — local file path or URL (optional)")
17
+ .option("--prompt <text>", "Custom Demon Slayer OC description")
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) {
30
+ const { url: imageUrl } = await resolveImage(opts.image);
31
+ params.images = [imageUrl];
32
+ input.originalImage = imageUrl;
33
+ }
34
+ const body = { agent: { name: "demon-slayer-oc-maker", version: "v1.0" }, input, params };
35
+ const { executionId } = await submitRun(body);
36
+ printSubmitted(executionId);
37
+ if (opts.wait !== false) {
38
+ printPollResult(await waitForCompletion(executionId));
39
+ }
40
+ else {
41
+ console.log("[info]");
42
+ console.log(` message: Use 'weshop status ${executionId}' to check progress`);
43
+ }
44
+ }
45
+ catch (err) {
46
+ printError(err);
47
+ process.exit(1);
48
+ }
49
+ });
50
+ //# sourceMappingURL=demon-slayer-oc-maker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"demon-slayer-oc-maker.js","sourceRoot":"","sources":["../../src/commands/demon-slayer-oc-maker.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,8VAA8V,CAAC;AAEjW,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,OAAO,CAAC,uBAAuB,CAAC;KACtE,OAAO,CAAC,uFAAuF,CAAC;KAChG,WAAW,CACV,0FAA0F;IAC1F,wBAAwB;IACxB,mDAAmD;IACnD,4FAA4F;IAC5F,yDAAyD;IACzD,aAAa;IACb,uDAAuD;IACvD,oGAAoG;IACpG,+DAA+D,CAChE;KACA,MAAM,CAAC,oBAAoB,EAAE,4DAA4D,CAAC;KAC1F,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,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,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 dressRemoverMagicEraserCmd: 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 = "undress the outfit into sexy bikini while keeping body proportions natural.";
5
+ export const dressRemoverMagicEraserCmd = new Command("dress-remover-magic-eraser")
6
+ .summary("AI dress remover — erase a dress and replace with a bikini while keeping body proportions")
7
+ .description("Remove or erase a dress from a person photo and replace with a bikini.\n" +
8
+ "Prompt is required.\n\n" +
9
+ "Default prompt (used when --prompt is omitted):\n" +
10
+ ` "${DEFAULT_PROMPT}"\n\n` +
11
+ "Examples:\n" +
12
+ " weshop dress-remover-magic-eraser --image ./person.png --prompt 'Remove the dress, replace with a red bikini'\n" +
13
+ " weshop dress-remover-magic-eraser --image ./person.png --prompt 'Erase the top, keep the skirt' --batch 2")
14
+ .requiredOption("--image <path|url>", "Input person photo — local file path or URL")
15
+ .requiredOption("--prompt <text>", "Describe what to remove and replace")
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, 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: "dress-remover-magic-eraser", 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=dress-remover-magic-eraser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dress-remover-magic-eraser.js","sourceRoot":"","sources":["../../src/commands/dress-remover-magic-eraser.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,6EAA6E,CAAC;AAErG,MAAM,CAAC,MAAM,0BAA0B,GAAG,IAAI,OAAO,CAAC,4BAA4B,CAAC;KAChF,OAAO,CAAC,2FAA2F,CAAC;KACpG,WAAW,CACV,0EAA0E;IAC1E,yBAAyB;IACzB,mDAAmD;IACnD,MAAM,cAAc,OAAO;IAC3B,aAAa;IACb,mHAAmH;IACnH,6GAA6G,CAC9G;KACA,cAAc,CAAC,oBAAoB,EAAE,6CAA6C,CAAC;KACnF,cAAc,CAAC,iBAAiB,EAAE,qCAAqC,CAAC;KACxE,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,EAAE,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7F,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,4BAA4B,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAC3G,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"}
@@ -14,7 +14,7 @@ export const expandimageCmd = new Command("expandimage")
14
14
  .requiredOption("--height <px>", "Target canvas height in pixels (max 4096)", parseInt)
15
15
  .option("--fill-left <px>", "Horizontal offset: distance from left edge of canvas to left edge of original (default: centered)", parseInt)
16
16
  .option("--fill-top <px>", "Vertical offset: distance from top edge of canvas to top edge of original (default: centered)", parseInt)
17
- .option("--batch <count>", "Number of images to generate, 1-16 (default: 4)", parseInt)
17
+ .option("--batch <count>", "Number of images to generate, 1-16 (default: 1)", (v) => parseInt(v, 10), 1)
18
18
  .option("--task-name <name>", "Human-readable label for this run")
19
19
  .option("--no-wait", "Return immediately after submission; use 'weshop status <id>' to check later")
20
20
  .action(async (opts) => {
@@ -26,7 +26,7 @@ export const expandimageCmd = new Command("expandimage")
26
26
  params.fillLeft = opts.fillLeft;
27
27
  if (opts.fillTop != null)
28
28
  params.fillTop = opts.fillTop;
29
- if (opts.batch)
29
+ if (opts.batch != null)
30
30
  params.batchCount = opts.batch;
31
31
  const extraInput = {};
32
32
  if (opts.taskName)
@@ -1 +1 @@
1
- {"version":3,"file":"expandimage.js","sourceRoot":"","sources":["../../src/commands/expandimage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,OAAO,CAAC,aAAa,CAAC;KACrD,OAAO,CAAC,+EAA+E,CAAC;KACxF,WAAW,CACV,oFAAoF;IACpF,0EAA0E;IAC1E,wEAAwE;IACxE,kFAAkF;IAClF,aAAa;IACb,uEAAuE;IACvE,0GAA0G,CAC3G;KACA,cAAc,CAAC,oBAAoB,EAAE,8EAA8E,CAAC;KACpH,cAAc,CAAC,cAAc,EAAE,0CAA0C,EAAE,QAAQ,CAAC;KACpF,cAAc,CAAC,eAAe,EAAE,2CAA2C,EAAE,QAAQ,CAAC;KACtF,MAAM,CAAC,kBAAkB,EAAE,mGAAmG,EAAE,QAAQ,CAAC;KACzI,MAAM,CAAC,iBAAiB,EAAE,+FAA+F,EAAE,QAAQ,CAAC;KACpI,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,WAAW,EAAE,IAAI,CAAC,KAAK;QACvB,YAAY,EAAE,IAAI,CAAC,MAAM;KAC1B,CAAC;IACF,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI;QAAE,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC3D,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI;QAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IACxD,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,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AACpE,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"expandimage.js","sourceRoot":"","sources":["../../src/commands/expandimage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,OAAO,CAAC,aAAa,CAAC;KACrD,OAAO,CAAC,+EAA+E,CAAC;KACxF,WAAW,CACV,oFAAoF;IACpF,0EAA0E;IAC1E,wEAAwE;IACxE,kFAAkF;IAClF,aAAa;IACb,uEAAuE;IACvE,0GAA0G,CAC3G;KACA,cAAc,CAAC,oBAAoB,EAAE,8EAA8E,CAAC;KACpH,cAAc,CAAC,cAAc,EAAE,0CAA0C,EAAE,QAAQ,CAAC;KACpF,cAAc,CAAC,eAAe,EAAE,2CAA2C,EAAE,QAAQ,CAAC;KACtF,MAAM,CAAC,kBAAkB,EAAE,mGAAmG,EAAE,QAAQ,CAAC;KACzI,MAAM,CAAC,iBAAiB,EAAE,+FAA+F,EAAE,QAAQ,CAAC;KACpI,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,WAAW,EAAE,IAAI,CAAC,KAAK;QACvB,YAAY,EAAE,IAAI,CAAC,MAAM;KAC1B,CAAC;IACF,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI;QAAE,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC3D,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI;QAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IACxD,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI;QAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;IAEvD,MAAM,UAAU,GAA4B,EAAE,CAAC;IAC/C,IAAI,IAAI,CAAC,QAAQ;QAAE,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAEvD,MAAM,UAAU,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AACpE,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { Command } from "commander";
2
+ export declare const faceForgeCmd: Command;
@@ -0,0 +1,86 @@
1
+ import { Command } from "commander";
2
+ import { resolveImage, submitRun, waitForCompletion } from "../client.js";
3
+ import { printSubmitted, printPollResult, printError } from "../printer.js";
4
+ export const faceForgeCmd = new Command("face-forge")
5
+ .summary("AI face morph & face swap — generate or transform portraits")
6
+ .description("AI face morph & face swap — generate or transform portraits using Face Forge.\n\n" +
7
+ "Provide a text prompt describing the desired portrait. Optionally attach up to 3 reference\n" +
8
+ "images for face swapping or morphing. When no image is provided, the model generates from\n" +
9
+ "the prompt alone.\n\n" +
10
+ "Default prompt (when --prompt is not customized):\n" +
11
+ ' "Please generate a realistic portrait photograph of an Asian woman with long black hair,\n' +
12
+ ' wearing a pure white sleeveless outfit, set against a plain white background."\n\n' +
13
+ "Model (--model):\n" +
14
+ " jimeng Jimeng model (default) — no image-size or aspect-ratio options\n" +
15
+ " nano Nano model — supports --image-size and --aspect-ratio\n\n" +
16
+ "Image size (--image-size, nano model only):\n" +
17
+ " 1K 1K resolution (default)\n" +
18
+ " 2K 2K resolution\n" +
19
+ " 4K 4K resolution\n\n" +
20
+ "Aspect ratio (--aspect-ratio, nano model only):\n" +
21
+ " 1:1, 2:3, 3:2, 3:4, 4:3, 9:16, 16:9, 21:9 (default: 1:1)\n\n" +
22
+ "Examples:\n" +
23
+ " weshop face-forge --prompt 'A professional headshot of a young man in a suit'\n" +
24
+ " weshop face-forge --image ./face.png --prompt 'Transform into an oil painting portrait'\n" +
25
+ " weshop face-forge --image ./a.png --image ./b.png --prompt 'Merge image 1 and image 2 faces together' --model nano --image-size 2K --aspect-ratio 3:4")
26
+ .option("--image <path|url...>", "Reference images — local file paths or URLs (up to 3, optional)")
27
+ .option("--prompt <text>", "Describe the desired portrait or transformation (default: generate a realistic portrait)")
28
+ .option("--model <name>", "Model to use: jimeng (default) or nano")
29
+ .option("--image-size <size>", "Output resolution: 1K (default), 2K, or 4K (nano model only)")
30
+ .option("--aspect-ratio <ratio>", "Output aspect ratio (nano model only, default: 1:1)")
31
+ .option("--batch <count>", "Number of images to generate, 1-16 (default: 1)", (v) => parseInt(v, 10), 1)
32
+ .option("--task-name <name>", "Human-readable label for this run")
33
+ .option("--no-wait", "Return immediately after submission; use 'weshop status <id>' to check later")
34
+ .action(async (opts) => {
35
+ try {
36
+ const DEFAULT_PROMPT = "Please generate a realistic portrait photograph of an Asian woman with long black hair, wearing a pure white sleeveless outfit, set against a plain white background.";
37
+ const params = {
38
+ textDescription: opts.prompt ?? DEFAULT_PROMPT,
39
+ };
40
+ if (opts.batch != null)
41
+ params.batchCount = opts.batch;
42
+ if (opts.model)
43
+ params.modelName = opts.model;
44
+ if (opts.imageSize)
45
+ params.imageSize = opts.imageSize;
46
+ if (opts.aspectRatio)
47
+ params.aspectRatio = opts.aspectRatio;
48
+ const input = {};
49
+ if (opts.taskName)
50
+ input.taskName = opts.taskName;
51
+ if (opts.image && opts.image.length > 0) {
52
+ const imageList = opts.image;
53
+ if (imageList.length > 3) {
54
+ console.error("[error]\n message: Maximum 3 images allowed");
55
+ process.exit(1);
56
+ }
57
+ const urls = [];
58
+ for (const img of imageList) {
59
+ const { url } = await resolveImage(img);
60
+ urls.push(url);
61
+ }
62
+ params.images = urls;
63
+ input.originalImage = urls[0];
64
+ }
65
+ const body = {
66
+ agent: { name: "face-forge", version: "v1.0" },
67
+ input,
68
+ params,
69
+ };
70
+ const { executionId } = await submitRun(body);
71
+ printSubmitted(executionId);
72
+ if (opts.wait !== false) {
73
+ const data = await waitForCompletion(executionId);
74
+ printPollResult(data);
75
+ }
76
+ else {
77
+ console.log("[info]");
78
+ console.log(` message: Use 'weshop status ${executionId}' to check progress`);
79
+ }
80
+ }
81
+ catch (err) {
82
+ printError(err);
83
+ process.exit(1);
84
+ }
85
+ });
86
+ //# sourceMappingURL=face-forge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"face-forge.js","sourceRoot":"","sources":["../../src/commands/face-forge.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,MAAM,YAAY,GAAG,IAAI,OAAO,CAAC,YAAY,CAAC;KAClD,OAAO,CAAC,6DAA6D,CAAC;KACtE,WAAW,CACV,mFAAmF;IACnF,8FAA8F;IAC9F,6FAA6F;IAC7F,uBAAuB;IACvB,qDAAqD;IACrD,8FAA8F;IAC9F,uFAAuF;IACvF,oBAAoB;IACpB,8EAA8E;IAC9E,uEAAuE;IACvE,+CAA+C;IAC/C,mCAAmC;IACnC,yBAAyB;IACzB,2BAA2B;IAC3B,mDAAmD;IACnD,iEAAiE;IACjE,aAAa;IACb,mFAAmF;IACnF,6FAA6F;IAC7F,yJAAyJ,CAC1J;KACA,MAAM,CAAC,uBAAuB,EAAE,iEAAiE,CAAC;KAClG,MAAM,CAAC,iBAAiB,EAAE,0FAA0F,CAAC;KACrH,MAAM,CAAC,gBAAgB,EAAE,wCAAwC,CAAC;KAClE,MAAM,CAAC,qBAAqB,EAAE,8DAA8D,CAAC;KAC7F,MAAM,CAAC,wBAAwB,EAAE,qDAAqD,CAAC;KACvF,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,cAAc,GAAG,uKAAuK,CAAC;QAE/L,MAAM,MAAM,GAA4B;YACtC,eAAe,EAAE,IAAI,CAAC,MAAM,IAAI,cAAc;SAC/C,CAAC;QACF,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI;YAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;QACvD,IAAI,IAAI,CAAC,KAAK;YAAE,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC;QAC9C,IAAI,IAAI,CAAC,SAAS;YAAE,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACtD,IAAI,IAAI,CAAC,WAAW;YAAE,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAE5D,MAAM,KAAK,GAA4B,EAAE,CAAC;QAC1C,IAAI,IAAI,CAAC,QAAQ;YAAE,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAElD,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;gBACzB,OAAO,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;gBAC9D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,MAAM,IAAI,GAAa,EAAE,CAAC;YAC1B,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;gBAC5B,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC;gBACxC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjB,CAAC;YACD,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;YACrB,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAChC,CAAC;QAED,MAAM,IAAI,GAAe;YACvB,KAAK,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE;YAC9C,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 fatAiCmd: Command;
@@ -0,0 +1,53 @@
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 me a look of how this person would look when this person became extremely fat. Don't change clothes and appearance.";
5
+ export const fatAiCmd = new Command("fat-ai")
6
+ .summary("AI plus-size body transformation — visualize how a person would look extremely overweight")
7
+ .description("Transform a portrait photo to show how the person would look with an extremely overweight body.\n" +
8
+ "Preserves the original clothes and appearance.\n\n" +
9
+ "Default prompt (used when --prompt is omitted):\n" +
10
+ ` "${DEFAULT_PROMPT}"\n\n` +
11
+ "Examples:\n" +
12
+ " weshop fat-ai --image ./person.png\n" +
13
+ " weshop fat-ai --image ./person.png --prompt 'Show this person at 300 lbs, keep the outfit'\n" +
14
+ " weshop fat-ai --image ./person.png --batch 2")
15
+ .requiredOption("--image <path|url>", "Input portrait image — local file path or URL")
16
+ .option("--prompt <text>", "Custom body transformation 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 = {
24
+ textDescription: opts.prompt ?? DEFAULT_PROMPT,
25
+ images: [imageUrl],
26
+ };
27
+ if (opts.batch != null)
28
+ params.batchCount = opts.batch;
29
+ const input = { originalImage: imageUrl };
30
+ if (opts.taskName)
31
+ input.taskName = opts.taskName;
32
+ const body = {
33
+ agent: { name: "fat-ai", version: "v1.0" },
34
+ input,
35
+ params,
36
+ };
37
+ const { executionId } = await submitRun(body);
38
+ printSubmitted(executionId);
39
+ if (opts.wait !== false) {
40
+ const data = await waitForCompletion(executionId);
41
+ printPollResult(data);
42
+ }
43
+ else {
44
+ console.log("[info]");
45
+ console.log(` message: Use 'weshop status ${executionId}' to check progress`);
46
+ }
47
+ }
48
+ catch (err) {
49
+ printError(err);
50
+ process.exit(1);
51
+ }
52
+ });
53
+ //# sourceMappingURL=fat-ai.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fat-ai.js","sourceRoot":"","sources":["../../src/commands/fat-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,GAClB,0HAA0H,CAAC;AAE7H,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;KAC1C,OAAO,CAAC,2FAA2F,CAAC;KACpG,WAAW,CACV,mGAAmG;IACnG,oDAAoD;IACpD,mDAAmD;IACnD,MAAM,cAAc,OAAO;IAC3B,aAAa;IACb,wCAAwC;IACxC,gGAAgG;IAChG,gDAAgD,CACjD;KACA,cAAc,CAAC,oBAAoB,EAAE,+CAA+C,CAAC;KACrF,MAAM,CAAC,iBAAiB,EAAE,wCAAwC,CAAC;KACnE,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,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE;YAC1C,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 fireredImageEditCmd: Command;