sm4ll Wrapper Sampler - Paid API
The same virtual try-on, minus the queue and the license asterisk — for a nickel
- base_person_image
- product_image
- base_person_mask
- IMAGE
This is the paid sibling of the demo node, and it exists for one reason: the demo is free because you're the product - shared queue, rate limits, and a non-commercial license on everything it outputs. The moment your try-on work has a commercial purpose, which in this space means e-commerce product shots, the demo is unusable. sm4ll Wrapper Sampler - Paid API (VTONAPIPaidNode) swaps in a production backend at api.yourmirror.io, a dedicated queue, priority processing, and a full commercial license - at $0.05 per call at normal quality, $0.10 at high.
For context on what you're buying into: this is a closed, hosted service. Your images go to YourMirror's servers and the model runs there, not on your GPU. That's the deal with all three nodes in this pack - you're paying per inference to skip the VRAM and weight downloads entirely. If you're a retailer mocking up a few product variations a day, the $0.05/call math is trivially cheap. If you're batch-processing thousands of frames, a locally-run try-on pipeline will beat it on cost per image - this node is a convenience, not an economics hack.
How it works
Same pipeline as the demo - images resized to 1.62 megapixels with Lanczos, forced to RGB, minimum 100×100 check - but uploaded to the production API and processed through dedicated endpoints with SSE streaming for the result. The important differences are the ones you interact with:
api_key- your YourMirror key. Format is validated in code: it must start withym_and be exactly 32 characters long. Get it from studio.yourmirror.io: sign up, verify your email, and create a key in the API Keys section. It's shown exactly once, so copy it immediately. Keys are rate-limited to 1000 requests per hour and the service runs automatic NSFW screening on inputs.quality-Normal(16 sampling steps, $0.05) orHigh(40 steps, $0.10). Start with Normal; the step difference is real but you should see if it matters for your garment types before paying double every time.model_choice- same four categories as the demo:eyewear,footwear,full-body,top garment. Match it to your product.base_person_imageandproduct_image- the person photo and the garment photo, both required.base_person_mask(optional) - a custom person mask if you don't trust the automatic masking. It's converted to black-and-white and uploaded, same as the demo.
The single output is an IMAGE tensor, straight into a Save Image or Preview node. Like the demo, the node is marked NOT_IDEMPOTENT, so ComfyUI always re-runs it - you can't rely on caching to skip a repeat, and every execution is a billable call.
Install
Same pack, same steps as the demo node. You install once and get all three nodes:
cd ComfyUI/custom_nodes/
git clone https://github.com/risunobushi/ComfyUI_sm4ll-Wrapper.git
cd ComfyUI_sm4ll-Wrapper
pip install -r requirements.txt
Restart, and it appears under sm4ll/VTON alongside the demo. Dependencies are torch, torchvision, numpy, Pillow, requests - all already present in stock ComfyUI, and there are no model downloads. ComfyUI Manager also finds it if you search "sm4ll".
Troubleshooting
The failure modes mirror the demo, with the money angle on top:
- A solid red 512×512 output is the error signal. The node catches every exception and returns a red placeholder, so a "successful" red square means something failed - read the console, which is where the real message lives.
API key is required- you left the key blank (or the placeholderym_your_api_key_hereis still in the field).Invalid API key format- the key doesn't start withym_or isn't 32 characters. Copy it exactly; there's no way to see it again from the dashboard.- Timeout - the production API allows 5 minutes for processing. If you're consistently timing out, that's a backend problem; contact support rather than re-queueing and racking up charges.
One more practical tip: keep an eye on your call count. The node fires a request every time you hit queue, whether the output changes or not. For anything more than casual testing, know what you're spending before you leave it running overnight.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| base_person_image | IMAGE | — | |
| product_image | IMAGE | — | |
| model_choice | COMBO | eyewear | 4 options: eyewear, footwear, full-body, top garment |
| api_key | STRING | ym_your_api_key_here | — |
| quality | COMBO | Normal | 2 options: Normal, High |
| base_person_maskopt | MASK | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |