Promptvision
Brand new rewrite. Now using CustomTkinter for native GUI via python.
Primarily useful for viewing generations (generated images) either in realtime as they are created or when you are cataloguing them (supports auto detect of new images in the folder you're viewing)
Shows metadata from forge / automatic1111 natively (I am using forge)
This means it will support other platforms that use the same way to store metadata
Has navigation shortcuts
D and A for moving next/previous images
F for marking an image as favorite
The viewer will store a
favorites.jsonin each folder you open with the viewer so that you can have different favorites depending on what you're browsing.
Settings are stored in the same place as where you open the program
viewer_settings.jsonContains information about your last opened directory, last position (you can resume browsing in the same folder if you close it), export directory (where you want to save favorites to) and auto update toggle (if you want to detect new images in the folder)
Gallery view of all images in the folder
You can press on an image to view that in the image viewer
Note that when opening gallery view it will take a little while to load in most use cases. I've tried quite a few methods to improve the performance, but it is what it is. If you have auto update images on it might flicker a bit, especially if you're viewing the last gallery page which is being updated with new generations as you're viewing. Turn off auto update setting to reduce flickering.
VirusTotal analysis of the program: https://www.virustotal.com/gui/file/617b644d673c84c1ccdc9c2287804102eba0e03b4ec9ca94f646b2175bbf62ff/detection
There are 3 false positives. It seems that it's not completely possible to generate executables from python without these if not using a certificate.
Build command:pyinstaller --name=Promptvision --windowed --onefile --add-data="assets/*:assets" --add-data="views/*:views" --hidden-import=PIL._tkinter_finder promptvision.py --clean --icon=assets/pvlogo.png
Description
Complete rewrite of application from using Flask and custom CSS/JS/HTML to using Streamlit.
Quicker
Good filtering
Prompt analysis that enables insight into key themes
FAQ
Comments (12)
When trying to run this, I get the following:
2023-08-21 18:37:42.286 Uncaught app exception
Traceback (most recent call last):
File "D:\anaconda3\lib\site-packages\streamlit\runtime\scriptrunner\script_runner.py", line 552, in runscript
exec(code, module.__dict__)
File "W:\seait\Promptvision\Promptvision.py", line 3, in <module>
import pvision
File "W:\seait\Promptvision\pvision.py", line 4, in <module>
from sdparsers import ParserManager
ModuleNotFoundError: No module named 'sdparsers'
Any help you could provide?
Did you run pip install -r requirements.txt ?
That should install sd-parsers which is required to run this
for some reason its not able to view images that are more than 200mbs which feels very limiting since most people tend to upscale
Could you copy paste what the log said when you tried to view a 200 mb image? (I've never upscaled to 200mb so far, mine tend to be 20-30 mb) And what kind of resolution is an image of that size? Then I could try to recreate it on my end.
@Automaticism Got 1360 image 180mb for all. Works fine when i select a folder that only have 360 images and 112mb for all.
MessageSizeError: Data of size 253.6 MB exceeds the message size limit of 200.0 MB.
This is often caused by a large chart or dataframe. Please decrease the amount of data sent to the browser, or increase the limit by setting the config option server.maxMessageSize. Click here to learn more about config options.
Note that increasing the limit may lead to long loading times and large memory consumption of the client's browser and the Streamlit server.
@Automaticism Yeh what he posted. I switched so something else called breadboard, but the message @Alyila posted is exactly what I remember seeing
You can adjust the --server.maxMessageSize 2048 on launch. Set e.g. 4096.
streamlit run .\promptvision.py --server.maxMessageSize 2048
That should probably help with the issue. Adjust this as high as needed.
Looks pretty good, the native system is a bit...well not very handi, but i'm sorry, i'm pretty new in all this, where am i supposed to install this and how ? I'm not familiar with python at all...i'm a disgrace ^^'
Thx anyway for this tool
# Promptvision README
## Installation
If you do not have Miniconda installed, please install it following these steps:
1. Visit the Miniconda website: [Miniconda](https://docs.conda.io/en/latest/miniconda.html)
2. Download the appropriate Miniconda3 installer for your system (e.g., Windows, macOS, Linux).
3. Install Miniconda by following the installation instructions on the website.
4. To verify the installation, open a new terminal and run:
```
conda --version
```
Ensure it works correctly before proceeding with the Promptvision setup.
## Setting up Promptvision
Follow these steps to set up and run Promptvision:
1. Clone the Promptvision repository:
```
git clone https://github.com/Automaticism/Promptvision.git
```
2. Navigate to the Promptvision directory:
```
cd Promptvision
```
3. Create a Conda environment named "promptvision":
```
conda create -n promptvision
```
4. Activate the "promptvision" environment:
```
conda activate promptvision
```
5. Install required Python packages using pip:
```
pip install -r requirements.txt
```
6. Run the Promptvision app with Streamlit:
```
streamlit run Promptvision.py
```
7. Optional: If using "Calculate ImageReward score," it will download the score. Console message example:
```
2023-07-22 00:56:36.538 Created a temporary directory...
Downloading ImageReward.pt: 1%|▌ | 21.0M/1.79G [00:02<02:49, 10.4MB/s]
```
Enjoy using Promptvision!
@Automaticism Thank you very much, if i may ask, how creating a user.bat ?
Just finished installing and encountered the "AttributeError: st.session_state has no attribute "df" error. I followed the link and quickly became overwhelmed with the... ummm... explanation? fix? For the average user, it doesn't really offer a solution on how to overcome the problem. Any suggestions? This project looks very promising and it would be great to have an opportunity to get it working.
Running on Linux Mint 21.2, Streamlit v1.28.2
Did you get it from github?
Try getting the latest version(s) from git: https://github.com/Automaticism/Promptvision.git
Just pushed a large update (first in months).
Tested on a directory with almost 15000 images and lots of subfolders.




