<?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: Yuriy Sydorenko Foutnder | deut.li</title>
    <description>The latest articles on DEV Community by Yuriy Sydorenko Foutnder | deut.li (@yuriy_sydorenko_deut).</description>
    <link>https://dev.to/yuriy_sydorenko_deut</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3786272%2F6fdd5f5b-2974-4530-b373-41e90dd6d748.png</url>
      <title>DEV Community: Yuriy Sydorenko Foutnder | deut.li</title>
      <link>https://dev.to/yuriy_sydorenko_deut</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/yuriy_sydorenko_deut"/>
    <language>en</language>
    <item>
      <title>DEUTLI Extractor V2: Batch Processing, Air-Gapped Environments, and Portable Builds (Update)</title>
      <dc:creator>Yuriy Sydorenko Foutnder | deut.li</dc:creator>
      <pubDate>Mon, 13 Apr 2026 17:15:24 +0000</pubDate>
      <link>https://dev.to/yuriy_sydorenko_deut/deutli-extractor-v2-batch-processing-air-gapped-environments-and-portable-builds-update-39b1</link>
      <guid>https://dev.to/yuriy_sydorenko_deut/deutli-extractor-v2-batch-processing-air-gapped-environments-and-portable-builds-update-39b1</guid>
      <description>&lt;p&gt;In our &lt;a href="https://dev.to/deutli/how-to-extract-prompts-from-comfyui-images-free-png-parser-the-deut-standard-3c3p"&gt;previous post&lt;/a&gt;, we detailed the mechanics of metadata storage in generated PNGs and the concept of the open &lt;code&gt;.deut&lt;/code&gt; format. The fragility of node dependencies and the resulting data loss are well-documented, so let's cut right to the chase.&lt;/p&gt;

&lt;p&gt;We have completely rewritten the architecture and released &lt;strong&gt;DEUTLI Extractor V2&lt;/strong&gt;. What started as a basic client-side parser has evolved into an independent, industrial-grade utility for managing metadata in isolated environments.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb7dhvtrn02gvwtuz60v0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb7dhvtrn02gvwtuz60v0.png" alt="DEUTLI Extractor V2 interface" width="800" height="466"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  What's Under the Hood in V2
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Zero-Install (Portable Binaries):&lt;/strong&gt; We've eliminated the need for local developers to wrestle with Python environment conflicts. V2 ships as compiled, independent executables for three major OS families: Windows (&lt;code&gt;.exe&lt;/code&gt;), macOS (&lt;code&gt;.dmg&lt;/code&gt;), and Linux (&lt;code&gt;.AppImage&lt;/code&gt;). The utility requires no installation or administrator privileges—it runs straight from a removable USB drive.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Visualization and Batch Mode:&lt;/strong&gt; You no longer need to drag and drop files one by one. The built-in Thumbnail Viewer instantly scans your selected directory (even if it contains thousands of heavy PNGs), rendering a grid of your generations. You can extract data selectively or trigger an asynchronous batch mode for the entire folder.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;100% Zero-Telemetry:&lt;/strong&gt; The tool is built for closed studio perimeters (air-gapped workflows). The core runs exclusively on the user's local hardware (CPU/GPU). There are no trackers, network modules, or background pings. Your source files never leave your local drive.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deep Parsing and Sidecar Philosophy:&lt;/strong&gt; The compute core recursively traverses ComfyUI node graphs and Automatic1111/Forge text matrices. The original binary remains untouched. Instead, the extractor drops a lightweight, structured &lt;code&gt;.deut&lt;/code&gt; sidecar file next to it with an identical filename, ready for integration into corporate databases.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Frequently Asked Questions (FAQ) for V2
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Q: Do the portable versions of V2 require an internet connection?&lt;/strong&gt;&lt;br&gt;
A: Absolutely not. The tool is fully autonomous. You can physically unplug your ethernet cable—the batch extraction process will run locally, guaranteeing 100% NDA compliance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: How fast is the batch mode on large directories?&lt;/strong&gt;&lt;br&gt;
A: The architecture is optimized for heavy files. Internal benchmarks show that on standard hardware, parsing a folder of 1,000 images (2-3K resolution) and generating individual &lt;code&gt;.deut&lt;/code&gt; sidecar files takes about 7 minutes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: What happens to the old web version of the extractor?&lt;/strong&gt;&lt;br&gt;
A: It has been updated to V2 and operates as a PWA (Progressive Web App) at &lt;code&gt;extractor.deut.li&lt;/code&gt;. Once the page loads, the interface caches and functions entirely offline. However, for massive end-to-end parsing of entire directories, we highly recommend using the portable desktop binaries.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: Can I embed your parser into my own script?&lt;/strong&gt;&lt;br&gt;
A: Yes. We are strictly open-source. The entire codebase is distributed under the MIT License. You can pull our repository, conduct an independent security audit, compile the application yourself, or extract the parsing logic to integrate into your own custom pipelines.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Links:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Download Portable Builds:&lt;/strong&gt; &lt;a href="https://github.com/deutli/deutli-extractor/releases" rel="noopener noreferrer"&gt;GitHub Releases&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Source Code:&lt;/strong&gt; &lt;a href="https://github.com/deutli/deutli-extractor" rel="noopener noreferrer"&gt;GitHub Repository&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Format Specification:&lt;/strong&gt; &lt;a href="https://deut.li/schemas/v1.1/schema.json" rel="noopener noreferrer"&gt;deut.li&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>automation</category>
      <category>showdev</category>
      <category>tooling</category>
    </item>
    <item>
      <title>How to Extract Prompts from ComfyUI Images: Free PNG Parser &amp; the .deut Standard</title>
      <dc:creator>Yuriy Sydorenko Foutnder | deut.li</dc:creator>
      <pubDate>Wed, 25 Feb 2026 19:00:07 +0000</pubDate>
      <link>https://dev.to/deutli/how-to-extract-prompts-from-comfyui-images-free-png-parser-the-deut-standard-3c3p</link>
      <guid>https://dev.to/deutli/how-to-extract-prompts-from-comfyui-images-free-png-parser-the-deut-standard-3c3p</guid>
      <description>&lt;p&gt;If you work with generative AI (like Stable Diffusion) in production, you regularly need to &lt;strong&gt;extract a prompt from an image&lt;/strong&gt; or view generation settings. The basic workflow is well known: drop a generated PNG into the ComfyUI or Automatic1111 interface to reveal the node network.&lt;/p&gt;

