Connect your Microsoft Foundry resource and review suggestions before applying them. Microsoft usage charges apply.
Before you start
You need Lightroom Classic and your own Microsoft Foundry resource with a compatible vision-capable OpenAI model deployment. This is a Library-menu plug-in, not a Publish Service. It does not require either FTP plug-in.
This version needs your own Microsoft Foundry setup. You create the Foundry resource and model deployment in your own Azure subscription, and Microsoft bills the AI usage to you, separately from the plug-in. No AI service is included in the plug-in's price. Would a version with a prepaid number of AI taggings included in an Adobe subscription, and no Azure setup, be useful to you? Tell us in a feature request.
Begin with a catalog backup and one non-sensitive image you are authorized to process in the cloud. Follow the setup steps, review the suggestions, and check the saved metadata before continuing with other photos. Availability on Adobe Exchange is coming soon; the plug-in is distributed only there and installed with the Creative Cloud desktop app.
Prepare your own cloud resource
Prerequisite: an Azure pay-as-you-go subscription. Without an Azure account, create one and choose pay-as-you-go (a phone number and a credit or debit card are required). On a trial account, upgrade it to pay-as-you-go: trial subscriptions may have no quota for the models used here. Then create a budget with alerts before creating anything else.
The existing client targets GPT-4.1 mini with image input and strict structured output. Check current model availability and lifecycle before choosing a deployment; not every model in the Foundry catalog is compatible. Use a pay-as-you-go deployment with scoped access and spending visibility.
Follow Microsoft's official guidance to create a Foundry resource and deploy a model. Check the retirement schedule, current pricing, and deployment processing locations. Resource location alone does not determine where inference occurs.
This client uses resource API keys, not Entra sign-in or managed identity. Do not weaken an organization's keyless-authentication or networking policies to use it. No publisher backend, VM, agent, or additional storage service is required by the plug-in.
Install & connect
- Install Expolumi AI Photo Tagging from Adobe Exchange: in the Creative Cloud desktop app, signed in with your Adobe ID, open Stock & Marketplace > Plugins, search for Expolumi, and choose Get. Restart Lightroom Classic and confirm it is enabled in File > Plug-in Manager; install only one copy.
- Open Library > Plug-in Extras > AI Photo Tagging: Foundry Settings.
- Enter your resource root, such as
https://YOUR-RESOURCE.services.ai.azure.com, and the exact model deployment name you chose. A compatiblehttps://YOUR-RESOURCE.openai.azure.comroot is also accepted. - Enter your resource API key directly into Lightroom's masked field. Never put it in messages, screenshots, source files, or a shared package.
- Select Save locally. Saving does not test the connection or validate model access. Use one authorized, non-sensitive photo to verify the setup and check usage afterward.
Use the resource root, not a portal link, project URL, or API path. The plug-in appends the API path itself. Custom gateways and sovereign-cloud endpoints are not supported by this version.
The endpoint and deployment are local preferences; the key uses Lightroom's encrypted storage. A key is required each time you save, and an existing key is never displayed. Forget key removes the locally saved key, not the endpoint or deployment, and does not revoke the key in Azure.
Tag one photo
- Select exactly one photo in Library. Multiple selections are rejected before rendering or a cloud request.
- Choose Library > Plug-in Extras > AI Photo Tagging: Tag Selected Photo.
- Choose the Intended licence: Commercial or Editorial. The last confirmed choice is remembered, so check it for every photo. If the photo has a license type in Expolumi Publishing Workflow (coming soon), that type is preselected instead. Optionally enter a photographer tip, such as the known location or subject context. It starts blank each time. Review the camera's capture timestamp and uncheck Include capture time with the AI request if it is wrong or private.
- Check the destination and deployment in the cloud-processing consent dialog before continuing.
- Review the photo and editable suggestions. Choose which fields to apply. Existing title, caption, and AI category values are protected by unchecked Apply boxes until you explicitly choose replacement.
- Review City and Country / Region separately, then check their individual Apply boxes only if you want to save them. Edit the keyword list and choose Apply selected fields or Cancel.
There is no batch queue or automatic advance. Finish or cancel, select another photo, and run the command again. Changing the Library selection during processing does not change which photo the operation updates.
The optional tip is limited to 2,000 UTF-8 bytes. The capture timestamp is the camera's recorded time, not verified local time. Neither proves geography, lighting, season, or the identity of a subject. Check the suggestions against what you know.
Commercial or editorial
Commercial suggestions are written for stock licensed for commercial use, including advertising. Brand names, logos, product models, artwork titles, and people's names stay out of the title, caption, and keywords, even if they are visible or in your tip. Such items are described generically, and keywords can include moods, concepts, and travel terms.
Editorial suggestions are written for news, documentary, and human-interest use. The caption starts with a dateline, such as Nyon, Switzerland - September 18, 2026:, followed by a factual sentence: who, what, where, and when. The place comes from your tip and the date from your tip or the included capture time; unknown parts are left out rather than guessed. Keywords can name people and their roles, events, venues, organizations, brands, and product models, but only when your tip names them or they are clearly legible in the image. People are never identified from their appearance, and dates stay out of keywords.
For editorial photos, include names, roles, the event, and the date in your tip. The choice only shapes suggestions: choose the correct licence at each agency and check releases, credentials, and accuracy yourself.
Your metadata, your decisions
Keywords merge with existing tags rather than replacing them. Existing hierarchy, synonyms, and export settings are preserved. New keywords are top-level and exportable. The AI proposes up to 50 relevant terms; this is not an agency acceptance rule, and merging may leave more than 50 total tags.
Titles are limited to 200 UTF-8 bytes, captions to 2,000, and individual keywords to 100. Suggestions aim for useful coverage rather than padding. Verify relevance, factual claims, final keyword counts, and priority order before submitting to an agency.
The custom AI category is visible in the AI Photo Tagging Metadata view. It is not an Alamy or Dreamstime category and does not modify legacy IPTC Category. City and Country / Region use native Lightroom fields, preserve existing values during review, and are never automatically applied.
Location should come from context you supply, not a guess based on the image. No reverse geocoding is performed. Applying changes uses a named Lightroom Undo operation. If selected text changes while you are reviewing, the operation stops instead of silently overwriting it.
What is sent
Lightroom renders a temporary sRGB JPEG reflecting your edits, limited to 1024 by 1024 pixels without enlargement. Embedded JPEG metadata is stripped before the preview is sent over HTTPS. Originals, filenames, existing catalog titles, keywords, and GPS are not automatically included.
Your optional photographer tip and enabled capture time are sent separately. Stripping metadata does not anonymize image pixels. Faces, documents, signs, private locations, and other visible details still reach your cloud resource.
There is no Expolumi-operated backend, telemetry, prompt log, or response archive. Microsoft's service terms, data-processing, and abuse-monitoring policies apply. Disabling stored completions does not guarantee zero retention.
Temporary files are normally removed after rendering. A crash or deletion failure may leave plug-in temporary files on disk. Applying metadata updates the catalog; Lightroom's own automatic XMP-writing setting can independently write changes to disk. See privacy and data handling.
Prepare for publishing
Expolumi Alamy and Dreamstime Publisher from version 1.1, and Getty and Shutterstock Publisher (all coming soon), render a JPEG with your catalog metadata, so applied AI metadata is included. Alamy and Dreamstime Publisher 1.0 send original JPEGs unchanged: save the metadata into your finished JPEG first and inspect the file's embedded tags.
Never submit the reduced analysis preview. Categories, releases, and final submission remain agency-specific steps. AI cannot determine copyright, release requirements, or whether a photo will be accepted.
Costs & troubleshooting
Microsoft bills usage to your own resource. Check usage and billing during your first trials. Budget alerts are not real-time hard spending caps. Canceled, failed, or timed-out requests may already have been processed and billed. Repeating a request is not deduplicated.
Only HTTP 429 throttling responses are retried automatically, up to three retries per photo, with bounded waits that can be canceled. Other HTTP errors, network failures, refusals, and invalid output stop the operation. Cancellation cannot recall a request already sent.
- Configure Foundry first: check the resource endpoint, deployment, saved key, and local encrypted storage.
- Access denied: check your resource key, authentication policy, network access, and firewall.
- Deployment not found: use the deployment name, not merely the model name, on the matching resource.
- Request rejected: check image input, strict structured-output support, request compatibility, and service health.
- Render or apply failed: check photo availability, disk access, catalog contention, and changed metadata.
Close Lightroom before replacing the complete plug-in folder. Forget the key before removal; removal does not undo catalog edits. Rotate compromised keys in Azure as well.
After updating Lightroom, your operating system, or the plug-in, try one photo and check its preview and saved metadata before resuming your workflow.
Third-party software
The plug-in includes dkjson by David Heiko Kolf under the MIT license, retained in its bundled source.
Support & feature requests
Something not working as described here? Open a support case. Have an idea? Request a feature, or ask a question in Discussions.
These are public on GitHub and need a GitHub account. Leave out passwords, keys, account IDs, and private file paths.
