<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: 饭米粒（程序员小饭）</title>
    <description>The latest articles on DEV Community by 饭米粒（程序员小饭） (@_3330b5103afff1).</description>
    <link>https://dev.to/_3330b5103afff1</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4170987%2F24886ca4-160b-4199-aa19-b5c411258ddd.jpg</url>
      <title>DEV Community: 饭米粒（程序员小饭）</title>
      <link>https://dev.to/_3330b5103afff1</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/_3330b5103afff1"/>
    <language>en</language>
    <item>
      <title>How I Built an AI-Powered Real Estate Photo Editing Workflow</title>
      <dc:creator>饭米粒（程序员小饭）</dc:creator>
      <pubDate>Tue, 13 Oct 2026 15:44:51 +0000</pubDate>
      <link>https://dev.to/_3330b5103afff1/how-i-built-an-ai-powered-real-estate-photo-editing-workflow-8g1</link>
      <guid>https://dev.to/_3330b5103afff1/how-i-built-an-ai-powered-real-estate-photo-editing-workflow-8g1</guid>
      <description>&lt;h1&gt;
  
  
  How I Built an AI-Powered Real Estate Photo Editing Workflow
&lt;/h1&gt;

&lt;p&gt;Real estate photography has an interesting problem: a photo can be technically correct and still look terrible in a property listing.&lt;/p&gt;

&lt;p&gt;A room might be beautifully designed, but the camera captures a dark interior and an almost completely white window. The walls look slightly yellow, vertical lines appear tilted, and shadows hide important details.&lt;/p&gt;

&lt;p&gt;Professional photographers know how to fix these problems. But editing dozens or hundreds of listing photos manually takes time.&lt;/p&gt;

&lt;p&gt;As an independent developer, I became interested in a simple question:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Could I build a workflow that automates most of the repetitive editing while still giving users control over the final result?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That question led me to work on &lt;a href="https://listingpolish.online/" rel="noopener noreferrer"&gt;ListingPolish&lt;/a&gt;, an AI-powered real estate photo editing tool.&lt;/p&gt;

&lt;p&gt;In this article, I'll explain the engineering decisions behind this kind of workflow, the problems it needs to solve, and why I think quality control matters as much as image enhancement.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Real Estate Photos Have Their Own Challenges
&lt;/h2&gt;

&lt;p&gt;At first glance, real estate photo editing looks like a standard image enhancement problem.&lt;/p&gt;

&lt;p&gt;Increase brightness, adjust contrast, correct colors, and you're done.&lt;/p&gt;

&lt;p&gt;Unfortunately, it's not that simple.&lt;/p&gt;

&lt;h3&gt;
  
  
  Blown-out windows
&lt;/h3&gt;

&lt;p&gt;This is one of the most common problems in interior photography.&lt;/p&gt;

&lt;p&gt;The camera exposes for the darker room, leaving the outdoor view overexposed.&lt;/p&gt;

&lt;p&gt;Simply reducing the brightness doesn't necessarily recover missing information.&lt;/p&gt;

&lt;p&gt;For a good result, the editing system needs to handle the difference between interior and exterior exposure intelligently.&lt;/p&gt;

&lt;h3&gt;
  
  
  Uneven lighting
&lt;/h3&gt;

&lt;p&gt;A room may have bright areas near windows and dark corners elsewhere.&lt;/p&gt;

&lt;p&gt;A global brightness adjustment can make one area better while making another worse.&lt;/p&gt;

&lt;h3&gt;
  
  
  Color casts
&lt;/h3&gt;

&lt;p&gt;Indoor lighting can introduce yellow, green, or blue color casts.&lt;/p&gt;

&lt;p&gt;These are particularly noticeable on white walls, ceilings, and neutral furniture.&lt;/p&gt;

&lt;h3&gt;
  
  
  Perspective distortion
&lt;/h3&gt;

&lt;p&gt;Wide-angle lenses are useful for photographing interiors, but they can make vertical lines appear tilted.&lt;/p&gt;

&lt;p&gt;In real estate photography, correcting these lines can make a significant difference.&lt;/p&gt;

&lt;p&gt;These issues convinced me that a generic "make this photo look better" button isn't enough.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Why I Chose APIs Instead of Training a Model
&lt;/h2&gt;

&lt;p&gt;When building an AI image product, one of the first decisions is whether to develop a custom model or use an existing service.&lt;/p&gt;

&lt;p&gt;For an independent developer, the trade-offs are important.&lt;/p&gt;

&lt;p&gt;Training a specialized model requires datasets, computing resources, evaluation pipelines, and ongoing maintenance.&lt;/p&gt;

&lt;p&gt;Using an established image processing API offers a much faster path to building a usable product.&lt;/p&gt;

&lt;p&gt;It also lets me focus on the parts that directly affect the user experience:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Uploading and managing multiple photos&lt;/li&gt;
&lt;li&gt;Coordinating processing requests&lt;/li&gt;
&lt;li&gt;Evaluating output quality&lt;/li&gt;
&lt;li&gt;Handling failed processing attempts&lt;/li&gt;
&lt;li&gt;Presenting before-and-after comparisons&lt;/li&gt;
&lt;li&gt;Managing downloads and processing costs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal isn't to build another image generation model.&lt;/p&gt;

&lt;p&gt;It's to build a reliable product around image processing capabilities that already exist.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Designing the Processing Workflow
&lt;/h2&gt;

&lt;p&gt;The workflow I designed for ListingPolish follows this structure:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User uploads photos
        |
        v
Validate input files
        |
        v
Submit enhancement job
        |
        v
Receive processed preview
        |
        v