&lt;p&gt;The technical backbone — weights, seeds, and text queries — is physically embedded in hidden &lt;code&gt;tEXt&lt;/code&gt; chunks within the binary file as a massive JSON. While convenient for solo work in the moment, using PNGs as a long-term database for architectural studios or design agencies is a highly fragile pattern.&lt;/p&gt;

&lt;p&gt;This guide explains how our team solved the &lt;strong&gt;PNG metadata extraction&lt;/strong&gt; problem, why we built a free local PNG-parser, and why the visual AI industry needs the &lt;a href="https://github.com/deut-li/open-deut-format" rel="noopener noreferrer"&gt;open &lt;code&gt;.deut&lt;/code&gt; standard&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Trap of ComfyUI Missing Nodes (And Why You Need an Extractor)
&lt;/h2&gt;

&lt;p&gt;The power of the ComfyUI ecosystem lies in custom nodes from the open-source community. The downside of this flexibility is fragile dependencies. Over a year or two, packages update, authors abandon repositories, and backward compatibility breaks.&lt;/p&gt;

&lt;p&gt;If you load an old PNG into a fresh environment, you will likely hit the &lt;strong&gt;ComfyUI Missing Nodes error&lt;/strong&gt; (an interface littered with red blocks).&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Crucial clarification:&lt;/em&gt; &lt;strong&gt;Our tool does not magically fix broken node graphs.&lt;/strong&gt; If a custom node is dead, your visual pipeline won't run. However, the text data itself is not lost — it safely resides inside the file. The actual pain point is &lt;em&gt;accessing that data easily&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;To recall the exact words and weights used for a specific lighting setup, you normally have to:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Waste hours downgrading Python packages to resurrect the old environment.&lt;/li&gt;
&lt;li&gt;Open the binary in a text editor to manually dig through a giant, unreadable &lt;strong&gt;JSON dump&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This is a poor engineering experience. We built a tool to bypass this bottleneck entirely.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Metadata is Stored in a PNG (Technical Context)
&lt;/h2&gt;

