# receyuki/stable-diffusion-prompt-reader architecture

> Architecture diagram of the GitHub repository receyuki/stable-diffusion-prompt-reader, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/receyuki/stable-diffusion-prompt-reader
- Repository: https://github.com/receyuki/stable-diffusion-prompt-reader

## Overview

Stable Diffusion Prompt Reader is a desktop GUI and CLI for extracting generation prompts and settings from images, then viewing or exporting, clearing, and editing that metadata. The main workflow is input image → format detection and parsing → prompt/parameter display or file operation. The README documents additional display and editing capabilities; source excerpts are partial, so links for unsampled GUI actions are limited to the documented workflow.

Main entry points: [`sd_prompt_reader/app.py`](https://github.com/receyuki/stable-diffusion-prompt-reader/blob/master/sd_prompt_reader/app.py) (Desktop GUI), [`sd_prompt_reader/image_data_reader.py`](https://github.com/receyuki/stable-diffusion-prompt-reader/blob/master/sd_prompt_reader/image_data_reader.py) (Image Data Reader), [`sd_prompt_reader/format`](https://github.com/receyuki/stable-diffusion-prompt-reader/tree/master/sd_prompt_reader/format) (Format Adapters), [`sd_prompt_reader/cli.py`](https://github.com/receyuki/stable-diffusion-prompt-reader/blob/master/sd_prompt_reader/cli.py) (Command Line)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["User Interfaces"]
  node_gui["Desktop GUI<br/>[app.py]"]
  node_cli["Command Line<br/>[cli.py]"]
end

subgraph group_metadata["Metadata Processing"]
  node_reader["Image Data Reader"]
  node_base["Format Base<br/>[base_format.py]"]
end

subgraph group_formats["Format Support"]
  node_adapters["Format Adapters"]
  node_a1111["A1111 Parser<br/>[a1111.py]"]
  node_comfy["ComfyUI Parser<br/>[comfyui.py]"]
  node_invoke["InvokeAI Parser<br/>[invokeai.py]"]
  node_novelai["NovelAI Parser<br/>[novelai.py]"]
end

subgraph group_presentation["Prompt Presentation"]
  node_viewer["Prompt Viewer<br/>[prompt_viewer.py]"]
  node_parameter["Parameter Viewer"]
  node_textbox["Text Editor<br/>[textbox.py]"]
  node_status["Status Bar<br/>[status_bar.py]"]
end

node_user(("User"))
node_image["Image Files"]
node_output["Exported Files"]

node_user -->|"opens or drops"| node_gui
node_user -->|"runs command"| node_cli
node_gui -->|"reads image metadata"| node_reader
node_cli -->|"reads and writes"| node_reader
node_image -->|"provides image"| node_reader
node_reader -->|"selects parser"| node_adapters
node_reader -->|"uses format model"| node_base
node_adapters --> node_a1111
node_adapters --> node_comfy
node_adapters --> node_invoke
node_adapters --> node_novelai
node_reader -->|"returns prompt data"| node_gui
node_gui -->|"displays prompts"| node_viewer
node_gui -->|"displays settings"| node_parameter
node_gui -->|"edits prompt"| node_textbox
node_gui -->|"reports status"| node_status
node_cli -->|"exports or saves"| node_output
node_gui -->|"exports or edits"| node_output

click node_gui "https://github.com/receyuki/stable-diffusion-prompt-reader/blob/master/sd_prompt_reader/app.py"
click node_cli "https://github.com/receyuki/stable-diffusion-prompt-reader/blob/master/sd_prompt_reader/cli.py"
click node_reader "https://github.com/receyuki/stable-diffusion-prompt-reader/blob/master/sd_prompt_reader/image_data_reader.py"
click node_base "https://github.com/receyuki/stable-diffusion-prompt-reader/blob/master/sd_prompt_reader/format/base_format.py"
click node_adapters "https://github.com/receyuki/stable-diffusion-prompt-reader/tree/master/sd_prompt_reader/format"
click node_a1111 "https://github.com/receyuki/stable-diffusion-prompt-reader/blob/master/sd_prompt_reader/format/a1111.py"
click node_comfy "https://github.com/receyuki/stable-diffusion-prompt-reader/blob/master/sd_prompt_reader/format/comfyui.py"
click node_invoke "https://github.com/receyuki/stable-diffusion-prompt-reader/blob/master/sd_prompt_reader/format/invokeai.py"
click node_novelai "https://github.com/receyuki/stable-diffusion-prompt-reader/blob/master/sd_prompt_reader/format/novelai.py"
click node_viewer "https://github.com/receyuki/stable-diffusion-prompt-reader/blob/master/sd_prompt_reader/prompt_viewer.py"
click node_parameter "https://github.com/receyuki/stable-diffusion-prompt-reader/blob/master/sd_prompt_reader/parameter_viewer.py"
click node_textbox "https://github.com/receyuki/stable-diffusion-prompt-reader/blob/master/sd_prompt_reader/textbox.py"
click node_status "https://github.com/receyuki/stable-diffusion-prompt-reader/blob/master/sd_prompt_reader/status_bar.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_gui,node_cli,node_user toneBlue
class node_reader,node_base toneAmber
class node_adapters,node_a1111,node_comfy,node_invoke,node_novelai toneMint
class node_viewer,node_parameter,node_textbox,node_status toneRose
class node_image,node_output toneIndigo
```

## Components

### User Interfaces

- [Desktop GUI](https://github.com/receyuki/stable-diffusion-prompt-reader/blob/master/sd_prompt_reader/app.py): `sd_prompt_reader/app.py`
- [Command Line](https://github.com/receyuki/stable-diffusion-prompt-reader/blob/master/sd_prompt_reader/cli.py): `sd_prompt_reader/cli.py`

### Metadata Processing

- [Image Data Reader](https://github.com/receyuki/stable-diffusion-prompt-reader/blob/master/sd_prompt_reader/image_data_reader.py): `sd_prompt_reader/image_data_reader.py`
- [Format Base](https://github.com/receyuki/stable-diffusion-prompt-reader/blob/master/sd_prompt_reader/format/base_format.py): `sd_prompt_reader/format/base_format.py`

### Format Support

- [Format Adapters](https://github.com/receyuki/stable-diffusion-prompt-reader/tree/master/sd_prompt_reader/format): `sd_prompt_reader/format`
- [A1111 Parser](https://github.com/receyuki/stable-diffusion-prompt-reader/blob/master/sd_prompt_reader/format/a1111.py): `sd_prompt_reader/format/a1111.py`
- [ComfyUI Parser](https://github.com/receyuki/stable-diffusion-prompt-reader/blob/master/sd_prompt_reader/format/comfyui.py): `sd_prompt_reader/format/comfyui.py`
- [InvokeAI Parser](https://github.com/receyuki/stable-diffusion-prompt-reader/blob/master/sd_prompt_reader/format/invokeai.py): `sd_prompt_reader/format/invokeai.py`
- [NovelAI Parser](https://github.com/receyuki/stable-diffusion-prompt-reader/blob/master/sd_prompt_reader/format/novelai.py): `sd_prompt_reader/format/novelai.py`

### Prompt Presentation

- [Prompt Viewer](https://github.com/receyuki/stable-diffusion-prompt-reader/blob/master/sd_prompt_reader/prompt_viewer.py): `sd_prompt_reader/prompt_viewer.py`
- [Parameter Viewer](https://github.com/receyuki/stable-diffusion-prompt-reader/blob/master/sd_prompt_reader/parameter_viewer.py): `sd_prompt_reader/parameter_viewer.py`
- [Text Editor](https://github.com/receyuki/stable-diffusion-prompt-reader/blob/master/sd_prompt_reader/textbox.py): `sd_prompt_reader/textbox.py`
- [Status Bar](https://github.com/receyuki/stable-diffusion-prompt-reader/blob/master/sd_prompt_reader/status_bar.py): `sd_prompt_reader/status_bar.py`

### Other components

- **User**
- **Image Files**
- **Exported Files**

## Connections

- User → Desktop GUI: opens or drops
- User → Command Line: runs command
- Desktop GUI → Image Data Reader: reads image metadata
- Command Line → Image Data Reader: reads and writes
- Image Files → Image Data Reader: provides image
- Image Data Reader → Format Adapters: selects parser
- Image Data Reader → Format Base: uses format model
- Format Adapters → A1111 Parser
- Format Adapters → ComfyUI Parser
- Format Adapters → InvokeAI Parser
- Format Adapters → NovelAI Parser
- Image Data Reader → Desktop GUI: returns prompt data
- Desktop GUI → Prompt Viewer: displays prompts
- Desktop GUI → Parameter Viewer: displays settings
- Desktop GUI → Text Editor: edits prompt
- Desktop GUI → Status Bar: reports status
- Command Line → Exported Files: exports or saves
- Desktop GUI → Exported Files: exports or edits
