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.
- package/README.md +169 -7
- package/dist/client.d.ts +2 -0
- package/dist/client.js +1 -1
- package/dist/client.js.map +1 -1
- package/dist/commands/2d-to-3d-image-converter.d.ts +2 -0
- package/dist/commands/2d-to-3d-image-converter.js +27 -0
- package/dist/commands/2d-to-3d-image-converter.js.map +1 -0
- package/dist/commands/ai-3d-rendering.d.ts +2 -0
- package/dist/commands/ai-3d-rendering.js +29 -0
- package/dist/commands/ai-3d-rendering.js.map +1 -0
- package/dist/commands/ai-action-figure-generators.d.ts +2 -0
- package/dist/commands/ai-action-figure-generators.js +28 -0
- package/dist/commands/ai-action-figure-generators.js.map +1 -0
- package/dist/commands/ai-aging.d.ts +2 -0
- package/dist/commands/ai-aging.js +27 -0
- package/dist/commands/ai-aging.js.map +1 -0
- package/dist/commands/ai-babe.d.ts +2 -0
- package/dist/commands/ai-babe.js +26 -0
- package/dist/commands/ai-babe.js.map +1 -0
- package/dist/commands/ai-bikini-model.d.ts +2 -0
- package/dist/commands/ai-bikini-model.js +36 -0
- package/dist/commands/ai-bikini-model.js.map +1 -0
- package/dist/commands/ai-bikini-photo-editor.d.ts +2 -0
- package/dist/commands/ai-bikini-photo-editor.js +26 -0
- package/dist/commands/ai-bikini-photo-editor.js.map +1 -0
- package/dist/commands/ai-bikini-video.d.ts +2 -0
- package/dist/commands/ai-bikini-video.js +30 -0
- package/dist/commands/ai-bikini-video.js.map +1 -0
- package/dist/commands/ai-christmas-photo.d.ts +2 -0
- package/dist/commands/ai-christmas-photo.js +29 -0
- package/dist/commands/ai-christmas-photo.js.map +1 -0
- package/dist/commands/ai-clothes-changer.d.ts +2 -0
- package/dist/commands/ai-clothes-changer.js +35 -0
- package/dist/commands/ai-clothes-changer.js.map +1 -0
- package/dist/commands/ai-collage-maker.d.ts +2 -0
- package/dist/commands/ai-collage-maker.js +33 -0
- package/dist/commands/ai-collage-maker.js.map +1 -0
- package/dist/commands/ai-dog.d.ts +2 -0
- package/dist/commands/ai-dog.js +30 -0
- package/dist/commands/ai-dog.js.map +1 -0
- package/dist/commands/ai-elf.d.ts +2 -0
- package/dist/commands/ai-elf.js +28 -0
- package/dist/commands/ai-elf.js.map +1 -0
- package/dist/commands/ai-face-merge.d.ts +2 -0
- package/dist/commands/ai-face-merge.js +34 -0
- package/dist/commands/ai-face-merge.js.map +1 -0
- package/dist/commands/ai-feet.d.ts +2 -0
- package/dist/commands/ai-feet.js +27 -0
- package/dist/commands/ai-feet.js.map +1 -0
- package/dist/commands/ai-flag-generator.d.ts +2 -0
- package/dist/commands/ai-flag-generator.js +28 -0
- package/dist/commands/ai-flag-generator.js.map +1 -0
- package/dist/commands/ai-generated-bikini-girls.d.ts +2 -0
- package/dist/commands/ai-generated-bikini-girls.js +34 -0
- package/dist/commands/ai-generated-bikini-girls.js.map +1 -0
- package/dist/commands/ai-generated-perfect-female-body.d.ts +2 -0
- package/dist/commands/ai-generated-perfect-female-body.js +34 -0
- package/dist/commands/ai-generated-perfect-female-body.js.map +1 -0
- package/dist/commands/ai-ghost-mannequin-generator.d.ts +2 -0
- package/dist/commands/ai-ghost-mannequin-generator.js +38 -0
- package/dist/commands/ai-ghost-mannequin-generator.js.map +1 -0
- package/dist/commands/ai-group-photo-generator.d.ts +2 -0
- package/dist/commands/ai-group-photo-generator.js +33 -0
- package/dist/commands/ai-group-photo-generator.js.map +1 -0
- package/dist/commands/ai-hair-color-changer.d.ts +2 -0
- package/dist/commands/ai-hair-color-changer.js +28 -0
- package/dist/commands/ai-hair-color-changer.js.map +1 -0
- package/dist/commands/ai-hairstyle-changer.d.ts +2 -0
- package/dist/commands/ai-hairstyle-changer.js +27 -0
- package/dist/commands/ai-hairstyle-changer.js.map +1 -0
- package/dist/commands/ai-hot-girl-image.d.ts +2 -0
- package/dist/commands/ai-hot-girl-image.js +34 -0
- package/dist/commands/ai-hot-girl-image.js.map +1 -0
- package/dist/commands/ai-image-animation.d.ts +2 -0
- package/dist/commands/ai-image-animation.js +39 -0
- package/dist/commands/ai-image-animation.js.map +1 -0
- package/dist/commands/ai-image-combiner.d.ts +2 -0
- package/dist/commands/ai-image-combiner.js +33 -0
- package/dist/commands/ai-image-combiner.js.map +1 -0
- package/dist/commands/ai-landscape-design-free.d.ts +2 -0
- package/dist/commands/ai-landscape-design-free.js +40 -0
- package/dist/commands/ai-landscape-design-free.js.map +1 -0
- package/dist/commands/ai-lingerie-models.d.ts +2 -0
- package/dist/commands/ai-lingerie-models.js +34 -0
- package/dist/commands/ai-lingerie-models.js.map +1 -0
- package/dist/commands/ai-photoshoot.d.ts +2 -0
- package/dist/commands/ai-photoshoot.js +59 -0
- package/dist/commands/ai-photoshoot.js.map +1 -0
- package/dist/commands/ai-poster-from-images.d.ts +2 -0
- package/dist/commands/ai-poster-from-images.js +48 -0
- package/dist/commands/ai-poster-from-images.js.map +1 -0
- package/dist/commands/ai-poster.d.ts +2 -0
- package/dist/commands/ai-poster.js +53 -0
- package/dist/commands/ai-poster.js.map +1 -0
- package/dist/commands/ai-room-planner.d.ts +2 -0
- package/dist/commands/ai-room-planner.js +28 -0
- package/dist/commands/ai-room-planner.js.map +1 -0
- package/dist/commands/ai-selfie.d.ts +2 -0
- package/dist/commands/ai-selfie.js +27 -0
- package/dist/commands/ai-selfie.js.map +1 -0
- package/dist/commands/ai-sexy-portrait.d.ts +2 -0
- package/dist/commands/ai-sexy-portrait.js +34 -0
- package/dist/commands/ai-sexy-portrait.js.map +1 -0
- package/dist/commands/ai-sexy-teens.d.ts +2 -0
- package/dist/commands/ai-sexy-teens.js +34 -0
- package/dist/commands/ai-sexy-teens.js.map +1 -0
- package/dist/commands/ai-spray-paint.d.ts +2 -0
- package/dist/commands/ai-spray-paint.js +28 -0
- package/dist/commands/ai-spray-paint.js.map +1 -0
- package/dist/commands/ai-swimsuit-model.d.ts +2 -0
- package/dist/commands/ai-swimsuit-model.js +27 -0
- package/dist/commands/ai-swimsuit-model.js.map +1 -0
- package/dist/commands/ai-tattoo-generator.d.ts +2 -0
- package/dist/commands/ai-tattoo-generator.js +27 -0
- package/dist/commands/ai-tattoo-generator.js.map +1 -0
- package/dist/commands/ai-text-remover-from-video.d.ts +2 -0
- package/dist/commands/ai-text-remover-from-video.js +21 -0
- package/dist/commands/ai-text-remover-from-video.js.map +1 -0
- package/dist/commands/ai-translate.d.ts +2 -0
- package/dist/commands/ai-translate.js +28 -0
- package/dist/commands/ai-translate.js.map +1 -0
- package/dist/commands/ai-video-enhancer.d.ts +2 -0
- package/dist/commands/ai-video-enhancer.js +29 -0
- package/dist/commands/ai-video-enhancer.js.map +1 -0
- package/dist/commands/ai-werewolf.d.ts +2 -0
- package/dist/commands/ai-werewolf.js +43 -0
- package/dist/commands/ai-werewolf.js.map +1 -0
- package/dist/commands/ai-xray-clothes.d.ts +2 -0
- package/dist/commands/ai-xray-clothes.js +28 -0
- package/dist/commands/ai-xray-clothes.js.map +1 -0
- package/dist/commands/ai-zombie.d.ts +2 -0
- package/dist/commands/ai-zombie.js +28 -0
- package/dist/commands/ai-zombie.js.map +1 -0
- package/dist/commands/aimodel.js +2 -2
- package/dist/commands/aimodel.js.map +1 -1
- package/dist/commands/aipose.js +2 -2
- package/dist/commands/aipose.js.map +1 -1
- package/dist/commands/aiproduct.js +2 -2
- package/dist/commands/aiproduct.js.map +1 -1
- package/dist/commands/anime-image-converter.d.ts +2 -0
- package/dist/commands/anime-image-converter.js +27 -0
- package/dist/commands/anime-image-converter.js.map +1 -0
- package/dist/commands/baby-face-generator.d.ts +2 -0
- package/dist/commands/baby-face-generator.js +39 -0
- package/dist/commands/baby-face-generator.js.map +1 -0
- package/dist/commands/bald-filter.d.ts +2 -0
- package/dist/commands/bald-filter.js +27 -0
- package/dist/commands/bald-filter.js.map +1 -0
- package/dist/commands/bangs-filter.d.ts +2 -0
- package/dist/commands/bangs-filter.js +28 -0
- package/dist/commands/bangs-filter.js.map +1 -0
- package/dist/commands/bikini-contest-photos.d.ts +2 -0
- package/dist/commands/bikini-contest-photos.js +34 -0
- package/dist/commands/bikini-contest-photos.js.map +1 -0
- package/dist/commands/bikini-try-on.d.ts +2 -0
- package/dist/commands/bikini-try-on.js +27 -0
- package/dist/commands/bikini-try-on.js.map +1 -0
- package/dist/commands/braces-filter.d.ts +2 -0
- package/dist/commands/braces-filter.js +27 -0
- package/dist/commands/braces-filter.js.map +1 -0
- package/dist/commands/brat-generator.d.ts +2 -0
- package/dist/commands/brat-generator.js +27 -0
- package/dist/commands/brat-generator.js.map +1 -0
- package/dist/commands/buzz-cut-ai.d.ts +2 -0
- package/dist/commands/buzz-cut-ai.js +27 -0
- package/dist/commands/buzz-cut-ai.js.map +1 -0
- package/dist/commands/celeb-ai.d.ts +2 -0
- package/dist/commands/celeb-ai.js +33 -0
- package/dist/commands/celeb-ai.js.map +1 -0
- package/dist/commands/chibi-maker.d.ts +2 -0
- package/dist/commands/chibi-maker.js +27 -0
- package/dist/commands/chibi-maker.js.map +1 -0
- package/dist/commands/clothing-magic-remover.d.ts +2 -0
- package/dist/commands/clothing-magic-remover.js +27 -0
- package/dist/commands/clothing-magic-remover.js.map +1 -0
- package/dist/commands/custom-bikini.d.ts +2 -0
- package/dist/commands/custom-bikini.js +34 -0
- package/dist/commands/custom-bikini.js.map +1 -0
- package/dist/commands/cute-anime-girl-ai-bikini.d.ts +2 -0
- package/dist/commands/cute-anime-girl-ai-bikini.js +34 -0
- package/dist/commands/cute-anime-girl-ai-bikini.js.map +1 -0
- package/dist/commands/demon-slayer-oc-maker.d.ts +2 -0
- package/dist/commands/demon-slayer-oc-maker.js +29 -0
- package/dist/commands/demon-slayer-oc-maker.js.map +1 -0
- package/dist/commands/dress-remover-magic-eraser.d.ts +2 -0
- package/dist/commands/dress-remover-magic-eraser.js +27 -0
- package/dist/commands/dress-remover-magic-eraser.js.map +1 -0
- package/dist/commands/expandimage.js +2 -2
- package/dist/commands/expandimage.js.map +1 -1
- package/dist/commands/face-forge.d.ts +2 -0
- package/dist/commands/face-forge.js +56 -0
- package/dist/commands/face-forge.js.map +1 -0
- package/dist/commands/fat-ai.d.ts +2 -0
- package/dist/commands/fat-ai.js +28 -0
- package/dist/commands/fat-ai.js.map +1 -0
- package/dist/commands/firered-image-edit.d.ts +2 -0
- package/dist/commands/firered-image-edit.js +36 -0
- package/dist/commands/firered-image-edit.js.map +1 -0
- package/dist/commands/flat-lay.d.ts +2 -0
- package/dist/commands/flat-lay.js +42 -0
- package/dist/commands/flat-lay.js.map +1 -0
- package/dist/commands/free-4k-video-upscaler.d.ts +2 -0
- package/dist/commands/free-4k-video-upscaler.js +26 -0
- package/dist/commands/free-4k-video-upscaler.js.map +1 -0
- package/dist/commands/free-ai-girlfriend-generator.d.ts +2 -0
- package/dist/commands/free-ai-girlfriend-generator.js +27 -0
- package/dist/commands/free-ai-girlfriend-generator.js.map +1 -0
- package/dist/commands/free-online-video-quality-enhancer.d.ts +2 -0
- package/dist/commands/free-online-video-quality-enhancer.js +26 -0
- package/dist/commands/free-online-video-quality-enhancer.js.map +1 -0
- package/dist/commands/free-sexy-ai-generator.d.ts +2 -0
- package/dist/commands/free-sexy-ai-generator.js +34 -0
- package/dist/commands/free-sexy-ai-generator.js.map +1 -0
- package/dist/commands/futuristic-elegance.d.ts +2 -0
- package/dist/commands/futuristic-elegance.js +29 -0
- package/dist/commands/futuristic-elegance.js.map +1 -0
- package/dist/commands/gemini-watermark-remover.d.ts +2 -0
- package/dist/commands/gemini-watermark-remover.js +21 -0
- package/dist/commands/gemini-watermark-remover.js.map +1 -0
- package/dist/commands/gender-swap.d.ts +2 -0
- package/dist/commands/gender-swap.js +28 -0
- package/dist/commands/gender-swap.js.map +1 -0
- package/dist/commands/ghibli-art-create.d.ts +2 -0
- package/dist/commands/ghibli-art-create.js +27 -0
- package/dist/commands/ghibli-art-create.js.map +1 -0
- package/dist/commands/grok-imagine-video.d.ts +2 -0
- package/dist/commands/grok-imagine-video.js +35 -0
- package/dist/commands/grok-imagine-video.js.map +1 -0
- package/dist/commands/grok-imagine.d.ts +2 -0
- package/dist/commands/grok-imagine.js +25 -0
- package/dist/commands/grok-imagine.js.map +1 -0
- package/dist/commands/hair-color-try-on.d.ts +2 -0
- package/dist/commands/hair-color-try-on.js +28 -0
- package/dist/commands/hair-color-try-on.js.map +1 -0
- package/dist/commands/happy-woman-bikini-ai-pic.d.ts +2 -0
- package/dist/commands/happy-woman-bikini-ai-pic.js +34 -0
- package/dist/commands/happy-woman-bikini-ai-pic.js.map +1 -0
- package/dist/commands/hot-bikini-models.d.ts +2 -0
- package/dist/commands/hot-bikini-models.js +34 -0
- package/dist/commands/hot-bikini-models.js.map +1 -0
- package/dist/commands/image-mixer.d.ts +2 -0
- package/dist/commands/image-mixer.js +33 -0
- package/dist/commands/image-mixer.js.map +1 -0
- package/dist/commands/image-to-sketch.d.ts +2 -0
- package/dist/commands/image-to-sketch.js +27 -0
- package/dist/commands/image-to-sketch.js.map +1 -0
- package/dist/commands/improve-video-quality-online-free.d.ts +2 -0
- package/dist/commands/improve-video-quality-online-free.js +26 -0
- package/dist/commands/improve-video-quality-online-free.js.map +1 -0
- package/dist/commands/kling.d.ts +2 -0
- package/dist/commands/kling.js +48 -0
- package/dist/commands/kling.js.map +1 -0
- package/dist/commands/logo-remover-from-video.d.ts +2 -0
- package/dist/commands/logo-remover-from-video.js +21 -0
- package/dist/commands/logo-remover-from-video.js.map +1 -0
- package/dist/commands/midjourney.d.ts +2 -0
- package/dist/commands/midjourney.js +33 -0
- package/dist/commands/midjourney.js.map +1 -0
- package/dist/commands/mugshot-creator.d.ts +2 -0
- package/dist/commands/mugshot-creator.js +28 -0
- package/dist/commands/mugshot-creator.js.map +1 -0
- package/dist/commands/murder-drones-oc.d.ts +2 -0
- package/dist/commands/murder-drones-oc.js +29 -0
- package/dist/commands/murder-drones-oc.js.map +1 -0
- package/dist/commands/outfit-generator.d.ts +2 -0
- package/dist/commands/outfit-generator.js +29 -0
- package/dist/commands/outfit-generator.js.map +1 -0
- package/dist/commands/personalized-swimsuit.d.ts +2 -0
- package/dist/commands/personalized-swimsuit.js +34 -0
- package/dist/commands/personalized-swimsuit.js.map +1 -0
- package/dist/commands/photo-to-bikini-ai.d.ts +2 -0
- package/dist/commands/photo-to-bikini-ai.js +27 -0
- package/dist/commands/photo-to-bikini-ai.js.map +1 -0
- package/dist/commands/pregnant-ai.d.ts +2 -0
- package/dist/commands/pregnant-ai.js +31 -0
- package/dist/commands/pregnant-ai.js.map +1 -0
- package/dist/commands/ps2-filter.d.ts +2 -0
- package/dist/commands/ps2-filter.js +28 -0
- package/dist/commands/ps2-filter.js.map +1 -0
- package/dist/commands/qwen-image-edit.d.ts +2 -0
- package/dist/commands/qwen-image-edit.js +31 -0
- package/dist/commands/qwen-image-edit.js.map +1 -0
- package/dist/commands/random-animal-generator.d.ts +2 -0
- package/dist/commands/random-animal-generator.js +28 -0
- package/dist/commands/random-animal-generator.js.map +1 -0
- package/dist/commands/remove-filter-from-photo.d.ts +2 -0
- package/dist/commands/remove-filter-from-photo.js +27 -0
- package/dist/commands/remove-filter-from-photo.js.map +1 -0
- package/dist/commands/remove-subtitles-from-video-online-free.d.ts +2 -0
- package/dist/commands/remove-subtitles-from-video-online-free.js +21 -0
- package/dist/commands/remove-subtitles-from-video-online-free.js.map +1 -0
- package/dist/commands/remove-text-from-video-online-free.d.ts +2 -0
- package/dist/commands/remove-text-from-video-online-free.js +21 -0
- package/dist/commands/remove-text-from-video-online-free.js.map +1 -0
- package/dist/commands/removebg.js +2 -2
- package/dist/commands/removebg.js.map +1 -1
- package/dist/commands/replace-face-in-video-online-free.d.ts +2 -0
- package/dist/commands/replace-face-in-video-online-free.js +34 -0
- package/dist/commands/replace-face-in-video-online-free.js.map +1 -0
- package/dist/commands/see-through-clothes-fitler.d.ts +2 -0
- package/dist/commands/see-through-clothes-fitler.js +28 -0
- package/dist/commands/see-through-clothes-fitler.js.map +1 -0
- package/dist/commands/seedance.d.ts +2 -0
- package/dist/commands/seedance.js +47 -0
- package/dist/commands/seedance.js.map +1 -0
- package/dist/commands/seedream.d.ts +2 -0
- package/dist/commands/seedream.js +53 -0
- package/dist/commands/seedream.js.map +1 -0
- package/dist/commands/sex-ai-generator.d.ts +2 -0
- package/dist/commands/sex-ai-generator.js +34 -0
- package/dist/commands/sex-ai-generator.js.map +1 -0
- package/dist/commands/sexy-ai-pics.d.ts +2 -0
- package/dist/commands/sexy-ai-pics.js +26 -0
- package/dist/commands/sexy-ai-pics.js.map +1 -0
- package/dist/commands/skin-color-changer.d.ts +2 -0
- package/dist/commands/skin-color-changer.js +28 -0
- package/dist/commands/skin-color-changer.js.map +1 -0
- package/dist/commands/sonic-oc.d.ts +2 -0
- package/dist/commands/sonic-oc.js +28 -0
- package/dist/commands/sonic-oc.js.map +1 -0
- package/dist/commands/sora-2.d.ts +2 -0
- package/dist/commands/sora-2.js +35 -0
- package/dist/commands/sora-2.js.map +1 -0
- package/dist/commands/sprunki-oc-maker.d.ts +2 -0
- package/dist/commands/sprunki-oc-maker.js +29 -0
- package/dist/commands/sprunki-oc-maker.js.map +1 -0
- package/dist/commands/square-face-icon-generator.d.ts +2 -0
- package/dist/commands/square-face-icon-generator.js +30 -0
- package/dist/commands/square-face-icon-generator.js.map +1 -0
- package/dist/commands/stardew-valley-portrait-maker.d.ts +2 -0
- package/dist/commands/stardew-valley-portrait-maker.js +28 -0
- package/dist/commands/stardew-valley-portrait-maker.js.map +1 -0
- package/dist/commands/string-bikini-beauty-contest.d.ts +2 -0
- package/dist/commands/string-bikini-beauty-contest.js +34 -0
- package/dist/commands/string-bikini-beauty-contest.js.map +1 -0
- package/dist/commands/swimsuit-try-on-haul.d.ts +2 -0
- package/dist/commands/swimsuit-try-on-haul.js +34 -0
- package/dist/commands/swimsuit-try-on-haul.js.map +1 -0
- package/dist/commands/video-resolution-enhancer-online-free.d.ts +2 -0
- package/dist/commands/video-resolution-enhancer-online-free.js +26 -0
- package/dist/commands/video-resolution-enhancer-online-free.js.map +1 -0
- package/dist/commands/video-upscaler-online-free.d.ts +2 -0
- package/dist/commands/video-upscaler-online-free.js +26 -0
- package/dist/commands/video-upscaler-online-free.js.map +1 -0
- package/dist/commands/video-watermark-remover.d.ts +2 -0
- package/dist/commands/video-watermark-remover.js +26 -0
- package/dist/commands/video-watermark-remover.js.map +1 -0
- package/dist/commands/virtualtryon.js +2 -2
- package/dist/commands/virtualtryon.js.map +1 -1
- package/dist/commands/wan-ai.d.ts +2 -0
- package/dist/commands/wan-ai.js +31 -0
- package/dist/commands/wan-ai.js.map +1 -0
- package/dist/commands/wild-graffiti.d.ts +2 -0
- package/dist/commands/wild-graffiti.js +28 -0
- package/dist/commands/wild-graffiti.js.map +1 -0
- package/dist/commands/z-image.d.ts +2 -0
- package/dist/commands/z-image.js +30 -0
- package/dist/commands/z-image.js.map +1 -0
- package/dist/index.js +231 -2
- package/dist/index.js.map +1 -1
- package/dist/printer.js +13 -3
- package/dist/printer.js.map +1 -1
- package/dist/run-helper.d.ts +7 -1
- package/dist/run-helper.js +33 -4
- package/dist/run-helper.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import { executeRun } from "../run-helper.js";
|
|
3
|
+
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.";
|
|
4
|
+
export const fatAiCmd = new Command("fat-ai")
|
|
5
|
+
.summary("AI plus-size body transformation — visualize how a person would look extremely overweight")
|
|
6
|
+
.description("Transform a portrait photo to show how the person would look with an extremely overweight body.\n" +
|
|
7
|
+
"Preserves the original clothes and appearance.\n\n" +
|
|
8
|
+
"Default prompt (used when --prompt is omitted):\n" +
|
|
9
|
+
` "${DEFAULT_PROMPT}"\n\n` +
|
|
10
|
+
"Examples:\n" +
|
|
11
|
+
" weshop fat-ai --image ./person.png\n" +
|
|
12
|
+
" weshop fat-ai --image ./person.png --prompt 'Show this person at 300 lbs, keep the outfit'\n" +
|
|
13
|
+
" weshop fat-ai --image ./person.png --batch 2")
|
|
14
|
+
.requiredOption("--image <path|url>", "Input portrait image — local file path or URL")
|
|
15
|
+
.option("--prompt <text>", "Custom body 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("fat-ai", "v1.0", { image: opts.image, wait: opts.wait }, params, extraInput);
|
|
27
|
+
});
|
|
28
|
+
//# 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,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,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,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,36 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import { executeRun } from "../run-helper.js";
|
|
3
|
+
export const fireredImageEditCmd = new Command("firered-image-edit")
|
|
4
|
+
.summary("FireRed image editor — edit or generate images with high fidelity using FireRed open-source model")
|
|
5
|
+
.description("Edit or generate images using the FireRed open-source AI model.\n" +
|
|
6
|
+
"Supports up to 3 reference images. Images are optional.\n\n" +
|
|
7
|
+
"Aspect ratio (--aspect-ratio):\n" +
|
|
8
|
+
" auto (default), 1:1, 2:3, 3:2, 4:3, 3:4, 16:9, 9:16\n\n" +
|
|
9
|
+
"Examples:\n" +
|
|
10
|
+
" weshop firered-image-edit --prompt 'A photorealistic portrait of a woman in a garden'\n" +
|
|
11
|
+
" weshop firered-image-edit --image ./photo.png --prompt 'Change the background to a snowy mountain'\n" +
|
|
12
|
+
" weshop firered-image-edit --image ./a.png --image ./b.png --prompt 'Combine these two scenes' --aspect-ratio 16:9")
|
|
13
|
+
.option("--image <path|url...>", "Reference images — local file paths or URLs (up to 3, optional)")
|
|
14
|
+
.requiredOption("--prompt <text>", "Describe the desired edit or generation")
|
|
15
|
+
.option("--aspect-ratio <ratio>", "Output aspect ratio: auto (default), 1:1, 2:3, 3:2, 4:3, 3:4, 16:9, 9:16")
|
|
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 && imageList.length > 3) {
|
|
22
|
+
console.error("[error]\n message: Maximum 3 images allowed");
|
|
23
|
+
process.exit(1);
|
|
24
|
+
}
|
|
25
|
+
const params = {
|
|
26
|
+
textDescription: opts.prompt,
|
|
27
|
+
aspectRatio: opts.aspectRatio ?? "auto",
|
|
28
|
+
};
|
|
29
|
+
if (opts.batch != null)
|
|
30
|
+
params.batchCount = opts.batch;
|
|
31
|
+
const extraInput = {};
|
|
32
|
+
if (opts.taskName)
|
|
33
|
+
extraInput.taskName = opts.taskName;
|
|
34
|
+
await executeRun("firered-image-edit", "v1.0", { images: imageList, wait: opts.wait }, params, extraInput);
|
|
35
|
+
});
|
|
36
|
+
//# sourceMappingURL=firered-image-edit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"firered-image-edit.js","sourceRoot":"","sources":["../../src/commands/firered-image-edit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,OAAO,CAAC,oBAAoB,CAAC;KACjE,OAAO,CAAC,mGAAmG,CAAC;KAC5G,WAAW,CACV,mEAAmE;IACnE,6DAA6D;IAC7D,kCAAkC;IAClC,2DAA2D;IAC3D,aAAa;IACb,2FAA2F;IAC3F,wGAAwG;IACxG,qHAAqH,CACtH;KACA,MAAM,CAAC,uBAAuB,EAAE,iEAAiE,CAAC;KAClG,cAAc,CAAC,iBAAiB,EAAE,yCAAyC,CAAC;KAC5E,MAAM,CAAC,wBAAwB,EAAE,0EAA0E,CAAC;KAC5G,MAAM,CAAC,iBAAiB,EAAE,iDAAiD,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;KACvG,MAAM,CAAC,oBAAoB,EAAE,mCAAmC,CAAC;KACjE,MAAM,CAAC,WAAW,EAAE,8EAA8E,CAAC;KACnG,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACrB,MAAM,SAAS,GAAyB,IAAI,CAAC,KAAK,CAAC;IACnD,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtC,OAAO,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAC9D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,MAAM,GAA4B;QACtC,eAAe,EAAE,IAAI,CAAC,MAAM;QAC5B,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,MAAM;KACxC,CAAC;IACF,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI;QAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;IAEvD,MAAM,UAAU,GAA4B,EAAE,CAAC;IAC/C,IAAI,IAAI,CAAC,QAAQ;QAAE,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAEvD,MAAM,UAAU,CAAC,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,42 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import { executeRun } from "../run-helper.js";
|
|
3
|
+
export const flatLayCmd = new Command("flat-lay")
|
|
4
|
+
.summary("AI flat-lay clothing generator — create professional flat-lay product images from a photo")
|
|
5
|
+
.description("Generate a professional flat-lay clothing image from a garment or model photo.\n" +
|
|
6
|
+
"Requires a prompt describing the desired output.\n\n" +
|
|
7
|
+
"Model (--model):\n" +
|
|
8
|
+
" nano2 Default model (default)\n" +
|
|
9
|
+
" nano Nano model\n\n" +
|
|
10
|
+
"Image size (--image-size):\n" +
|
|
11
|
+
" 1K 1K resolution (default)\n" +
|
|
12
|
+
" 2K 2K resolution\n" +
|
|
13
|
+
" 4K 4K resolution\n\n" +
|
|
14
|
+
"Aspect ratio (--aspect-ratio):\n" +
|
|
15
|
+
" 1:1, 2:3, 3:2, 3:4, 4:3, 9:16, 16:9, 21:9 (default: 1:1)\n\n" +
|
|
16
|
+
"Examples:\n" +
|
|
17
|
+
" weshop flat-lay --image ./jacket.png --prompt 'A flat-lay white background image of the jacket'\n" +
|
|
18
|
+
" weshop flat-lay --image ./outfit.png --prompt 'Flat-lay of the full outfit on marble surface' --model nano2 --image-size 2K\n" +
|
|
19
|
+
" weshop flat-lay --image ./shirt.png --prompt 'Flat-lay white background shirt' --aspect-ratio 3:4 --batch 2")
|
|
20
|
+
.requiredOption("--image <path|url>", "Input garment or model photo — local file path or URL")
|
|
21
|
+
.requiredOption("--prompt <text>", "Describe the desired flat-lay output")
|
|
22
|
+
.option("--model <name>", "Model to use: nano2 (default) or nano")
|
|
23
|
+
.option("--image-size <size>", "Output resolution: 1K (default), 2K, or 4K")
|
|
24
|
+
.option("--aspect-ratio <ratio>", "Output aspect ratio (default: 1:1)")
|
|
25
|
+
.option("--batch <count>", "Number of images to generate, 1-16 (default: 1)", (v) => parseInt(v, 10), 1)
|
|
26
|
+
.option("--task-name <name>", "Human-readable label for this run")
|
|
27
|
+
.option("--no-wait", "Return immediately after submission; use 'weshop status <id>' to check later")
|
|
28
|
+
.action(async (opts) => {
|
|
29
|
+
const params = {
|
|
30
|
+
textDescription: opts.prompt,
|
|
31
|
+
modelName: opts.model ?? "nano2",
|
|
32
|
+
imageSize: opts.imageSize ?? "1K",
|
|
33
|
+
aspectRatio: opts.aspectRatio ?? "1:1",
|
|
34
|
+
};
|
|
35
|
+
if (opts.batch != null)
|
|
36
|
+
params.batchCount = opts.batch;
|
|
37
|
+
const extraInput = {};
|
|
38
|
+
if (opts.taskName)
|
|
39
|
+
extraInput.taskName = opts.taskName;
|
|
40
|
+
await executeRun("flat-lay", "v1.0", { image: opts.image, wait: opts.wait }, params, extraInput);
|
|
41
|
+
});
|
|
42
|
+
//# sourceMappingURL=flat-lay.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flat-lay.js","sourceRoot":"","sources":["../../src/commands/flat-lay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC;KAC9C,OAAO,CAAC,2FAA2F,CAAC;KACpG,WAAW,CACV,kFAAkF;IAClF,sDAAsD;IACtD,oBAAoB;IACpB,qCAAqC;IACrC,0BAA0B;IAC1B,8BAA8B;IAC9B,kCAAkC;IAClC,wBAAwB;IACxB,0BAA0B;IAC1B,kCAAkC;IAClC,iEAAiE;IACjE,aAAa;IACb,qGAAqG;IACrG,iIAAiI;IACjI,+GAA+G,CAChH;KACA,cAAc,CAAC,oBAAoB,EAAE,uDAAuD,CAAC;KAC7F,cAAc,CAAC,iBAAiB,EAAE,sCAAsC,CAAC;KACzE,MAAM,CAAC,gBAAgB,EAAE,uCAAuC,CAAC;KACjE,MAAM,CAAC,qBAAqB,EAAE,4CAA4C,CAAC;KAC3E,MAAM,CAAC,wBAAwB,EAAE,oCAAoC,CAAC;KACtE,MAAM,CAAC,iBAAiB,EAAE,iDAAiD,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;KACvG,MAAM,CAAC,oBAAoB,EAAE,mCAAmC,CAAC;KACjE,MAAM,CAAC,WAAW,EAAE,8EAA8E,CAAC;KACnG,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACrB,MAAM,MAAM,GAA4B;QACtC,eAAe,EAAE,IAAI,CAAC,MAAM;QAC5B,SAAS,EAAE,IAAI,CAAC,KAAK,IAAI,OAAO;QAChC,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI;QACjC,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,KAAK;KACvC,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,UAAU,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AACnG,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import { executeRun } from "../run-helper.js";
|
|
3
|
+
export const free4kVideoUpscalerCmd = new Command("free-4k-video-upscaler")
|
|
4
|
+
.summary("Free 4K video upscaler — upscale video to 4K resolution using AI")
|
|
5
|
+
.description("Upscale and enhance video quality to 4K resolution using AI.\n\n" +
|
|
6
|
+
"Provide the video as a URL (--video). Local video files are not auto-uploaded;\n" +
|
|
7
|
+
"use 'weshop upload' first to get a hosted URL if needed.\n\n" +
|
|
8
|
+
"Video size (--video-size): target output resolution, e.g. 2K, 4K (default: 4K)\n\n" +
|
|
9
|
+
"Examples:\n" +
|
|
10
|
+
" weshop free-4k-video-upscaler --video https://example.com/video.mp4\n" +
|
|
11
|
+
" weshop free-4k-video-upscaler --video https://example.com/video.mp4 --video-size 4K\n" +
|
|
12
|
+
" weshop free-4k-video-upscaler --video https://example.com/video.mp4 --no-wait")
|
|
13
|
+
.requiredOption("--video <url>", "Input video URL")
|
|
14
|
+
.option("--video-size <size>", "Target output resolution, e.g. 2K or 4K (default: 4K)")
|
|
15
|
+
.option("--task-name <name>", "Human-readable label for this run")
|
|
16
|
+
.option("--no-wait", "Return immediately after submission; use 'weshop status <id>' to check later")
|
|
17
|
+
.action(async (opts) => {
|
|
18
|
+
const params = {};
|
|
19
|
+
if (opts.videoSize)
|
|
20
|
+
params.videoSize = opts.videoSize;
|
|
21
|
+
const extraInput = {};
|
|
22
|
+
if (opts.taskName)
|
|
23
|
+
extraInput.taskName = opts.taskName;
|
|
24
|
+
await executeRun("free-4k-video-upscaler", "v1.0", { videos: [opts.video], wait: opts.wait }, params, extraInput);
|
|
25
|
+
});
|
|
26
|
+
//# sourceMappingURL=free-4k-video-upscaler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"free-4k-video-upscaler.js","sourceRoot":"","sources":["../../src/commands/free-4k-video-upscaler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,OAAO,CAAC,wBAAwB,CAAC;KACxE,OAAO,CAAC,kEAAkE,CAAC;KAC3E,WAAW,CACV,kEAAkE;IAClE,kFAAkF;IAClF,8DAA8D;IAC9D,oFAAoF;IACpF,aAAa;IACb,yEAAyE;IACzE,yFAAyF;IACzF,iFAAiF,CAClF;KACA,cAAc,CAAC,eAAe,EAAE,iBAAiB,CAAC;KAClD,MAAM,CAAC,qBAAqB,EAAE,uDAAuD,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,EAAE,CAAC;IAC3C,IAAI,IAAI,CAAC,SAAS;QAAE,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;IACtD,MAAM,UAAU,GAA4B,EAAE,CAAC;IAC/C,IAAI,IAAI,CAAC,QAAQ;QAAE,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IACvD,MAAM,UAAU,CAAC,wBAAwB,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AACpH,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import { executeRun } from "../run-helper.js";
|
|
3
|
+
const DEFAULT_PROMPT = "A random AI girlfriend portrait, beautiful young woman, {ethnicity}, {hairstyle}, {makeup}, {vibe}, gentle soft smile, natural skin texture, cinematic soft lighting, {scene}, shallow depth of field, realistic photography, emotional warm atmosphere, 50mm lens, f1.8, ultra-detailed, 4k, masterpiece.";
|
|
4
|
+
export const freeAiGirlfriendGeneratorCmd = new Command("free-ai-girlfriend-generator")
|
|
5
|
+
.summary("AI girlfriend generator — generate a realistic AI girlfriend portrait from text or reference image")
|
|
6
|
+
.description("Generate a photorealistic AI girlfriend portrait. Image is optional.\n\n" +
|
|
7
|
+
"Default prompt (used when --prompt is omitted):\n" +
|
|
8
|
+
" Random AI girlfriend portrait with randomized ethnicity, hairstyle, makeup, vibe, and scene.\n\n" +
|
|
9
|
+
"Examples:\n" +
|
|
10
|
+
" weshop free-ai-girlfriend-generator --prompt 'Asian woman, long black hair, casual vibe, coffee shop'\n" +
|
|
11
|
+
" weshop free-ai-girlfriend-generator --image ./reference.png --prompt 'Similar style, outdoor park setting'\n" +
|
|
12
|
+
" weshop free-ai-girlfriend-generator --batch 4")
|
|
13
|
+
.option("--image <path|url>", "Reference image — local file path or URL (optional)")
|
|
14
|
+
.option("--prompt <text>", "Describe the desired girlfriend portrait")
|
|
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("free-ai-girlfriend-generator", "v1.0", { image: opts.image, wait: opts.wait }, params, extraInput);
|
|
26
|
+
});
|
|
27
|
+
//# sourceMappingURL=free-ai-girlfriend-generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"free-ai-girlfriend-generator.js","sourceRoot":"","sources":["../../src/commands/free-ai-girlfriend-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,cAAc,GAClB,4SAA4S,CAAC;AAE/S,MAAM,CAAC,MAAM,4BAA4B,GAAG,IAAI,OAAO,CAAC,8BAA8B,CAAC;KACpF,OAAO,CAAC,oGAAoG,CAAC;KAC7G,WAAW,CACV,0EAA0E;IAC1E,mDAAmD;IACnD,oGAAoG;IACpG,aAAa;IACb,2GAA2G;IAC3G,gHAAgH;IAChH,iDAAiD,CAClD;KACA,MAAM,CAAC,oBAAoB,EAAE,qDAAqD,CAAC;KACnF,MAAM,CAAC,iBAAiB,EAAE,0CAA0C,CAAC;KACrE,MAAM,CAAC,iBAAiB,EAAE,iDAAiD,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;KACvG,MAAM,CAAC,oBAAoB,EAAE,mCAAmC,CAAC;KACjE,MAAM,CAAC,WAAW,EAAE,8EAA8E,CAAC;KACnG,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACrB,MAAM,MAAM,GAA4B,EAAE,eAAe,EAAE,IAAI,CAAC,MAAM,IAAI,cAAc,EAAE,CAAC;IAC3F,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI;QAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;IACvD,MAAM,UAAU,GAA4B,EAAE,CAAC;IAC/C,IAAI,IAAI,CAAC,QAAQ;QAAE,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IACvD,MAAM,UAAU,CAAC,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,26 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import { executeRun } from "../run-helper.js";
|
|
3
|
+
export const freeOnlineVideoQualityEnhancerCmd = new Command("free-online-video-quality-enhancer")
|
|
4
|
+
.summary("Free online video quality enhancer — upscale and enhance video quality using AI")
|
|
5
|
+
.description("Upscale and enhance video quality using AI.\n\n" +
|
|
6
|
+
"Provide the video as a URL (--video). Local video files are not auto-uploaded;\n" +
|
|
7
|
+
"use 'weshop upload' first to get a hosted URL if needed.\n\n" +
|
|
8
|
+
"Video size (--video-size): target output resolution, e.g. 2K, 4K\n\n" +
|
|
9
|
+
"Examples:\n" +
|
|
10
|
+
" weshop free-online-video-quality-enhancer --video https://example.com/video.mp4\n" +
|
|
11
|
+
" weshop free-online-video-quality-enhancer --video https://example.com/video.mp4 --video-size 4K\n" +
|
|
12
|
+
" weshop free-online-video-quality-enhancer --video https://example.com/video.mp4 --no-wait")
|
|
13
|
+
.requiredOption("--video <url>", "Input video URL")
|
|
14
|
+
.option("--video-size <size>", "Target output resolution, e.g. 2K or 4K")
|
|
15
|
+
.option("--task-name <name>", "Human-readable label for this run")
|
|
16
|
+
.option("--no-wait", "Return immediately after submission; use 'weshop status <id>' to check later")
|
|
17
|
+
.action(async (opts) => {
|
|
18
|
+
const params = {};
|
|
19
|
+
if (opts.videoSize)
|
|
20
|
+
params.videoSize = opts.videoSize;
|
|
21
|
+
const extraInput = {};
|
|
22
|
+
if (opts.taskName)
|
|
23
|
+
extraInput.taskName = opts.taskName;
|
|
24
|
+
await executeRun("free-online-video-quality-enhancer", "v1.0", { videos: [opts.video], wait: opts.wait }, params, extraInput);
|
|
25
|
+
});
|
|
26
|
+
//# sourceMappingURL=free-online-video-quality-enhancer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"free-online-video-quality-enhancer.js","sourceRoot":"","sources":["../../src/commands/free-online-video-quality-enhancer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,CAAC,MAAM,iCAAiC,GAAG,IAAI,OAAO,CAAC,oCAAoC,CAAC;KAC/F,OAAO,CAAC,iFAAiF,CAAC;KAC1F,WAAW,CACV,iDAAiD;IACjD,kFAAkF;IAClF,8DAA8D;IAC9D,sEAAsE;IACtE,aAAa;IACb,qFAAqF;IACrF,qGAAqG;IACrG,6FAA6F,CAC9F;KACA,cAAc,CAAC,eAAe,EAAE,iBAAiB,CAAC;KAClD,MAAM,CAAC,qBAAqB,EAAE,yCAAyC,CAAC;KACxE,MAAM,CAAC,oBAAoB,EAAE,mCAAmC,CAAC;KACjE,MAAM,CAAC,WAAW,EAAE,8EAA8E,CAAC;KACnG,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACrB,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,IAAI,IAAI,CAAC,SAAS;QAAE,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;IACtD,MAAM,UAAU,GAA4B,EAAE,CAAC;IAC/C,IAAI,IAAI,CAAC,QAAQ;QAAE,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IACvD,MAAM,UAAU,CAAC,oCAAoC,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AAChI,CAAC,CAAC,CAAC"}
|
|
@@ -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 freeSexyAiGeneratorCmd = new Command("free-sexy-ai-generator")
|
|
5
|
+
.summary("Free sexy AI generator — transform a person photo into a bikini model image or video")
|
|
6
|
+
.description("Transform a portrait or full-body photo into a bikini model image or video.\n\n" +
|
|
7
|
+
"Generated type (--generated-type):\n" +
|
|
8
|
+
" video Generate a short video (default)\n" +
|
|
9
|
+
" image Generate a still image\n\n" +
|
|
10
|
+
"Default prompt (used when --prompt is omitted):\n" +
|
|
11
|
+
` "${DEFAULT_PROMPT}"\n\n` +
|
|
12
|
+
"Examples:\n" +
|
|
13
|
+
" weshop free-sexy-ai-generator --image ./person.png --prompt 'Bikini model on a beach'\n" +
|
|
14
|
+
" weshop free-sexy-ai-generator --image ./person.png --generated-type image --batch 2\n" +
|
|
15
|
+
" weshop free-sexy-ai-generator --image ./person.png --generated-type video --no-wait")
|
|
16
|
+
.requiredOption("--image <path|url>", "Input portrait or full-body photo — local file path or URL")
|
|
17
|
+
.option("--prompt <text>", "Describe the desired bikini model scene")
|
|
18
|
+
.option("--generated-type <type>", "Output type: video (default) or image")
|
|
19
|
+
.option("--batch <count>", "Number of outputs to generate, 1-16 (default: 1)", (v) => parseInt(v, 10), 1)
|
|
20
|
+
.option("--task-name <name>", "Human-readable label for this run")
|
|
21
|
+
.option("--no-wait", "Return immediately after submission; use 'weshop status <id>' to check later")
|
|
22
|
+
.action(async (opts) => {
|
|
23
|
+
const params = {
|
|
24
|
+
textDescription: opts.prompt ?? DEFAULT_PROMPT,
|
|
25
|
+
generatedType: opts.generatedType ?? "video",
|
|
26
|
+
};
|
|
27
|
+
if (opts.batch != null)
|
|
28
|
+
params.batchCount = opts.batch;
|
|
29
|
+
const extraInput = {};
|
|
30
|
+
if (opts.taskName)
|
|
31
|
+
extraInput.taskName = opts.taskName;
|
|
32
|
+
await executeRun("free-sexy-ai-generator", "v1.0", { image: opts.image, wait: opts.wait }, params, extraInput);
|
|
33
|
+
});
|
|
34
|
+
//# sourceMappingURL=free-sexy-ai-generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"free-sexy-ai-generator.js","sourceRoot":"","sources":["../../src/commands/free-sexy-ai-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,cAAc,GAClB,qIAAqI,CAAC;AAExI,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,OAAO,CAAC,wBAAwB,CAAC;KACxE,OAAO,CAAC,sFAAsF,CAAC;KAC/F,WAAW,CACV,iFAAiF;IACjF,sCAAsC;IACtC,8CAA8C;IAC9C,sCAAsC;IACtC,mDAAmD;IACnD,MAAM,cAAc,OAAO;IAC3B,aAAa;IACb,2FAA2F;IAC3F,yFAAyF;IACzF,uFAAuF,CACxF;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,wBAAwB,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AACjH,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import { executeRun } from "../run-helper.js";
|
|
3
|
+
const DEFAULT_PROMPT = "Put this person in a dramatic cinematic scene with harajuku fashion with futuristic color PVC clothing, semi-transparent color vinyl, metalic prismatic, holographic, chromatic aberration, fashion illustration, masterpiece. slightly wide-angle lens, natural soft key lighting, realistic style. Make it look like an actual movie scene, but keep original aspect ratio.";
|
|
4
|
+
export const futuristicEleganceCmd = new Command("futuristic-elegance")
|
|
5
|
+
.summary("Dress a person in futuristic harajuku fashion — cinematic sci-fi outfit transformation")
|
|
6
|
+
.description("Transform a portrait photo into a dramatic cinematic scene with futuristic harajuku fashion.\n\n" +
|
|
7
|
+
"Applies holographic PVC clothing, prismatic materials, and cinematic lighting while\n" +
|
|
8
|
+
"preserving the person's face and body proportions.\n\n" +
|
|
9
|
+
"Default prompt (used when --prompt is omitted):\n" +
|
|
10
|
+
` "${DEFAULT_PROMPT}"\n\n` +
|
|
11
|
+
"Examples:\n" +
|
|
12
|
+
" weshop futuristic-elegance --image ./person.png\n" +
|
|
13
|
+
" weshop futuristic-elegance --image ./person.png --prompt 'Cyberpunk neon outfit, rain-soaked street'\n" +
|
|
14
|
+
" weshop futuristic-elegance --image ./person.png --batch 4")
|
|
15
|
+
.requiredOption("--image <path|url>", "Input portrait image — local file path or URL")
|
|
16
|
+
.option("--prompt <text>", "Custom style instruction (default: futuristic harajuku cinematic scene)")
|
|
17
|
+
.option("--batch <count>", "Number of images to generate, 1-16 (default: 1)", (v) => parseInt(v, 10), 1)
|
|
18
|
+
.option("--task-name <name>", "Human-readable label for this run")
|
|
19
|
+
.option("--no-wait", "Return immediately after submission; use 'weshop status <id>' to check later")
|
|
20
|
+
.action(async (opts) => {
|
|
21
|
+
const params = { textDescription: opts.prompt ?? DEFAULT_PROMPT };
|
|
22
|
+
if (opts.batch != null)
|
|
23
|
+
params.batchCount = opts.batch;
|
|
24
|
+
const extraInput = {};
|
|
25
|
+
if (opts.taskName)
|
|
26
|
+
extraInput.taskName = opts.taskName;
|
|
27
|
+
await executeRun("futuristic-elegance", "v1.0", { image: opts.image, wait: opts.wait }, params, extraInput);
|
|
28
|
+
});
|
|
29
|
+
//# sourceMappingURL=futuristic-elegance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"futuristic-elegance.js","sourceRoot":"","sources":["../../src/commands/futuristic-elegance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,cAAc,GAClB,+WAA+W,CAAC;AAElX,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,OAAO,CAAC,qBAAqB,CAAC;KACpE,OAAO,CAAC,wFAAwF,CAAC;KACjG,WAAW,CACV,kGAAkG;IAClG,uFAAuF;IACvF,wDAAwD;IACxD,mDAAmD;IACnD,MAAM,cAAc,OAAO;IAC3B,aAAa;IACb,qDAAqD;IACrD,0GAA0G;IAC1G,6DAA6D,CAC9D;KACA,cAAc,CAAC,oBAAoB,EAAE,+CAA+C,CAAC;KACrF,MAAM,CAAC,iBAAiB,EAAE,yEAAyE,CAAC;KACpG,MAAM,CAAC,iBAAiB,EAAE,iDAAiD,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;KACvG,MAAM,CAAC,oBAAoB,EAAE,mCAAmC,CAAC;KACjE,MAAM,CAAC,WAAW,EAAE,8EAA8E,CAAC;KACnG,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACrB,MAAM,MAAM,GAA4B,EAAE,eAAe,EAAE,IAAI,CAAC,MAAM,IAAI,cAAc,EAAE,CAAC;IAC3F,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI;QAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;IACvD,MAAM,UAAU,GAA4B,EAAE,CAAC;IAC/C,IAAI,IAAI,CAAC,QAAQ;QAAE,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IACvD,MAAM,UAAU,CAAC,qBAAqB,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AAC9G,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import { executeRun } from "../run-helper.js";
|
|
3
|
+
export const geminiWatermarkRemoverCmd = new Command("gemini-watermark-remover")
|
|
4
|
+
.summary("Gemini watermark remover — remove watermarks, logos, or text from a video")
|
|
5
|
+
.description("Remove watermarks, logos, subtitles, or text overlays from a video.\n\n" +
|
|
6
|
+
"Provide the video as a URL (--video). Local video files are not auto-uploaded;\n" +
|
|
7
|
+
"use 'weshop upload' first to get a hosted URL if needed.\n\n" +
|
|
8
|
+
"Examples:\n" +
|
|
9
|
+
" weshop gemini-watermark-remover --video https://example.com/video.mp4\n" +
|
|
10
|
+
" weshop gemini-watermark-remover --video https://example.com/video.mp4 --no-wait")
|
|
11
|
+
.requiredOption("--video <url>", "Input video URL")
|
|
12
|
+
.option("--task-name <name>", "Human-readable label for this run")
|
|
13
|
+
.option("--no-wait", "Return immediately after submission; use 'weshop status <id>' to check later")
|
|
14
|
+
.action(async (opts) => {
|
|
15
|
+
const params = { watermarkSelectType: "autoDetect" };
|
|
16
|
+
const extraInput = {};
|
|
17
|
+
if (opts.taskName)
|
|
18
|
+
extraInput.taskName = opts.taskName;
|
|
19
|
+
await executeRun("gemini-watermark-remover", "v1.0", { videos: [opts.video], wait: opts.wait }, params, extraInput);
|
|
20
|
+
});
|
|
21
|
+
//# sourceMappingURL=gemini-watermark-remover.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gemini-watermark-remover.js","sourceRoot":"","sources":["../../src/commands/gemini-watermark-remover.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,CAAC,MAAM,yBAAyB,GAAG,IAAI,OAAO,CAAC,0BAA0B,CAAC;KAC7E,OAAO,CAAC,2EAA2E,CAAC;KACpF,WAAW,CACV,yEAAyE;IACzE,kFAAkF;IAClF,8DAA8D;IAC9D,aAAa;IACb,2EAA2E;IAC3E,mFAAmF,CACpF;KACA,cAAc,CAAC,eAAe,EAAE,iBAAiB,CAAC;KAClD,MAAM,CAAC,oBAAoB,EAAE,mCAAmC,CAAC;KACjE,MAAM,CAAC,WAAW,EAAE,8EAA8E,CAAC;KACnG,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACrB,MAAM,MAAM,GAA4B,EAAE,mBAAmB,EAAE,YAAY,EAAE,CAAC;IAC9E,MAAM,UAAU,GAA4B,EAAE,CAAC;IAC/C,IAAI,IAAI,CAAC,QAAQ;QAAE,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IACvD,MAAM,UAAU,CAAC,0BAA0B,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AACtH,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import { executeRun } from "../run-helper.js";
|
|
3
|
+
const DEFAULT_PROMPT = "Change this person's gender to the opposite one.";
|
|
4
|
+
export const genderSwapCmd = new Command("gender-swap")
|
|
5
|
+
.summary("AI gender swap — transform a portrait to the opposite gender while preserving identity")
|
|
6
|
+
.description("Transform a portrait photo to show the person as the opposite gender.\n" +
|
|
7
|
+
"Preserves facial identity, features, and photo realism.\n\n" +
|
|
8
|
+
"Default prompt (used when --prompt is omitted):\n" +
|
|
9
|
+
` "${DEFAULT_PROMPT}"\n\n` +
|
|
10
|
+
"Examples:\n" +
|
|
11
|
+
" weshop gender-swap --image ./person.png\n" +
|
|
12
|
+
" weshop gender-swap --image ./person.png --prompt 'Change to female, keep the hairstyle'\n" +
|
|
13
|
+
" weshop gender-swap --image ./person.png --batch 2")
|
|
14
|
+
.requiredOption("--image <path|url>", "Input portrait image — local file path or URL")
|
|
15
|
+
.option("--prompt <text>", "Custom gender 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("gender-swap", "v1.0", { image: opts.image, wait: opts.wait }, params, extraInput);
|
|
27
|
+
});
|
|
28
|
+
//# sourceMappingURL=gender-swap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gender-swap.js","sourceRoot":"","sources":["../../src/commands/gender-swap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,cAAc,GAAG,kDAAkD,CAAC;AAE1E,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC,aAAa,CAAC;KACpD,OAAO,CAAC,wFAAwF,CAAC;KACjG,WAAW,CACV,yEAAyE;IACzE,6DAA6D;IAC7D,mDAAmD;IACnD,MAAM,cAAc,OAAO;IAC3B,aAAa;IACb,6CAA6C;IAC7C,6FAA6F;IAC7F,qDAAqD,CACtD;KACA,cAAc,CAAC,oBAAoB,EAAE,+CAA+C,CAAC;KACrF,MAAM,CAAC,iBAAiB,EAAE,0CAA0C,CAAC;KACrE,MAAM,CAAC,iBAAiB,EAAE,iDAAiD,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;KACvG,MAAM,CAAC,oBAAoB,EAAE,mCAAmC,CAAC;KACjE,MAAM,CAAC,WAAW,EAAE,8EAA8E,CAAC;KACnG,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACrB,MAAM,MAAM,GAA4B,EAAE,eAAe,EAAE,IAAI,CAAC,MAAM,IAAI,cAAc,EAAE,CAAC;IAC3F,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI;QAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;IACvD,MAAM,UAAU,GAA4B,EAAE,CAAC;IAC/C,IAAI,IAAI,CAAC,QAAQ;QAAE,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IACvD,MAAM,UAAU,CAAC,aAAa,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AACtG,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import { executeRun } from "../run-helper.js";
|
|
3
|
+
const DEFAULT_PROMPT = "Turn this image into ghibli style";
|
|
4
|
+
export const ghibliArtCreateCmd = new Command("ghibli-art-create")
|
|
5
|
+
.summary("AI Ghibli art creator — transform any photo into Studio Ghibli anime art style")
|
|
6
|
+
.description("Transform any photo into Studio Ghibli-style anime art. Image is optional.\n\n" +
|
|
7
|
+
"Default prompt (used when --prompt is omitted):\n" +
|
|
8
|
+
` "${DEFAULT_PROMPT}"\n\n` +
|
|
9
|
+
"Examples:\n" +
|
|
10
|
+
" weshop ghibli-art-create --image ./photo.png\n" +
|
|
11
|
+
" weshop ghibli-art-create --image ./landscape.png --prompt 'Ghibli style with soft watercolor and magical atmosphere'\n" +
|
|
12
|
+
" weshop ghibli-art-create --batch 2 --image ./portrait.png")
|
|
13
|
+
.option("--image <path|url>", "Input image — local file path or URL (optional)")
|
|
14
|
+
.option("--prompt <text>", "Custom Ghibli style instruction")
|
|
15
|
+
.option("--batch <count>", "Number of images to generate, 1-16 (default: 1)", (v) => parseInt(v, 10), 1)
|
|
16
|
+
.option("--task-name <name>", "Human-readable label for this run")
|
|
17
|
+
.option("--no-wait", "Return immediately after submission; use 'weshop status <id>' to check later")
|
|
18
|
+
.action(async (opts) => {
|
|
19
|
+
const params = { textDescription: opts.prompt ?? DEFAULT_PROMPT };
|
|
20
|
+
if (opts.batch != null)
|
|
21
|
+
params.batchCount = opts.batch;
|
|
22
|
+
const extraInput = {};
|
|
23
|
+
if (opts.taskName)
|
|
24
|
+
extraInput.taskName = opts.taskName;
|
|
25
|
+
await executeRun("ghibli-art-create", "v1.0", { image: opts.image, wait: opts.wait }, params, extraInput);
|
|
26
|
+
});
|
|
27
|
+
//# sourceMappingURL=ghibli-art-create.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ghibli-art-create.js","sourceRoot":"","sources":["../../src/commands/ghibli-art-create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,cAAc,GAAG,mCAAmC,CAAC;AAE3D,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,OAAO,CAAC,mBAAmB,CAAC;KAC/D,OAAO,CAAC,gFAAgF,CAAC;KACzF,WAAW,CACV,gFAAgF;IAChF,mDAAmD;IACnD,MAAM,cAAc,OAAO;IAC3B,aAAa;IACb,kDAAkD;IAClD,0HAA0H;IAC1H,6DAA6D,CAC9D;KACA,MAAM,CAAC,oBAAoB,EAAE,iDAAiD,CAAC;KAC/E,MAAM,CAAC,iBAAiB,EAAE,iCAAiC,CAAC;KAC5D,MAAM,CAAC,iBAAiB,EAAE,iDAAiD,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;KACvG,MAAM,CAAC,oBAAoB,EAAE,mCAAmC,CAAC;KACjE,MAAM,CAAC,WAAW,EAAE,8EAA8E,CAAC;KACnG,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACrB,MAAM,MAAM,GAA4B,EAAE,eAAe,EAAE,IAAI,CAAC,MAAM,IAAI,cAAc,EAAE,CAAC;IAC3F,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI;QAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;IACvD,MAAM,UAAU,GAA4B,EAAE,CAAC;IAC/C,IAAI,IAAI,CAAC,QAAQ;QAAE,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IACvD,MAAM,UAAU,CAAC,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,35 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import { executeRun } from "../run-helper.js";
|
|
3
|
+
export const grokImagineVideoCmd = new Command("grok-imagine-video")
|
|
4
|
+
.summary("Grok Imagine video generator — create cinematic AI videos with native audio using xAI")
|
|
5
|
+
.description("Generate cinematic AI videos with native audio using xAI's Grok Imagine Video.\n" +
|
|
6
|
+
"Results come back in video[N].url.\n\n" +
|
|
7
|
+
"Duration (--duration):\n" +
|
|
8
|
+
" 6s (default), 10s\n\n" +
|
|
9
|
+
"Aspect ratio (--aspect-ratio):\n" +
|
|
10
|
+
" 16:9 (default), 9:16, 1:1\n\n" +
|
|
11
|
+
"Examples:\n" +
|
|
12
|
+
" weshop grok-imagine-video --image ./scene.png --prompt 'A rocket launching into space'\n" +
|
|
13
|
+
" weshop grok-imagine-video --image ./photo.png --prompt 'Person walks through a neon-lit city' --duration 10s\n" +
|
|
14
|
+
" weshop grok-imagine-video --image ./landscape.png --prompt 'Timelapse of a storm' --aspect-ratio 9:16 --no-wait")
|
|
15
|
+
.requiredOption("--image <path|url>", "Input image — local file path or URL")
|
|
16
|
+
.requiredOption("--prompt <text>", "Describe the desired video scene")
|
|
17
|
+
.option("--duration <time>", "Video duration: 6s (default) or 10s")
|
|
18
|
+
.option("--aspect-ratio <ratio>", "Output aspect ratio: 16:9 (default), 9:16, or 1:1")
|
|
19
|
+
.option("--batch <count>", "Number of videos 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,
|
|
25
|
+
duration: opts.duration ?? "6s",
|
|
26
|
+
aspectRatio: opts.aspectRatio ?? "16:9",
|
|
27
|
+
};
|
|
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("grok-imagine-video", "v1.0", { image: opts.image, wait: opts.wait }, params, extraInput);
|
|
34
|
+
});
|
|
35
|
+
//# sourceMappingURL=grok-imagine-video.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grok-imagine-video.js","sourceRoot":"","sources":["../../src/commands/grok-imagine-video.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,OAAO,CAAC,oBAAoB,CAAC;KACjE,OAAO,CAAC,uFAAuF,CAAC;KAChG,WAAW,CACV,kFAAkF;IAClF,wCAAwC;IACxC,0BAA0B;IAC1B,yBAAyB;IACzB,kCAAkC;IAClC,iCAAiC;IACjC,aAAa;IACb,4FAA4F;IAC5F,kHAAkH;IAClH,mHAAmH,CACpH;KACA,cAAc,CAAC,oBAAoB,EAAE,sCAAsC,CAAC;KAC5E,cAAc,CAAC,iBAAiB,EAAE,kCAAkC,CAAC;KACrE,MAAM,CAAC,mBAAmB,EAAE,qCAAqC,CAAC;KAClE,MAAM,CAAC,wBAAwB,EAAE,mDAAmD,CAAC;KACrF,MAAM,CAAC,iBAAiB,EAAE,iDAAiD,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;KACvG,MAAM,CAAC,oBAAoB,EAAE,mCAAmC,CAAC;KACjE,MAAM,CAAC,WAAW,EAAE,8EAA8E,CAAC;KACnG,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACrB,MAAM,MAAM,GAA4B;QACtC,eAAe,EAAE,IAAI,CAAC,MAAM;QAC5B,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI;QAC/B,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,MAAM;KACxC,CAAC;IACF,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI;QAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;IAEvD,MAAM,UAAU,GAA4B,EAAE,CAAC;IAC/C,IAAI,IAAI,CAAC,QAAQ;QAAE,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAEvD,MAAM,UAAU,CAAC,oBAAoB,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AAC7G,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import { executeRun } from "../run-helper.js";
|
|
3
|
+
export const grokImagineCmd = new Command("grok-imagine")
|
|
4
|
+
.summary("Grok Imagine image generator — create high-resolution images from text using xAI Aurora")
|
|
5
|
+
.description("Generate high-resolution images from text using xAI's Aurora model (Grok Imagine).\n" +
|
|
6
|
+
"Image is optional.\n\n" +
|
|
7
|
+
"Examples:\n" +
|
|
8
|
+
" weshop grok-imagine --prompt 'A photorealistic astronaut on Mars at sunset'\n" +
|
|
9
|
+
" weshop grok-imagine --image ./reference.png --prompt 'In this style, a futuristic city'\n" +
|
|
10
|
+
" weshop grok-imagine --prompt 'Abstract art with neon colors' --batch 4")
|
|
11
|
+
.option("--image <path|url>", "Reference image — local file path or URL (optional)")
|
|
12
|
+
.requiredOption("--prompt <text>", "Describe the desired image")
|
|
13
|
+
.option("--batch <count>", "Number of images to generate, 1-16 (default: 1)", (v) => parseInt(v, 10), 1)
|
|
14
|
+
.option("--task-name <name>", "Human-readable label for this run")
|
|
15
|
+
.option("--no-wait", "Return immediately after submission; use 'weshop status <id>' to check later")
|
|
16
|
+
.action(async (opts) => {
|
|
17
|
+
const params = { textDescription: opts.prompt };
|
|
18
|
+
if (opts.batch != null)
|
|
19
|
+
params.batchCount = opts.batch;
|
|
20
|
+
const extraInput = {};
|
|
21
|
+
if (opts.taskName)
|
|
22
|
+
extraInput.taskName = opts.taskName;
|
|
23
|
+
await executeRun("grok-imagine", "v1.0", { image: opts.image, wait: opts.wait }, params, extraInput);
|
|
24
|
+
});
|
|
25
|
+
//# sourceMappingURL=grok-imagine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grok-imagine.js","sourceRoot":"","sources":["../../src/commands/grok-imagine.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,cAAc,CAAC;KACtD,OAAO,CAAC,yFAAyF,CAAC;KAClG,WAAW,CACV,sFAAsF;IACtF,wBAAwB;IACxB,aAAa;IACb,iFAAiF;IACjF,6FAA6F;IAC7F,0EAA0E,CAC3E;KACA,MAAM,CAAC,oBAAoB,EAAE,qDAAqD,CAAC;KACnF,cAAc,CAAC,iBAAiB,EAAE,4BAA4B,CAAC;KAC/D,MAAM,CAAC,iBAAiB,EAAE,iDAAiD,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;KACvG,MAAM,CAAC,oBAAoB,EAAE,mCAAmC,CAAC;KACjE,MAAM,CAAC,WAAW,EAAE,8EAA8E,CAAC;KACnG,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACrB,MAAM,MAAM,GAA4B,EAAE,eAAe,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;IACzE,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI;QAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;IAEvD,MAAM,UAAU,GAA4B,EAAE,CAAC;IAC/C,IAAI,IAAI,CAAC,QAAQ;QAAE,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAEvD,MAAM,UAAU,CAAC,cAAc,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AACvG,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,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 hairColorTryOnCmd = new Command("hair-color-try-on")
|
|
5
|
+
.summary("Hair color try-on — 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 hair-color-try-on --image ./person.png\n" +
|
|
12
|
+
" weshop hair-color-try-on --image ./person.png --prompt 'Change hair to platinum blonde'\n" +
|
|
13
|
+
" weshop hair-color-try-on --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("hair-color-try-on", "v1.0", { image: opts.image, wait: opts.wait }, params, extraInput);
|
|
27
|
+
});
|
|
28
|
+
//# sourceMappingURL=hair-color-try-on.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hair-color-try-on.js","sourceRoot":"","sources":["../../src/commands/hair-color-try-on.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,iBAAiB,GAAG,IAAI,OAAO,CAAC,mBAAmB,CAAC;KAC9D,OAAO,CAAC,yFAAyF,CAAC;KAClG,WAAW,CACV,oEAAoE;IACpE,6DAA6D;IAC7D,mDAAmD;IACnD,MAAM,cAAc,OAAO;IAC3B,aAAa;IACb,mDAAmD;IACnD,6FAA6F;IAC7F,2DAA2D,CAC5D;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,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,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 happyWomanBikiniAiPicCmd = new Command("happy-woman-bikini-ai-pic")
|
|
5
|
+
.summary("Happy woman bikini AI pic — 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 happy-woman-bikini-ai-pic --image ./person.png --prompt 'Bikini model on a beach'\n" +
|
|
14
|
+
" weshop happy-woman-bikini-ai-pic --image ./person.png --generated-type image --batch 2\n" +
|
|
15
|
+
" weshop happy-woman-bikini-ai-pic --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("happy-woman-bikini-ai-pic", "v1.0", { image: opts.image, wait: opts.wait }, params, extraInput);
|
|
33
|
+
});
|
|
34
|
+
//# sourceMappingURL=happy-woman-bikini-ai-pic.js.map
|