DTC Wayne

AI can upload images. How does it prove it picked the right version?

Wayne · 2026-07-30 · #shopify #ai-agent #image-automation #practical-guide

After I updated a localized PSD, I had an AI re-export 10 Shopify images. It overwrote the old files and reported that it was done. One specific question stopped me: were the files it was about to upload actually the version I had approved?

The filenames were the same as the old images, and the thumbnails looked close enough. An AI saying “completed” could not tell me whether it had selected the new export, the old export, or a version from somewhere in between.

This takes about seven minutes to read. It gives you a no-code way to check image versions, plus a Prompt you can give an AI so it reconciles every file before upload.

What can an AI use to prove it is done?

I started with the easiest signals: filenames, folders, modified times, dimensions, and thumbnails.

A filename is like the label on a cardboard box. It can be copied, and an old file can overwrite a newer one. A recent modified time may only mean that a file was copied, unzipped, or synced recently. Dimensions can catch an obvious error, such as an image changing from 1200 x 1500 to 300 x 300, but two different images can still have the same dimensions.

Visual review can catch incorrect copy and tell you whether an image fits the article. It cannot answer another question: do two files that look the same contain exactly the same data?

I did not need the AI to repeat that it had chosen correctly. I needed evidence that did not depend on its own report. If any upload candidate had changed from the version I approved, the workflow had to stop by itself.

That is where a hash becomes useful.

How can a hash show that the AI picked the right file?

A hash is easiest to understand as a file fingerprint, though that is only an analogy. SHA-256 is the method that calculates the fingerprint: it reads every byte in a file and returns a fixed-length string.

The same file produces the same SHA-256 every time. Change even one pixel in an image and the result will usually become a completely different string.

Two image files share the same filename and dimensions but have different SHA-256 values because their contents differ.
The filename and dimensions can match while the file contents, and therefore the SHA-256 values, differ.

In practice, I calculate SHA-256 for the images that I have confirmed are correct and save the results as a baseline manifest. The AI calculates the upload candidates again before upload. Matching results show that the candidate file bytes have not changed from the approved version. One mismatch stops the upload and sends the file back to me for review.

Why did 15 records produce only 13 hashes?

My list had 15 records: one original PSD before processing, the same original PSD after processing, one localized PSD, 10 exported images, and two full preview images.

It ended with 13 distinct hashes. The original PSD had the same hash before and after processing, so its contents had not changed between those two points. The two full preview images also had the same hash, which meant they contained the same data. Fifteen records included two duplicate pairs, leaving 13 distinct values.

Fifteen hash records contain two duplicate pairs, leaving thirteen distinct SHA-256 values.
Matching hashes show matching file contents. They do not show that the design itself is correct.

There is one prerequisite. I must decide which batch is correct before calculating hashes. If I start from the wrong batch, hashing will only prove, very accurately, that later files match the wrong version.

What does hashing check, and what does it leave open?

At first I treated a matching hash as a complete image check. After looking at the workflow again, an ecommerce image really has three separate questions:

  1. Is the content right? Does the image match this section of the article, with correct copy and layout?
  2. Is the version right? Is the file the AI plans to upload the version I just approved?
  3. Is the upload right? Does the Shopify page finally reference this image rather than an old URL or another version generated by the platform?

A hash answers only the second question. Someone still needs to look at the image for the first one. The third question requires a page check after upload.

Three checks for an ecommerce image: content review, local version verification with SHA-256, and post-upload page verification.
Hashing verifies the middle layer. Content review and post-upload page verification remain separate checks.

Do not want to study SHA-256? Send this Prompt to your AI

You can paste this into Codex, Claude Code, Cursor, OpenCode, or any AI tool that can read local files. If ChatGPT cannot directly access files on your computer, it should switch to teaching one action at a time.

Shopify image version-check Prompt
Show the full Prompt
You are my Shopify image version-check assistant. I do not write code. Guide me step by step to confirm whether the images an AI plans to upload are the correct version I just approved.

