Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Community Pipeline] Wildcards #872

Closed
osanseviero opened this issue Oct 17, 2022 · 10 comments
Closed

[Community Pipeline] Wildcards #872

osanseviero opened this issue Oct 17, 2022 · 10 comments
Labels
community-examples hacktoberfest stale Issues that haven't received updates

Comments

@osanseviero
Copy link
Member

Intro

Community Pipelines are introduced in diffusers==0.4.0 with the idea of allowing the community to quickly add, integrate, and share their custom pipelines on top of diffusers.

You can find a guide about Community Pipelines here. You can also find all the community examples under examples/community/. If you have questions about the Community Pipelines feature, please head to the parent issue.

Idea: Wildcards

Wildcards is an idea from @jtkelm2 for Automatic1111 Web UI. This is a copy paste (with slight modifications) from the official wiki

Script support so prompts can contain wildcard terms (indicated by surrounding double underscores), with values instantiated randomly from a corresponding txt file (or a list of strings)

a woman at a cafe by artist and artist

will draw two random artists from artist.txt. This works independently on each prompt, so that one can e.g. generate a batch of 100 images with the same prompt input using wildcards, and each output will have unique artists (or styles, or genres, or anything that the user creates their own .txt file for) attached to it.

Resources

@20RitikSingh
Copy link

I want to work on this.

@shyamsn97
Copy link
Contributor

Would love to take a look at this, if nobody else is working on it 😄

@patrickvonplaten
Copy link
Contributor

@20RitikSingh since you've already shown interest on a lot of other community pipelines, ok if we leave this one for @shyamsn97 ? :-)

@patrickvonplaten
Copy link
Contributor

In general, the philosophy is to open a PR that is already in a reasonable state to have this issue be assigned to you. Then we can all work on the same PR :-)

@WASasquatch
Copy link

WASasquatch commented Oct 19, 2022

I have something similar, which this seems to be based upon idea: https://github.com/WASasquatch/noodle-soup-prompts [Wiki] (Seems to be my artist list)

I have been suggested to move my system to a file-system for ease of management, but I do like how easy it is to distribute JSON.

This is more meant for the end developer to easily implement and parse prompts before hitting diffusers, so that the prompt is like a normal well-formed prompt.

@shyamsn97
Copy link
Contributor

Nice! I have something based on this https://github.com/adieyal/sd-dynamic-prompting in the works. Will put out a pr soon. I think it makes sense to support different filetypes as well :)

@WASasquatch
Copy link

Wouldn't it be best to make sure access to the wildcard is as easy as possible? Just do it like a noodle and use one underscore _the-noodle_.

__wildcard__ is a bit excessive, and are we really trying to emulate the ___write_your_name_here___ digital form method where it's suppose to symbolize a underline on a printed paper where you'd write? :P

@jtkelm2
Copy link

jtkelm2 commented Oct 21, 2022

Wouldn't it be best to make sure access to the wildcard is as easy as possible? Just do it like a noodle and use one underscore _the-noodle_.

__wildcard__ is a bit excessive, and are we really trying to emulate the ___write_your_name_here___ digital form method where it's suppose to symbolize a underline on a printed paper where you'd write? :P

As the author of the original script, I chose double underscores instead of single just to be absolutely sure it wouldn't conflict with ordinary prompts or others' parsing methods. Some online artists might plausibly have single underscores in their handle, or maybe you've trained custom models/embeddings with underscores because you're a hard-boiled programmer. Or perhaps your text file names simply use underscores. This was also back when my script wasn't intended to be a script, but a part of the default parser for the Webui.

That said, I wouldn't object to a single-underscore method, if the method continues its life as an optional script.

@WASasquatch
Copy link

WASasquatch commented Oct 24, 2022

Wouldn't it be best to make sure access to the wildcard is as easy as possible? Just do it like a noodle and use one underscore _the-noodle_.
__wildcard__ is a bit excessive, and are we really trying to emulate the ___write_your_name_here___ digital form method where it's suppose to symbolize a underline on a printed paper where you'd write? :P

As the author of the original script, I chose double underscores instead of single just to be absolutely sure it wouldn't conflict with ordinary prompts or others' parsing methods. Some online artists might plausibly have single underscores in their handle, or maybe you've trained custom models/embeddings with underscores because you're a hard-boiled programmer. Or perhaps your text file names simply use underscores. This was also back when my script wasn't intended to be a script, but a part of the default parser for the Webui.

That said, I wouldn't object to a single-underscore method, if the method continues its life as an optional script.

I guess a way around that is to simply ignore the key if it doesn't exist as a physical file list.

I don't have this issue with NSP since it's a loaded JSON dictionary, and I check if any of the sections in the dict exist with key = f'_{section}_' sorta deal (reference). So unless a section was literally named as a artist that uses underscores at the beginning and end, it wouldn't be an issue.

PhaneeshB pushed a commit to nod-ai/diffusers that referenced this issue Mar 1, 2023
- add args usage, pass gs_url by CL flag
- add support for no existing prompts
@patrickvonplaten patrickvonplaten removed the good first issue Good for newcomers label Mar 18, 2023
@github-actions
Copy link

This issue has been automatically marked as stale because it has not had recent activity. If you think this still needs to be addressed please comment on this thread.

Please note that issues that do not follow the contributing guidelines are likely to be ignored.

@github-actions github-actions bot added the stale Issues that haven't received updates label Apr 12, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
community-examples hacktoberfest stale Issues that haven't received updates
Projects
None yet
Development

No branches or pull requests

6 participants