Skquark/AI-Friends

[Features Requests]: a few things...perhaps

Opened this issue · 1 comments

Hey, really cool UI with a ton of features I'm excited to test out. Just wanted to provide some honest feedback on a few things that seemed a bit odd or confusing to me:

Model downloading:
Not sure where models get downloaded to or how long downloads will take
Would be great to have a download progress bar with estimated time, so I know when models are ready
For example, I started downloading the stable diffusion text2img and img2img models over 10 minutes ago, and it still hasn't completed even though I have a very fast internet connection. A progress bar would help me know if it got stuck or how long I can expect it to take.

Image generating workflow feels fragmented:
Image settings in one tab, prompts in another, generate in a third tab
Would be nicer if it was unified in one generate images tab
Could have subtabs for prompt options, settings, etc

Also unsure if I can generate just one image at a time, or if it has to be batch
Overall it feels less flexible than expected for an app with so many features

Here are some suggestions that I think could help:
Add download progress bar with estimated time on model downloads
Unify image generation in one tab
Tabs or sections for image settings, prompts, options
Allow single image generation, not just batches
Consider more flexibility/customization in the workflow

Let me know if any of that feedback helps! I'm really impressed with the app so far and am looking forward to testing more features once I get past those initial hurdles. Excited to see where this goes!

Great feedback, thanks.. Trying to figure out what actions I can realistically take based on that...
So with the model downloading, I'd also love to see a progress bar to show estimated time, but unfortunately when I load a model, there's no way I could figure out to get a callback showing the current and total status since it comes from the HuggingFace Hub download method, which doesn't provide any callback hooks.. The Auto1111 backend doesn't use HF Diffusers the way I do. It can show it in the text console, but can't get that progress for the UI, I've tried. The download console progress shows the first time you get a model, but doesn't show load progress if it's in the cache. Problem is Python wasn't really designed to have a frontend GUI, was made more for interactive notebooks. At least while it's Installing/Download you can work in the other tabs to make preparations for a run.
The models download on the fly if they're not in the cache folder. It's different than Auto in many ways, where you don't have to maintain your models folder. What you do instead is go to Settings and set the Optional Cache Directory to where you want them to save. If Colab it points to a GDrive folder, or locally you can specify a path on your drive. They get saved and loaded from there as they're downloaded, and you can manage what's been downloaded in Extras->Model Manager.. If you don't have a Cache Directory set, they go to a temp folder someplace in the Lib folder or ~/. cache/huggingface/downloads. The app was created for Colab or other cloud GPUs first, where each run clears the installed packages and models. The Cache Dir was a pretty good compromise.

The separate tabs for Image Parameters, Prompts List and Generate Images was deliberate and thought out.. When I built the UI, I wasn't trying to copy any of the other implementations and designed it for my own optimal workflow. The focus was on making the best batch prompt list interface that integrates with all the Prompt Helpers and Pipelines.. I don't do single prompts, I do hundreds at a time, normally from the Prompt Writer or Generator.. If I do a single prompt, I duplicate it a few times and override the Guidance or Steps or size for each one to test variations.
The intention behind the layout was for one, to have it work on a small cell phone screen comfortably. I didn't want the pages to be cramped and condensed so it doesn't require full desktop size. The Parameters page gets more filled up when you install the extra pipelines that you can switch between. The prompts page needed to have large area to handle massive lists. The Generate page was focused on displaying the images as large as possible and show past images made in queue, not just 4 small ones in grid.. I can't imagine unifying those tabs at this point and still have it optimized large prompt generation.. So yes, the only way to do a simple prompt is to add to list and press Run Diffusion. While the generation is happening, you can multitask a bit and go back to prompt list, clear it, and start working on the next set of prompts. The other way to do one prompt at a time is using the Image AIs tab with one of the axillary generation pipelines, which also have the option of running from Prompts List... Kandinsky is my personal fav, and unCLIP is impressive too..

I'm trying to brainstorm a way to take your suggestion of being able to make a single prompt without adding to the list first without sacrificing the functionality of the enhanced batch workflow. Maybe in the Prompt List, next to the Add Prompt button, have another button to Run Single Prompt or something like that. It only saves 2 clicks though. Otherwise, that feature doesn't quite fit in anywhere.. Once you get used to the list layout, it's more natural a flow. I initially built it for my personal desire to process long prompt lists at once, which none of the other Stable Diffusion interfaces did well. All the other features grew from there....
I didn't mean to shoot down your feature requests, just explaining why I intentionally set it up that way, but still open to additional refinements or capabilities..