Parse Stable Diffusion wildcards source to a YAML object.
npm install sd-wildcards-utilsParse Stable Diffusion wildcards source to a YAML object.
https://civitai.com/models/449400
- Parse Wildcards YAML: Parse Stable Diffusion wildcards YAML files into structured data
- Validate Syntax: Validate wildcards syntax with detailed error messages
- Format & Normalize: Format and normalize wildcards prompts for consistency
- Merge Documents: Merge multiple wildcard documents intelligently
- Safe Key Handling: Automatic key validation and quote handling
- parseWildcardsYaml Guide - Complete guide for parsing wildcards YAML
- Format Documentation - Complete guide for stringifyWildcardsYamlData output format
- Error Documentation - All error types and validation rules
- Merge Functions - mergeFindSingleRoots and mergeWildcardsYAMLDocumentRoots guide
``bash`
yarn add sd-wildcards-utils
yarn-tool add sd-wildcards-utils
yt add sd-wildcards-utils
`typescript
import { parseWildcardsYaml, stringifyWildcardsYamlData } from 'sd-wildcards-utils';
let input =
xxx:
a:
- >-
(silhouette:1.2), jianying,
1girl, nude,
(in river), splash,
({sun rays, sunset|moonlight|dawn|twilight} background, low horizon),
backlighting,
contour light, body contour light, light particles,
__lazy-wildcards/prompts/hair__,
__lazy-wildcards/dataset/background-color__,
(flower, falling petals, petals on liquid, petals, cherry blossom:0.8)
- >-
(silhouette:1.2), jianying,
1girl, nude,
(in river), splash,
({sun rays, sunset|moonlight|dawn|twilight} background, low horizon),
backlighting,
contour light, body contour light, light particles,
__lazy-wildcards/prompts/hair__,
__lazy-wildcards/dataset/background-color__,
(flower, falling petals, petals on liquid, petals, cherry blossom:0.8)
- "(silhouette:1.2), jianying, 1girl, nude, (in river), splash, ({sun rays, sunset|moonlight|dawn|twilight} background, low horizon), backlighting, contour light, body contour light, light particles, __lazy-wildcards/prompts/hair__, __lazy-wildcards/dataset/background-color__, (flower, falling petals, petals on liquid, petals, cherry blossom:0.8)"
- |-
(silhouette:1.2), jianying, 1girl, nude, (in river), splash, ({sun rays, sunset|moonlight|dawn|twilight} background, low horizon), backlighting, contour light, body contour light, light particles, __lazy-wildcards/prompts/hair__, __lazy-wildcards/dataset/background-color__, (flower, falling petals, petals on liquid, petals, cherry blossom:0.8);
let doc = parseWildcardsYaml(input);
doc.contents;
let node = doc.getIn(['xxx', 'a']);
// @ts-ignore
let items = node.items;
console.dir(items, {
depth: null,
});
console.log(============)
let out = doc.toString();
console.log(out)
console.log(============)
console.log(stringifyWildcardsYamlData(doc))
`
`yaml
============
xxx:
a:
- >-
(silhouette:1.2), jianying, 1girl, nude, (in river), splash, ({sun rays,
sunset|moonlight|dawn|twilight} background, low horizon), backlighting,
contour light, body contour light, light particles,
__lazy-wildcards/prompts/hair__,
__lazy-wildcards/dataset/background-color__, (flower, falling petals,
petals on liquid, petals, cherry blossom:0.8)
- >-
(silhouette:1.2), jianying, 1girl, nude, (in river), splash, ({sun rays,
sunset|moonlight|dawn|twilight} background, low horizon), backlighting,
contour light, body contour light, light particles,
__lazy-wildcards/prompts/hair__,
__lazy-wildcards/dataset/background-color__, (flower, falling petals,
petals on liquid, petals, cherry blossom:0.8)
- "(silhouette:1.2), jianying, 1girl, nude, (in river), splash, ({sun rays,
sunset|moonlight|dawn|twilight} background, low horizon), backlighting,
contour light, body contour light, light particles,
__lazy-wildcards/prompts/hair__,
__lazy-wildcards/dataset/background-color__, (flower, falling petals,
petals on liquid, petals, cherry blossom:0.8)"
- |-
(silhouette:1.2), jianying, 1girl, nude, (in river), splash, ({sun rays, sunset|moonlight|dawn|twilight} backgroun
nd, low horizon), backlighting, contour light, body contour light, light particles, __lazy-wildcards/prompts/hair__, __la
azy-wildcards/dataset/background-color__, (flower, falling petals, petals on liquid, petals, cherry blossom:0.8)
============
xxx:
a:
- >-
(silhouette:1.2), jianying, 1girl, nude, (in river), splash, ({sun rays,
sunset|moonlight|dawn|twilight} background, low horizon), backlighting,
contour light, body contour light, light particles,
__lazy-wildcards/prompts/hair__,
__lazy-wildcards/dataset/background-color__, (flower, falling petals,
petals on liquid, petals, cherry blossom:0.8)
`
| Function | Description |
|----------|-------------|
| parseWildcardsYaml | Parse wildcards YAML string into a Document object |stringifyWildcardsYamlData
| | Format and stringify wildcards YAML data |mergeWildcardsYAMLDocumentRoots
| | Merge multiple wildcard documents (flat merge) |mergeFindSingleRoots
| | Merge wildcard documents with path matching (deep merge) |
| Function | Description |
|----------|-------------|
| normalizeDocument | Normalize and validate a YAML Document |checkWildcardsYamlData
| | Validate wildcards data structure |
| Option | Type | Default | Description |
|--------|------|---------|-------------|
| minifyPrompts | boolean | false | Compress prompt content |allowEmptyDocument
| | boolean | false | Allow empty documents |allowUnsafeKey
| | boolean | false | Allow unsafe keys |blockQuote
| | boolean | true | Use block quotes for multiline strings |lineWidth
| | number | 80 | Line width limit (0 = no limit) |
See Format Documentation for complete options reference.
`typescript
import { parseWildcardsYaml, stringifyWildcardsYamlData } from 'sd-wildcards-utils';
let input =
xxx:
a:
- >-
(silhouette:1.2), jianying,
1girl, nude,
(in river), splash,
({sun rays, sunset|moonlight|dawn|twilight} background, low horizon),
backlighting,
contour light, body contour light, light particles,
__lazy-wildcards/prompts/hair__,
__lazy-wildcards/dataset/background-color__,
(flower, falling petals, petals on liquid, petals, cherry blossom:0.8)
- >-
(silhouette:1.2), jianying,
1girl, nude,
(in river), splash,
({sun rays, sunset|moonlight|dawn|twilight} background, low horizon),
backlighting,
contour light, body contour light, light particles,
__lazy-wildcards/prompts/hair__,
__lazy-wildcards/dataset/background-color__,
(flower, falling petals, petals on liquid, petals, cherry blossom:0.8)
- "(silhouette:1.2), jianying, 1girl, nude, (in river), splash, ({sun rays, sunset|moonlight|dawn|twilight} background, low horizon), backlighting, contour light, body contour light, light particles, __lazy-wildcards/prompts/hair__, __lazy-wildcards/dataset/background-color__, (flower, falling petals, petals on liquid, petals, cherry blossom:0.8)"
- |-
(silhouette:1.2), jianying, 1girl, nude, (in river), splash, ({sun rays, sunset|moonlight|dawn|twilight} background, low horizon), backlighting, contour light, body contour light, light particles, __lazy-wildcards/prompts/hair__, __lazy-wildcards/dataset/background-color__, (flower, falling petals, petals on liquid, petals, cherry blossom:0.8);
let doc = parseWildcardsYaml(input);
doc.contents;
let node = doc.getIn(['xxx', 'a']);
// @ts-ignore
let items = node.items;
console.dir(items, {
depth: null,
});
console.log(============)
let out = doc.toString();
console.log(out)
console.log(============)
console.log(stringifyWildcardsYamlData(doc))
`
Keys must follow safety rules to use without quotes:
Allowed characters:
- Letters: a-z, A-Z0-9
- Numbers: _
- Special characters: , /
Not allowed patterns:
- Starting or ending with non-alphanumeric characters
- Double underscores __..
- Double periods --
- Double hyphens //
- Double slashes [._-]/
- Consecutive dots, underscores, or hyphens
- Path combinations like or /[._-].
- Keys containing or - (e.g., style.main, style-main) are considered unsafe and will be quoted
Example:
`yamlSafe keys (no quotes needed)
safe_key: value
key/sub: value
key_sub: value
MIT
- https://eemeli.org/yaml/#yaml
- https://civitai.com/models/449400
- https://gist.github.com/bluelovers/5dd82472d21cbaa7203b36c34612434b
- https://civitai.com/user/C0rn_Fl4k3s/models
- https://civitai.com/models/138970/billions-of-wildcards-character-vehicle-scenery-building-creature-scifi-fantasy-magic-all-you-want
- https://github.com/sdbds/stable-diffusion-webui-wildcards
- https://civitai.com/models/934903
- https://civitai.com/models/863333
- https://civitai.com/models/272654?modelVersionId=317312