Greetings people of Civitai!
If you have ever delved deep into creating wildcards, you may know the pain of doing stuff on a larger scale, especially when you're working without a templating language.
Introduction
This is why I took on the challenge to create a tool to help you speed up your workflow process! At the moment it is in early stages of development, but I am planning on making it public in the coming months.
Technical Details
It's an open source and (hopefully) community-managed project written in Rust, using Tauri as the front-end framework.
The way it is gonna work is similar to a file system, but each folder will instead take on the role of combining every wildcard contained within it, allowing you to cleverly seperate each part of a prompt into smaller parts.
Here is a basic chart outlining the thought process:
Okay, but why?...
The main motivation for this project is making wildcards accessible for more people, and making it easier to create things such as character definitions.
As you may know, adding tags unrelated to the composition into stable diffusion may lead to unintended results. For example adding the "upper body" tag while also tagging "shoes", "legs" or any other stuff that conflicts with "upper body" may occasionally lead to bad results.
Now say you want to create a wildcard setup that lets you seperate upper- and lower body tags for a specific character. How would you do that?
Well, the answer itself isn't really that hard. You would do something like this:
π CHARACTER
β CHARACTER-BASE
π CHARACTER-CLOTHES
β CHARACTER-CLOTHES-UPPER
β CHARACTER-CLOTHES-BOTTOM
Using this setup, you will be able to access every part of your character, such as the base defintion, the full outfit, or just parts of the outfit.
Wow! that is useful! Now tell me, would you like to go and manually create, import and sift through tags, and add it to this structure manually? If your answer is yes, you're probably a masochist. If not, then you probably understand my motivations for going as far as creating a program for it.
Wildcard creation has a few of these flaws. Here's a few examples:
Varied chances - if you want one line to appear more often than another, you have to copy/paste that line so that it appears a percentage of times more often than the other content in the file. Now imagine needing to make an update to that line. NO THANKS.
Infinite loops - If two wildcards reference each other, it causes an infinite loop. This isn't an issue most of the time, as most extensions have measures that prevent fatal issues; most of them don't warn the user about it, however, which means some files are essentially not used.
Converting to/from another format - There are quite a few formats for wildcard creation. If you want to swap formats, you have to manually edit the syntax of each file to accomodate that.
Now, it's your turn
"A tool made for the community should be shaped by the community"
- Someone, probably at some point
At the moment, I am unsure of which direction to take with this program. I have a basic outline on how it's going to work, as well as some of the features I'd like to implement. Beyond that, I'm lost.
I know the community for wildcards is rather small, but if you have some experience creating wildcards, I'd like to know your thoughts and what you're missing. And if you're not, your feedback is still valuable! Anything such as cool features, UI concepts or even name suggestions (as I don't have one yet...) means the world to me.
Here's a list of questions to get you started:
How advanced should this editor be? (e.g. does it need plugin support, custom workflows (like comfyui), seamless integrations with services (a1111, comfyui, civitai), etc.)
Do you have any features you'd like to see? (tag categorization, syntax highlighting, style editor, etc.)
This program aims to remove your workflow of working with individual files, are you okay with that?
Would you use this program if it was released?
As stated above, I would love feedback in any form! I will be reading every comment on this post. No question is too small!
I will leave you with a very early concept of the editor
(haters will say its inspired by Visual Studio Code)