Before starting, ask me these four questions. Do not run anything yet:

  1. Am I using Windows or macOS?
  2. Can you directly read my local files? If not, teach me only one action at a time.
  3. Which folder contains the PSDs or images I have already confirmed are correct?
  4. Which folder contains the images prepared for Shopify upload?

Use four steps for the full process:

Step 1: Confirm the content

  • Ask me to open a preview of every image and confirm the copy, layout, and matching article section one by one.
  • If you can inspect images, help me check them. If you cannot, give me a checklist for each image.
  • Do not create a baseline manifest until I explicitly say, “This batch is confirmed correct.”

Step 2: Create a file manifest

  • Calculate SHA-256 for every confirmed image.
  • Record the filename, file size, image width and height, and SHA-256 in manifest.json.
  • Find duplicate files with matching hashes and explain in plain language why they are duplicates.
  • Record relative filenames only. Do not expose my brand name or full local paths.

Step 3: Check again before upload

  • Calculate SHA-256 for the upload candidates again and compare every item with manifest.json.
  • If a file is missing, a new file appears, or a hash differs, stop immediately. Do not continue to upload.
  • Use a table to show which files match, which differ, and which images I need to open for manual review.

Step 4: State the result

  • When content has been manually confirmed, output CONTENT_CONFIRMED.
  • When local files completely match the manifest, output LOCAL_FILES_CONFIRMED.
  • Before Shopify upload has happened, explicitly output REMOTE_NOT_VERIFIED. Do not claim that the remote result is verified.

Safety rules:

  • Do not delete, move, rename, or upload any file unless I approve that action separately.
  • Do not upload images to a public online hashing website.
  • Give me only one action at a time, then wait for my reply, “Done,” before continuing.
  • The first time you use a technical term, explain it in one plain-language sentence.

Now ask me the four questions above.

Want to see what the AI does underneath? Expand for six lines of code.
import hashlib
from pathlib import Path

def sha256(path):
    return hashlib.sha256(Path(path).read_bytes()).hexdigest()

print(sha256("product-image.jpg"))

This code reads the full image file and calculates its SHA-256. It does not decide whether the file is correct or stop an upload. It still needs to compare its result with the record in manifest.json and stop when the values differ.

Where is it better than visual review, and where is it weaker?

I no longer choose between visual review and hashing. They check different things.

MethodWhat it can showWhat it cannot show
Filename and folderWhere a file is stored and what it is calledWhether its contents were replaced
Modified time and dimensionsObvious anomalies and incorrect specificationsWhether it is the version I approved
Visual previewCopy, layout, and whether the image matches the articleWhether two files have identical underlying contents
SHA-256Whether file contents changedWhether the design is correct or the image looks good

SHA-256 does not encrypt an image, and it cannot reconstruct an image from a hash. Different files can technically produce the same hash, which is called a collision. The chance is close enough to ignore for ordinary Shopify image reconciliation, but it is not literally impossible.

This did not verify the Shopify result yet

This time I completed only the local file check. I had not uploaded to Shopify, so the conclusion could only be LOCAL_FILES_CONFIRMED, never a claim that the remote result was verified.

Any later upload check also has to define what it compares. Shopify or a CDN, a service that distributes images quickly to visitors, may recompress an image, change its format, or create a thumbnail. The processed file can look close to the original while its hash changes, so it should not be compared blindly with the local original.

Hashing is not connected to every image upload workflow I use. Some localized image deployments calculate SHA-256 again before upload and stop on a mismatch. The broader image upload workflow does not yet apply the check everywhere.

What I care about is whether an AI can leave evidence after it says it is done, evidence that does not depend on its own wording. A person checks the image content. A hash checks the file version. A page check verifies the upload result. Keeping those checks separate shows exactly which step has actually passed.

← Back to home