Credits: 50
Back to Studio
KNOWLEDGE BASEUpdated September 2026

Help & Documentation Center

Everything you need to produce studio-grade apparel imagery with Poron, from photo preparation best practices to merchant REST API integration.

1. Getting Started in the Studio

1

Upload Garment

Upload a product flat-lay, ghost mannequin, or on-person photo. If using an on-person photo, use our crop tool to isolate the apparel item.

2

Select Model & Consent

Pick a Curated AI Model from our rights-cleared library or upload your own model photo with documented 18+ wearer consent.

3

Generate & Compare

Click Generate. Our Gemini 3.1 engine renders your fitting in ~10 seconds. Compare using our split slider and export up to 4K resolution.

Image Preparation Tips for Optimal Results:

  • Lighting: Clean, even studio lighting with minimal harsh shadows yields the crispest fabric drape.
  • Garment View: Front-facing apparel items with visible necklines, buttons, and hemlines transfer with highest fidelity.
  • Model Pose: Natural upright postures with arms slightly separated from the torso prevent fabric occlusion.

2. Developer Platform & Merchant API

Automate your catalog drops by triggering virtual try-on jobs programmatically. Generate your API key in Workspace Settings → API & Webhooks.

Create Try-On Job via cURL

curl -X POST https://api.poron.studio/api/v1/merchant/try-on \
  -H "Authorization: Bearer poron_live_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "garmentAssetId": "00000000-0000-0000-0000-000000000001",
    "targetModelId": "model-f01-front",
    "garmentCategory": "top",
    "modelTier": "gemini-3.1-flash-image",
    "resolution": "1024x1024"
  }'

Webhook Event Verification (HMAC-SHA256)

Poron delivers real-time notifications when your jobs complete. Webhooks are signed using HMAC-SHA256 in the Poron-Signature header:

// Verify Poron Webhook Signature in Node.js
import crypto from "node:crypto";

function verifyPoronWebhook(payloadString, signatureHeader, secret) {
  const parts = Object.fromEntries(
    signatureHeader.split(",").map(p => p.split("="))
  );
  const { t: timestamp, v1: signature } = parts;
  
  // Reject replays older than 5 minutes
  if (Math.abs(Date.now() / 1000 - parseInt(timestamp, 10)) > 300) {
    return false;
  }
  
  const expected = crypto
    .createHmac("sha256", secret)
    .update(`${timestamp}.${payloadString}`)
    .digest("hex");
    
  return crypto.timingSafeEqual(Buffer.from(signature), Buffer.from(expected));
}

3. Troubleshooting & FAQ

Why did my job fail with a “SAFETY_VIOLATION” error?

Google Gemini's multimodal safety filters automatically evaluate input images and synthesized results for prohibited content (such as nudity, semi-nude imagery, or unconsented likenesses). Whenever a job is blocked by safety filters, your reserved wallet credits are automatically refunded in full.

Can I use photos of my customer or store visitor?

Yes, provided they are at least 18 years of age and have affirmatively provided consent. Our embeddable Store Widget (`/widget/[workspaceId]`) includes built-in 18+ age gates, consent capture, and instant privacy purge buttons for visitors.

How does the 4K Ultra HD export work?

Poron uses professional Lanczos3 multi-pass spatial resampling combined with adaptive unsharp masking to upscale 1K and 2K generative outputs to crisp 3840x3840 (or 3840x2160) e-commerce masters without introducing blur or artifacting.

Need Specialized Technical Support?

Our engineering and support team is available to assist enterprise merchants with catalog integrations, bulk imports, and dedicated SLA inquiries.