Yes. AI can draft alt text, descriptive filenames and captions straight from the images, about ten at a time, but it makes mistakes you only see by looking: wrong counts, invented details, guesses about people. So check every image you feature, plus a random sample of the rest, before anything goes live.
The job depends on where the images end up. The 300 pictures delivered to a couple in a private gallery need sensible filenames and little else. The 25 you publish on a portfolio page need all three: alt text for accessibility and search, a caption for people, and a filename that is not IMG_4821. Doing the full job on 25 images is quicker than doing it badly on 300, and it is where most of the benefit sits.
What do filenames, alt text and captions each have to do?
They are three different texts for three different readers, and mixing them up is the commonest reason AI output disappoints. Google's own image guidance says the filename gives "very light clues" about the subject, so it should be short but descriptive: its example is my-new-black-kitten.jpg rather than IMG00023.JPG, and it says to avoid names such as image1.jpg. It calls alt text the most important attribute for image metadata, useful to people using screen readers as well as to search, and it warns against keyword stuffing. It also says Google gets context from captions and from the text around an image. You can read all of it on Google's image SEO page.
| Text | Who reads it | What it must do | What the assistant must not do |
|---|---|---|---|
| Filename | You, and a little for search | Say what the picture is in three to five hyphenated words | Add names, dates or places you have not approved |
| Alt text | Screen-reader users, search engines, anyone whose images fail to load | Describe what is visible and relevant in one plain sentence | Guess identities, relationships or feelings; stuff keywords |
| Caption | Every visitor, as visible text | Add what the picture alone does not say, in your tone | Invent facts, or sound like a greetings card |
The W3C's alt decision tree gives the rule behind the middle row. A photograph that contributes meaning to the page is informative, and it needs a brief description that conveys that meaning. A purely decorative image gets an empty alt attribute. In a portfolio the photographs are the content, so almost all of them are informative. For general alt-text practice outside weddings, AI alt text: how to generate and check image descriptions is the broader tutorial; this one stays with a photographer's gallery.
How should 300 wedding images be named?
Use two layers. The archive name never changes and exists so that you and the album designer can find things. The web filename exists for the images you publish, and only for those. Here is a scheme with a job code, a moment number to keep album order, and the camera's own sequence number:
| Archive name | Web filename | What it shows |
|---|---|---|
| W2614_01-getting-ready_0031.jpg | barn-wedding-getting-ready-dress-detail-01.jpg | A dress hanging by a window |
| W2614_02-ceremony_0187.jpg | barn-wedding-ceremony-vows-01.jpg | The vows |
| W2614_03-groups_0252.jpg | barn-wedding-family-group-lawn-01.jpg | A family group on the lawn |
| W2614_04-couple_0301.jpg | barn-wedding-couple-portrait-golden-hour-01.jpg | Couple portrait in evening light |
| W2614_05-speeches_0344.jpg | Not published | A speech |
| W2614_06-first-dance_0412.jpg | barn-wedding-first-dance-string-lights-01.jpg | The first dance |
| W2614_07-party_0520.jpg | Not published | The dance floor |
The moment numbers are the useful part: sorted alphabetically, the files fall into story order. The web names carry no couple's names and no date. Names and dates are the couple's to share, and a filename is public text. "Barn-wedding" describes a type of venue, so it adds search relevance without naming a place.
Group the 300 by capture time in your editing software, not with the assistant. OpenAI's help page says ChatGPT does not process original file names or metadata, so it cannot see when a frame was taken, and a visual guess about "ceremony" versus "speeches" is weaker than the clock on the camera. Once the order is fixed, a bulk renamer in your catalogue software can apply the archive scheme. For the web names, keep a sheet with one row per published image and let the assistant fill the words column. If you want a script that renames files from that sheet, ask the assistant to write one, test it on five copies first, and never run it on originals. Product photography automation: batch backgrounds, resizing and file names covers the same mechanics for shop images.
How do I get alt text I can trust from ChatGPT, Claude or Gemini?
Prepare the pictures before you open a chat. Export web-size JPEG copies with the long edge around 1,600 pixels. They upload faster and sit well inside the limits. ChatGPT accepts PNG, JPEG and non-animated GIF at up to 20 MB each, and gives no fixed image count, saying the number depends on image size and the text around it. Claude's help page allows up to 20 files per chat, with images up to 8,000 by 8,000 pixels, and recommends images of at least 1,000 by 1,000 pixels, which a 1,600-pixel export usually meets; Anthropic's developer documentation caps each image on claude.ai at 10 MB. Gemini takes up to 10 files per prompt. So batches of ten are a safe working size on all three. Because Claude's cap is per chat, a 300-image job there means a fresh chat every two batches, so keep your instructions in a Claude Project and paste them only once.
The next problem is bookkeeping. Because ChatGPT does not process file names, you cannot rely on it to say which description belongs to which file. Number the images in upload order and ask for a table keyed by that number. Check the first and last row of every batch against the pictures, since a shifted list puts every description on the wrong photograph. A prompt that works:
You are writing text for a wedding photographer's portfolio page.
I will upload 10 photos in order. Return a table, one row per photo:
number | alt text | caption | filename words
Alt text rules: describe only what is visible. One sentence of about
100 to 125 characters. Start with the subject, not "photo of" or
"image of". Include the setting and one distinguishing detail. Do not
guess names, ages, relationships, religion, nationality or feelings
beyond what is plainly visible (smiling is fine; "overjoyed" is not).
Never name anyone. Do not use the words beautiful or stunning.
If you cannot tell what something is, write UNSURE.
Caption rules: one short sentence, calm and documentary in tone.
Add something the picture does not already show only if I supply it
below; otherwise keep the caption plain.
Filename words: three to five lowercase words, hyphenated, no names
or places.
Context from me: a summer wedding at a barn venue. Refer to "the
couple" unless I say otherwise. Evening light for photos 8 to 10.
Here is what a batch looks like in practice (illustrative), with the problems a reviewer would find:
| # | Draft alt text | Problem | Corrected |
|---|---|---|---|
| 1 | A couple dance in a barn lit by string lights while guests watch from the edge of the floor | None found | Kept as drafted |
| 2 | Close view of peonies held against a cream dress | Species guessed; they were ranunculus | Close view of a pink bouquet held against a cream dress |
| 3 | Three bridesmaids in green dresses laugh while one adjusts the bride's veil | There are four people, and the roles are assumed | Four women in green dresses laugh while one adjusts the bride's veil |
| 4 | A guest wipes a tear of joy during the ceremony | Feeling inferred | A guest in the front row raises a hand to their cheek during the ceremony |
| 5 | Groomsmen in navy suits walk along a country lane at sunset | Sunset guessed; the light is early evening | Groomsmen in navy suits walk along a lane in warm evening light |
The pattern across those five is typical: counts drift, species and roles are guessed, and emotions are read into faces. None of it is exotic, so a quick look catches it. OpenAI's help page lists accuracy and counting among the limits of image input, saying that descriptions and captions can be incorrect and that counts of objects may be approximate. Anthropic's vision documentation says Claude can give approximate counts too, can make mistakes with low-quality, rotated or very small images, and cannot be used to name people, so it will not tell you who anyone is. Read those limits as a reason to review, not as a reason to avoid the tools.
What should wedding alt text say, and what should it avoid?
A workable length is one sentence of about 125 characters or fewer. That is a rule of thumb, not a standard; Shopify, for one, recommends 125 characters and allows 512. Lead with the subject, add the setting and one detail that separates this frame from the next, and drop the words "image of". Compare these pairs:
| Weak | Better | Why |
|---|---|---|
| Bride and groom smiling | The couple laugh together on a gravel path outside a barn | Says where, and why the frame is different |
| Beautiful wedding photography barn wedding photographer | Couple's first dance beneath string lights in a barn | Keyword stuffing becomes a description |
| Photo of a man in a suit | A groom's father adjusts his tie in the doorway of the barn | Only if you know the relationship; otherwise "a man in a navy suit adjusts his tie" |
| Tearful bride with her mother | Two women embrace beside the ceremony aisle | Removes inferred emotion and relationship |
| Guests | Guests clap as the couple walk back along the aisle | One verb makes the moment |
Two more rules help. Tell the assistant how the couple describe themselves, or have it use "the couple", because "bride and groom" is an assumption for some weddings. And name people only when they have agreed to be named in public text. If you shoot with a second photographer, a plain label such as "the couple's first dance" is easier to keep consistent than names in 300 filenames.
How do I keep captions human instead of syrupy?
Left to itself, the assistant writes the caption of a greetings card: "Pure magic as love takes centre stage". Fix that at the source by giving it two or three captions you wrote yourself and a list of banned phrases (magic, pure joy, love is in the air, forever, stunning, dreamy). Also decide where captions earn their place. On a page of 25 images, 10 to 12 captions that add something, such as a detail of the day, read better than 25 that restate the picture.
| Assistant's default | After your edit |
|---|---|
| Pure magic as the couple share their first dance under the stars | The first dance, with the band's last song of the night |
| A moment of joy that will last forever | Her grandfather arrived on the morning of the wedding and stayed until the end |
| Dreamy golden hour portraits | Ten minutes of evening light before dinner |
The right-hand captions contain facts only you know: the band, the grandfather, the ten minutes. That is the division of labour. The assistant matches tone and trims; you supply the detail, and the couple's permission for anything personal. For longer voice work, Claude for photographers: contracts, client emails and captions tested shows how a photographer's style can be taught to the model.
How do I sample-check 300 images without reading every line?
Treat the 300 as 30 batches of ten and check in layers. First, read every row for any image you feature (the home page, the top of the gallery, anything you would send a prospective couple) and any frame containing text, signage, children or a religious or cultural ceremony. Second, from every batch, check three rows: the first, the last and one drawn at random. That is 90 rows and takes about half an hour. Third, run mechanical checks in the sheet: a LEN column to flag alt text over 125 characters, and a search for the words you banned.
Score each checked row against a short list: wrong count, wrong setting or object, invented text, guessed identity or feeling, banned word, and mapping (the row describes a different photo). Then apply two rules. Any mapping error means discarding the whole batch and redoing it, because every row after the slip is suspect. More than one other failure in the three rows you checked means re-running that batch with a stricter prompt and checking five rows next time. Here is a worked scorecard for an illustrative gallery:
| Failure type | Rows found | Action |
|---|---|---|
| Mapping (batches 7 and 19) | 2 | Both batches redone in full |
| Wrong count | 4 | Corrected; prompt now says "count people twice or write UNSURE" |
| Invented detail (flowers, jewellery, a sign) | 3 | Corrected; two batches re-run |
| Guessed relationship or feeling | 1 | Corrected; rule added about family roles |
| No failure | 80 | None |
| Total checked | 90 (10 failed, about 11%) | Re-checked 5 rows in each re-run batch |
An 11% failure rate sounds high, yet every failure was visible in a thirty-second look, which is the point of the sample. If the rate had been 30%, the better move would be a shorter batch size and a clearer context line, not more checking. Whatever the rate, never publish a row that you have not looked at next to its photograph.
What about faces, guests and children?
Uploading wedding photographs to an AI service sends images of identifiable people, including guests who never agreed to anything and often children, to a third party. Settle three things before you start. Your contract and privacy notice should say that you use AI tools on images, and what the couple can do if they would rather you did not; AI disclosure for photographers: contract and gallery wording gives wording. If you have clients covered by data-protection law such as the GDPR, GDPR for photographers: client galleries, contracts and AI tools covers what changes. And check the plan you are using: business plans do not train on your content by default, whereas on consumer plans you need to find the model-training switch in privacy settings and turn it off. OpenAI says a temporary chat is not used to improve its models while it stays temporary, and that a copy may be kept for up to 30 days for safety purposes.
Some practical habits follow. Upload web-size copies, not originals, and use export settings that remove location data. Skip images where a guest or a child has asked not to be shown, and anything the contract excludes. Do not ask the assistant to name anyone, and delete any name it offers. Remember that alt text and filenames are public: a couple's names, date and venue together say more than they may want a stranger to know, so treat that combination as their decision rather than a default.
What does it cost, and is the API worth it?
For one wedding at a time, the chat apps are enough and the cost is a subscription you may already hold. The time is the real cost: with ten images a batch, a minute to upload and prompt, two minutes to read, and a minute to check, 30 batches take roughly two hours. That is a lot of time for a wedding where you will publish 25 images, so put the full alt-text and caption pass on those 25 (three batches, plus checking) and give the other 275 their archive names and nothing more, unless the whole gallery is public.
If you do repeat this across many galleries, the API is cheap. Anthropic's documentation shows an image of 1,920 by 1,080 pixels costing about 1,560 visual tokens on its standard tier, which at $1 per million input tokens for a small model tier works out at roughly $1.56 per thousand images. So 300 web-size images cost about $0.47 in input. Add about 120 tokens of text a row at $5 per million output tokens, another $0.18, and the total is about 65 cents, or roughly half that through a batch interface that halves prices. Newer models on Anthropic's high-resolution tier can use up to roughly three times as many tokens for the same image, so check the current price and model before relying on that sum. It is not the barrier. Someone has to write and test the script, and your sample check does not go away.
How do I put the results into the site and the archive?
Keep everything in one sheet with these columns: archive name, web filename, alt text, caption, checked by, date checked. Only rows marked as checked move on. Rename copies of the files from the web filename column, upload them to your gallery builder, and paste alt text and captions into each image's fields. Your builder will have an alt text box per image, and a separate caption or title field; if it does not, that is a reason to look at other tools, covered for Squarespace in Squarespace AI SEO: page titles, descriptions and alt text. Keep the sheet afterwards. When you redesign the site in two years, it is the only record of which text belongs to which image.
Questions photographers ask about AI-written alt text
Should alt text include my keywords, such as wedding photographer?
Only where they describe the image. Google's guidance warns against stuffing alt text with keywords and asks for useful, information-rich text in the context of the page. A natural description such as a couple's first dance in a barn lit by string lights carries the relevant words. A trailing list of search phrases does not, and it reads badly through a screen reader.
Do I need alt text on the private client gallery?
Rarely. Alt text matters mainly on public web pages, where it serves screen-reader users and search. A private gallery shared by link needs sensible filenames and an order that suits the album. If you embed a full-wedding gallery on a public page, treat it like any other public page and write the alt text.
Will better alt text improve my search rankings?
Google says alt text helps it understand what an image shows, and it also serves people who use screen readers. Google does not promise a ranking effect, so write the text for the people who need it first and treat any search benefit as a bonus. A page with weak copy and slow images will not be rescued by 25 neat descriptions.
What if a couple does not want AI used on their photos?
Then do not upload them, and write the text yourself or use a short template. Put your AI practice in your contract and privacy notice so the question is answered before the wedding, not after, and add an opt-out box to the booking form so the couple's choice is on record.
Further reads
- ChatGPT for Photographers: What to Hand Over and What to Keep — Which photography jobs to hand to ChatGPT and which to keep.
- Pixieset or Pic-Time for Photographers? Plans, Fees and AI Compared — Gallery platforms compared on plans, fees and AI features.
- How to Use AI in a Photography Business: Start With Admin, Not Editing — Where a photography business should start with AI.
- Best AI Software for Photographers 2026: Choose by Genre and Volume — Choose photography software by genre and volume.
- Photographer Gallery Delivery: Reminders and Print Upsells With AI — What happens after the gallery is delivered.
- Best AI Photo Editor for Photographers: Cull, Edit or Retouch First? — Choose an AI photo editor by workflow stage: time a paid gallery, find the slowest stage, and test one tool on the same wedding shoot.
- ChatGPT Prompts for Wedding Photographers: Timelines, Groups, Albums — Eight copy-ready prompts for the planning side of a wedding: timeline, family groups, album spreads, captions and proof-round replies, with sample outputs.
- AI Tools and AI Development: The Complete 2026 Guide — the AI hub, including every tutorial in the AI-for-business series.
Sources: Google Search Central image SEO guidance, W3C Web Accessibility Initiative alt decision tree, OpenAI's ChatGPT image inputs FAQ, Anthropic's vision documentation and file-upload help page, OpenAI's Temporary Chat FAQ and Google's Gemini upload help page, all read in October 2026.