AI retouching at delivery time, not in a separate editor
Cloudinary-powered preset chains for auto-color, exposure, and skin smoothing apply at the URL level — no batch render queue, no separate editor app, no waiting for jobs to finish. Per-photo isRetouched tracking so your team always knows what's been polished.




Retouching baked into the delivery URL — no render queue
Cloudinary transformations apply at the moment the customer requests the photo. Auto-color, exposure correction, and skin smoothing run inside the CDN, not on a separate render server. The customer's browser pulls a polished JPEG; your team didn't wait 20 minutes for a Lightroom batch export to finish.
- Cloudinary edit chain composed into the signed URL
- Per-photo edit list stored as editApplied[] string array
- cloudinaryId_edited tracks the post-edit asset key
- No batch render queue, no rendered-file storage to babysit
- Original cloudinaryId always preserved for re-edits
- Apply, undo, or change presets without re-uploading

Preset chains for the most common edits
Four shipping preset chains cover the photographer's daily 80%: auto-color for white-balance fixes, exposure for over- or under-shot frames, skin-smoothing for portrait work, and batch-portrait for a session-wide polish. Custom adjustments compose on top of any preset chain.
- auto-color — white balance + saturation correction
- exposure — over/under-exposure correction
- skin-smoothing — portrait-grade softening
- batch-portrait — session-wide preset chain
- Custom adjustments stack on top of any preset
- Adjustments stored declaratively, not re-rendered

Authenticated admin API with org scope verification
/api/admin/retouch is gated by NextAuth and verifies the photo belongs to caller's org before applying any edit. Request the edits you want, scope is checked, transformation chain composed, isRetouched flag flipped, edit list persisted. No drive-by retouch attacks across organizations.
- POST /api/admin/retouch — applies edits, persists state
- Org scope verified before any edit
- Edits applied atomically inside a Prisma transaction
- Photo.isRetouched flipped to true on first edit
- editApplied[] array tracks every preset that ran
- Edit history retained for client-facing 'last polished by' display

Per-photo isRetouched flag for production workflow
Every Photo carries an isRetouched boolean. Your team's gallery view filters to only the un-retouched shots so nothing slips through unedited. Customer-facing galleries show the polished version automatically; the original stays addressable for re-edits.
- isRetouched indexed for fast 'needs polish' queries
- Filter gallery to retouched / un-retouched in admin UI
- Original cloudinaryId always preserved
- Re-edit anytime without re-uploading
- Edit list visible to managers for quality audits
- Pairs with AI-culling so only un-rejected shots get polish

Everything included
No feature gates. No hidden upgrades. Get the full experience from day one.
Cloudinary preset chains
auto-color, exposure, skin-smoothing, batch-portrait shipping presets.
URL-time transformations
Edits compose into the signed URL — no render queue, no rendered-file storage.
isRetouched flag
Per-photo boolean indexed for fast quality-control queries.
editApplied[] array
Persistent log of every preset that ran, for audit and re-application.
cloudinaryId_edited
Tracks post-edit asset key while preserving the original.
Custom adjustments
Stack arbitrary Cloudinary transforms on top of any preset chain.
Authenticated admin API
/api/admin/retouch gated by NextAuth + org scope verification.
Atomic Prisma transaction
Edits applied + flag flipped + log persisted in one DB transaction.
No batch queue
Cloudinary serves edits in-line; nothing to babysit.
Re-edit anytime
Original preserved; pre-existing edits compose with new ones cleanly.
Pairs with AI culling
Only un-rejected photos enter the retouch pipeline.
Quality audit trail
Managers see edit list per photo for production sign-off.
Who it's for
Wedding photographers
Apply skin-smoothing and exposure correction across a 400-photo wedding gallery in seconds. The customer pulls polished images; nothing renders until requested.
Resort photographers shooting under harsh sun
Auto-color preset corrects pool-deck white balance and overcooked oranges. Photographer doesn't open Lightroom for 50 routine fixes per day.
Studios with a quality-control supervisor
Supervisor filters to isRetouched=false in the gallery view. Polish them, flip the flag, supervisor signs off. Production pipeline becomes auditable.
Anyone who's tired of render queues
No batch render server to maintain. No waiting 20 minutes for an export to finish. Edit, save the edit list, the URL serves the polished version on the next request.
Full feature list
Zno's Pro Retouch charges $0.50–$3 per image and runs as a separate render farm. Lightroom presets need a desktop and a render queue. Fotiqo's retouch chain composes into the Cloudinary URL — the polished JPEG appears the moment the customer asks for the photo, with full audit trail of which presets ran.
Compare plans“Fotiqo has everything I need in one place. I stopped paying for four separate tools and my workflow is so much simpler now.”
Ready to get started?
Free to start. No credit card. No monthly fees on the Starter plan.
Try Pro Retouch