Giter Club home page Giter Club logo

breadboard's People

Contributors

cocktailpeanut avatar gbryer avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

breadboard's Issues

The Refresh option is adding previously deleted folders

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.

[Feature Request] Clicking the Settings gear button when in settings should close Settings and return to where you were

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!

[Feature Request] Add the ability to search using AND instead of just OR

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

Main display doesn't show all/any files when large # imgs?

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"

Deleting file

Shouldn't there be an option to move deleted files into the bin/trashcan? Sometimes I accidentally delete the wrong file haha.

Dark mode where

Great app, but not a fan of getting flashbanged every time i take a look at it

[Feature Request] Folder Navigation

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

Feature request: support JPG and WEBP files. (Related code provided.)

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.

[Feature Request] Automatic tagging based on conditional expressions

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.

Select Install Directory (Windows)

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

Feature request

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?

Windows scrollbar handle can hide behind the min/max/close buttons

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:
2023-01-26 16_36_19-breadboard

Scrolled down a little bit so you can see the actual size of the scrollbar handle.
2023-01-26 16_36_03-breadboard

Can't disconnect the default connected folders

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.

New macOS App Icon Proposal

Hi folks, I just made a macOS icon since the one shipped with Breadboard is way oversized.
Feel free to use it in case you like it.

PS: I don't know if that's intentional, but the app name on macOS it's all lowercase.

Does not support long file names in Windows

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 :-)

Not showing wildcard batch prompt images from A1111

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.

[BUG] If prompt has a newline then everything after the new line is no longer shown in the image browser

here are some images to demonstrate the problem:

image 1:
image

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"?>

Same image in Auto1111 image browser:
image

Other examples:
image

Constanty refreshing

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.

[Feature Request] Prevent 'liked' or marked images from being deleted.

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.

[Feature request] Culling 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

  • left-right keys show previous-next image
  • up key marks image "good" (or Lightroom style - key "p").
  • down key marks image "bad" (or LR style - "x")
  • pressing "up" on "bad image" marks it neutral/unrated again and vice versa

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

Duplicated negative prompt display

When clicking on a imported image it shows the negative prompt inside the "prompt" row and a second time in the "negative_prompt" row. Like this:

grafik

The "prompt" row should only show the real prompt since the "negative_prompt" row is already showing the negative prompt.

wasted time when adding many folders to the sources

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:

  1. only sync the new folder, instead of all folders
  2. don't sync automatically, make the user click a sync button after adding all of their folders

I prefer 2 because it would allow users to add them all, and then minimise the program when they start the sync.

Switching to different layout when tagging is annoying and anti-productive

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:

  1. Go to 'basic gallery', scroll down some rows to get lost in your work as one does
  2. Select a row or 4 of images
  3. Open tag gizmo area
  4. enter tag, hit return, press
  5. now you're in the tag filtered zone
  6. click the home button
  7. wait for your library to reload
  8. now you're back at the top of your library some possibly thousands of images away from where you started, by the time you reach the images you just tagged your brain is over loaded with images and can't remember what images you tagged.

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):

  • OS: Windows
  • Browser: Chrome/Edge ? Not sure that's relevant, but....
  • Version: Agent 0.2.4 breadmachine 0.0.18

Additional context
Add any other context about the problem here.

Draw Things Propmts not copied

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.

When I delete file from the widows explorer folder it never get updated

This will be a very interesting tool !

After testing it there is some fiew things that would be interesting to add:

  • Really update with what is actualy inside the folders (even if I remove the folder and add it agin in the parameters it's not getting updated with the removed files).
  • Having shortcut to be able to switch from one image to the next as well as deleting them (using the arrows or custom shortcuts).
  • Being abble to quickly copy the prompt, seed, negatives etc (maybe a button).
  • When I add a folder that contains a lot of other folder it would be nice if all the folder get read.

The research bar is very nice and useful ! thanks for developing this tool.
Good luck !

Feature Request: Delete also the .webp thumbnail file in InvokeAI

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.

Search syntax to pick up aesthetic score tags?

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:

image

But they show up as separate tags, and so I can't actually use them to sort by score.
image

I've tried searching by

  • aesthetic_score: 6.6 - returns nothing
  • aesthetic score 6 6 - returns every image that has aesthetic, score, or the number 6
  • "aesthetic score 6 6" - returns nothing

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?

Cannot modify folders in Settings

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.

Not able to see files from /mnt/ file system

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

LoRA in prompt breaks metadata display

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:

image

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>

Model hash needs to be included among the metadata

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)

[Feature Request] Exclude custom folders

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.

date filter

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

Breadboard will not load any additional images...

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.

Support for A1111 ".txt" metadata....? | "undefined" when copying prompt.

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.

class Parser {
constructor() {
this.gm = new GM()
}
async parse(buf) {
let parsed = await exifr.parse(buf, true)
let attrs = {}
if (parsed.ImageWidth) attrs.width = parsed.ImageWidth
if (parsed.ImageHeight) attrs.height = parsed.ImageHeight
let app
if (parsed["sd-metadata"]) {
app = "invokeai"
} else if (parsed.parameters) {
app = "automatic1111"
}
return { ...attrs, ...this.getMeta(parsed), app }
}
convert(e, options) {
/*

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).

Tooltips

I'd love to see tooltips for the icons all over the interface - the menu, images, etc.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.