weshop-cli 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +44 -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 +46 -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 +49 -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 +52 -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 +43 -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 +54 -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 +43 -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 +48 -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 +49 -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 +56 -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 +54 -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 +57 -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 +45 -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 +63 -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 +44 -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 +49 -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 +52 -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 +52 -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 +56 -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 +54 -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 +48 -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 +48 -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 +52 -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 +60 -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 +57 -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 +60 -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 +52 -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 +81 -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 +73 -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 +73 -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 +49 -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 +44 -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 +52 -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 +52 -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 +49 -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 +44 -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 +48 -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 +37 -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 +53 -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 +49 -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 +61 -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 +45 -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 +45 -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 +44 -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 +59 -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 +47 -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 +45 -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 +52 -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 +44 -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 +44 -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 +48 -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 +52 -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 +54 -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 +52 -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 +44 -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 +52 -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 +52 -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 +50 -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 +44 -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 +86 -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 +53 -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 +61 -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 +65 -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 +42 -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 +48 -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 +42 -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 +52 -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 +54 -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 +37 -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 +53 -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 +48 -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 +53 -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 +46 -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 +48 -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 +52 -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 +52 -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 +57 -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 +44 -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 +42 -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 +75 -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 +37 -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 +54 -0
- package/dist/commands/midjourney.js.map +1 -0
- package/dist/commands/mugshot-creator.d.ts +2 -0
- package/dist/commands/mugshot-creator.js +45 -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 +50 -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 +54 -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 +52 -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 +44 -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 +54 -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 +45 -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 +64 -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 +49 -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 +48 -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 +37 -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 +37 -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 +56 -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 +45 -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 +65 -0
- package/dist/commands/seedance.js.map +1 -0
- package/dist/commands/seedream.d.ts +2 -0
- package/dist/commands/seedream.js +85 -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 +52 -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 +43 -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 +48 -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 +49 -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 +53 -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 +50 -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 +51 -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 +49 -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 +52 -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 +52 -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 +42 -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 +42 -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 +45 -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 +49 -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 +49 -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 +51 -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/package.json +1 -1
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import { resolveImage, submitRun, waitForCompletion } from "../client.js";
|
|
3
|
+
import { printSubmitted, printPollResult, printError } from "../printer.js";
|
|
4
|
+
export const midjourneyCmd = new Command("midjourney")
|
|
5
|
+
.summary("Midjourney image generator — create high-quality images using Midjourney v6.1, v7, or Niji 6")
|
|
6
|
+
.description("Generate images using Midjourney models. Image is optional.\n\n" +
|
|
7
|
+
"Model (--model):\n" +
|
|
8
|
+
" Midjourney_6_1 Midjourney v6.1 (default)\n" +
|
|
9
|
+
" Midjourney_7 Midjourney v7\n" +
|
|
10
|
+
" Midjourney_Niji_6 Niji 6 — anime style\n\n" +
|
|
11
|
+
"Aspect ratio (--aspect-ratio):\n" +
|
|
12
|
+
" 1:1, 4:3, 3:4, 16:9, 9:16 (default: 1:1)\n\n" +
|
|
13
|
+
"Examples:\n" +
|
|
14
|
+
" weshop midjourney --prompt 'A futuristic city at sunset, cinematic lighting'\n" +
|
|
15
|
+
" weshop midjourney --image ./reference.png --prompt 'In the style of this image, a mountain landscape'\n" +
|
|
16
|
+
" weshop midjourney --prompt 'Anime girl in a forest' --model Midjourney_Niji_6 --aspect-ratio 9:16")
|
|
17
|
+
.option("--image <path|url>", "Reference image — local file path or URL (optional)")
|
|
18
|
+
.requiredOption("--prompt <text>", "Describe the desired image")
|
|
19
|
+
.option("--model <name>", "Model: Midjourney_6_1 (default), Midjourney_7, or Midjourney_Niji_6")
|
|
20
|
+
.option("--aspect-ratio <ratio>", "Output aspect ratio: 1:1, 4:3, 3:4, 16:9, 9:16 (default: 1:1)")
|
|
21
|
+
.option("--task-name <name>", "Human-readable label for this run")
|
|
22
|
+
.option("--no-wait", "Return immediately after submission; use 'weshop status <id>' to check later")
|
|
23
|
+
.action(async (opts) => {
|
|
24
|
+
try {
|
|
25
|
+
const params = {
|
|
26
|
+
textDescription: opts.prompt,
|
|
27
|
+
modelName: opts.model ?? "Midjourney_6_1",
|
|
28
|
+
aspectRatio: opts.aspectRatio ?? "1:1",
|
|
29
|
+
};
|
|
30
|
+
const input = {};
|
|
31
|
+
if (opts.taskName)
|
|
32
|
+
input.taskName = opts.taskName;
|
|
33
|
+
if (opts.image) {
|
|
34
|
+
const { url: imageUrl } = await resolveImage(opts.image);
|
|
35
|
+
params.images = [imageUrl];
|
|
36
|
+
input.originalImage = imageUrl;
|
|
37
|
+
}
|
|
38
|
+
const body = { agent: { name: "midjourney", version: "v1.0" }, input, params };
|
|
39
|
+
const { executionId } = await submitRun(body);
|
|
40
|
+
printSubmitted(executionId);
|
|
41
|
+
if (opts.wait !== false) {
|
|
42
|
+
printPollResult(await waitForCompletion(executionId));
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
console.log("[info]");
|
|
46
|
+
console.log(` message: Use 'weshop status ${executionId}' to check progress`);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
catch (err) {
|
|
50
|
+
printError(err);
|
|
51
|
+
process.exit(1);
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
//# sourceMappingURL=midjourney.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"midjourney.js","sourceRoot":"","sources":["../../src/commands/midjourney.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,iBAAiB,EAAmB,MAAM,cAAc,CAAC;AAC3F,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE5E,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC,YAAY,CAAC;KACnD,OAAO,CAAC,8FAA8F,CAAC;KACvG,WAAW,CACV,iEAAiE;IACjE,oBAAoB;IACpB,gDAAgD;IAChD,oCAAoC;IACpC,+CAA+C;IAC/C,kCAAkC;IAClC,iDAAiD;IACjD,aAAa;IACb,kFAAkF;IAClF,2GAA2G;IAC3G,qGAAqG,CACtG;KACA,MAAM,CAAC,oBAAoB,EAAE,qDAAqD,CAAC;KACnF,cAAc,CAAC,iBAAiB,EAAE,4BAA4B,CAAC;KAC/D,MAAM,CAAC,gBAAgB,EAAE,qEAAqE,CAAC;KAC/F,MAAM,CAAC,wBAAwB,EAAE,+DAA+D,CAAC;KACjG,MAAM,CAAC,oBAAoB,EAAE,mCAAmC,CAAC;KACjE,MAAM,CAAC,WAAW,EAAE,8EAA8E,CAAC;KACnG,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACrB,IAAI,CAAC;QACH,MAAM,MAAM,GAA4B;YACtC,eAAe,EAAE,IAAI,CAAC,MAAM;YAC5B,SAAS,EAAE,IAAI,CAAC,KAAK,IAAI,gBAAgB;YACzC,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,KAAK;SACvC,CAAC;QACF,MAAM,KAAK,GAA4B,EAAE,CAAC;QAC1C,IAAI,IAAI,CAAC,QAAQ;YAAE,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAClD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzD,MAAM,CAAC,MAAM,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC3B,KAAK,CAAC,aAAa,GAAG,QAAQ,CAAC;QACjC,CAAC;QACD,MAAM,IAAI,GAAe,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAC3F,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC;QAC9C,cAAc,CAAC,WAAW,CAAC,CAAC;QAC5B,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YAAC,eAAe,CAAC,MAAM,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC;QAAC,CAAC;aAC9E,CAAC;YAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAAC,OAAO,CAAC,GAAG,CAAC,iCAAiC,WAAW,qBAAqB,CAAC,CAAC;QAAC,CAAC;IACjH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC;AACrD,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import { resolveImage, submitRun, waitForCompletion } from "../client.js";
|
|
3
|
+
import { printSubmitted, printPollResult, printError } from "../printer.js";
|
|
4
|
+
const DEFAULT_PROMPT = "Generate a mugshot of this person, height measurement background, keep face and appearance detail.";
|
|
5
|
+
export const mugshotCreatorCmd = new Command("mugshot-creator")
|
|
6
|
+
.summary("AI mugshot creator — generate a police-style mugshot photo from a portrait")
|
|
7
|
+
.description("Transform a portrait photo into a police-style mugshot with height measurement\n" +
|
|
8
|
+
"background while preserving face and appearance details.\n\n" +
|
|
9
|
+
"Default prompt (used when --prompt is omitted):\n" +
|
|
10
|
+
` "${DEFAULT_PROMPT}"\n\n` +
|
|
11
|
+
"Examples:\n" +
|
|
12
|
+
" weshop mugshot-creator --image ./person.png\n" +
|
|
13
|
+
" weshop mugshot-creator --image ./person.png --prompt 'Classic police mugshot, front and side view'\n" +
|
|
14
|
+
" weshop mugshot-creator --image ./person.png --batch 2")
|
|
15
|
+
.requiredOption("--image <path|url>", "Input portrait image — local file path or URL")
|
|
16
|
+
.option("--prompt <text>", "Custom mugshot instruction")
|
|
17
|
+
.option("--batch <count>", "Number of images to generate, 1-16 (default: 1)", (v) => parseInt(v, 10), 1)
|
|
18
|
+
.option("--task-name <name>", "Human-readable label for this run")
|
|
19
|
+
.option("--no-wait", "Return immediately after submission; use 'weshop status <id>' to check later")
|
|
20
|
+
.action(async (opts) => {
|
|
21
|
+
try {
|
|
22
|
+
const { url: imageUrl } = await resolveImage(opts.image);
|
|
23
|
+
const params = { textDescription: opts.prompt ?? DEFAULT_PROMPT, images: [imageUrl] };
|
|
24
|
+
if (opts.batch != null)
|
|
25
|
+
params.batchCount = opts.batch;
|
|
26
|
+
const input = { originalImage: imageUrl };
|
|
27
|
+
if (opts.taskName)
|
|
28
|
+
input.taskName = opts.taskName;
|
|
29
|
+
const body = { agent: { name: "mugshot-creator", version: "v1.0" }, input, params };
|
|
30
|
+
const { executionId } = await submitRun(body);
|
|
31
|
+
printSubmitted(executionId);
|
|
32
|
+
if (opts.wait !== false) {
|
|
33
|
+
printPollResult(await waitForCompletion(executionId));
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
console.log("[info]");
|
|
37
|
+
console.log(` message: Use 'weshop status ${executionId}' to check progress`);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
catch (err) {
|
|
41
|
+
printError(err);
|
|
42
|
+
process.exit(1);
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
//# sourceMappingURL=mugshot-creator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mugshot-creator.js","sourceRoot":"","sources":["../../src/commands/mugshot-creator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,iBAAiB,EAAmB,MAAM,cAAc,CAAC;AAC3F,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE5E,MAAM,cAAc,GAClB,oGAAoG,CAAC;AAEvG,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,OAAO,CAAC,iBAAiB,CAAC;KAC5D,OAAO,CAAC,4EAA4E,CAAC;KACrF,WAAW,CACV,kFAAkF;IAClF,8DAA8D;IAC9D,mDAAmD;IACnD,MAAM,cAAc,OAAO;IAC3B,aAAa;IACb,iDAAiD;IACjD,wGAAwG;IACxG,yDAAyD,CAC1D;KACA,cAAc,CAAC,oBAAoB,EAAE,+CAA+C,CAAC;KACrF,MAAM,CAAC,iBAAiB,EAAE,4BAA4B,CAAC;KACvD,MAAM,CAAC,iBAAiB,EAAE,iDAAiD,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;KACvG,MAAM,CAAC,oBAAoB,EAAE,mCAAmC,CAAC;KACjE,MAAM,CAAC,WAAW,EAAE,8EAA8E,CAAC;KACnG,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACrB,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzD,MAAM,MAAM,GAA4B,EAAE,eAAe,EAAE,IAAI,CAAC,MAAM,IAAI,cAAc,EAAE,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/G,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI;YAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;QACvD,MAAM,KAAK,GAA4B,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC;QACnE,IAAI,IAAI,CAAC,QAAQ;YAAE,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAClD,MAAM,IAAI,GAAe,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAChG,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC;QAC9C,cAAc,CAAC,WAAW,CAAC,CAAC;QAC5B,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YAAC,eAAe,CAAC,MAAM,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC;QAAC,CAAC;aAC9E,CAAC;YAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAAC,OAAO,CAAC,GAAG,CAAC,iCAAiC,WAAW,qBAAqB,CAAC,CAAC;QAAC,CAAC;IACjH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC;AACrD,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import { resolveImage, submitRun, waitForCompletion } from "../client.js";
|
|
3
|
+
import { printSubmitted, printPollResult, printError } from "../printer.js";
|
|
4
|
+
const DEFAULT_PROMPT = "Convert the person from the reference image into a Murder Drones inspired OC. Strictly maintain facial identity, head shape, and signature traits, while transforming the body into an elegant yet dangerous robotic drone form. Smooth black metal armor, luminous LED accents, claw-like fingers, floating mechanical components, glowing visor or eyes, dark cyberpunk environment, cinematic lighting, high detail sci-fi illustration, clean composition, 4k, character concept art, masterpiece.";
|
|
5
|
+
export const murderDronesOcCmd = new Command("murder-drones-oc")
|
|
6
|
+
.summary("AI Murder Drones OC maker — transform a person into a Murder Drones-inspired robotic drone character")
|
|
7
|
+
.description("Transform a person photo into a Murder Drones-inspired original character (OC)\n" +
|
|
8
|
+
"with robotic drone aesthetics. Image is optional.\n\n" +
|
|
9
|
+
"Default prompt (used when --prompt is omitted):\n" +
|
|
10
|
+
" Robotic drone OC with black metal armor, LED accents, claw fingers, glowing visor,\n" +
|
|
11
|
+
" dark cyberpunk environment, preserving facial identity.\n\n" +
|
|
12
|
+
"Examples:\n" +
|
|
13
|
+
" weshop murder-drones-oc --image ./person.png\n" +
|
|
14
|
+
" weshop murder-drones-oc --prompt 'Murder Drones OC with white armor and blue LED eyes'\n" +
|
|
15
|
+
" weshop murder-drones-oc --image ./person.png --batch 2")
|
|
16
|
+
.option("--image <path|url>", "Reference person image — local file path or URL (optional)")
|
|
17
|
+
.option("--prompt <text>", "Custom Murder Drones OC description")
|
|
18
|
+
.option("--batch <count>", "Number of images to generate, 1-16 (default: 1)", (v) => parseInt(v, 10), 1)
|
|
19
|
+
.option("--task-name <name>", "Human-readable label for this run")
|
|
20
|
+
.option("--no-wait", "Return immediately after submission; use 'weshop status <id>' to check later")
|
|
21
|
+
.action(async (opts) => {
|
|
22
|
+
try {
|
|
23
|
+
const params = { textDescription: opts.prompt ?? DEFAULT_PROMPT };
|
|
24
|
+
if (opts.batch != null)
|
|
25
|
+
params.batchCount = opts.batch;
|
|
26
|
+
const input = {};
|
|
27
|
+
if (opts.taskName)
|
|
28
|
+
input.taskName = opts.taskName;
|
|
29
|
+
if (opts.image) {
|
|
30
|
+
const { url: imageUrl } = await resolveImage(opts.image);
|
|
31
|
+
params.images = [imageUrl];
|
|
32
|
+
input.originalImage = imageUrl;
|
|
33
|
+
}
|
|
34
|
+
const body = { agent: { name: "murder-drones-oc", version: "v1.0" }, input, params };
|
|
35
|
+
const { executionId } = await submitRun(body);
|
|
36
|
+
printSubmitted(executionId);
|
|
37
|
+
if (opts.wait !== false) {
|
|
38
|
+
printPollResult(await waitForCompletion(executionId));
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
console.log("[info]");
|
|
42
|
+
console.log(` message: Use 'weshop status ${executionId}' to check progress`);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
catch (err) {
|
|
46
|
+
printError(err);
|
|
47
|
+
process.exit(1);
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
//# sourceMappingURL=murder-drones-oc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"murder-drones-oc.js","sourceRoot":"","sources":["../../src/commands/murder-drones-oc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,iBAAiB,EAAmB,MAAM,cAAc,CAAC;AAC3F,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE5E,MAAM,cAAc,GAClB,weAAwe,CAAC;AAE3e,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,OAAO,CAAC,kBAAkB,CAAC;KAC7D,OAAO,CAAC,sGAAsG,CAAC;KAC/G,WAAW,CACV,kFAAkF;IAClF,uDAAuD;IACvD,mDAAmD;IACnD,wFAAwF;IACxF,+DAA+D;IAC/D,aAAa;IACb,kDAAkD;IAClD,4FAA4F;IAC5F,0DAA0D,CAC3D;KACA,MAAM,CAAC,oBAAoB,EAAE,4DAA4D,CAAC;KAC1F,MAAM,CAAC,iBAAiB,EAAE,qCAAqC,CAAC;KAChE,MAAM,CAAC,iBAAiB,EAAE,iDAAiD,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;KACvG,MAAM,CAAC,oBAAoB,EAAE,mCAAmC,CAAC;KACjE,MAAM,CAAC,WAAW,EAAE,8EAA8E,CAAC;KACnG,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACrB,IAAI,CAAC;QACH,MAAM,MAAM,GAA4B,EAAE,eAAe,EAAE,IAAI,CAAC,MAAM,IAAI,cAAc,EAAE,CAAC;QAC3F,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI;YAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;QACvD,MAAM,KAAK,GAA4B,EAAE,CAAC;QAC1C,IAAI,IAAI,CAAC,QAAQ;YAAE,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAClD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzD,MAAM,CAAC,MAAM,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC3B,KAAK,CAAC,aAAa,GAAG,QAAQ,CAAC;QACjC,CAAC;QACD,MAAM,IAAI,GAAe,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QACjG,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC;QAC9C,cAAc,CAAC,WAAW,CAAC,CAAC;QAC5B,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YAAC,eAAe,CAAC,MAAM,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC;QAAC,CAAC;aAC9E,CAAC;YAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAAC,OAAO,CAAC,GAAG,CAAC,iCAAiC,WAAW,qBAAqB,CAAC,CAAC;QAAC,CAAC;IACjH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC;AACrD,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import { resolveImage, submitRun, waitForCompletion } from "../client.js";
|
|
3
|
+
import { printSubmitted, printPollResult, printError } from "../printer.js";
|
|
4
|
+
const DEFAULT_PROMPT = "Design an complete new and recommended outfit based on the uploaded photo. Keep original face and body proportion, keep original pose and background; Keep original image composition; select the proper texture used for outfit. No annotations required.\n1. Analyze the core characteristics of the model, dressing style and potential personality of the subject.\n2. Extract the disassemblable first-level elements (coat, shoes, big expression)\n3. Generate a composite diagram containing all these elements, ensuring accurate perspective, unified lighting and shadow, keep everything else same.";
|
|
5
|
+
export const outfitGeneratorCmd = new Command("outfit-generator")
|
|
6
|
+
.summary("AI outfit generator — redesign a complete outfit on a person photo based on style prompt")
|
|
7
|
+
.description("Analyze a person's photo and generate a new recommended outfit while preserving\n" +
|
|
8
|
+
"the original face, body proportions, pose, and background.\n\n" +
|
|
9
|
+
"Default prompt (used when --prompt is omitted):\n" +
|
|
10
|
+
" Analyzes the model's style and personality, then generates a complete new outfit\n" +
|
|
11
|
+
" with accurate perspective and unified lighting.\n\n" +
|
|
12
|
+
"Examples:\n" +
|
|
13
|
+
" weshop outfit-generator --image ./person.png\n" +
|
|
14
|
+
" weshop outfit-generator --image ./person.png --prompt 'Streetwear style, oversized hoodie and cargo pants'\n" +
|
|
15
|
+
" weshop outfit-generator --image ./person.png --batch 4")
|
|
16
|
+
.requiredOption("--image <path|url>", "Input person photo — local file path or URL")
|
|
17
|
+
.option("--prompt <text>", "Describe the desired outfit style (default: AI-recommended outfit)")
|
|
18
|
+
.option("--batch <count>", "Number of images to generate, 1-16 (default: 1)", (v) => parseInt(v, 10), 1)
|
|
19
|
+
.option("--task-name <name>", "Human-readable label for this run")
|
|
20
|
+
.option("--no-wait", "Return immediately after submission; use 'weshop status <id>' to check later")
|
|
21
|
+
.action(async (opts) => {
|
|
22
|
+
try {
|
|
23
|
+
const { url: imageUrl } = await resolveImage(opts.image);
|
|
24
|
+
const params = {
|
|
25
|
+
textDescription: opts.prompt ?? DEFAULT_PROMPT,
|
|
26
|
+
images: [imageUrl],
|
|
27
|
+
};
|
|
28
|
+
if (opts.batch != null)
|
|
29
|
+
params.batchCount = opts.batch;
|
|
30
|
+
const input = { originalImage: imageUrl };
|
|
31
|
+
if (opts.taskName)
|
|
32
|
+
input.taskName = opts.taskName;
|
|
33
|
+
const body = {
|
|
34
|
+
agent: { name: "outfit-generator", version: "v1.0" },
|
|
35
|
+
input,
|
|
36
|
+
params,
|
|
37
|
+
};
|
|
38
|
+
const { executionId } = await submitRun(body);
|
|
39
|
+
printSubmitted(executionId);
|
|
40
|
+
if (opts.wait !== false) {
|
|
41
|
+
const data = await waitForCompletion(executionId);
|
|
42
|
+
printPollResult(data);
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
console.log("[info]");
|
|
46
|
+
console.log(` message: Use 'weshop status ${executionId}' to check progress`);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
catch (err) {
|
|
50
|
+
printError(err);
|
|
51
|
+
process.exit(1);
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
//# sourceMappingURL=outfit-generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"outfit-generator.js","sourceRoot":"","sources":["../../src/commands/outfit-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,iBAAiB,EAAmB,MAAM,cAAc,CAAC;AAC3F,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE5E,MAAM,cAAc,GAClB,ilBAAilB,CAAC;AAEplB,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,OAAO,CAAC,kBAAkB,CAAC;KAC9D,OAAO,CAAC,0FAA0F,CAAC;KACnG,WAAW,CACV,mFAAmF;IACnF,gEAAgE;IAChE,mDAAmD;IACnD,sFAAsF;IACtF,uDAAuD;IACvD,aAAa;IACb,kDAAkD;IAClD,gHAAgH;IAChH,0DAA0D,CAC3D;KACA,cAAc,CAAC,oBAAoB,EAAE,6CAA6C,CAAC;KACnF,MAAM,CAAC,iBAAiB,EAAE,oEAAoE,CAAC;KAC/F,MAAM,CAAC,iBAAiB,EAAE,iDAAiD,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;KACvG,MAAM,CAAC,oBAAoB,EAAE,mCAAmC,CAAC;KACjE,MAAM,CAAC,WAAW,EAAE,8EAA8E,CAAC;KACnG,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACrB,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEzD,MAAM,MAAM,GAA4B;YACtC,eAAe,EAAE,IAAI,CAAC,MAAM,IAAI,cAAc;YAC9C,MAAM,EAAE,CAAC,QAAQ,CAAC;SACnB,CAAC;QACF,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI;YAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;QAEvD,MAAM,KAAK,GAA4B,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC;QACnE,IAAI,IAAI,CAAC,QAAQ;YAAE,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAElD,MAAM,IAAI,GAAe;YACvB,KAAK,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,EAAE;YACpD,KAAK;YACL,MAAM;SACP,CAAC;QAEF,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC;QAC9C,cAAc,CAAC,WAAW,CAAC,CAAC;QAE5B,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YACxB,MAAM,IAAI,GAAG,MAAM,iBAAiB,CAAC,WAAW,CAAC,CAAC;YAClD,eAAe,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,iCAAiC,WAAW,qBAAqB,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,UAAU,CAAC,GAAG,CAAC,CAAC;QAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import { resolveImage, submitRun, waitForCompletion } from "../client.js";
|
|
3
|
+
import { printSubmitted, printPollResult, printError } from "../printer.js";
|
|
4
|
+
const DEFAULT_PROMPT = "naturally undress and change the outfit into a thin bikini while keeping body proportions natural. Keep Model dancing tiktok dance.";
|
|
5
|
+
export const personalizedSwimSuitCmd = new Command("personalized-swimsuit")
|
|
6
|
+
.summary("Personalized swimsuit — transform a person photo into a bikini model image or video")
|
|
7
|
+
.description("Transform a portrait or full-body photo into a bikini model image or video.\n\n" +
|
|
8
|
+
"Generated type (--generated-type):\n" +
|
|
9
|
+
" video Generate a short video (default)\n" +
|
|
10
|
+
" image Generate a still image\n\n" +
|
|
11
|
+
"Default prompt (used when --prompt is omitted):\n" +
|
|
12
|
+
` "${DEFAULT_PROMPT}"\n\n` +
|
|
13
|
+
"Examples:\n" +
|
|
14
|
+
" weshop personalized-swimsuit --image ./person.png --prompt 'Bikini model on a beach'\n" +
|
|
15
|
+
" weshop personalized-swimsuit --image ./person.png --generated-type image --batch 2\n" +
|
|
16
|
+
" weshop personalized-swimsuit --image ./person.png --generated-type video --no-wait")
|
|
17
|
+
.requiredOption("--image <path|url>", "Input portrait or full-body photo — local file path or URL")
|
|
18
|
+
.option("--prompt <text>", "Describe the desired swimsuit scene")
|
|
19
|
+
.option("--generated-type <type>", "Output type: video (default) or image")
|
|
20
|
+
.option("--batch <count>", "Number of outputs to generate, 1-16 (default: 1)", (v) => parseInt(v, 10), 1)
|
|
21
|
+
.option("--task-name <name>", "Human-readable label for this run")
|
|
22
|
+
.option("--no-wait", "Return immediately after submission; use 'weshop status <id>' to check later")
|
|
23
|
+
.action(async (opts) => {
|
|
24
|
+
try {
|
|
25
|
+
const { url: imageUrl } = await resolveImage(opts.image);
|
|
26
|
+
const params = {
|
|
27
|
+
textDescription: opts.prompt ?? DEFAULT_PROMPT,
|
|
28
|
+
images: [imageUrl],
|
|
29
|
+
generatedType: opts.generatedType ?? "video",
|
|
30
|
+
};
|
|
31
|
+
if (opts.batch != null)
|
|
32
|
+
params.batchCount = opts.batch;
|
|
33
|
+
const input = { originalImage: imageUrl };
|
|
34
|
+
if (opts.taskName)
|
|
35
|
+
input.taskName = opts.taskName;
|
|
36
|
+
const body = { agent: { name: "personalized-swimsuit", version: "v1.0" }, input, params };
|
|
37
|
+
const { executionId } = await submitRun(body);
|
|
38
|
+
printSubmitted(executionId);
|
|
39
|
+
if (opts.wait !== false) {
|
|
40
|
+
printPollResult(await waitForCompletion(executionId));
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
console.log("[info]");
|
|
44
|
+
console.log(` message: Use 'weshop status ${executionId}' to check progress`);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
catch (err) {
|
|
48
|
+
printError(err);
|
|
49
|
+
process.exit(1);
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
//# sourceMappingURL=personalized-swimsuit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"personalized-swimsuit.js","sourceRoot":"","sources":["../../src/commands/personalized-swimsuit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,iBAAiB,EAAmB,MAAM,cAAc,CAAC;AAC3F,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE5E,MAAM,cAAc,GAClB,qIAAqI,CAAC;AAExI,MAAM,CAAC,MAAM,uBAAuB,GAAG,IAAI,OAAO,CAAC,uBAAuB,CAAC;KACxE,OAAO,CAAC,qFAAqF,CAAC;KAC9F,WAAW,CACV,iFAAiF;IACjF,sCAAsC;IACtC,8CAA8C;IAC9C,sCAAsC;IACtC,mDAAmD;IACnD,MAAM,cAAc,OAAO;IAC3B,aAAa;IACb,0FAA0F;IAC1F,wFAAwF;IACxF,sFAAsF,CACvF;KACA,cAAc,CAAC,oBAAoB,EAAE,4DAA4D,CAAC;KAClG,MAAM,CAAC,iBAAiB,EAAE,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,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzD,MAAM,MAAM,GAA4B;YACtC,eAAe,EAAE,IAAI,CAAC,MAAM,IAAI,cAAc;YAC9C,MAAM,EAAE,CAAC,QAAQ,CAAC;YAClB,aAAa,EAAE,IAAI,CAAC,aAAa,IAAI,OAAO;SAC7C,CAAC;QACF,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI;YAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;QACvD,MAAM,KAAK,GAA4B,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC;QACnE,IAAI,IAAI,CAAC,QAAQ;YAAE,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAClD,MAAM,IAAI,GAAe,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QACtG,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC;QAC9C,cAAc,CAAC,WAAW,CAAC,CAAC;QAC5B,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YAAC,eAAe,CAAC,MAAM,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC;QAAC,CAAC;aAC9E,CAAC;YAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAAC,OAAO,CAAC,GAAG,CAAC,iCAAiC,WAAW,qBAAqB,CAAC,CAAC;QAAC,CAAC;IACjH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC;AACrD,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import { resolveImage, submitRun, waitForCompletion } from "../client.js";
|
|
3
|
+
import { printSubmitted, printPollResult, printError } from "../printer.js";
|
|
4
|
+
const DEFAULT_PROMPT = "naturally undress and change the outfit into a thin bikini while keeping body proportions natural. Keep Model dancing tiktok dance.";
|
|
5
|
+
export const photoToBikiniAiCmd = new Command("photo-to-bikini-ai")
|
|
6
|
+
.summary("AI photo to bikini converter — transform a person photo into a bikini image")
|
|
7
|
+
.description("Convert a person photo into a bikini image while preserving body proportions.\n\n" +
|
|
8
|
+
"Default prompt (used when --prompt is omitted):\n" +
|
|
9
|
+
` "${DEFAULT_PROMPT}"\n\n` +
|
|
10
|
+
"Examples:\n" +
|
|
11
|
+
" weshop photo-to-bikini-ai --image ./person.png\n" +
|
|
12
|
+
" weshop photo-to-bikini-ai --image ./person.png --prompt 'Bikini on a tropical beach'\n" +
|
|
13
|
+
" weshop photo-to-bikini-ai --image ./person.png --batch 2")
|
|
14
|
+
.requiredOption("--image <path|url>", "Input person photo — local file path or URL")
|
|
15
|
+
.option("--prompt <text>", "Custom bikini scene instruction")
|
|
16
|
+
.option("--batch <count>", "Number of images to generate, 1-16 (default: 1)", (v) => parseInt(v, 10), 1)
|
|
17
|
+
.option("--task-name <name>", "Human-readable label for this run")
|
|
18
|
+
.option("--no-wait", "Return immediately after submission; use 'weshop status <id>' to check later")
|
|
19
|
+
.action(async (opts) => {
|
|
20
|
+
try {
|
|
21
|
+
const { url: imageUrl } = await resolveImage(opts.image);
|
|
22
|
+
const params = { textDescription: opts.prompt ?? DEFAULT_PROMPT, images: [imageUrl] };
|
|
23
|
+
if (opts.batch != null)
|
|
24
|
+
params.batchCount = opts.batch;
|
|
25
|
+
const input = { originalImage: imageUrl };
|
|
26
|
+
if (opts.taskName)
|
|
27
|
+
input.taskName = opts.taskName;
|
|
28
|
+
const body = { agent: { name: "photo-to-bikini-ai", version: "v1.0" }, input, params };
|
|
29
|
+
const { executionId } = await submitRun(body);
|
|
30
|
+
printSubmitted(executionId);
|
|
31
|
+
if (opts.wait !== false) {
|
|
32
|
+
printPollResult(await waitForCompletion(executionId));
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
console.log("[info]");
|
|
36
|
+
console.log(` message: Use 'weshop status ${executionId}' to check progress`);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
catch (err) {
|
|
40
|
+
printError(err);
|
|
41
|
+
process.exit(1);
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
//# sourceMappingURL=photo-to-bikini-ai.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"photo-to-bikini-ai.js","sourceRoot":"","sources":["../../src/commands/photo-to-bikini-ai.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,iBAAiB,EAAmB,MAAM,cAAc,CAAC;AAC3F,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE5E,MAAM,cAAc,GAClB,qIAAqI,CAAC;AAExI,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,OAAO,CAAC,oBAAoB,CAAC;KAChE,OAAO,CAAC,6EAA6E,CAAC;KACtF,WAAW,CACV,mFAAmF;IACnF,mDAAmD;IACnD,MAAM,cAAc,OAAO;IAC3B,aAAa;IACb,oDAAoD;IACpD,0FAA0F;IAC1F,4DAA4D,CAC7D;KACA,cAAc,CAAC,oBAAoB,EAAE,6CAA6C,CAAC;KACnF,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,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzD,MAAM,MAAM,GAA4B,EAAE,eAAe,EAAE,IAAI,CAAC,MAAM,IAAI,cAAc,EAAE,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/G,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI;YAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;QACvD,MAAM,KAAK,GAA4B,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC;QACnE,IAAI,IAAI,CAAC,QAAQ;YAAE,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAClD,MAAM,IAAI,GAAe,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QACnG,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC;QAC9C,cAAc,CAAC,WAAW,CAAC,CAAC;QAC5B,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YAAC,eAAe,CAAC,MAAM,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC;QAAC,CAAC;aAC9E,CAAC;YAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAAC,OAAO,CAAC,GAAG,CAAC,iCAAiC,WAAW,qBAAqB,CAAC,CAAC;QAAC,CAAC;IACjH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC;AACrD,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import { resolveImage, submitRun, waitForCompletion } from "../client.js";
|
|
3
|
+
import { printSubmitted, printPollResult, printError } from "../printer.js";
|
|
4
|
+
const DEFAULT_PROMPT = "Imagine what this person would look like when she is pregnant for 8 months. Don't change her outfit or her appearance.";
|
|
5
|
+
export const pregnantAiCmd = new Command("pregnant-ai")
|
|
6
|
+
.summary("Visualize how a person would look pregnant — transforms a portrait photo")
|
|
7
|
+
.description("Transform a portrait photo to show how the person would look 8 months pregnant.\n\n" +
|
|
8
|
+
"Requires one input image of the person. The default prompt preserves the original\n" +
|
|
9
|
+
"outfit and appearance while adding a realistic pregnancy look.\n\n" +
|
|
10
|
+
"Default prompt (used when --prompt is omitted):\n" +
|
|
11
|
+
` "${DEFAULT_PROMPT}"\n\n` +
|
|
12
|
+
"Examples:\n" +
|
|
13
|
+
" weshop pregnant-ai --image ./person.png\n" +
|
|
14
|
+
" weshop pregnant-ai --image ./person.png --prompt 'Show her 6 months pregnant, keep her dress'\n" +
|
|
15
|
+
" weshop pregnant-ai --image ./person.png --batch 2 --no-wait")
|
|
16
|
+
.requiredOption("--image <path|url>", "Input portrait image — local file path or URL")
|
|
17
|
+
.option("--prompt <text>", "Custom instruction (default: 8-month pregnancy transformation)")
|
|
18
|
+
.option("--batch <count>", "Number of images to generate, 1-16 (default: 1)", (v) => parseInt(v, 10), 1)
|
|
19
|
+
.option("--task-name <name>", "Human-readable label for this run")
|
|
20
|
+
.option("--no-wait", "Return immediately after submission; use 'weshop status <id>' to check later")
|
|
21
|
+
.action(async (opts) => {
|
|
22
|
+
try {
|
|
23
|
+
const { url: imageUrl } = await resolveImage(opts.image);
|
|
24
|
+
const params = {
|
|
25
|
+
textDescription: opts.prompt ?? DEFAULT_PROMPT,
|
|
26
|
+
images: [imageUrl],
|
|
27
|
+
};
|
|
28
|
+
if (opts.batch != null)
|
|
29
|
+
params.batchCount = opts.batch;
|
|
30
|
+
const input = { originalImage: imageUrl };
|
|
31
|
+
if (opts.taskName)
|
|
32
|
+
input.taskName = opts.taskName;
|
|
33
|
+
const body = {
|
|
34
|
+
agent: { name: "pregnant_ai", version: "v1.0" },
|
|
35
|
+
input,
|
|
36
|
+
params,
|
|
37
|
+
};
|
|
38
|
+
const { executionId } = await submitRun(body);
|
|
39
|
+
printSubmitted(executionId);
|
|
40
|
+
if (opts.wait !== false) {
|
|
41
|
+
const data = await waitForCompletion(executionId);
|
|
42
|
+
printPollResult(data);
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
console.log("[info]");
|
|
46
|
+
console.log(` message: Use 'weshop status ${executionId}' to check progress`);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
catch (err) {
|
|
50
|
+
printError(err);
|
|
51
|
+
process.exit(1);
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
//# sourceMappingURL=pregnant-ai.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pregnant-ai.js","sourceRoot":"","sources":["../../src/commands/pregnant-ai.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,iBAAiB,EAAmB,MAAM,cAAc,CAAC;AAC3F,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE5E,MAAM,cAAc,GAClB,wHAAwH,CAAC;AAE3H,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC,aAAa,CAAC;KACpD,OAAO,CAAC,0EAA0E,CAAC;KACnF,WAAW,CACV,qFAAqF;IACrF,qFAAqF;IACrF,oEAAoE;IACpE,mDAAmD;IACnD,MAAM,cAAc,OAAO;IAC3B,aAAa;IACb,6CAA6C;IAC7C,mGAAmG;IACnG,+DAA+D,CAChE;KACA,cAAc,CAAC,oBAAoB,EAAE,+CAA+C,CAAC;KACrF,MAAM,CAAC,iBAAiB,EAAE,gEAAgE,CAAC;KAC3F,MAAM,CAAC,iBAAiB,EAAE,iDAAiD,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;KACvG,MAAM,CAAC,oBAAoB,EAAE,mCAAmC,CAAC;KACjE,MAAM,CAAC,WAAW,EAAE,8EAA8E,CAAC;KACnG,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACrB,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEzD,MAAM,MAAM,GAA4B;YACtC,eAAe,EAAE,IAAI,CAAC,MAAM,IAAI,cAAc;YAC9C,MAAM,EAAE,CAAC,QAAQ,CAAC;SACnB,CAAC;QACF,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI;YAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;QAEvD,MAAM,KAAK,GAA4B,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC;QACnE,IAAI,IAAI,CAAC,QAAQ;YAAE,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAElD,MAAM,IAAI,GAAe;YACvB,KAAK,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE;YAC/C,KAAK;YACL,MAAM;SACP,CAAC;QAEF,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC;QAC9C,cAAc,CAAC,WAAW,CAAC,CAAC;QAE5B,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YACxB,MAAM,IAAI,GAAG,MAAM,iBAAiB,CAAC,WAAW,CAAC,CAAC;YAClD,eAAe,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,iCAAiC,WAAW,qBAAqB,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,UAAU,CAAC,GAAG,CAAC,CAAC;QAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import { resolveImage, submitRun, waitForCompletion } from "../client.js";
|
|
3
|
+
import { printSubmitted, printPollResult, printError } from "../printer.js";
|
|
4
|
+
const DEFAULT_PROMPT = "Turn this person into a PS2 Sims game character. 3D but blurry texture, try replicate exactly as the game.";
|
|
5
|
+
export const ps2FilterCmd = new Command("ps2-filter")
|
|
6
|
+
.summary("AI PS2 filter — transform a photo into a retro PS2-era Sims game character")
|
|
7
|
+
.description("Transform a portrait photo into a retro PS2-style 3D game character with blurry\n" +
|
|
8
|
+
"low-res textures, replicating the look of early 2000s Sims games.\n\n" +
|
|
9
|
+
"Default prompt (used when --prompt is omitted):\n" +
|
|
10
|
+
` "${DEFAULT_PROMPT}"\n\n` +
|
|
11
|
+
"Examples:\n" +
|
|
12
|
+
" weshop ps2-filter --image ./person.png\n" +
|
|
13
|
+
" weshop ps2-filter --image ./person.png --prompt 'PS2 era GTA character, blocky polygons'\n" +
|
|
14
|
+
" weshop ps2-filter --image ./person.png --batch 2")
|
|
15
|
+
.requiredOption("--image <path|url>", "Input portrait image — local file path or URL")
|
|
16
|
+
.option("--prompt <text>", "Custom PS2 game style instruction")
|
|
17
|
+
.option("--batch <count>", "Number of images to generate, 1-16 (default: 1)", (v) => parseInt(v, 10), 1)
|
|
18
|
+
.option("--task-name <name>", "Human-readable label for this run")
|
|
19
|
+
.option("--no-wait", "Return immediately after submission; use 'weshop status <id>' to check later")
|
|
20
|
+
.action(async (opts) => {
|
|
21
|
+
try {
|
|
22
|
+
const { url: imageUrl } = await resolveImage(opts.image);
|
|
23
|
+
const params = { textDescription: opts.prompt ?? DEFAULT_PROMPT, images: [imageUrl] };
|
|
24
|
+
if (opts.batch != null)
|
|
25
|
+
params.batchCount = opts.batch;
|
|
26
|
+
const input = { originalImage: imageUrl };
|
|
27
|
+
if (opts.taskName)
|
|
28
|
+
input.taskName = opts.taskName;
|
|
29
|
+
const body = { agent: { name: "ps2-filter", version: "v1.0" }, input, params };
|
|
30
|
+
const { executionId } = await submitRun(body);
|
|
31
|
+
printSubmitted(executionId);
|
|
32
|
+
if (opts.wait !== false) {
|
|
33
|
+
printPollResult(await waitForCompletion(executionId));
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
console.log("[info]");
|
|
37
|
+
console.log(` message: Use 'weshop status ${executionId}' to check progress`);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
catch (err) {
|
|
41
|
+
printError(err);
|
|
42
|
+
process.exit(1);
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
//# sourceMappingURL=ps2-filter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ps2-filter.js","sourceRoot":"","sources":["../../src/commands/ps2-filter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,iBAAiB,EAAmB,MAAM,cAAc,CAAC;AAC3F,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE5E,MAAM,cAAc,GAClB,4GAA4G,CAAC;AAE/G,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,OAAO,CAAC,YAAY,CAAC;KAClD,OAAO,CAAC,4EAA4E,CAAC;KACrF,WAAW,CACV,mFAAmF;IACnF,uEAAuE;IACvE,mDAAmD;IACnD,MAAM,cAAc,OAAO;IAC3B,aAAa;IACb,4CAA4C;IAC5C,8FAA8F;IAC9F,oDAAoD,CACrD;KACA,cAAc,CAAC,oBAAoB,EAAE,+CAA+C,CAAC;KACrF,MAAM,CAAC,iBAAiB,EAAE,mCAAmC,CAAC;KAC9D,MAAM,CAAC,iBAAiB,EAAE,iDAAiD,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;KACvG,MAAM,CAAC,oBAAoB,EAAE,mCAAmC,CAAC;KACjE,MAAM,CAAC,WAAW,EAAE,8EAA8E,CAAC;KACnG,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACrB,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzD,MAAM,MAAM,GAA4B,EAAE,eAAe,EAAE,IAAI,CAAC,MAAM,IAAI,cAAc,EAAE,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/G,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI;YAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;QACvD,MAAM,KAAK,GAA4B,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC;QACnE,IAAI,IAAI,CAAC,QAAQ;YAAE,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAClD,MAAM,IAAI,GAAe,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAC3F,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC;QAC9C,cAAc,CAAC,WAAW,CAAC,CAAC;QAC5B,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YAAC,eAAe,CAAC,MAAM,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC;QAAC,CAAC;aAC9E,CAAC;YAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAAC,OAAO,CAAC,GAAG,CAAC,iCAAiC,WAAW,qBAAqB,CAAC,CAAC;QAAC,CAAC;IACjH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC;AACrD,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import { resolveImage, submitRun, waitForCompletion } from "../client.js";
|
|
3
|
+
import { printSubmitted, printPollResult, printError } from "../printer.js";
|
|
4
|
+
export const qwenImageEditCmd = new Command("qwen-image-edit")
|
|
5
|
+
.summary("AI image editing — edit or generate images with natural language instructions")
|
|
6
|
+
.description("AI image editing — edit or generate images with natural language instructions using Qwen Image Edit.\n\n" +
|
|
7
|
+
"Provide a text prompt describing the desired edit or generation. Optionally attach up to 5\n" +
|
|
8
|
+
"reference images. When no image is provided the model generates from the prompt alone.\n\n" +
|
|
9
|
+
"Examples:\n" +
|
|
10
|
+
" weshop qwen-image-edit --prompt 'A cat sitting on a rainbow'\n" +
|
|
11
|
+
" weshop qwen-image-edit --image ./photo.png --prompt 'Make the sky more dramatic'\n" +
|
|
12
|
+
" weshop qwen-image-edit --image ./a.png --image ./b.png --prompt 'Combine these two scenes using image 1 as the base and image 2 as the style reference' --batch 2")
|
|
13
|
+
.option("--image <path|url...>", "Reference images — local file paths or URLs (up to 5, optional)")
|
|
14
|
+
.requiredOption("--prompt <text>", "Describe the desired edit or generation")
|
|
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
|
+
try {
|
|
20
|
+
const params = {
|
|
21
|
+
textDescription: opts.prompt,
|
|
22
|
+
};
|
|
23
|
+
if (opts.batch != null)
|
|
24
|
+
params.batchCount = opts.batch;
|
|
25
|
+
const input = {};
|
|
26
|
+
if (opts.taskName)
|
|
27
|
+
input.taskName = opts.taskName;
|
|
28
|
+
// Resolve and upload images if provided
|
|
29
|
+
if (opts.image && opts.image.length > 0) {
|
|
30
|
+
const imageList = opts.image;
|
|
31
|
+
if (imageList.length > 5) {
|
|
32
|
+
console.error("[error]\n message: Maximum 5 images allowed");
|
|
33
|
+
process.exit(1);
|
|
34
|
+
}
|
|
35
|
+
const urls = [];
|
|
36
|
+
for (const img of imageList) {
|
|
37
|
+
const { url } = await resolveImage(img);
|
|
38
|
+
urls.push(url);
|
|
39
|
+
}
|
|
40
|
+
params.images = urls;
|
|
41
|
+
input.originalImage = urls[0];
|
|
42
|
+
}
|
|
43
|
+
const body = {
|
|
44
|
+
agent: { name: "qwen-image-edit", version: "v1.0" },
|
|
45
|
+
input,
|
|
46
|
+
params,
|
|
47
|
+
};
|
|
48
|
+
const { executionId } = await submitRun(body);
|
|
49
|
+
printSubmitted(executionId);
|
|
50
|
+
if (opts.wait !== false) {
|
|
51
|
+
const data = await waitForCompletion(executionId);
|
|
52
|
+
printPollResult(data);
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
console.log("[info]");
|
|
56
|
+
console.log(` message: Use 'weshop status ${executionId}' to check progress`);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
catch (err) {
|
|
60
|
+
printError(err);
|
|
61
|
+
process.exit(1);
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
//# sourceMappingURL=qwen-image-edit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qwen-image-edit.js","sourceRoot":"","sources":["../../src/commands/qwen-image-edit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,iBAAiB,EAAmB,MAAM,cAAc,CAAC;AAC3F,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE5E,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,OAAO,CAAC,iBAAiB,CAAC;KAC3D,OAAO,CAAC,+EAA+E,CAAC;KACxF,WAAW,CACV,0GAA0G;IAC1G,8FAA8F;IAC9F,4FAA4F;IAC5F,aAAa;IACb,kEAAkE;IAClE,sFAAsF;IACtF,qKAAqK,CACtK;KACA,MAAM,CAAC,uBAAuB,EAAE,iEAAiE,CAAC;KAClG,cAAc,CAAC,iBAAiB,EAAE,yCAAyC,CAAC;KAC5E,MAAM,CAAC,iBAAiB,EAAE,iDAAiD,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;KACvG,MAAM,CAAC,oBAAoB,EAAE,mCAAmC,CAAC;KACjE,MAAM,CAAC,WAAW,EAAE,8EAA8E,CAAC;KACnG,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACrB,IAAI,CAAC;QACH,MAAM,MAAM,GAA4B;YACtC,eAAe,EAAE,IAAI,CAAC,MAAM;SAC7B,CAAC;QACF,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI;YAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;QAEvD,MAAM,KAAK,GAA4B,EAAE,CAAC;QAC1C,IAAI,IAAI,CAAC,QAAQ;YAAE,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAElD,wCAAwC;QACxC,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxC,MAAM,SAAS,GAAa,IAAI,CAAC,KAAK,CAAC;YACvC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,OAAO,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;gBAC9D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,MAAM,IAAI,GAAa,EAAE,CAAC;YAC1B,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;gBAC5B,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,CAAC;gBACxC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACjB,CAAC;YACD,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;YACrB,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAChC,CAAC;QAED,MAAM,IAAI,GAAe;YACvB,KAAK,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,EAAE;YACnD,KAAK;YACL,MAAM;SACP,CAAC;QAEF,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC;QAC9C,cAAc,CAAC,WAAW,CAAC,CAAC;QAE5B,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YACxB,MAAM,IAAI,GAAG,MAAM,iBAAiB,CAAC,WAAW,CAAC,CAAC;YAClD,eAAe,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,iCAAiC,WAAW,qBAAqB,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,UAAU,CAAC,GAAG,CAAC,CAAC;QAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import { resolveImage, submitRun, waitForCompletion } from "../client.js";
|
|
3
|
+
import { printSubmitted, printPollResult, printError } from "../printer.js";
|
|
4
|
+
const DEFAULT_PROMPT = "A hyper-realistic, award-winning wildlife photograph of [ANY RANDOM ANIMAL] in its natural habitat. Captured in a National Geographic style to emphasize natural lighting and fur/scale texture. Shot on a Sony A1 with a 600mm f/4 lens for a shallow depth of field and a creamy bokeh background. The composition follows the rule of thirds, showing the animal in a candid, unposed moment—such as hunting, resting, or observing its surroundings. Incredible detail on the eyes, whiskers, and environment, 8k resolution, cinematic atmosphere, sharp focus, natural color grading.";
|
|
5
|
+
export const randomAnimalGeneratorCmd = new Command("random-animal-generator")
|
|
6
|
+
.summary("AI random animal generator — generate a hyper-realistic wildlife photo of any animal")
|
|
7
|
+
.description("Generate a hyper-realistic National Geographic-style wildlife photograph.\n" +
|
|
8
|
+
"Image is optional — text-only generation is supported.\n\n" +
|
|
9
|
+
"Default prompt (used when --prompt is omitted):\n" +
|
|
10
|
+
" Random animal in its natural habitat, National Geographic style, 8K resolution.\n\n" +
|
|
11
|
+
"Examples:\n" +
|
|
12
|
+
" weshop random-animal-generator\n" +
|
|
13
|
+
" weshop random-animal-generator --prompt 'A snow leopard stalking prey in the Himalayas'\n" +
|
|
14
|
+
" weshop random-animal-generator --batch 4")
|
|
15
|
+
.option("--image <path|url>", "Reference image — local file path or URL (optional)")
|
|
16
|
+
.option("--prompt <text>", "Describe the desired animal and 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
|
+
try {
|
|
22
|
+
const params = { textDescription: opts.prompt ?? DEFAULT_PROMPT };
|
|
23
|
+
if (opts.batch != null)
|
|
24
|
+
params.batchCount = opts.batch;
|
|
25
|
+
const input = {};
|
|
26
|
+
if (opts.taskName)
|
|
27
|
+
input.taskName = opts.taskName;
|
|
28
|
+
if (opts.image) {
|
|
29
|
+
const { url: imageUrl } = await resolveImage(opts.image);
|
|
30
|
+
params.images = [imageUrl];
|
|
31
|
+
input.originalImage = imageUrl;
|
|
32
|
+
}
|
|
33
|
+
const body = { agent: { name: "random-animal-generator", version: "v1.0" }, input, params };
|
|
34
|
+
const { executionId } = await submitRun(body);
|
|
35
|
+
printSubmitted(executionId);
|
|
36
|
+
if (opts.wait !== false) {
|
|
37
|
+
printPollResult(await waitForCompletion(executionId));
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
console.log("[info]");
|
|
41
|
+
console.log(` message: Use 'weshop status ${executionId}' to check progress`);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
catch (err) {
|
|
45
|
+
printError(err);
|
|
46
|
+
process.exit(1);
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
//# sourceMappingURL=random-animal-generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"random-animal-generator.js","sourceRoot":"","sources":["../../src/commands/random-animal-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,iBAAiB,EAAmB,MAAM,cAAc,CAAC;AAC3F,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE5E,MAAM,cAAc,GAClB,6jBAA6jB,CAAC;AAEhkB,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,OAAO,CAAC,yBAAyB,CAAC;KAC3E,OAAO,CAAC,sFAAsF,CAAC;KAC/F,WAAW,CACV,6EAA6E;IAC7E,4DAA4D;IAC5D,mDAAmD;IACnD,uFAAuF;IACvF,aAAa;IACb,oCAAoC;IACpC,6FAA6F;IAC7F,4CAA4C,CAC7C;KACA,MAAM,CAAC,oBAAoB,EAAE,qDAAqD,CAAC;KACnF,MAAM,CAAC,iBAAiB,EAAE,uCAAuC,CAAC;KAClE,MAAM,CAAC,iBAAiB,EAAE,iDAAiD,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;KACvG,MAAM,CAAC,oBAAoB,EAAE,mCAAmC,CAAC;KACjE,MAAM,CAAC,WAAW,EAAE,8EAA8E,CAAC;KACnG,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACrB,IAAI,CAAC;QACH,MAAM,MAAM,GAA4B,EAAE,eAAe,EAAE,IAAI,CAAC,MAAM,IAAI,cAAc,EAAE,CAAC;QAC3F,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI;YAAE,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;QACvD,MAAM,KAAK,GAA4B,EAAE,CAAC;QAC1C,IAAI,IAAI,CAAC,QAAQ;YAAE,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAClD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzD,MAAM,CAAC,MAAM,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC3B,KAAK,CAAC,aAAa,GAAG,QAAQ,CAAC;QACjC,CAAC;QACD,MAAM,IAAI,GAAe,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QACxG,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC;QAC9C,cAAc,CAAC,WAAW,CAAC,CAAC;QAC5B,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YAAC,eAAe,CAAC,MAAM,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC;QAAC,CAAC;aAC9E,CAAC;YAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAAC,OAAO,CAAC,GAAG,CAAC,iCAAiC,WAAW,qBAAqB,CAAC,CAAC;QAAC,CAAC;IACjH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC;AACrD,CAAC,CAAC,CAAC"}
|