actually make the node.js script preprocess from an argument
This commit is contained in:
parent
7676d56de5
commit
c8475149f9
21
README.md
21
README.md
|
@ -310,13 +310,28 @@ If you're using an embedding primarily focused on an artstyle, and you're also u
|
|||
|
||||
Lastly, when you do use your embedding, make sure you're using the same model you trained against. You *can* use embeddings on different models, as you'll definitely get usable results, but don't expect it to give stellar ones.
|
||||
|
||||
## Testimonials
|
||||
## What To Expect
|
||||
|
||||
Here I'll try to catalog results my results, and results I've caught from other anons (without consent)
|
||||
Here I'll try to catalog results my results, and results I've caught from other anons (without consent). This is not necessarily a repository for embeddings/hypernetworks, but more as a list of showing results and their settings, so you can get a good idea on what can be achieved:
|
||||
|
||||
* Katt from Breath of Fire: ttps://desuarchive.org/trash/thread/51599762/#51607820
|
||||
* [`aeris_(vg_cats)`](https://e621.net/posts?tags=aeris_%vg_cats%29): [/trash/](https://desuarchive.org/trash/thread/51378045/#51380745) (with download)
|
||||
- Textual Inversion embedding
|
||||
* [`katt_(breath_of_fire)`](https://e621.net/posts?tags=katt_%28breath_of_fire%29): [/trash/](https://desuarchive.org/trash/thread/51599762/#51607820) (with download)
|
||||
- Hypernetwork named `2bofkatt`
|
||||
- 40,000 iterations, learning rate of 0.000000025
|
||||
- Notes: [post](https://desuarchive.org/trash/thread/51599762/#51608587) highlights the difference with using and not using a hypernetwork
|
||||
* [`leib_(tas)`](https://e621.net/posts?tags=leib_%28tas%29): (/trash/: [1](https://desuarchive.org/trash/thread/51397474/#51400626), [2](https://desuarchive.org/trash/thread/51419493/#51420988), [3](https://desuarchive.org/trash/thread/51450284/#51455288), [4](https://desuarchive.org/trash/thread/51450284/#51456619), [5](https://desuarchive.org/trash/thread/51463059/#51473173), [img2img](https://desuarchive.org/trash/thread/51502820/#51515396))
|
||||
- Textual Inversion embedding
|
||||
- ~100k iterations, 144 manually curated and cropped images, learning rate from 0.005 to 0.0005 to 0.0003 (stepping unknown)
|
||||
- Notes: second out of four attempts, ended up excelling, exact style for prompts is unknown
|
||||
* [`tsathoggua`](https://e621.net/posts?tags=tsathoggua): (/trash/, [1](https://desuarchive.org/trash/thread/51419493/#51425440), [2](https://desuarchive.org/trash/thread/51426117/#51428189))
|
||||
- Textual Inversion embedding
|
||||
- ~100k iterations, 194 manually cropped and curated images, learning rate from 0.005 to 0.0005 to 0.0003 (stepping unknown)
|
||||
- Notes: accentuates the strengths/weaknesses of the embedding not replicating hard-to-describe features
|
||||
* [`juuichi_mikazuki`](https://e621.net/posts?tags=juuichi_mikazuki): ([/trash/](https://desuarchive.org/trash/thread/51436448/#51439697))
|
||||
- Textual Inversion embedding
|
||||
- ~170k iterations, 184 manually cropped and curated images, learning rate from 0.005 to 0.0005 to 0.0003 (stepping unknown)
|
||||
- Notes: accentuates the strengths/weaknesses of the embedding not replicating hard-to-describe features
|
||||
|
||||
## After Words
|
||||
|
||||
|
|
|
@ -55,7 +55,6 @@ let config = {
|
|||
tagDelimiter: ",", // what separates each tag in the filename, web UI will accept comma separated filenames, but will insert it without commas
|
||||
}
|
||||
|
||||
let files = FS.readdirSync(config.input);
|
||||
let csv = FS.readFileSync(config.tags)
|
||||
csv = csv.toString().split("\n")
|
||||
config.tags = {}
|
||||
|
@ -95,6 +94,7 @@ for ( let k in {"input":null, "output":null} ) {
|
|||
}
|
||||
}
|
||||
|
||||
let files = FS.readdirSync(config.input);
|
||||
console.log(`Parsing ${files.length} files from ${config.input} => ${config.output}`)
|
||||
|
||||
let parse = async () => {
|
||||
|
@ -185,7 +185,7 @@ let parse = async () => {
|
|||
let joined = filtered.join(config.tagDelimiter)
|
||||
|
||||
// NOOOOOO YOU'RE SUPPOSE TO DO IT ASYNCHRONOUSLY SO IT'S NOT BLOCKING
|
||||
FS.copyFileSync(`${config.input}/${file}`, `${config.output}/${file.replace(md5, " "+joined).trim()}`)
|
||||
FS.copyFileSync(`${config.input}/${file}`, `${config.output}/${file.replace(md5, joined).trim()}`)
|
||||
|
||||
if ( rateLimit && config.rateLimit ) await new Promise( (resolve) => {
|
||||
setTimeout(resolve, config.rateLimit)
|
||||
|
|
|
@ -175,7 +175,7 @@ def parse():
|
|||
filtered.append(i)
|
||||
joined = config['tagDelimiter'].join(filtered)
|
||||
|
||||
shutil.copy(os.path.join(config['input'], file), os.path.join(config['output'], file.replace(md5, " "+joined).strip()))
|
||||
shutil.copy(os.path.join(config['input'], file), os.path.join(config['output'], file.replace(md5, joined).strip()))
|
||||
|
||||
if rateLimit and config['rateLimit']:
|
||||
time.sleep(config['rateLimit'] / 1000.0)
|
||||
|
|
Loading…
Reference in New Issue
Block a user