Run quality checks
        |
        +---- Acceptable ----&amp;gt; Show result
        |
        +---- Needs review --&amp;gt; Generate feedback
                                  |
                                  v
                            Retry if supported
                                  |
                                  v
                            Review new result
        |
        v
User reviews comparison
        |
        v
Download final image
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is the workflow architecture I'm working toward, rather than a claim that every quality check or retry path is already fully automated in production.&lt;/p&gt;

&lt;p&gt;The important idea is that image processing shouldn't be treated as a single API call.&lt;/p&gt;

&lt;p&gt;A successful API response only tells us that processing completed.&lt;/p&gt;

&lt;p&gt;It doesn't necessarily tell us whether the output is good.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Why Quality Assurance Is the Interesting Part
&lt;/h2&gt;

&lt;p&gt;Imagine an AI service successfully processes an interior photograph.&lt;/p&gt;

&lt;p&gt;The result is brighter, but the walls now have an unnatural color cast.&lt;/p&gt;

&lt;p&gt;Technically, the processing job succeeded.&lt;/p&gt;

&lt;p&gt;From the user's perspective, it may have failed.&lt;/p&gt;

&lt;p&gt;This distinction matters.&lt;/p&gt;

&lt;p&gt;I think an automated editing workflow should eventually evaluate several dimensions of output quality.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Exposure:&lt;/strong&gt; Are important areas still too dark or overexposed?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Color consistency:&lt;/strong&gt; Do neutral surfaces look natural?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Geometry:&lt;/strong&gt; Are vertical lines reasonably straight?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Image artifacts:&lt;/strong&gt; Did processing introduce visible distortion or unnatural details?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Overall consistency:&lt;/strong&gt; Does the edited image still look like the original property?&lt;/p&gt;

&lt;p&gt;Some checks may be possible using image analysis algorithms. Others may benefit from vision models.&lt;/p&gt;

&lt;p&gt;The difficult part is deciding when the system should accept a result, request another attempt, or ask the user to review it.&lt;/p&gt;

&lt;p&gt;A useful QA system should also avoid unnecessary retries. Reprocessing an image repeatedly can increase cost without improving quality.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. The Importance of Before-and-After Previews
&lt;/h2&gt;

&lt;p&gt;One lesson from thinking through this product is that users need to see what changed.&lt;/p&gt;

&lt;p&gt;A simple result image isn't always enough.&lt;/p&gt;

&lt;p&gt;A before-and-after comparison helps photographers identify:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Whether window details improved&lt;/li&gt;
&lt;li&gt;Whether colors look natural&lt;/li&gt;
&lt;li&gt;Whether shadows contain enough detail&lt;/li&gt;
&lt;li&gt;Whether the overall image feels realistic&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It also makes the tool easier to trust.&lt;/p&gt;

&lt;p&gt;For AI image editing, trust is especially important because a visually attractive result isn't always an accurate result.&lt;/p&gt;

&lt;p&gt;Real estate images should represent the property faithfully.&lt;/p&gt;

&lt;p&gt;Enhancement should improve presentation without inventing features or materially changing the property.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Building Around a Pay-for-Download Model
&lt;/h2&gt;

&lt;p&gt;Another interesting design decision is when to charge the user.&lt;/p&gt;

&lt;p&gt;Some image processing providers support previewing results before charging for the final downloadable image.&lt;/p&gt;

&lt;p&gt;That creates an opportunity for a more user-friendly workflow.&lt;/p&gt;

&lt;p&gt;Instead of requiring payment before users know whether the enhancement worked, the product can allow them to inspect the preview first.&lt;/p&gt;

&lt;p&gt;The challenge is balancing preview quality, processing costs, and abuse prevention.&lt;/p&gt;

&lt;p&gt;Even when the final download is the billable action, uploads, processing requests, storage, and retries may still create infrastructure or provider costs.&lt;/p&gt;

&lt;p&gt;A sustainable product needs to account for those costs.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. What I'd Improve Next
&lt;/h2&gt;

&lt;p&gt;There are several areas I'd like to continue exploring:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Better automated quality checks&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A processing pipeline becomes much more useful when it can identify obvious problems before users notice them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;More useful retry feedback&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Instead of retrying with the same settings, the system should ideally understand what went wrong.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Issue: Interior is still too dark
Suggestion: Improve shadow detail

Issue: Walls have a warm color cast
Suggestion: Adjust white balance

Issue: Vertical lines appear tilted
Suggestion: Apply perspective correction
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;These examples illustrate the kind of structured feedback a future review system could produce.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;More consistent batch processing&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Photographers often need an entire property listing to have a consistent visual style.&lt;/p&gt;

&lt;p&gt;Editing each photo independently can produce inconsistent results.&lt;/p&gt;

&lt;p&gt;Solving that problem could make automated editing substantially more valuable.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Building an AI photo editing tool isn't just about finding the best image processing model.&lt;/p&gt;

&lt;p&gt;The surrounding workflow matters just as much.&lt;/p&gt;

&lt;p&gt;Uploading, previewing, quality checking, retrying, comparing, and downloading are all part of the experience.&lt;/p&gt;

&lt;p&gt;I'm exploring these ideas through &lt;a href="https://listingpolish.online/" rel="noopener noreferrer"&gt;ListingPolish, an AI real estate photo editing workflow&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;For developers building AI-powered image tools, I'm curious:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How do you evaluate the quality of AI-generated or AI-edited images before showing them to users?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Do you rely on automated checks, human review, or a combination of both?&lt;/p&gt;

</description>
      <category>ai</category>
      <category>automation</category>
      <category>buildinpublic</category>
      <category>tools</category>
    </item>
  </channel>
</rss>
