cocktailpeanut / breadboard Goto Github PK
View Code? Open in Web Editor NEWStable Diffusion Browser for Windows, Mac, and Linux
Home Page: https://breadboard.me
Stable Diffusion Browser for Windows, Mac, and Linux
Home Page: https://breadboard.me
I'm using Auto1111 SD.
Everytime I refresh the app, the folders diffusionbee and invokeai (previously deleted on settings) are returning on my list of connected folders.
This means the app is wasting time searching for files on these erroneous directories instead searching files only on my added folder.
Hassan has made a script that allows to automatically remove subjects with 2 heads or more (in case of mutated renders). I think it would be great to integrate it to Breadboard of possible : https://github.com/hassan-sd/people-remover
Currently, clicking the settings gear button again does nothing (as far as I can tell). If I want to check if there is a setting for something, but I am several thousand images scrolled down, I lose my place by visiting the Settings screen. As far as I can tell, there is no way back to where I was (except going back to "Home" and scrolling down again until I find my place, as long as I can clearly remember where that was). I definitely expected hitting the settings gear again to close the Settings and take me back to where I was. Thanks for making this great software, I find it much better than any other solutions I've tried, and it seems like it's getting better all the time!
I really wanted to have a talk, but it says that the invitation link is either broken or expired :(
Right now searching for white hair
will return all results containing white
and all results containing hair
It would be very useful to have the ability to only return results that contain the string white hair
I would propose any terms in the search surrounded by quotes should be AND'd together.
So I could search for "white hair" man field
and it would return only images which contain white hair
and man
and field
Not sure if because of qty (~10gb of images) ... But when I search just 'a' which pull up probably 80% of the images it shows fine.
But I just load the prog, wait for sync, and it never loads images until I search.
Regex search would be excellent too - or something like sublimes find with a '-' for anything to exlc. Eg. "*.php, -NotThisFile.php, abc.js"
Shouldn't there be an option to move deleted files into the bin/trashcan? Sometimes I accidentally delete the wrong file haha.
Great app, but not a fan of getting flashbanged every time i take a look at it
It would be great to navigate through folders.
At the moment I have over 6000 images in 20 folders an alle images are in one very long list, it feels like endless scrolling.
It would be great to have for example a sidebar with a folder-tree on the left side and see the images of the selected folder on the right side.
Many regards and thank you for your work
Andi
Automatic1111's WebUI natively supports saving images with prompts in metadata as JPG and WEBP. Especially the WEBP format is great for saving a lot of space compared to PNG, with minimal quality loss. WEBP files are also much faster to read and write than PNG.
I wrote a short script for indexing and searching prompts, where I used a function copied from Auto's code (run_pnginfo
) to extract prompts from PNG and JPG, but it didn't work for WEBP for me, so I wrote my own line of code to extract prompts from these. I linked to the relevant part of code:
https://gist.github.com/r7vz9h3/008e86bed8a4cbe4079e644ac71ccfc3#file-findgens-py-L72
All I needed was:
with open(webp_image_path, 'rb') as imfile:
info = imfile.read().decode('utf-8', 'ignore').rpartition('UNICODE')[2].replace('\x00', '')
I'm sure this can be improved a lot, but it seems to work.
It would be nice to have an option to filter out a graphic that have specific tag. (I mean you see all other images excluding these with a specific tag/tags).
This is probably a complicated one, but it would be nice if there were a way to conditionally tag images when they're being indexed. For instance, something like:
model:a1b2c3d4 AND (corgi OR poodle) -> Dog photos
I'm not dead set on this syntax or anything; it would just be nice to be able to use this kind of logic to help organize things as they come in.
When using the windows installer, the app automatically installs into the C drive. Could we get a way to select where we would like it to install
As you can see on the video. Same thing happens also when there isn't any input inside textbox.
When I open a new breadboard instance while one is already running I get a new window with the - I guess - default settings and no functionality. I think it would be good to either bring the exisiting window to the foreground when opening a new one or prevent this behaviour entirely.
Draw Things is an offline AI Image generation app for Mac/iOS/iPadOS, and is free
Images generated by Draw Things includes all their metadata in the generated files, but this metadata is not supported by BreadBoard.
It's be wonderful if you could add Draw Things to the supported formats.
Link to Draw Things in Mac App Store:
https://apps.apple.com/es/app/draw-things-ai-generation/id6444050820
Thanks.
It would be really handy to have a delete option/icon next to all the other icons. maybe make it a toggle in the settings for people that might accidentally click it?
On Windows when the scrollbar handle is all the way at the top it hides behind the system buttons.
If you have scrolled down and loaded in enough images that the scrollbar handle is quite small, it can entirely disappear from view.
This may cause some accessibility issues for those that need to use their mouse cursor to click and drag the bar instead of using a scroll wheel.
The scrollbar handle just peeking out from under the buttons:
Scrolled down a little bit so you can see the actual size of the scrollbar handle.
It's impossible for me to disconnect the default connected folders .diffusionbee/images
and invokeai/outputs
. When I disconnect them and go back to the start page and reopen the settings they are back to being connected.
would like to see auto sync functionality for incoming images within Breadboards browser.
Windows 11.
Problem: the metadata for the image is displayed, but the image does not. It displays the missing image icon instead.
I determined that the files that are affected all have extremely long file names as created by the UI I use. They are like this:
\Users\jilln\Desktop\stable-diffusion-webui\outputs\txt2img-images\00466-2685178687-{highly detailed)+++, (hyper realistic)+++, full length photograph of angry forty year old stheno having curly shoulder length h.png
I alter to something shorter, like this:
\Users\jilln\Desktop\stable-diffusion-webui\outputs\txt2img-images\00466-2685178687-{highly detailed)+++, (hyper realistic)+++, angry stheno.png
and the missing image fills in on a refresh.
Thanks for your fab program! Nice work for a weekend coding project :-)
When doing jobs with the wildcards possibilities of A1111, the exported images don't show any related prompt info. I've been testing it with several batches, and rebooted Breadboard twice : the same empty metadata results occur.
XML:
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c138 79.159824, 2016/09/14-01:09:01 ">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="XMP template with common namespaces" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:xmp="http://ns.adobe.com/xap/1.0/">
<xmp:gm rdf:parseType="Resource">
<xmp:prompt>
masterpiece, best quality, high quality, highres,
</xmp:prompt>
<xmp:sampler>
DPM++ SDE
</xmp:sampler>
<xmp:steps>
20
</xmp:steps>
<xmp:cfg_scale>
8
</xmp:cfg_scale>
<xmp:seed>
2741978627
</xmp:seed>
<xmp:agent>
automatic1111
</xmp:agent>
</xmp:gm>
</rdf:Description>
</rdf:RDF>
</x:xmpmeta>
<?xpacket end="w"?>
The app is constantly refreshing and reindexing, to the point of being unusable. Open up the app, indexes, open settings, and don't change anything, indexes. Click the home button (house), indexes. Click anything, indexes. I also have the scroll down any wait because it stops indexing until I scroll to see more photos. It's taking a while, so I minimize it. Maximize the app again, and it crashes. Load the app back up....you guessed it, indexes.
First of all, great tool!
I downloaded it for cleaning my StableDiffusion output folder.
I'm going to trash almost every image, but there are some I would like to keep.
I would like to see an option to mark an image as 'do not delete'. Probably you can use the Like icon for it.
When I have selected the best images, I should be able to select all, and press the delete button, without deleting the marked images.
There's gazillion images now and I wish there was some sort of function to allow quick culling/rating images which could work smth like this:
Full-screen image view
Additionally, those "good" / "bad" images could have up/down arrow icon or some color (in header?). Clicking it repeatedly changes it's status (neutral -> bad -> neutral -> good -> neutral ... i'd start the cycle with "bad" because I think there are more images to delete than to keep :P )
Later I can filter out all (tag:bad) images and delete them en masse
Prompt: photo of a [cat|duck], (green:1.3), water, ocean
zip with copy of original image
00601-20230116195303.zip
(Using the master branch, it doesn't happen in 2.0)
Because I have used many different UIs and have my files scattered in many folders, the process of syncing breadboard took a very long time. This is because every time I added a folder, breadboard would resync with every folder it had listed, even if I had only added one small folder.
My proposed solutions:
I prefer 2 because it would allow users to add them all, and then minimise the program when they start the sync.
Describe the bug
When adding a tag to let say 10 items some 30 rows down in the image library the entire app switches to a view that only filters for the tag, when returning to the library there is no way to know what items were recently tagged, and duplication of this selection/tag process occurs among same-y looking images. If just one item needs to be tagged, again the UI switches to the tag filtered view, and the user has to go back reload their library again and re-orient themselves in the library.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
When tagging images a little tag icon should appear on their control bar to let the user know a tag was set for this image and then allow them to continue working in the same UI view they were in without any switching/reloading things, if they want to filter for tagged images they can select an image, pop open the info, click on a tag word and filter from that point. Or use the usal search bar method.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):
Additional context
Add any other context about the problem here.
Thanks for adding support for Draw Things. However the 'Copy Prompt' function doesn't work and only produces the thes 'undefined'. Copying the full prompt would be ideal.
This will be a very interesting tool !
After testing it there is some fiew things that would be interesting to add:
The research bar is very nice and useful ! thanks for developing this tool.
Good luck !
Bug occurs on windows. Latest release as of the time of writing.
I also have one single file showing up as [Object object]. Happy to share if you DM me.
Hello. I really enjoy using Breadboard, and one thing I noticed when I delete an image from the InvokeAI Output directory (eg. C:\InvokeAI\outputs) is that the corresponding thumbnail image inside the Thumbnails directory (eg. C:\InvokeAI\outputs\thumbnails) is not being deleted too, which requires manual removal to keep the content of these two folders consistent.
I wish to ask you if it would be possible to implement in future versions the removal also of the thumbnail image, which has the same name of the deleted generated image. This would be really helpful. Thank you.
Hey there! Loving breadboard, it's almost exactly what I need.
However, i'm running into a snag. I have a lot if images that have aesthetic scores written into the prompt, like this:
But they show up as separate tags, and so I can't actually use them to sort by score.
I've tried searching by
I suspect there's a way to tell it to give me exactly the string "aesthetic score 6 6", but I can't find it. Help?
I cannot modify the folders. I can add folders to the list, but the images do not change. When I reopen the app, folder list is back to default. On Windows 10. Thanks.
I tried adding the volume that was mounted through /mnt/ but nothing shows up. It does work if the files are in the local files system. It would be great to read the files from a mount. What more information can I provide?
Linux Ubuntu 22.04 running the AppImage
I have a number of images generated using a LoRA in the prompt. All of them say [object Object]
in breadboard and are missing other metadata:
I believe the < >
brackets that are required to use a LoRA in Auto1111 are not getting properly escaped by breadboard when generating the XML, causing parsing of the parameters to fall flat.
Here is what the metadata for the example prompt above is according to PNG info in Auto1111:
parameters
lora:princessZeldaLora_v1:0.5 princess zelda, 1girl, artist request, belt, blonde hair, blue shirt, book, boots, expressionless, full body, green eyes, highres, looking at viewer, magic, nintendo, pants, pointy ears, shirt, short hair, simple background, solo, the legend of zelda, the legend of zelda: breath of the wild, the legend of zelda: tears of the kingdom, white background
Negative prompt: (painting by bad-artist-anime:0.9), (painting by bad-artist:0.9), watermark, text, error, blurry, jpeg artifacts, cropped, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, artist name, (worst quality, low quality:1.4), bad anatomy
Steps: 30, Sampler: DPM++ 2M Karras, CFG scale: 9, Seed: 632378813, Size: 512x768, Model hash: 0873291ac5, Model: abyssorangemix2NSFW_abyssorangemix2NSFW
XML:com.adobe.xmp
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c138 79.159824, 2016/09/14-01:09:01 ">
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="XMP template with common namespaces" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:xmp="http://ns.adobe.com/xap/1.0/"><xmp:gm rdf:parseType="Resource">xmp:promptlora:princessZeldaLora_v1:0.5 princess zelda, 1girl, artist request, belt, blonde hair, blue shirt, book, boots, expressionless, full body, green eyes, highres, looking at viewer, magic, nintendo, pants, pointy ears, shirt, short hair, simple background, solo, the legend of zelda, the legend of zelda: breath of the wild, the legend of zelda: tears of the kingdom, white background</xmp:prompt>xmp:samplerDPM++ 2M Karras</xmp:sampler>xmp:steps30</xmp:steps>xmp:cfg_scale9</xmp:cfg_scale>xmp:seed632378813</xmp:seed>xmp:negative_prompt(painting by bad-artist-anime:0.9), (painting by bad-artist:0.9), watermark, text, error, blurry, jpeg artifacts, cropped, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, artist name, (worst quality, low quality:1.4), bad anatomy</xmp:negative_prompt>xmp:model_nameabyssorangemix2NSFW_abyssorangemix2NSFW</xmp:model_name>xmp:model_hash0873291ac5</xmp:model_hash>xmp:agentautomatic1111</xmp:agent>xmp:width512</xmp:width>xmp:height768</xmp:height></xmp:gm></rdf:Description>
</rdf:RDF>
</x:xmpmeta>
Identifying the model used to generate the image is arguably just as important as knowing the prompt and seed. Currently though breadboard only displays the model name, which is frequently not even included in the metadata (at least my default setup of automatic1111 does not include model name). But model hash is almost always present in the metadata, so breadboard should display it and also allow search and navigation by hash.
If you need to save space in breadboard's metadata display I think it would be OK to combine model name and hash on the same line, like this:
model_name: HassanBlend1.4 (4cf12f5d)
Would be nice if Breadboard was able to load seamlessly after a re-sync.
give the ability to use a discord webhook to upload/backup/share selected images
Would be great to exclude folders under a root folder added for indexing.
Example: I have my output folder, but may want to exclude a sub folder within that from appearing in the index.
Thanks.
As discussed,
would it be possible to allow Today and/ or a date or date range to filter results.
it would be quite handy to have the ability to display only the pictures of the day or run a search for specific date or date range in combination with other filters.
a simple date:<dd/mm/yy> query in the filter bar for example with the ability like other filters to have +or- date:<dd/mm/yy>
or date: <dd/mm/yy> to <dd/mm/yy> something like that as well as date:Today (maybe date: month)
Thanks a lot
Running Breadboard 0.2.1 on Windows 10.
Currently unable to refresh new images. Getting the following error in debug:
localhost/:1 Uncaught (in promise) Error: Error invoking remote method 'sync': Error: Cannot create a string longer than 0x1fffffe8 characters
Currenly have 11364 images.
Hello. Super neat program. I seem to be having an issue with metadata parsing though.
I've been poking around your code with ChatGPT and I think I've noticed that you're parsing the png metadata to get the prompt and image generation parameters. I don't have that enabled on my A1111 install. Instead, I have it output the metadata as a txt file of the same name as the picture.
Here's an example of the formatting:
a picture of 6 cats doing backflips while making waffles
Negative prompt: lowres, bad anatomy, hands, text, error, missing fingers, extra digit, fewer digits, cropped, worst quality, low normal jpeg artifacts, signature, watermark, username, blurry, out of focus
Steps: 18, Sampler: DPM++ 2M Karras, CFG scale: 12.5, Seed: 1491956809, Face restoration: CodeFormer, Size: 768x512, Hypernet: charTurner, Hypernet hash: e3b0c442, Batch size: 2, Batch pos: 0, Denoising strength: 0.78, Mask blur: 4
and the picture/file naming scheme is
1664914851512-1491956809.png
1664914851512-1491956809.txt
I'm guessing this is the script that needs to be altered.
Lines 4 to 24 in f2aa151
But I'm horrid at javascript.
ChatGPT suggested adding this, but I haven't tried it yet:
convert(e, options, pictureName) {
// code here
// ...
// Get the name of the text file by replacing the extension of the picture name with .txt
let textFileName = pictureName.replace(/\.[^/.]+$/, ".txt");
// Read the contents of the text file
let textFileContents = fs.readFileSync(textFileName, "utf8");
// Parse the contents of the text file as JSON
let metadata = JSON.parse(textFileContents);
// Use the metadata from the text file to populate the x object
// code here
// ...
}
I'll probably poke around at it in the next day or two. Figured I'd make an issue in case it's easy to change. I also might be entirely wrong. haha.
I'm also having an issue with large amounts of files (around 40,000 pictures) not displaying correctly, but I'll see if I can look into that too (don't hold your breath lol).
I'd love to see tooltips for the icons all over the interface - the menu, images, etc.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.