&lt;p&gt;To understand extraction, here is a simplified look at the raw byte structure of a generated image. Data is stored in specific text chunks that standard image viewers ignore:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;IHDR... (Standard Image Header)
tEXtprompt... {"1": {"inputs": {"ckpt_name": "model.safetensors"}, "class_type": ...
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You need a dedicated &lt;strong&gt;metadata viewer&lt;/strong&gt; to read this string.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step One: Free Local PNG Metadata Extractor (Client-side)
&lt;/h2&gt;

&lt;p&gt;We solved the immediate utilitarian need: how to quickly read metadata from a file without launching a server environment or writing custom Python scripts?&lt;/p&gt;

&lt;p&gt;On the &lt;a href="https://https://deut.li/#extractor" rel="noopener noreferrer"&gt;deut.li&lt;/a&gt; website, we launched a free &lt;strong&gt;PNG parser&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh60tgssb1hdsgkug1mlx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh60tgssb1hdsgkug1mlx.png" alt="deut.li interface" width="800" height="643"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Zero-server architecture:&lt;/strong&gt; We strictly do not store anything and use no backend. The parser runs entirely locally in your browser (Client-side). Files are never uploaded to our servers, consuming zero external traffic. The script scans the binary, locates the &lt;code&gt;tEXtprompt&lt;/code&gt; marker, cleanly extracts the raw JSON, and converts it into readable text.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcthlv0d3igkm1g5fmuf6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcthlv0d3igkm1g5fmuf6.png" alt="deut.li interface" width="800" height="643"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You instantly get your data back, while the images never leave your local machine. The extracted data is saved in the same directory, sharing the image's name but utilizing the &lt;code&gt;.deut&lt;/code&gt; extension. Inside, it contains structured data in a human-readable format.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faeup4e9tuetvlywc7pta.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faeup4e9tuetvlywc7pta.png" alt="deut.li .deut files alongside with PNGs" width="800" height="647"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Note: As the first step in our product's evolution, a prompt creation assistant is already active in a separate section of our site, allowing you to construct text queries from scratch.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step Two: The .deut Format as a Storage Standard
&lt;/h2&gt;

&lt;p&gt;Extracting raw data is excellent, but storing a corporate prompt database as raw JSON blobs is a bad idea. We didn't need the magic of automatically recognizing other people's graphs; we needed a predictable container.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2n910z06piu585dg33ld.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2n910z06piu585dg33ld.png" alt="deut.li .deut file sample" width="800" height="856"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We formalized the &lt;code&gt;.deut&lt;/code&gt; format. Extracted (or assistant-written) data is saved in this transparent text format.&lt;/p&gt;

&lt;p&gt;The output is a lightweight file weighing just a couple of kilobytes. Let's compare the reliability of storing your intellectual property in a standard PNG versus the &lt;code&gt;.deut&lt;/code&gt; format:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;Standard PNG (ComfyUI / A1111)&lt;/th&gt;
&lt;th&gt;The .deut Format&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Data Preservation&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Vulnerable.&lt;/strong&gt; Metadata is permanently deleted if the image is edited, optimized, or sent as a media file in messengers (Telegram, WhatsApp).&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Stable.&lt;/strong&gt; It is a pure text file that remains intact during transfers and is immune to image compression algorithms.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Ease of Access&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Low.&lt;/strong&gt; Requires launching specific generative AI software, specialized nodes, or using a hex editor to read.&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;High.&lt;/strong&gt; Opens instantly in any standard text editor or IDE on any device, without requiring Python.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Machine-readability &amp;amp; Indexing&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Poor.&lt;/strong&gt; Data is hidden inside a binary blob, making corporate database searches (e.g., Notion, Jira) impossible.&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Native.&lt;/strong&gt; Plain text is instantly indexable, searchable by tags, and natively understood by LLMs and search engines.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Evolution: A professional prompt editor
&lt;/h2&gt;

&lt;p&gt;Extraction and basic storage are just the beginning. Right now, we are developing a full-fledged visual prompt editor where professionals will be able to work with &lt;code&gt;.deut&lt;/code&gt; files manually, building a professional pipeline.&lt;/p&gt;

&lt;p&gt;The tool is being built for designers and architects who need &lt;strong&gt;predictability&lt;/strong&gt;, &lt;strong&gt;versioning&lt;/strong&gt; (the ability to track the history of manual prompt changes — almost like Git for visual artists), &lt;strong&gt;templates&lt;/strong&gt;, and &lt;strong&gt;cryptographic verification&lt;/strong&gt; — a mathematical proof of the prompt's immutability. This is a critical requirement for studios protecting their intellectual property and proving authorship over specific visual generations.&lt;/p&gt;

&lt;h2&gt;
  
  
  Open Architecture
&lt;/h2&gt;

&lt;p&gt;We build &lt;a href="https://deut.li" rel="noopener noreferrer"&gt;deut.li&lt;/a&gt; with an uncompromising approach to data architecture. The &lt;code&gt;.deut&lt;/code&gt; format is completely open.&lt;/p&gt;

&lt;p&gt;We invite engineers and developers to explore the specification in our Git repository. You can freely parse our containers, use this structure, and build your own local solutions or scripts on its foundation for seamless integration into your corporate pipelines.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/deut-li/open-deut-format" rel="noopener noreferrer"&gt;Link to open specification on GitHub&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Frequently Asked Questions (FAQ)
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Q: Can I extract prompts from PNGs without ComfyUI installed?&lt;/strong&gt;&lt;br&gt;
A: Yes. Our client-side parser reads &lt;code&gt;tEXt&lt;/code&gt; chunks directly in your browser without requiring Python, ComfyUI, or Automatic1111 installations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: Does your tool fix broken node workflows?&lt;/strong&gt;&lt;br&gt;
A: No. We extract the metadata and text prompts so you can read and reuse them. We do not repair broken dependencies or missing custom nodes in your local ComfyUI environment.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: Is the parser safe for confidential studio images?&lt;/strong&gt;&lt;br&gt;
A: Absolutely. The tool runs 100% locally in your browser. No images or text data are ever uploaded to any external server.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: What happens if I send a ComfyUI PNG via WhatsApp or Telegram?&lt;/strong&gt;&lt;br&gt;
A: If sent as a standard photo (not as a document/file), the messenger's compression algorithm will strip the hidden metadata, permanently deleting your prompt and workflow. Storing recipes as &lt;code&gt;.deut&lt;/code&gt; text files prevents this data loss.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>stablediffusion</category>
      <category>comfyui</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
