<?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: biuta666</title>
    <description>The latest articles on DEV Community by biuta666 (@biuta666).</description>
    <link>https://dev.to/biuta666</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%2F4031590%2F44c62385-7f83-4cee-913f-a60aecd2db24.png</url>
      <title>DEV Community: biuta666</title>
      <link>https://dev.to/biuta666</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/biuta666"/>
    <language>en</language>
    <item>
      <title>I Found a Hidden Layer Inside AI Images</title>
      <dc:creator>biuta666</dc:creator>
      <pubDate>Sun, 19 Jul 2026 10:46:26 +0000</pubDate>
      <link>https://dev.to/biuta666/i-found-a-hidden-layer-inside-ai-images-3go7</link>
      <guid>https://dev.to/biuta666/i-found-a-hidden-layer-inside-ai-images-3go7</guid>
      <description>&lt;h1&gt;
  
  
  I Found a Hidden Layer Inside AI Images
&lt;/h1&gt;

&lt;p&gt;&lt;em&gt;The PNG file was quietly storing the entire workflow.&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;A few weeks ago, I found an image I had generated that I really liked.&lt;/p&gt;

&lt;p&gt;The problem was: I had no idea how I made it.&lt;/p&gt;

&lt;p&gt;I didn't remember the model. The LoRA. The prompt. The seed.&lt;/p&gt;

&lt;p&gt;I assumed the workflow was lost.&lt;/p&gt;

&lt;p&gt;Then I opened the PNG file.&lt;/p&gt;

&lt;p&gt;Inside was something I didn't expect.&lt;/p&gt;

&lt;h2&gt;
  
  
  The File Knew More Than I Did
&lt;/h2&gt;

&lt;p&gt;The image was carrying its own production history.&lt;/p&gt;

&lt;p&gt;Buried inside the PNG metadata was the complete generation record:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The exact checkpoint model name&lt;/li&gt;
&lt;li&gt;The prompt and negative prompt&lt;/li&gt;
&lt;li&gt;Every LoRA and its weight&lt;/li&gt;
&lt;li&gt;The seed value&lt;/li&gt;
&lt;li&gt;The sampler and scheduler settings&lt;/li&gt;
&lt;li&gt;The CFG scale and step count&lt;/li&gt;
&lt;li&gt;In some cases, the full workflow graph&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The image was not just an image. It was a self-contained archive of everything that created it.&lt;/p&gt;

&lt;p&gt;And there was no way to read it back.&lt;/p&gt;

&lt;h2&gt;
  
  
  Opening the Container
&lt;/h2&gt;

&lt;p&gt;Most developers know that PNG files can store text metadata. That's how cameras embed EXIF data, and how Photoshop saves layer info.&lt;/p&gt;

&lt;p&gt;AI generation tools like ComfyUI and AUTOMATIC1111 use the same mechanism.&lt;/p&gt;

&lt;p&gt;When you generate an image, the tool writes its entire internal state into the file. The workflow JSON, the prompt text, the model references — it's all there, stored in standard PNG text chunks.&lt;/p&gt;

&lt;p&gt;The data has been there the whole time. It just wasn't easy to extract.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Did About It
&lt;/h2&gt;

&lt;p&gt;I built a small tool that reads this hidden layer and reconstructs what it finds.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;ash&lt;br&gt;
pip install ai-artifact-inspector&lt;br&gt;
artifact inspect generated_image.png&lt;br&gt;
&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;It prints everything the file knows about itself:&lt;/p&gt;

&lt;p&gt;`&lt;br&gt;
File:     generated_image.png&lt;br&gt;
Source:   ComfyUI&lt;/p&gt;

&lt;p&gt;Generation:&lt;br&gt;
  Model:   sd_xl_base_1.0&lt;br&gt;
  Prompt:  cyberpunk girl in rain, neon lights, 8k&lt;br&gt;
  Seed:    88392147&lt;br&gt;
  Steps:   20&lt;br&gt;
  CFG:     7.0&lt;br&gt;
  LoRA:    neon_style_v2 (0.8)&lt;br&gt;
`&lt;/p&gt;

&lt;p&gt;It can also reconstruct the workflow graph from the same data:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;ash&lt;br&gt;
artifact inspect generated_image.png --graph&lt;br&gt;
&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This outputs a visual diagram of the generation pipeline. A single PNG becomes a readable map of how it was created.&lt;/p&gt;

&lt;p&gt;Everything runs locally. No uploads, no cloud.&lt;/p&gt;

&lt;h2&gt;
  
  
  What It Can Currently Understand
&lt;/h2&gt;

&lt;p&gt;Right now it reads ComfyUI PNGs and AUTOMATIC1111 outputs. It can scan entire directories at once and export results as JSON.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why This Matters
&lt;/h2&gt;

&lt;p&gt;I think we're at the beginning of a shift in how we think about generated files.&lt;/p&gt;

&lt;p&gt;An image created by a human with a camera is a final output. What matters is what's in the frame.&lt;/p&gt;

&lt;p&gt;An image created by an AI is different. The output is only half of what matters. The other half is the process — the model, the parameters, the seed, the workflow.&lt;/p&gt;

&lt;p&gt;That information is currently hidden inside the file format, invisible to the person looking at the image.&lt;/p&gt;

&lt;p&gt;In the future, we may not think of an AI image as a final output at all. We may think of it as an artifact — something that contains both the result and the complete process that created it.&lt;/p&gt;

&lt;p&gt;This tool is a small step toward making that visible.&lt;/p&gt;




&lt;p&gt;&lt;a href="https://github.com/biuta666/ai-artifact-inspector" rel="noopener noreferrer"&gt;https://github.com/biuta666/ai-artifact-inspector&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;MIT. Zero dependencies. All local.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>python</category>
      <category>cli</category>
    </item>
  </channel>
</rss>
