awoo
Browse filesSigned-off-by: Balazs Horvath <acsipont@gmail.com>
This view is limited to 50 files because it contains too many changes.
See raw diff
- README.md +19 -275
- embeddings/BadDream-SDXL.json +0 -0
- embeddings/EasyNegativeV2-SDXL.json +0 -0
- embeddings/EasyNegativeV2.json +0 -0
- embeddings/EyeDetail-SDXL.json +0 -0
- embeddings/FastNegativeEmbedding-SDXL.json +0 -0
- embeddings/FastNegativeEmbeddingStrong-SDXL.json +0 -0
- embeddings/FastNegativeV2-SDXL.json +0 -0
- embeddings/HairDetail-SDXL.json +0 -0
- embeddings/HandNeg-neg-SDXL.json +0 -0
- embeddings/OverallDetail-SDXL.json +0 -0
- embeddings/SkinDetail-SDXL.json +0 -0
- embeddings/SkinDetailNeg-SDXL.json +0 -0
- embeddings/SkinHairDetail-SDXL.json +0 -0
- embeddings/Style-GravityMagic-SDXL.json +0 -0
- embeddings/Style-Winter-SDXL.json +0 -0
- embeddings/Style-Winter-neg-SDXL.json +0 -0
- embeddings/UnrealisticDream-SDXL.json +0 -0
- embeddings/Unspeakable-Horrors-16v-SDXL.json +0 -0
- embeddings/Unspeakable-Horrors-24v-SDXL.json +0 -0
- embeddings/Unspeakable-Horrors-32v-SDXL.json +0 -0
- embeddings/Unspeakable-Horrors-48v-SDXL.json +0 -0
- embeddings/Unspeakable-Horrors-64v-SDXL.json +0 -0
- embeddings/Unspeakable-Horrors-Composition-4v-SDXL.json +0 -0
- embeddings/Unspeakable-Horrors-Composition-SDXL.json +0 -0
- embeddings/aid210-SDXL.json +0 -0
- embeddings/aid28-SDXL.json +0 -0
- embeddings/aid29-SDXL.json +0 -0
- embeddings/aid291-SDXL.json +0 -0
- embeddings/aidv1-neg-SDXL.json +0 -0
- embeddings/aidxlv05_neg.json +0 -0
- embeddings/bad-artist-SDXL.json +0 -0
- embeddings/bad-artist-anime-SDXL.json +0 -0
- embeddings/bad-hands-5-SDXL.json +0 -0
- embeddings/bad_prompt-SDXL.json +0 -0
- embeddings/bad_prompt_version2-SDXL.json +0 -0
- embeddings/badv3-SDXL.json +0 -0
- embeddings/badv4-SDXL.json +0 -0
- embeddings/badv5-SDXL.json +0 -0
- embeddings/badyiffymix35-SDXL.json +0 -0
- embeddings/badyiffymix41-SDXL.json +0 -0
- embeddings/badyiffymix41.json +7 -0
- embeddings/boring_sdxl_v1.json +0 -0
- embeddings/bwu-SDXL.json +0 -0
- embeddings/bwu.json +0 -0
- embeddings/deformityv6-SDXL.json +0 -0
- embeddings/dfc-SDXL.json +0 -0
- embeddings/dfc.json +0 -0
- embeddings/easynegative-1.5-SDXL.json +0 -0
- embeddings/easynegative-1.5.json +0 -0
README.md
CHANGED
@@ -1,280 +1,19 @@
|
|
1 |
---
|
2 |
license: wtfpl
|
3 |
datasets:
|
4 |
-
- k4d3/furry
|
5 |
language:
|
6 |
-
- en
|
7 |
tags:
|
8 |
-
- not-for-all-audiences
|
9 |
---
|
10 |
|
11 |
<!--markdownlint-disable MD033 MD038 -->
|
12 |
|
13 |
-
#
|
14 |
-
|
15 |
-
The Yiff Toolkit is a comprehensive set of tools designed to enhance your creative process in the realm of furry art. From refining artist styles to generating unique characters, the Yiff Toolkit provides a range of tools to help you cum.
|
16 |
-
|
17 |
-
> NOTE: You can click on any image in this README to be instantly teleported next to the original resolution version of it! If you want the metadata for a picture and it isn't there, you need to delete the letter e before the .png in the link! If a metadata containing original image is missing, please let me know!
|
18 |
-
|
19 |
-
## Table of Contents
|
20 |
-
|
21 |
-
<div style="background-color: lightyellow; padding: 10px;">
|
22 |
-
<details>
|
23 |
-
<summary>Click to reveal table of contents</summary>
|
24 |
-
|
25 |
-
- [Hotdogwolf's Yiff Toolkit](#hotdogwolfs-yiff-toolkit)
|
26 |
-
- [Table of Contents](#table-of-contents)
|
27 |
-
- [Dataset Tools](#dataset-tools)
|
28 |
-
- [Dataset Preparation](#dataset-preparation)
|
29 |
-
- [Create the `training_dir` Directory](#create-the-training_dir-directory)
|
30 |
-
- [Grabber](#grabber)
|
31 |
-
- [Manual Method](#manual-method)
|
32 |
-
- [Auto Taggers](#auto-taggers)
|
33 |
-
- [eva02-vit-large-448-8046](#eva02-vit-large-448-8046)
|
34 |
-
- [LoRA Training Guide](#lora-training-guide)
|
35 |
-
- [Installation Tips](#installation-tips)
|
36 |
-
- [Pony Training](#pony-training)
|
37 |
-
- [Download Pony in Diffusers Format](#download-pony-in-diffusers-format)
|
38 |
-
- [Sample Prompt File](#sample-prompt-file)
|
39 |
-
- [Training Commands](#training-commands)
|
40 |
-
- [`accelerate launch`](#accelerate-launch)
|
41 |
-
- [`--lowram`](#--lowram)
|
42 |
-
- [`--pretrained_model_name_or_path`](#--pretrained_model_name_or_path)
|
43 |
-
- [`--output_dir`](#--output_dir)
|
44 |
-
- [`--train_data_dir`](#--train_data_dir)
|
45 |
-
- [`--resolution`](#--resolution)
|
46 |
-
- [`--enable_bucket`](#--enable_bucket)
|
47 |
-
- [`--min_bucket_reso` and `--max_bucket_reso`](#--min_bucket_reso-and---max_bucket_reso)
|
48 |
-
- [`--network_alpha`](#--network_alpha)
|
49 |
-
- [`--save_model_as`](#--save_model_as)
|
50 |
-
- [`--network_module`](#--network_module)
|
51 |
-
- [`--network_args`](#--network_args)
|
52 |
-
- [`preset`](#preset)
|
53 |
-
- [`conv_dim` and `conv_alpha`](#conv_dim-and-conv_alpha)
|
54 |
-
- [`module_dropout` and `dropout` and `rank_dropout`](#module_dropout-and-dropout-and-rank_dropout)
|
55 |
-
- [`use_tucker`](#use_tucker)
|
56 |
-
- [`use_scalar`](#use_scalar)
|
57 |
-
- [`rank_dropout_scale`](#rank_dropout_scale)
|
58 |
-
- [`algo`](#algo)
|
59 |
-
- [`train_norm`](#train_norm)
|
60 |
-
- [`block_dims`](#block_dims)
|
61 |
-
- [`block_alphas`](#block_alphas)
|
62 |
-
- [`--network_dropout`](#--network_dropout)
|
63 |
-
- [`--lr_scheduler`](#--lr_scheduler)
|
64 |
-
- [`--lr_scheduler_num_cycles`](#--lr_scheduler_num_cycles)
|
65 |
-
- [`--learning_rate` and `--unet_lr` and `--text_encoder_lr`](#--learning_rate-and---unet_lr-and---text_encoder_lr)
|
66 |
-
- [`--network_dim`](#--network_dim)
|
67 |
-
- [`--output_name`](#--output_name)
|
68 |
-
- [`--scale_weight_norms`](#--scale_weight_norms)
|
69 |
-
- [`--max_grad_norm`](#--max_grad_norm)
|
70 |
-
- [`--no_half_vae`](#--no_half_vae)
|
71 |
-
- [`--save_every_n_epochs` and `--save_last_n_epochs` or `--save_every_n_steps` and `--save_last_n_steps`](#--save_every_n_epochs-and---save_last_n_epochs-or---save_every_n_steps-and---save_last_n_steps)
|
72 |
-
- [`--mixed_precision`](#--mixed_precision)
|
73 |
-
- [`--save_precision`](#--save_precision)
|
74 |
-
- [`--caption_extension`](#--caption_extension)
|
75 |
-
- [`--cache_latents` and `--cache_latents_to_disk`](#--cache_latents-and---cache_latents_to_disk)
|
76 |
-
- [`--optimizer_type`](#--optimizer_type)
|
77 |
-
- [`--dataset_repeats`](#--dataset_repeats)
|
78 |
-
- [`--max_train_steps`](#--max_train_steps)
|
79 |
-
- [`--shuffle_caption`](#--shuffle_caption)
|
80 |
-
- [`--sdpa` or `--xformers` or `--mem_eff_attn`](#--sdpa-or---xformers-or---mem_eff_attn)
|
81 |
-
- [`--multires_noise_iterations` and `--multires_noise_discount`](#--multires_noise_iterations-and---multires_noise_discount)
|
82 |
-
- [Implementation Details](#implementation-details)
|
83 |
-
- [`--sample_prompts` and `--sample_sampler` and `--sample_every_n_steps`](#--sample_prompts-and---sample_sampler-and---sample_every_n_steps)
|
84 |
-
- [Embeddings for 1.5 and SDXL](#embeddings-for-15-and-sdxl)
|
85 |
-
- [ComfyUI Walkthrough any%](#comfyui-walkthrough-any)
|
86 |
-
- [AnimateDiff for Masochists](#animatediff-for-masochists)
|
87 |
-
- [Stable Cascade Furry Bible](#stable-cascade-furry-bible)
|
88 |
-
- [Resonance Cascade](#resonance-cascade)
|
89 |
-
- [SDXL Furry Bible](#sdxl-furry-bible)
|
90 |
-
- [Some Common Knowledge Stuff](#some-common-knowledge-stuff)
|
91 |
-
- [SeaArt Furry](#seaart-furry)
|
92 |
-
- [Pony Diffusion V6](#pony-diffusion-v6)
|
93 |
-
- [Requirements](#requirements)
|
94 |
-
- [Positive Prompt Stuff](#positive-prompt-stuff)
|
95 |
-
- [Negative Prompt Stuff](#negative-prompt-stuff)
|
96 |
-
- [How to Prompt Female Anthro Lions](#how-to-prompt-female-anthro-lions)
|
97 |
-
- [Pony Diffusion V6 LoRAs](#pony-diffusion-v6-loras)
|
98 |
-
- [Concept Loras](#concept-loras)
|
99 |
-
- [small\_dom\_big\_sub-v1e400](#small_dom_big_sub-v1e400)
|
100 |
-
- [analbeads-v1e400](#analbeads-v1e400)
|
101 |
-
- [bdsm-v1e400](#bdsm-v1e400)
|
102 |
-
- [blue\_frost](#blue_frost)
|
103 |
-
- [cervine\_penis-v1e400](#cervine_penis-v1e400)
|
104 |
-
- [non-euclidean\_sex-v1e400](#non-euclidean_sex-v1e400)
|
105 |
-
- [space-v1e500](#space-v1e500)
|
106 |
-
- [spacengine-v1e500](#spacengine-v1e500)
|
107 |
-
- [Artist/Style LoRAs](#artiststyle-loras)
|
108 |
-
- [blp-v1e400](#blp-v1e400)
|
109 |
-
- [butterchalk-v3e400](#butterchalk-v3e400)
|
110 |
-
- [cecily\_lin-v1e37](#cecily_lin-v1e37)
|
111 |
-
- [chunie-v1e5](#chunie-v1e5)
|
112 |
-
- [cooliehigh-v1e45](#cooliehigh-v1e45)
|
113 |
-
- [by\_clybius-v1e400](#by_clybius-v1e400)
|
114 |
-
- [dagasi-v1e134](#dagasi-v1e134)
|
115 |
-
- [darkgem-v1e4](#darkgem-v1e4)
|
116 |
-
- [by\_himari-v1e400](#by_himari-v1e400)
|
117 |
-
- [furry\_sticker-v1e250](#furry_sticker-v1e250)
|
118 |
-
- [goronic-v1e1](#goronic-v1e1)
|
119 |
-
- [greg\_rutkowski-v1e400](#greg_rutkowski-v1e400)
|
120 |
-
- [hamgas-v1e400](#hamgas-v1e400)
|
121 |
-
- [honovy-v1e4](#honovy-v1e4)
|
122 |
-
- [jinxit-v1e10](#jinxit-v1e10)
|
123 |
-
- [kame\_3-v1e80](#kame_3-v1e80)
|
124 |
-
- [kenket-v1e4](#kenket-v1e4)
|
125 |
-
- [louart-v1e10](#louart-v1e10)
|
126 |
-
- [realistic-v4e400](#realistic-v4e400)
|
127 |
-
- [skecchiart-v1e134](#skecchiart-v1e134)
|
128 |
-
- [spectrumshift-v1e400](#spectrumshift-v1e400)
|
129 |
-
- [squishy-v1e10](#squishy-v1e10)
|
130 |
-
- [whisperingfornothing-v1e58](#whisperingfornothing-v1e58)
|
131 |
-
- [wjs07-v1e200](#wjs07-v1e200)
|
132 |
-
- [wolfy-nail-v1e400](#wolfy-nail-v1e400)
|
133 |
-
- [woolrool-v1e4](#woolrool-v1e4)
|
134 |
-
- [Character LoRAs](#character-loras)
|
135 |
-
- [arielsatyr-v1e400](#arielsatyr-v1e400)
|
136 |
-
- [amalia-v2e400](#amalia-v2e400)
|
137 |
-
- [amicus-v1e200](#amicus-v1e200)
|
138 |
-
- [auroth-v1e250](#auroth-v1e250)
|
139 |
-
- [blaidd-v1e400](#blaidd-v1e400)
|
140 |
-
- [martlet-v1e200](#martlet-v1e200)
|
141 |
-
- [ramona-v1e400](#ramona-v1e400)
|
142 |
-
- [tibetan-v2e500](#tibetan-v2e500)
|
143 |
-
- [veemon-v1e400](#veemon-v1e400)
|
144 |
-
- [hoodwink-v1e400](#hoodwink-v1e400)
|
145 |
-
- [jayjay-v1e400](#jayjay-v1e400)
|
146 |
-
- [foxparks-v2e134](#foxparks-v2e134)
|
147 |
-
- [lovander-v3e10](#lovander-v3e10)
|
148 |
-
- [skiltaire-v1e400](#skiltaire-v1e400)
|
149 |
-
- [chillet-v3e10](#chillet-v3e10)
|
150 |
-
- [maliketh-v1e1](#maliketh-v1e1)
|
151 |
-
- [wickerbeast-v1e500](#wickerbeast-v1e500)
|
152 |
-
- [Satisfied Customers](#satisfied-customers)
|
153 |
-
|
154 |
-
</details>
|
155 |
-
</div>
|
156 |
-
|
157 |
-
## Dataset Tools
|
158 |
-
|
159 |
-
I have uploaded all of the little handy Python scripts I use to [/dataset_tools](https://huggingface.co/k4d3/yiff_toolkit/tree/main/dataset_tools). They are pretty self explanatory by just the file name but almost all of them contain an AI generated descriptions. If you want to use them you will need to edit the path to your `training_dir` folder, the variable will be called `path` or `directory` and look something like this:
|
160 |
-
|
161 |
-
```py
|
162 |
-
def main():
|
163 |
-
path = 'C:\\Users\\kade\\Desktop\\training_dir_staging'
|
164 |
-
```
|
165 |
-
|
166 |
-
Don't be afraid of editing Python scripts, unlike the real snake, these won't bite!
|
167 |
|
168 |
---
|
169 |
|
170 |
-
## Dataset Preparation
|
171 |
-
|
172 |
-
Before you begin collecting your dataset you will need to decide what you want to teach the model, it can be a character, a style or a new concept.
|
173 |
-
|
174 |
-
For now let's imagine you want to teach your model *wickerbeasts* so you can generate your VRChat avatar every night.
|
175 |
-
|
176 |
-
### Create the `training_dir` Directory
|
177 |
-
|
178 |
-
Before starting we need a directory where we'll organize our datasets. Open up a terminal by pressing `Win + R` and typing in `pwsh`. We will also be using [git](https://git-scm.com/download/win) and [huggingface](https://huggingface.co/) to version control our smut. For brevity I'll refrain from giving you a tutorial on both. Once you have your newly created dataset on HF ready lets clone it. Make sure you change `user` in the first line to your HF username!
|
179 |
-
|
180 |
-
```pwsh
|
181 |
-
git clone git@hf.co:/datasets/user/training_dir C:\training_dir
|
182 |
-
cd C:\training_dir
|
183 |
-
git branch wickerbeast
|
184 |
-
git checkout wickerbeast
|
185 |
-
```
|
186 |
-
|
187 |
-
Let's continue with downloading some *wickerbeast* data but don't close the terminal window just yet, for this we'll make good use of the furry <abbr title="image board">booru</abbr> [e621.net](https://e621.net/). There are two nice ways to download data from this site with the metadata intact, I'll start with the fastest and then I will explain how you can selectively browse around the site and get the images you like one by one.
|
188 |
-
|
189 |
-
### Grabber
|
190 |
-
|
191 |
-
[Grabber](https://github.com/Bionus/imgbrd-grabber) makes your life easier when trying to compile datasets quickly from imageboards.
|
192 |
-
|
193 |
-
[![A screenshot of Grabber.](https://huggingface.co/k4d3/yiff_toolkit/resolve/main/static/tutorial/grabber1.png)](https://huggingface.co/k4d3/yiff_toolkit/resolve/main/static/tutorial/grabber1.png)
|
194 |
-
|
195 |
-
Clicking on the `Add` button on the Download tab lets you add a `group` which will get downloaded, `Tags` will be the where you can type in the search parameters like you would on e621.net, so for example the string `wickerbeast solo -comic -meme -animated order:score` will search for solo wickerbeast pictures without including comics, memes, and animated posts in descending order of their scores. For training SDXL LoRAs you usually won't need more than 50 images, but you should set the solo group to `40` and add a new group with `-solo` instead of `solo` and set the `Image Limit` to `10` for it to include some images with other characters in it. This will help the model learn a lot better!
|
196 |
-
|
197 |
-
You should also enable `Separate log files` for e621, this will download the metadata automatically alongside the pictures.
|
198 |
-
|
199 |
-
[![Another screenshot of Grabber.](https://huggingface.co/k4d3/yiff_toolkit/resolve/main/static/tutorial/grabber2.png)](https://huggingface.co/k4d3/yiff_toolkit/resolve/main/static/tutorial/grabber2.png)
|
200 |
-
|
201 |
-
For Pony I've set up the Text file content like so: `rating_%rating%, %all:separator=^, %` for other models you might want to replace `rating_%rating%` with just `%rating%`.
|
202 |
-
|
203 |
-
You should also set the `Folder` into which the images will get downloaded. Let's use `C:\training_dir\1_wickerbeast` for both groups.
|
204 |
-
|
205 |
-
Now you are ready to right-click on each group and download the images.
|
206 |
-
|
207 |
-
---
|
208 |
-
|
209 |
-
### Manual Method
|
210 |
-
|
211 |
-
This method requires a browser extension like [ViolentMonkey](https://violentmonkey.github.io/) and the following UserScript:
|
212 |
-
|
213 |
-
<div style="background-color: lightyellow; padding: 10px;">
|
214 |
-
<details>
|
215 |
-
<summary>Click to reveal userscript.</summary>
|
216 |
-
|
217 |
-
```js
|
218 |
-
// ==UserScript==
|
219 |
-
// @name e621 JSON Button
|
220 |
-
// @namespace https://cringe.live
|
221 |
-
// @version 1.0
|
222 |
-
// @description Adds a JSON button next to the download button on e621.net
|
223 |
-
// @author _ka_de
|
224 |
-
// @match https://e621.net/*
|
225 |
-
// @match https://e6ai.net/*
|
226 |
-
// @grant none
|
227 |
-
// ==/UserScript==
|
228 |
-
|
229 |
-
(function() {
|
230 |
-
'use strict';
|
231 |
-
|
232 |
-
function constructJSONUrl() {
|
233 |
-
// Get the current URL
|
234 |
-
var currentUrl = window.location.href;
|
235 |
-
// Extract the post ID from the URL
|
236 |
-
var postId = currentUrl.match(/^https?:\/\/(?:e621\.net|e6ai\.net)\/posts\/(\d+)/)[1];
|
237 |
-
// Check the hostname
|
238 |
-
var hostname = window.location.hostname;
|
239 |
-
// Construct the JSON URL based on the hostname
|
240 |
-
var jsonUrl = 'https://' + hostname + '/posts/' + postId + '.json';
|
241 |
-
return jsonUrl;
|
242 |
-
}
|
243 |
-
|
244 |
-
function createJSONButton() {
|
245 |
-
// Create a new button element
|
246 |
-
var jsonButton = document.createElement('a');
|
247 |
-
// Set the attributes for the button
|
248 |
-
jsonButton.setAttribute('class', 'button btn-info');
|
249 |
-
var jsonUrl = constructJSONUrl();
|
250 |
-
// Set the JSON URL as the button's href attribute
|
251 |
-
jsonButton.setAttribute('href', jsonUrl);
|
252 |
-
// Set the inner HTML for the button
|
253 |
-
jsonButton.innerHTML = '<i class="fa-solid fa-angle-double-right"></i><span>JSON</span>';
|
254 |
-
|
255 |
-
// Find the container where we want to insert the button
|
256 |
-
var container = document.querySelector('#post-options > li:last-child');
|
257 |
-
|
258 |
-
// Check if the #image-extra-controls element exists
|
259 |
-
if (document.getElementById('image-extra-controls')) {
|
260 |
-
// Insert the button after the download button
|
261 |
-
container = document.getElementById('image-download-link');
|
262 |
-
container.insertBefore(jsonButton, container.children[0].nextSibling);
|
263 |
-
} else {
|
264 |
-
// Insert the button after the last li element in #post-options
|
265 |
-
container.parentNode.insertBefore(jsonButton, container.nextSibling);
|
266 |
-
}
|
267 |
-
}
|
268 |
-
|
269 |
-
// Run the function to create the JSON button
|
270 |
-
createJSONButton();
|
271 |
-
})();
|
272 |
-
```
|
273 |
-
|
274 |
-
</details>
|
275 |
-
</div>
|
276 |
-
|
277 |
-
This will put a link to the JSON next to the download button on e621.net and e6ai.net and you can use [this](https://huggingface.co/k4d3/yiff_toolkit/blob/main/dataset_tools/e621%20JSON%20to%20txt.ipynb) Python script to convert them to caption files, it uses the `rating_` prefix before `safe/questionable/explicit` because.. you've guessed it, Pony! It also lets you ignore the tags you add into `ignored_tags` using the `r"\btag\b",` syntax, just replace `tag` with the tag you want it to skip.
|
278 |
|
279 |
---
|
280 |
|
@@ -531,6 +270,7 @@ accelerate launch --num_cpu_threads_per_process=2 "./sdxl_train_network.py"
|
|
531 |
```
|
532 |
|
533 |
---
|
|
|
534 |
|
535 |
|
536 |
And now lets break down a bunch of arguments we can pass to `sd-scripts`.
|
@@ -716,7 +456,7 @@ def forward(self, x):
|
|
716 |
mask = mask.unsqueeze(-1).unsqueeze(-1)
|
717 |
lx = lx * mask
|
718 |
|
719 |
-
scale = self.scale * (1.0 / (1.0 - self.rank_dropout))
|
720 |
else:
|
721 |
scale = self.scale
|
722 |
|
@@ -771,7 +511,7 @@ A boolean flag that determines whether to scale the dropout mask to have an aver
|
|
771 |
def forward(self, orig_weight, org_bias, new_weight, new_bias, *args, **kwargs):
|
772 |
# Retrieve the device that the 'oft_blocks' tensor is on. This ensures that any new tensors created are on the same device.
|
773 |
device = self.oft_blocks.device
|
774 |
-
|
775 |
# Check if rank dropout is enabled and the model is in training mode.
|
776 |
if self.rank_dropout and self.training:
|
777 |
# Create a random tensor the same shape as 'oft_blocks', with values drawn from a uniform distribution.
|
@@ -779,7 +519,7 @@ def forward(self, orig_weight, org_bias, new_weight, new_bias, *args, **kwargs):
|
|
779 |
drop = (torch.rand(self.oft_blocks, device=device) < self.rank_dropout).to(
|
780 |
self.oft_blocks.dtype
|
781 |
)
|
782 |
-
|
783 |
# If 'rank_dropout_scale' is True, scale the dropout mask to have an average value of 1.
|
784 |
# This helps maintain the scale of the tensor's values after dropout is applied.
|
785 |
if self.rank_dropout_scale:
|
@@ -1054,7 +794,7 @@ The `pyramid_noise_like` function generates noise with a pyramid structure. It s
|
|
1054 |
|
1055 |
You have the option of generating images during training so you can check the progress, the argument let's you pick between different samplers, by default it is on `ddim`, so you better change it!
|
1056 |
|
1057 |
-
|
1058 |
|
1059 |
```py
|
1060 |
--sample_prompts=/training_dir/sample-prompts.txt --sample_sampler="euler_a" --sample_every_n_steps=100
|
@@ -1085,7 +825,7 @@ accelerate launch --num_cpu_threads_per_process=2 "./sdxl_train_network.py" \
|
|
1085 |
--network_alpha=4 \
|
1086 |
--save_model_as="safetensors" \
|
1087 |
--network_module="lycoris.kohya" \
|
1088 |
-
--network_args \
|
1089 |
"preset=full" \
|
1090 |
"conv_dim=256" \
|
1091 |
"conv_alpha=4" \
|
@@ -1184,10 +924,10 @@ Download the [model](https://civitai.com/models/257749/pony-diffusion-v6-xl) and
|
|
1184 |
#### Positive Prompt Stuff
|
1185 |
|
1186 |
```python
|
1187 |
-
score_9, score_8_up, score_7_up, score_6_up, rating_explicit, source_furry,
|
1188 |
```
|
1189 |
|
1190 |
-
I just assumed you wanted
|
1191 |
|
1192 |
You can talk to Pony in three ways, use tags only, tags are neat, but you can also just type in
|
1193 |
`The background is of full white marble towers in greek architecture style and a castle.` and use natural language to the fullest extent, but the best way is to mix it both, its actually recommended since the score tags by definition are tags, and you need to use them! There are also artist styles that seeped into some random tokens during training, there is a community effort by some weebs to sort them [here](https://lite.framacalc.org/4ttgzvd0rx-a6jf).
|
@@ -1315,6 +1055,7 @@ blurry, wtf, old art, where is your god now, abstract background, simple backgro
|
|
1315 |
<summary>Click to reveal images.</summary>
|
1316 |
|
1317 |
[![An AI generated image.](https://huggingface.co/k4d3/yiff_toolkit/resolve/main/static/space/00000890-04092251-512.png)](https://huggingface.co/k4d3/yiff_toolkit/resolve/main/static/space/00000890-04092251.png) [![An AI generated image.](https://huggingface.co/k4d3/yiff_toolkit/resolve/main/static/space/00000893-04092315-512.png)](https://huggingface.co/k4d3/yiff_toolkit/resolve/main/static/space/00000893-04092315.png) [![An AI generated image.](https://huggingface.co/k4d3/yiff_toolkit/resolve/main/static/space/00000895-04092334-512.png)](https://huggingface.co/k4d3/yiff_toolkit/resolve/main/static/space/00000895-04092334.png) [![An AI generated image.](https://huggingface.co/k4d3/yiff_toolkit/resolve/main/static/space/00000953-04111037-512.png)](https://huggingface.co/k4d3/yiff_toolkit/resolve/main/static/space/00000953-04111037.png) [![An AI generated image.](https://huggingface.co/k4d3/yiff_toolkit/resolve/main/static/space/00000955-04111040-512.png)](https://huggingface.co/k4d3/yiff_toolkit/resolve/main/static/space/00000955-04111040.png)
|
|
|
1318 |
</details>
|
1319 |
</div>
|
1320 |
|
@@ -1349,7 +1090,7 @@ blp,
|
|
1349 |
|
1350 |
// Recommended:
|
1351 |
|
1352 |
-
detailed background, amazing_background, scenery porn, feral,
|
1353 |
```
|
1354 |
|
1355 |
<!-- ⚠️: Hello?! Images?! --->
|
@@ -1361,7 +1102,7 @@ detailed background, amazing_background, scenery porn, feral,
|
|
1361 |
- [⬇️ Download](https://huggingface.co/k4d3/yiff_toolkit/resolve/main/ponyxl_loras/butterchalk-v3e400.safetensors?download=true)
|
1362 |
- [📊 Metadata](https://huggingface.co/k4d3/yiff_toolkit/raw/main/ponyxl_loras/butterchalk-v3e400.json)
|
1363 |
|
1364 |
-
I'm not into `young anthro` I only trained this one for you, you hentai baka!
|
1365 |
|
1366 |
<!-- ⚠️ --->
|
1367 |
|
@@ -1412,6 +1153,7 @@ An AI artist to bias the dataset towards detailed owls.
|
|
1412 |
<summary>Click to reveal images.</summary>
|
1413 |
|
1414 |
[![An AI generated image.](https://huggingface.co/k4d3/yiff_toolkit/resolve/main/static/by_clybius/00001289-05020303-512.png)](https://huggingface.co/k4d3/yiff_toolkit/resolve/main/static/by_clybius/00001289-05020303.png) [![An AI generated image.](https://huggingface.co/k4d3/yiff_toolkit/resolve/main/static/by_clybius/00001293-05020312-512.png)](https://huggingface.co/k4d3/yiff_toolkit/resolve/main/static/by_clybius/00001293-05020312.png)
|
|
|
1415 |
</details>
|
1416 |
</div>
|
1417 |
|
@@ -1444,6 +1186,7 @@ I recommend first an `Euler a` with `40` steps, CFG set to `11` at 1024x1024 res
|
|
1444 |
<summary>Click to reveal images.</summary>
|
1445 |
|
1446 |
[![An AI generated image.](https://huggingface.co/k4d3/yiff_toolkit/resolve/main/static/darkgem/00000859-04070924e-512.png)](https://huggingface.co/k4d3/yiff_toolkit/resolve/main/static/darkgem/00000859-04070924e.png)
|
|
|
1447 |
</details>
|
1448 |
</div>
|
1449 |
|
@@ -1481,7 +1224,7 @@ Generate an infinite amount of furry stickers for your infinite amount of telegr
|
|
1481 |
```js
|
1482 |
// Positive prompt:
|
1483 |
|
1484 |
-
furry sticker, simple background, black background, white outline,
|
1485 |
|
1486 |
// Negative prompt:
|
1487 |
|
@@ -1830,6 +1573,7 @@ anthro male maliketh \(elden ring\) with white fur and white hair wearing head a
|
|
1830 |
<summary>Click to reveal images</summary>
|
1831 |
|
1832 |
[![An AI generated image.](https://huggingface.co/k4d3/yiff_toolkit/resolve/main/static/maliketh/00000844-04070802e-512.png)](https://huggingface.co/k4d3/yiff_toolkit/resolve/main/static/maliketh/00000844-04070802e.png) [![An AI generated image.](https://huggingface.co/k4d3/yiff_toolkit/resolve/main/static/maliketh/00000850-04070838-512.png)](https://huggingface.co/k4d3/yiff_toolkit/resolve/main/static/maliketh/00000850-04070838.png) [![An AI generated image.](https://huggingface.co/k4d3/yiff_toolkit/resolve/main/static/maliketh/00000842-04070728e-512.png)](https://huggingface.co/k4d3/yiff_toolkit/resolve/main/static/maliketh/00000842-04070728e.png)
|
|
|
1833 |
</details>
|
1834 |
</div>
|
1835 |
|
|
|
1 |
---
|
2 |
license: wtfpl
|
3 |
datasets:
|
4 |
+
- k4d3/furry
|
5 |
language:
|
6 |
+
- en
|
7 |
tags:
|
8 |
+
- not-for-all-audiences
|
9 |
---
|
10 |
|
11 |
<!--markdownlint-disable MD033 MD038 -->
|
12 |
|
13 |
+
# Yiff Toolkit
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
|
15 |
---
|
16 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
17 |
|
18 |
---
|
19 |
|
|
|
270 |
```
|
271 |
|
272 |
---
|
273 |
+
|
274 |
|
275 |
|
276 |
And now lets break down a bunch of arguments we can pass to `sd-scripts`.
|
|
|
456 |
mask = mask.unsqueeze(-1).unsqueeze(-1)
|
457 |
lx = lx * mask
|
458 |
|
459 |
+
scale = self.scale * (1.0 / (1.0 - self.rank_dropout))
|
460 |
else:
|
461 |
scale = self.scale
|
462 |
|
|
|
511 |
def forward(self, orig_weight, org_bias, new_weight, new_bias, *args, **kwargs):
|
512 |
# Retrieve the device that the 'oft_blocks' tensor is on. This ensures that any new tensors created are on the same device.
|
513 |
device = self.oft_blocks.device
|
514 |
+
|
515 |
# Check if rank dropout is enabled and the model is in training mode.
|
516 |
if self.rank_dropout and self.training:
|
517 |
# Create a random tensor the same shape as 'oft_blocks', with values drawn from a uniform distribution.
|
|
|
519 |
drop = (torch.rand(self.oft_blocks, device=device) < self.rank_dropout).to(
|
520 |
self.oft_blocks.dtype
|
521 |
)
|
522 |
+
|
523 |
# If 'rank_dropout_scale' is True, scale the dropout mask to have an average value of 1.
|
524 |
# This helps maintain the scale of the tensor's values after dropout is applied.
|
525 |
if self.rank_dropout_scale:
|
|
|
794 |
|
795 |
You have the option of generating images during training so you can check the progress, the argument let's you pick between different samplers, by default it is on `ddim`, so you better change it!
|
796 |
|
797 |
+
You can also use `--sample_every_n_epochs` instead which will take precedence over steps. The `k_` prefix means karras and the `_a` suffix means ancestral.
|
798 |
|
799 |
```py
|
800 |
--sample_prompts=/training_dir/sample-prompts.txt --sample_sampler="euler_a" --sample_every_n_steps=100
|
|
|
825 |
--network_alpha=4 \
|
826 |
--save_model_as="safetensors" \
|
827 |
--network_module="lycoris.kohya" \
|
828 |
+
--network_args \
|
829 |
"preset=full" \
|
830 |
"conv_dim=256" \
|
831 |
"conv_alpha=4" \
|
|
|
924 |
#### Positive Prompt Stuff
|
925 |
|
926 |
```python
|
927 |
+
score_9, score_8_up, score_7_up, score_6_up, rating_explicit, source_furry,
|
928 |
```
|
929 |
|
930 |
+
I just assumed you wanted _explicit_ and _furry_, you can also set the rating to `rating_safe` or `rating_questionable` and the source to `source_anime`, `source_cartoon`, `source_pony`, `source_rule34` and optionally mix them however you'd like. Its your life! `score_9` is an interesting tag, the model seems to have put all it's "_artsy_" knowledge. You might want to check if it is for your taste. The other interesting tag is `score_5_up` which seems to have learned a little bit of everything regarding quality while `score_4_up` seems to be at the bottom of the autism spectrum regarding art, I do not recommend using it, but you can do whatever you want!
|
931 |
|
932 |
You can talk to Pony in three ways, use tags only, tags are neat, but you can also just type in
|
933 |
`The background is of full white marble towers in greek architecture style and a castle.` and use natural language to the fullest extent, but the best way is to mix it both, its actually recommended since the score tags by definition are tags, and you need to use them! There are also artist styles that seeped into some random tokens during training, there is a community effort by some weebs to sort them [here](https://lite.framacalc.org/4ttgzvd0rx-a6jf).
|
|
|
1055 |
<summary>Click to reveal images.</summary>
|
1056 |
|
1057 |
[![An AI generated image.](https://huggingface.co/k4d3/yiff_toolkit/resolve/main/static/space/00000890-04092251-512.png)](https://huggingface.co/k4d3/yiff_toolkit/resolve/main/static/space/00000890-04092251.png) [![An AI generated image.](https://huggingface.co/k4d3/yiff_toolkit/resolve/main/static/space/00000893-04092315-512.png)](https://huggingface.co/k4d3/yiff_toolkit/resolve/main/static/space/00000893-04092315.png) [![An AI generated image.](https://huggingface.co/k4d3/yiff_toolkit/resolve/main/static/space/00000895-04092334-512.png)](https://huggingface.co/k4d3/yiff_toolkit/resolve/main/static/space/00000895-04092334.png) [![An AI generated image.](https://huggingface.co/k4d3/yiff_toolkit/resolve/main/static/space/00000953-04111037-512.png)](https://huggingface.co/k4d3/yiff_toolkit/resolve/main/static/space/00000953-04111037.png) [![An AI generated image.](https://huggingface.co/k4d3/yiff_toolkit/resolve/main/static/space/00000955-04111040-512.png)](https://huggingface.co/k4d3/yiff_toolkit/resolve/main/static/space/00000955-04111040.png)
|
1058 |
+
|
1059 |
</details>
|
1060 |
</div>
|
1061 |
|
|
|
1090 |
|
1091 |
// Recommended:
|
1092 |
|
1093 |
+
detailed background, amazing_background, scenery porn, feral,
|
1094 |
```
|
1095 |
|
1096 |
<!-- ⚠️: Hello?! Images?! --->
|
|
|
1102 |
- [⬇️ Download](https://huggingface.co/k4d3/yiff_toolkit/resolve/main/ponyxl_loras/butterchalk-v3e400.safetensors?download=true)
|
1103 |
- [📊 Metadata](https://huggingface.co/k4d3/yiff_toolkit/raw/main/ponyxl_loras/butterchalk-v3e400.json)
|
1104 |
|
1105 |
+
I'm not into `young anthro` I only trained this one for you, you hentai baka! ^\_^
|
1106 |
|
1107 |
<!-- ⚠️ --->
|
1108 |
|
|
|
1153 |
<summary>Click to reveal images.</summary>
|
1154 |
|
1155 |
[![An AI generated image.](https://huggingface.co/k4d3/yiff_toolkit/resolve/main/static/by_clybius/00001289-05020303-512.png)](https://huggingface.co/k4d3/yiff_toolkit/resolve/main/static/by_clybius/00001289-05020303.png) [![An AI generated image.](https://huggingface.co/k4d3/yiff_toolkit/resolve/main/static/by_clybius/00001293-05020312-512.png)](https://huggingface.co/k4d3/yiff_toolkit/resolve/main/static/by_clybius/00001293-05020312.png)
|
1156 |
+
|
1157 |
</details>
|
1158 |
</div>
|
1159 |
|
|
|
1186 |
<summary>Click to reveal images.</summary>
|
1187 |
|
1188 |
[![An AI generated image.](https://huggingface.co/k4d3/yiff_toolkit/resolve/main/static/darkgem/00000859-04070924e-512.png)](https://huggingface.co/k4d3/yiff_toolkit/resolve/main/static/darkgem/00000859-04070924e.png)
|
1189 |
+
|
1190 |
</details>
|
1191 |
</div>
|
1192 |
|
|
|
1224 |
```js
|
1225 |
// Positive prompt:
|
1226 |
|
1227 |
+
furry sticker, simple background, black background, white outline,
|
1228 |
|
1229 |
// Negative prompt:
|
1230 |
|
|
|
1573 |
<summary>Click to reveal images</summary>
|
1574 |
|
1575 |
[![An AI generated image.](https://huggingface.co/k4d3/yiff_toolkit/resolve/main/static/maliketh/00000844-04070802e-512.png)](https://huggingface.co/k4d3/yiff_toolkit/resolve/main/static/maliketh/00000844-04070802e.png) [![An AI generated image.](https://huggingface.co/k4d3/yiff_toolkit/resolve/main/static/maliketh/00000850-04070838-512.png)](https://huggingface.co/k4d3/yiff_toolkit/resolve/main/static/maliketh/00000850-04070838.png) [![An AI generated image.](https://huggingface.co/k4d3/yiff_toolkit/resolve/main/static/maliketh/00000842-04070728e-512.png)](https://huggingface.co/k4d3/yiff_toolkit/resolve/main/static/maliketh/00000842-04070728e.png)
|
1576 |
+
|
1577 |
</details>
|
1578 |
</div>
|
1579 |
|
embeddings/BadDream-SDXL.json
ADDED
File without changes
|
embeddings/EasyNegativeV2-SDXL.json
ADDED
File without changes
|
embeddings/EasyNegativeV2.json
ADDED
File without changes
|
embeddings/EyeDetail-SDXL.json
ADDED
File without changes
|
embeddings/FastNegativeEmbedding-SDXL.json
ADDED
File without changes
|
embeddings/FastNegativeEmbeddingStrong-SDXL.json
ADDED
File without changes
|
embeddings/FastNegativeV2-SDXL.json
ADDED
File without changes
|
embeddings/HairDetail-SDXL.json
ADDED
File without changes
|
embeddings/HandNeg-neg-SDXL.json
ADDED
File without changes
|
embeddings/OverallDetail-SDXL.json
ADDED
File without changes
|
embeddings/SkinDetail-SDXL.json
ADDED
File without changes
|
embeddings/SkinDetailNeg-SDXL.json
ADDED
File without changes
|
embeddings/SkinHairDetail-SDXL.json
ADDED
File without changes
|
embeddings/Style-GravityMagic-SDXL.json
ADDED
File without changes
|
embeddings/Style-Winter-SDXL.json
ADDED
File without changes
|
embeddings/Style-Winter-neg-SDXL.json
ADDED
File without changes
|
embeddings/UnrealisticDream-SDXL.json
ADDED
File without changes
|
embeddings/Unspeakable-Horrors-16v-SDXL.json
ADDED
File without changes
|
embeddings/Unspeakable-Horrors-24v-SDXL.json
ADDED
File without changes
|
embeddings/Unspeakable-Horrors-32v-SDXL.json
ADDED
File without changes
|
embeddings/Unspeakable-Horrors-48v-SDXL.json
ADDED
File without changes
|
embeddings/Unspeakable-Horrors-64v-SDXL.json
ADDED
File without changes
|
embeddings/Unspeakable-Horrors-Composition-4v-SDXL.json
ADDED
File without changes
|
embeddings/Unspeakable-Horrors-Composition-SDXL.json
ADDED
File without changes
|
embeddings/aid210-SDXL.json
ADDED
File without changes
|
embeddings/aid28-SDXL.json
ADDED
File without changes
|
embeddings/aid29-SDXL.json
ADDED
File without changes
|
embeddings/aid291-SDXL.json
ADDED
File without changes
|
embeddings/aidv1-neg-SDXL.json
ADDED
File without changes
|
embeddings/aidxlv05_neg.json
ADDED
File without changes
|
embeddings/bad-artist-SDXL.json
ADDED
File without changes
|
embeddings/bad-artist-anime-SDXL.json
ADDED
File without changes
|
embeddings/bad-hands-5-SDXL.json
ADDED
File without changes
|
embeddings/bad_prompt-SDXL.json
ADDED
File without changes
|
embeddings/bad_prompt_version2-SDXL.json
ADDED
File without changes
|
embeddings/badv3-SDXL.json
ADDED
File without changes
|
embeddings/badv4-SDXL.json
ADDED
File without changes
|
embeddings/badv5-SDXL.json
ADDED
File without changes
|
embeddings/badyiffymix35-SDXL.json
ADDED
File without changes
|
embeddings/badyiffymix41-SDXL.json
ADDED
File without changes
|
embeddings/badyiffymix41.json
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{'modelspec.architecture': 'stable-diffusion-v1/textual-inversion',
|
2 |
+
'modelspec.date': '2024-01-28T16:38:19',
|
3 |
+
'modelspec.implementation': 'https://github.com/Stability-AI/generative-models',
|
4 |
+
'modelspec.prediction_type': 'v',
|
5 |
+
'modelspec.resolution': '640x640',
|
6 |
+
'modelspec.sai_model_spec': '1.0.0',
|
7 |
+
'modelspec.title': 'badyiffymix41'}
|
embeddings/boring_sdxl_v1.json
ADDED
File without changes
|
embeddings/bwu-SDXL.json
ADDED
File without changes
|
embeddings/bwu.json
ADDED
File without changes
|
embeddings/deformityv6-SDXL.json
ADDED
File without changes
|
embeddings/dfc-SDXL.json
ADDED
File without changes
|
embeddings/dfc.json
ADDED
File without changes
|
embeddings/easynegative-1.5-SDXL.json
ADDED
File without changes
|
embeddings/easynegative-1.5.json
ADDED
File without changes
|