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,35 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import { executeRun } from "../run-helper.js";
|
|
3
|
+
export const sora2Cmd = new Command("sora-2")
|
|
4
|
+
.summary("Sora 2 video generator — create cinematic videos with realistic physics using OpenAI Sora 2")
|
|
5
|
+
.description("Generate cinematic videos with realistic physics and storytelling using Sora 2.\n" +
|
|
6
|
+
"Results come back in video[N].url.\n\n" +
|
|
7
|
+
"Duration (--duration):\n" +
|
|
8
|
+
" 4s (default), 8s, 12s\n\n" +
|
|
9
|
+
"Aspect ratio (--aspect-ratio):\n" +
|
|
10
|
+
" 16:9 (default), 9:16\n\n" +
|
|
11
|
+
"Examples:\n" +
|
|
12
|
+
" weshop sora-2 --image ./scene.png --prompt 'A spaceship launching into orbit'\n" +
|
|
13
|
+
" weshop sora-2 --image ./photo.png --prompt 'Person walks through a rainy city' --duration 8s\n" +
|
|
14
|
+
" weshop sora-2 --image ./landscape.png --prompt 'Time-lapse of clouds moving' --aspect-ratio 16:9 --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: 4s (default), 8s, or 12s")
|
|
18
|
+
.option("--aspect-ratio <ratio>", "Output aspect ratio: 16:9 (default) or 9:16")
|
|
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 ?? "4s",
|
|
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("sora-2", "v1.0", { image: opts.image, wait: opts.wait }, params, extraInput);
|
|
34
|
+
});
|
|
35
|
+
//# sourceMappingURL=sora-2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sora-2.js","sourceRoot":"","sources":["../../src/commands/sora-2.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;KAC1C,OAAO,CAAC,6FAA6F,CAAC;KACtG,WAAW,CACV,mFAAmF;IACnF,wCAAwC;IACxC,0BAA0B;IAC1B,6BAA6B;IAC7B,kCAAkC;IAClC,4BAA4B;IAC5B,aAAa;IACb,mFAAmF;IACnF,kGAAkG;IAClG,8GAA8G,CAC/G;KACA,cAAc,CAAC,oBAAoB,EAAE,sCAAsC,CAAC;KAC5E,cAAc,CAAC,iBAAiB,EAAE,kCAAkC,CAAC;KACrE,MAAM,CAAC,mBAAmB,EAAE,0CAA0C,CAAC;KACvE,MAAM,CAAC,wBAAwB,EAAE,6CAA6C,CAAC;KAC/E,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,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,29 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import { executeRun } from "../run-helper.js";
|
|
3
|
+
const DEFAULT_PROMPT = "Transform the person in the uploaded photo into a Sprunki-style original character (OC). Keep the same facial identity, hairstyle, and key proportions, while redesigning the character in a colorful, playful Sprunki cartoon aesthetic. Big expressive eyes, simplified geometric shapes, smooth outlines, vibrant pastel color palette, soft shading, clean vector-like rendering, cute and energetic mood, stylized costume details, character sheet illustration quality, centered composition, high detail, 4k, masterpiece.";
|
|
4
|
+
export const sprunkiOcMakerCmd = new Command("sprunki-oc-maker")
|
|
5
|
+
.summary("AI Sprunki OC maker — create a Sprunki-style original character from a person photo")
|
|
6
|
+
.description("Transform a person photo into a Sprunki-style original character (OC) with colorful\n" +
|
|
7
|
+
"cartoon aesthetics. Image is optional.\n\n" +
|
|
8
|
+
"Default prompt (used when --prompt is omitted):\n" +
|
|
9
|
+
" Sprunki-style OC with big expressive eyes, vibrant pastel colors, smooth outlines,\n" +
|
|
10
|
+
" preserving facial identity and key proportions.\n\n" +
|
|
11
|
+
"Examples:\n" +
|
|
12
|
+
" weshop sprunki-oc-maker --image ./person.png\n" +
|
|
13
|
+
" weshop sprunki-oc-maker --prompt 'Sprunki OC with purple hair and star accessories'\n" +
|
|
14
|
+
" weshop sprunki-oc-maker --image ./person.png --batch 2")
|
|
15
|
+
.option("--image <path|url>", "Reference person image — local file path or URL (optional)")
|
|
16
|
+
.option("--prompt <text>", "Custom Sprunki OC description")
|
|
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("sprunki-oc-maker", "v1.0", { image: opts.image, wait: opts.wait }, params, extraInput);
|
|
28
|
+
});
|
|
29
|
+
//# sourceMappingURL=sprunki-oc-maker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sprunki-oc-maker.js","sourceRoot":"","sources":["../../src/commands/sprunki-oc-maker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,cAAc,GAClB,ogBAAogB,CAAC;AAEvgB,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,OAAO,CAAC,kBAAkB,CAAC;KAC7D,OAAO,CAAC,qFAAqF,CAAC;KAC9F,WAAW,CACV,uFAAuF;IACvF,4CAA4C;IAC5C,mDAAmD;IACnD,wFAAwF;IACxF,uDAAuD;IACvD,aAAa;IACb,kDAAkD;IAClD,yFAAyF;IACzF,0DAA0D,CAC3D;KACA,MAAM,CAAC,oBAAoB,EAAE,4DAA4D,CAAC;KAC1F,MAAM,CAAC,iBAAiB,EAAE,+BAA+B,CAAC;KAC1D,MAAM,CAAC,iBAAiB,EAAE,iDAAiD,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;KACvG,MAAM,CAAC,oBAAoB,EAAE,mCAAmC,CAAC;KACjE,MAAM,CAAC,WAAW,EAAE,8EAA8E,CAAC;KACnG,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACrB,MAAM,MAAM,GAA4B,EAAE,eAAe,EAAE,IAAI,CAAC,MAAM,IAAI,cAAc,EAAE,CAAC;IAC3F,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI;QAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;IACvD,MAAM,UAAU,GAA4B,EAAE,CAAC;IAC/C,IAAI,IAAI,CAAC,QAAQ;QAAE,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IACvD,MAAM,UAAU,CAAC,kBAAkB,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AAC3G,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import { executeRun } from "../run-helper.js";
|
|
3
|
+
const DEFAULT_PROMPT = "A minimalist flat-art vector illustration of a stylized anime face, Japanense style drawing. The face must be a square close-up 1:1 ratio, no background. No gradients, solid colors only, 2D minimalist aesthetic, no background.";
|
|
4
|
+
export const squareFaceIconGeneratorCmd = new Command("square-face-icon-generator")
|
|
5
|
+
.summary("AI square face icon generator — create a minimalist anime-style square face avatar from a photo")
|
|
6
|
+
.description("Generate a minimalist flat-art anime-style square face icon from a reference photo.\n" +
|
|
7
|
+
"Image is optional — text-only generation is supported.\n\n" +
|
|
8
|
+
"The output is a 1:1 square icon with solid colors, no gradients, and a 2D minimalist aesthetic.\n" +
|
|
9
|
+
"Features include stylized eyes, nose, mouth, skin tone, hair, and accessories (glasses if present).\n\n" +
|
|
10
|
+
"Default prompt (used when --prompt is omitted):\n" +
|
|
11
|
+
" Minimalist flat-art anime face, 1:1 square, solid colors, no background.\n\n" +
|
|
12
|
+
"Examples:\n" +
|
|
13
|
+
" weshop square-face-icon-generator --image ./person.png\n" +
|
|
14
|
+
" weshop square-face-icon-generator --prompt 'Anime face icon, blue hair, happy expression'\n" +
|
|
15
|
+
" weshop square-face-icon-generator --image ./person.png --batch 4")
|
|
16
|
+
.option("--image <path|url>", "Reference portrait image — local file path or URL (optional)")
|
|
17
|
+
.option("--prompt <text>", "Custom face icon 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
|
+
const params = { textDescription: opts.prompt ?? DEFAULT_PROMPT };
|
|
23
|
+
if (opts.batch != null)
|
|
24
|
+
params.batchCount = opts.batch;
|
|
25
|
+
const extraInput = {};
|
|
26
|
+
if (opts.taskName)
|
|
27
|
+
extraInput.taskName = opts.taskName;
|
|
28
|
+
await executeRun("square-face-icon-generator", "v1.0", { image: opts.image, wait: opts.wait }, params, extraInput);
|
|
29
|
+
});
|
|
30
|
+
//# sourceMappingURL=square-face-icon-generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"square-face-icon-generator.js","sourceRoot":"","sources":["../../src/commands/square-face-icon-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,cAAc,GAClB,oOAAoO,CAAC;AAEvO,MAAM,CAAC,MAAM,0BAA0B,GAAG,IAAI,OAAO,CAAC,4BAA4B,CAAC;KAChF,OAAO,CAAC,iGAAiG,CAAC;KAC1G,WAAW,CACV,uFAAuF;IACvF,4DAA4D;IAC5D,mGAAmG;IACnG,yGAAyG;IACzG,mDAAmD;IACnD,gFAAgF;IAChF,aAAa;IACb,4DAA4D;IAC5D,+FAA+F;IAC/F,oEAAoE,CACrE;KACA,MAAM,CAAC,oBAAoB,EAAE,8DAA8D,CAAC;KAC5F,MAAM,CAAC,iBAAiB,EAAE,8BAA8B,CAAC;KACzD,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,4BAA4B,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AACrH,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import { executeRun } from "../run-helper.js";
|
|
3
|
+
const DEFAULT_PROMPT = "Generate a Stardew Valley Style Head Portrait image, 1:1 ratio, 45 angle toward left, try to replicate exactly as the game.";
|
|
4
|
+
export const stardewValleyPortraitMakerCmd = new Command("stardew-valley-portrait-maker")
|
|
5
|
+
.summary("AI Stardew Valley portrait maker — create a Stardew Valley game-style character portrait")
|
|
6
|
+
.description("Generate a Stardew Valley-style head portrait from a reference photo or text description.\n" +
|
|
7
|
+
"Image is optional — text-only generation is supported.\n\n" +
|
|
8
|
+
"Default prompt (used when --prompt is omitted):\n" +
|
|
9
|
+
` "${DEFAULT_PROMPT}"\n\n` +
|
|
10
|
+
"Examples:\n" +
|
|
11
|
+
" weshop stardew-valley-portrait-maker --image ./person.png\n" +
|
|
12
|
+
" weshop stardew-valley-portrait-maker --prompt 'Stardew Valley farmer with red hair and overalls'\n" +
|
|
13
|
+
" weshop stardew-valley-portrait-maker --image ./person.png --batch 2")
|
|
14
|
+
.option("--image <path|url>", "Reference portrait image — local file path or URL (optional)")
|
|
15
|
+
.option("--prompt <text>", "Custom character description (default: Stardew Valley style portrait)")
|
|
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("stardew-valley-portrait-maker", "v1.0", { image: opts.image, wait: opts.wait }, params, extraInput);
|
|
27
|
+
});
|
|
28
|
+
//# sourceMappingURL=stardew-valley-portrait-maker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stardew-valley-portrait-maker.js","sourceRoot":"","sources":["../../src/commands/stardew-valley-portrait-maker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,cAAc,GAClB,6HAA6H,CAAC;AAEhI,MAAM,CAAC,MAAM,6BAA6B,GAAG,IAAI,OAAO,CAAC,+BAA+B,CAAC;KACtF,OAAO,CAAC,0FAA0F,CAAC;KACnG,WAAW,CACV,6FAA6F;IAC7F,4DAA4D;IAC5D,mDAAmD;IACnD,MAAM,cAAc,OAAO;IAC3B,aAAa;IACb,+DAA+D;IAC/D,sGAAsG;IACtG,uEAAuE,CACxE;KACA,MAAM,CAAC,oBAAoB,EAAE,8DAA8D,CAAC;KAC5F,MAAM,CAAC,iBAAiB,EAAE,uEAAuE,CAAC;KAClG,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,+BAA+B,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AACxH,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 stringBikiniBeautyContestCmd = new Command("string-bikini-beauty-contest")
|
|
5
|
+
.summary("String bikini beauty contest — 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 string-bikini-beauty-contest --image ./person.png --prompt 'Bikini model on a beach'\n" +
|
|
14
|
+
" weshop string-bikini-beauty-contest --image ./person.png --generated-type image --batch 2\n" +
|
|
15
|
+
" weshop string-bikini-beauty-contest --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 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("string-bikini-beauty-contest", "v1.0", { image: opts.image, wait: opts.wait }, params, extraInput);
|
|
33
|
+
});
|
|
34
|
+
//# sourceMappingURL=string-bikini-beauty-contest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"string-bikini-beauty-contest.js","sourceRoot":"","sources":["../../src/commands/string-bikini-beauty-contest.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,4BAA4B,GAAG,IAAI,OAAO,CAAC,8BAA8B,CAAC;KACpF,OAAO,CAAC,4FAA4F,CAAC;KACrG,WAAW,CACV,iFAAiF;IACjF,sCAAsC;IACtC,8CAA8C;IAC9C,sCAAsC;IACtC,mDAAmD;IACnD,MAAM,cAAc,OAAO;IAC3B,aAAa;IACb,iGAAiG;IACjG,+FAA+F;IAC/F,6FAA6F,CAC9F;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,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,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,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 swimsuitTryOnHaulCmd = new Command("swimsuit-try-on-haul")
|
|
5
|
+
.summary("Swimsuit try-on haul — 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 swimsuit-try-on-haul --image ./person.png --prompt 'Bikini model on a beach'\n" +
|
|
14
|
+
" weshop swimsuit-try-on-haul --image ./person.png --generated-type image --batch 2\n" +
|
|
15
|
+
" weshop swimsuit-try-on-haul --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 swimsuit 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("swimsuit-try-on-haul", "v1.0", { image: opts.image, wait: opts.wait }, params, extraInput);
|
|
33
|
+
});
|
|
34
|
+
//# sourceMappingURL=swimsuit-try-on-haul.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"swimsuit-try-on-haul.js","sourceRoot":"","sources":["../../src/commands/swimsuit-try-on-haul.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,oBAAoB,GAAG,IAAI,OAAO,CAAC,sBAAsB,CAAC;KACpE,OAAO,CAAC,oFAAoF,CAAC;KAC7F,WAAW,CACV,iFAAiF;IACjF,sCAAsC;IACtC,8CAA8C;IAC9C,sCAAsC;IACtC,mDAAmD;IACnD,MAAM,cAAc,OAAO;IAC3B,aAAa;IACb,yFAAyF;IACzF,uFAAuF;IACvF,qFAAqF,CACtF;KACA,cAAc,CAAC,oBAAoB,EAAE,4DAA4D,CAAC;KAClG,MAAM,CAAC,iBAAiB,EAAE,qCAAqC,CAAC;KAChE,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;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,sBAAsB,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AAC/G,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import { executeRun } from "../run-helper.js";
|
|
3
|
+
export const videoResolutionEnhancerOnlineFreeCmd = new Command("video-resolution-enhancer-online-free")
|
|
4
|
+
.summary("Video resolution enhancer online free — upscale and enhance video resolution using AI")
|
|
5
|
+
.description("Upscale and enhance video 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\n\n" +
|
|
9
|
+
"Examples:\n" +
|
|
10
|
+
" weshop video-resolution-enhancer-online-free --video https://example.com/video.mp4\n" +
|
|
11
|
+
" weshop video-resolution-enhancer-online-free --video https://example.com/video.mp4 --video-size 4K\n" +
|
|
12
|
+
" weshop video-resolution-enhancer-online-free --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("video-resolution-enhancer-online-free", "v1.0", { videos: [opts.video], wait: opts.wait }, params, extraInput);
|
|
25
|
+
});
|
|
26
|
+
//# sourceMappingURL=video-resolution-enhancer-online-free.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"video-resolution-enhancer-online-free.js","sourceRoot":"","sources":["../../src/commands/video-resolution-enhancer-online-free.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,CAAC,MAAM,oCAAoC,GAAG,IAAI,OAAO,CAAC,uCAAuC,CAAC;KACrG,OAAO,CAAC,uFAAuF,CAAC;KAChG,WAAW,CACV,oDAAoD;IACpD,kFAAkF;IAClF,8DAA8D;IAC9D,sEAAsE;IACtE,aAAa;IACb,wFAAwF;IACxF,wGAAwG;IACxG,gGAAgG,CACjG;KACA,cAAc,CAAC,eAAe,EAAE,iBAAiB,CAAC;KAClD,MAAM,CAAC,qBAAqB,EAAE,yCAAyC,CAAC;KACxE,MAAM,CAAC,oBAAoB,EAAE,mCAAmC,CAAC;KACjE,MAAM,CAAC,WAAW,EAAE,8EAA8E,CAAC;KACnG,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACrB,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,IAAI,IAAI,CAAC,SAAS;QAAE,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;IAEtD,MAAM,UAAU,GAA4B,EAAE,CAAC;IAC/C,IAAI,IAAI,CAAC,QAAQ;QAAE,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAEvD,MAAM,UAAU,CAAC,uCAAuC,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AACnI,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import { executeRun } from "../run-helper.js";
|
|
3
|
+
export const videoUpscalerOnlineFreeCmd = new Command("video-upscaler-online-free")
|
|
4
|
+
.summary("Video upscaler online free — 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 video-upscaler-online-free --video https://example.com/video.mp4\n" +
|
|
11
|
+
" weshop video-upscaler-online-free --video https://example.com/video.mp4 --video-size 4K\n" +
|
|
12
|
+
" weshop video-upscaler-online-free --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("video-upscaler-online-free", "v1.0", { videos: [opts.video], wait: opts.wait }, params, extraInput);
|
|
25
|
+
});
|
|
26
|
+
//# sourceMappingURL=video-upscaler-online-free.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"video-upscaler-online-free.js","sourceRoot":"","sources":["../../src/commands/video-upscaler-online-free.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,CAAC,MAAM,0BAA0B,GAAG,IAAI,OAAO,CAAC,4BAA4B,CAAC;KAChF,OAAO,CAAC,yEAAyE,CAAC;KAClF,WAAW,CACV,iDAAiD;IACjD,kFAAkF;IAClF,8DAA8D;IAC9D,sEAAsE;IACtE,aAAa;IACb,6EAA6E;IAC7E,6FAA6F;IAC7F,qFAAqF,CACtF;KACA,cAAc,CAAC,eAAe,EAAE,iBAAiB,CAAC;KAClD,MAAM,CAAC,qBAAqB,EAAE,yCAAyC,CAAC;KACxE,MAAM,CAAC,oBAAoB,EAAE,mCAAmC,CAAC;KACjE,MAAM,CAAC,WAAW,EAAE,8EAA8E,CAAC;KACnG,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACrB,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,IAAI,IAAI,CAAC,SAAS;QAAE,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;IAEtD,MAAM,UAAU,GAA4B,EAAE,CAAC;IAC/C,IAAI,IAAI,CAAC,QAAQ;QAAE,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAEvD,MAAM,UAAU,CAAC,4BAA4B,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AACxH,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import { executeRun } from "../run-helper.js";
|
|
3
|
+
export const videoWatermarkRemoverCmd = new Command("video-watermark-remover")
|
|
4
|
+
.summary("AI video 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
|
+
"Video requirements:\n" +
|
|
9
|
+
" - Max resolution: 2048x2048\n" +
|
|
10
|
+
" - Duration: 1–120 seconds\n\n" +
|
|
11
|
+
"Examples:\n" +
|
|
12
|
+
" weshop video-watermark-remover --video https://example.com/video.mp4\n" +
|
|
13
|
+
" weshop video-watermark-remover --video https://example.com/video.mp4 --no-wait")
|
|
14
|
+
.requiredOption("--video <url>", "Input video URL")
|
|
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
|
+
watermarkSelectType: "autoDetect",
|
|
20
|
+
};
|
|
21
|
+
const extraInput = {};
|
|
22
|
+
if (opts.taskName)
|
|
23
|
+
extraInput.taskName = opts.taskName;
|
|
24
|
+
await executeRun("video-watermark-remover", "v1.0", { videos: [opts.video], wait: opts.wait }, params, extraInput);
|
|
25
|
+
});
|
|
26
|
+
//# sourceMappingURL=video-watermark-remover.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"video-watermark-remover.js","sourceRoot":"","sources":["../../src/commands/video-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,wBAAwB,GAAG,IAAI,OAAO,CAAC,yBAAyB,CAAC;KAC3E,OAAO,CAAC,6EAA6E,CAAC;KACtF,WAAW,CACV,yEAAyE;IACzE,kFAAkF;IAClF,8DAA8D;IAC9D,uBAAuB;IACvB,iCAAiC;IACjC,iCAAiC;IACjC,aAAa;IACb,0EAA0E;IAC1E,kFAAkF,CACnF;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;QACtC,mBAAmB,EAAE,YAAY;KAClC,CAAC;IAEF,MAAM,UAAU,GAA4B,EAAE,CAAC;IAC/C,IAAI,IAAI,CAAC,QAAQ;QAAE,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAEvD,MAAM,UAAU,CAAC,yBAAyB,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AACrH,CAAC,CAAC,CAAC"}
|
|
@@ -28,7 +28,7 @@ export const virtualtryonCmd = new Command("virtualtryon")
|
|
|
28
28
|
.option("--location-image <path|url>", "Background reference image — the generated scene will use this background")
|
|
29
29
|
.option("--aspect-ratio <ratio>", "Output aspect ratio (weshopPro/bananaPro only): 1:1, 2:3, 3:2, 3:4, 4:3, 9:16, 16:9, 21:9")
|
|
30
30
|
.option("--image-size <size>", "Output resolution (bananaPro only): 1K, 2K, or 4K")
|
|
31
|
-
.option("--batch <count>", "Number of images to generate, 1-16 (default:
|
|
31
|
+
.option("--batch <count>", "Number of images to generate, 1-16 (default: 1)", (v) => parseInt(v, 10), 1)
|
|
32
32
|
.option("--task-name <name>", "Human-readable label for this run")
|
|
33
33
|
.option("--no-wait", "Return immediately after submission; use 'weshop status <id>' to check later")
|
|
34
34
|
.action(async (opts) => {
|
|
@@ -42,7 +42,7 @@ export const virtualtryonCmd = new Command("virtualtryon")
|
|
|
42
42
|
params.aspectRatio = opts.aspectRatio;
|
|
43
43
|
if (opts.imageSize)
|
|
44
44
|
params.imageSize = opts.imageSize;
|
|
45
|
-
if (opts.batch)
|
|
45
|
+
if (opts.batch != null)
|
|
46
46
|
params.batchCount = opts.batch;
|
|
47
47
|
const extraInput = {};
|
|
48
48
|
if (opts.modelImage)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"virtualtryon.js","sourceRoot":"","sources":["../../src/commands/virtualtryon.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,OAAO,CAAC,cAAc,CAAC;KACvD,OAAO,CAAC,iGAAiG,CAAC;KAC1G,WAAW,CACV,sGAAsG;IACtG,2DAA2D;IAC3D,uCAAuC;IACvC,mCAAmC;IACnC,0DAA0D;IAC1D,oFAAoF;IACpF,gCAAgC;IAChC,wDAAwD;IACxD,+DAA+D;IAC/D,2CAA2C;IAC3C,4CAA4C;IAC5C,oDAAoD;IACpD,8DAA8D;IAC9D,aAAa;IACb,2GAA2G;IAC3G,+IAA+I;IAC/I,iIAAiI,CAClI;KACA,cAAc,CAAC,oBAAoB,EAAE,+EAA+E,CAAC;KACrH,cAAc,CAAC,qBAAqB,EAAE,yDAAyD,CAAC;KAChG,cAAc,CAAC,sBAAsB,EAAE,uEAAuE,CAAC;KAC/G,MAAM,CAAC,iBAAiB,EAAE,+GAA+G,CAAC;KAC1I,MAAM,CAAC,0BAA0B,EAAE,uEAAuE,CAAC;KAC3G,MAAM,CAAC,6BAA6B,EAAE,2EAA2E,CAAC;KAClH,MAAM,CAAC,wBAAwB,EAAE,2FAA2F,CAAC;KAC7H,MAAM,CAAC,qBAAqB,EAAE,mDAAmD,CAAC;KAClF,MAAM,CAAC,iBAAiB,EAAE,iDAAiD,EAAE,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"virtualtryon.js","sourceRoot":"","sources":["../../src/commands/virtualtryon.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,OAAO,CAAC,cAAc,CAAC;KACvD,OAAO,CAAC,iGAAiG,CAAC;KAC1G,WAAW,CACV,sGAAsG;IACtG,2DAA2D;IAC3D,uCAAuC;IACvC,mCAAmC;IACnC,0DAA0D;IAC1D,oFAAoF;IACpF,gCAAgC;IAChC,wDAAwD;IACxD,+DAA+D;IAC/D,2CAA2C;IAC3C,4CAA4C;IAC5C,oDAAoD;IACpD,8DAA8D;IAC9D,aAAa;IACb,2GAA2G;IAC3G,+IAA+I;IAC/I,iIAAiI,CAClI;KACA,cAAc,CAAC,oBAAoB,EAAE,+EAA+E,CAAC;KACrH,cAAc,CAAC,qBAAqB,EAAE,yDAAyD,CAAC;KAChG,cAAc,CAAC,sBAAsB,EAAE,uEAAuE,CAAC;KAC/G,MAAM,CAAC,iBAAiB,EAAE,+GAA+G,CAAC;KAC1I,MAAM,CAAC,0BAA0B,EAAE,uEAAuE,CAAC;KAC3G,MAAM,CAAC,6BAA6B,EAAE,2EAA2E,CAAC;KAClH,MAAM,CAAC,wBAAwB,EAAE,2FAA2F,CAAC;KAC7H,MAAM,CAAC,qBAAqB,EAAE,mDAAmD,CAAC;KAClF,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,UAAU;QAChC,eAAe,EAAE,IAAI,CAAC,UAAU;KACjC,CAAC;IACF,IAAI,IAAI,CAAC,MAAM;QAAE,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC;IACtD,IAAI,IAAI,CAAC,WAAW;QAAE,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;IAC5D,IAAI,IAAI,CAAC,SAAS;QAAE,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;IACtD,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,UAAU;QAAE,UAAU,CAAC,iBAAiB,GAAG,CAAC,MAAM,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC;IAC9F,IAAI,IAAI,CAAC,aAAa;QAAE,UAAU,CAAC,aAAa,GAAG,CAAC,MAAM,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC;IAChG,IAAI,IAAI,CAAC,QAAQ;QAAE,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAEvD,MAAM,UAAU,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AACrE,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import { executeRun } from "../run-helper.js";
|
|
3
|
+
export const wanAiCmd = new Command("wan-ai")
|
|
4
|
+
.summary("Wan AI video generator — create AI videos from images and text using Wan AI")
|
|
5
|
+
.description("Generate AI videos from images and text using Wan AI.\n" +
|
|
6
|
+
"Results come back in video[N].url.\n\n" +
|
|
7
|
+
"Duration (--duration):\n" +
|
|
8
|
+
" 3s, 4s, 5s (default), 6s, 7s, 8s\n\n" +
|
|
9
|
+
"Examples:\n" +
|
|
10
|
+
" weshop wan-ai --image ./scene.png --prompt 'Ocean waves crashing on rocks'\n" +
|
|
11
|
+
" weshop wan-ai --image ./photo.png --prompt 'Person dancing in slow motion' --duration 8s\n" +
|
|
12
|
+
" weshop wan-ai --image ./landscape.png --prompt 'Sunrise over mountains' --no-wait")
|
|
13
|
+
.requiredOption("--image <path|url>", "Input image — local file path or URL")
|
|
14
|
+
.requiredOption("--prompt <text>", "Describe the desired video scene")
|
|
15
|
+
.option("--duration <time>", "Video duration: 3s, 4s, 5s (default), 6s, 7s, or 8s")
|
|
16
|
+
.option("--batch <count>", "Number of videos 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 = {
|
|
21
|
+
textDescription: opts.prompt,
|
|
22
|
+
duration: opts.duration ?? "5s",
|
|
23
|
+
};
|
|
24
|
+
if (opts.batch != null)
|
|
25
|
+
params.batchCount = opts.batch;
|
|
26
|
+
const extraInput = {};
|
|
27
|
+
if (opts.taskName)
|
|
28
|
+
extraInput.taskName = opts.taskName;
|
|
29
|
+
await executeRun("wan-ai", "v1.0", { image: opts.image, wait: opts.wait }, params, extraInput);
|
|
30
|
+
});
|
|
31
|
+
//# sourceMappingURL=wan-ai.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wan-ai.js","sourceRoot":"","sources":["../../src/commands/wan-ai.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;KAC1C,OAAO,CAAC,6EAA6E,CAAC;KACtF,WAAW,CACV,yDAAyD;IACzD,wCAAwC;IACxC,0BAA0B;IAC1B,wCAAwC;IACxC,aAAa;IACb,gFAAgF;IAChF,8FAA8F;IAC9F,qFAAqF,CACtF;KACA,cAAc,CAAC,oBAAoB,EAAE,sCAAsC,CAAC;KAC5E,cAAc,CAAC,iBAAiB,EAAE,kCAAkC,CAAC;KACrE,MAAM,CAAC,mBAAmB,EAAE,qDAAqD,CAAC;KAClF,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;KAChC,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,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,28 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import { executeRun } from "../run-helper.js";
|
|
3
|
+
const DEFAULT_PROMPT = "wild style graffiti, spray paint texture, artistic chaos, plain background.";
|
|
4
|
+
export const wildGraffitiCmd = new Command("wild-graffiti")
|
|
5
|
+
.summary("AI wild graffiti generator — create wild-style spray paint graffiti art from text or image")
|
|
6
|
+
.description("Generate wild-style graffiti art with spray paint texture and artistic chaos.\n" +
|
|
7
|
+
"Image is optional — text-only generation is supported.\n\n" +
|
|
8
|
+
"Default prompt (used when --prompt is omitted):\n" +
|
|
9
|
+
` "${DEFAULT_PROMPT}"\n\n` +
|
|
10
|
+
"Examples:\n" +
|
|
11
|
+
" weshop wild-graffiti --prompt 'Wild style graffiti spelling KIRO, neon colors'\n" +
|
|
12
|
+
" weshop wild-graffiti --image ./sketch.png --prompt 'Turn this into wild style graffiti'\n" +
|
|
13
|
+
" weshop wild-graffiti --prompt 'Throw-up graffiti bubble letters' --batch 4")
|
|
14
|
+
.option("--image <path|url>", "Reference image — local file path or URL (optional)")
|
|
15
|
+
.option("--prompt <text>", "Describe the desired graffiti style or text")
|
|
16
|
+
.option("--batch <count>", "Number of images to generate, 1-16 (default: 1)", (v) => parseInt(v, 10), 1)
|
|
17
|
+
.option("--task-name <name>", "Human-readable label for this run")
|
|
18
|
+
.option("--no-wait", "Return immediately after submission; use 'weshop status <id>' to check later")
|
|
19
|
+
.action(async (opts) => {
|
|
20
|
+
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("wild-graffiti-generator", "v1.0", { image: opts.image, wait: opts.wait }, params, extraInput);
|
|
27
|
+
});
|
|
28
|
+
//# sourceMappingURL=wild-graffiti.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wild-graffiti.js","sourceRoot":"","sources":["../../src/commands/wild-graffiti.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,cAAc,GAClB,6EAA6E,CAAC;AAEhF,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,OAAO,CAAC,eAAe,CAAC;KACxD,OAAO,CAAC,4FAA4F,CAAC;KACrG,WAAW,CACV,iFAAiF;IACjF,4DAA4D;IAC5D,mDAAmD;IACnD,MAAM,cAAc,OAAO;IAC3B,aAAa;IACb,oFAAoF;IACpF,6FAA6F;IAC7F,8EAA8E,CAC/E;KACA,MAAM,CAAC,oBAAoB,EAAE,qDAAqD,CAAC;KACnF,MAAM,CAAC,iBAAiB,EAAE,6CAA6C,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,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,yBAAyB,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AAClH,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import { executeRun } from "../run-helper.js";
|
|
3
|
+
export const zImageCmd = new Command("z-image")
|
|
4
|
+
.summary("AI image generation — create high-quality images from text with Z-Image by Alibaba")
|
|
5
|
+
.description("AI image generation — create high-quality images from text using Z-Image by Alibaba.\n\n" +
|
|
6
|
+
"Text-only generation — no image input supported.\n\n" +
|
|
7
|
+
"Aspect ratio (--aspect-ratio):\n" +
|
|
8
|
+
" 1:1, 2:3, 3:2, 4:3, 3:4, 16:9, 9:16, 21:9 (default: 1:1)\n\n" +
|
|
9
|
+
"Examples:\n" +
|
|
10
|
+
" weshop z-image --prompt 'A futuristic cityscape at sunset'\n" +
|
|
11
|
+
" weshop z-image --prompt 'Product photo of sneakers on white background' --aspect-ratio 3:4\n" +
|
|
12
|
+
" weshop z-image --prompt 'Asian model in streetwear' --aspect-ratio 9:16 --no-wait")
|
|
13
|
+
.requiredOption("--prompt <text>", "Describe the desired image")
|
|
14
|
+
.option("--aspect-ratio <ratio>", "Output aspect ratio (default: 1:1): 1:1, 2:3, 3:2, 4:3, 3:4, 16:9, 9:16, 21:9")
|
|
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 = {
|
|
20
|
+
textDescription: opts.prompt,
|
|
21
|
+
aspectRatio: opts.aspectRatio ?? "1:1",
|
|
22
|
+
};
|
|
23
|
+
if (opts.batch != null)
|
|
24
|
+
params.batchCount = opts.batch;
|
|
25
|
+
const extraInput = {};
|
|
26
|
+
if (opts.taskName)
|
|
27
|
+
extraInput.taskName = opts.taskName;
|
|
28
|
+
await executeRun("z-image", "v1.0", { wait: opts.wait }, params, extraInput);
|
|
29
|
+
});
|
|
30
|
+
//# sourceMappingURL=z-image.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"z-image.js","sourceRoot":"","sources":["../../src/commands/z-image.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC;KAC5C,OAAO,CAAC,oFAAoF,CAAC;KAC7F,WAAW,CACV,0FAA0F;IAC1F,sDAAsD;IACtD,kCAAkC;IAClC,iEAAiE;IACjE,aAAa;IACb,gEAAgE;IAChE,gGAAgG;IAChG,qFAAqF,CACtF;KACA,cAAc,CAAC,iBAAiB,EAAE,4BAA4B,CAAC;KAC/D,MAAM,CAAC,wBAAwB,EAAE,+EAA+E,CAAC;KACjH,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,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;IAEvD,MAAM,UAAU,GAA4B,EAAE,CAAC;IAC/C,IAAI,IAAI,CAAC,QAAQ;QAAE,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAEvD,MAAM,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AAC/E,CAAC,CAAC,CAAC"}
|