@ai-game-assets/dev 0.8.1 → 0.8.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/asset-store.d.ts.map +1 -1
- package/dist/asset-store.js +8 -1
- package/dist/asset-store.js.map +1 -1
- package/dist/image-generation-sizes.d.ts +15 -2
- package/dist/image-generation-sizes.d.ts.map +1 -1
- package/dist/image-generation-sizes.js +125 -13
- package/dist/image-generation-sizes.js.map +1 -1
- package/dist/provider-image-processing.d.ts +7 -0
- package/dist/provider-image-processing.d.ts.map +1 -1
- package/dist/provider-image-processing.js +86 -8
- package/dist/provider-image-processing.js.map +1 -1
- package/dist/provider.d.ts +1 -0
- package/dist/provider.d.ts.map +1 -1
- package/dist/provider.js +60 -15
- package/dist/provider.js.map +1 -1
- package/dist/tileset-sheet-processing.d.ts +1 -1
- package/dist/tileset-sheet-processing.d.ts.map +1 -1
- package/dist/tileset-sheet-processing.js +52 -19
- package/dist/tileset-sheet-processing.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"asset-store.d.ts","sourceRoot":"","sources":["../src/asset-store.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"asset-store.d.ts","sourceRoot":"","sources":["../src/asset-store.ts"],"names":[],"mappings":"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"}
|
package/dist/asset-store.js
CHANGED
|
@@ -431,6 +431,12 @@ export async function writeManifestModule(modulePath, manifest) {
|
|
|
431
431
|
const optionsLines = Object.keys(optionsArgument).length
|
|
432
432
|
? [`, ${JSON.stringify(optionsArgument, null, 2)}`]
|
|
433
433
|
: [];
|
|
434
|
+
const assetPathsLines = manifest.assetPaths
|
|
435
|
+
? [
|
|
436
|
+
`assets.assetPaths = ${JSON.stringify(manifest.assetPaths, null, 2)};`,
|
|
437
|
+
""
|
|
438
|
+
]
|
|
439
|
+
: [];
|
|
434
440
|
const temporaryPath = `${modulePath}.tmp-${randomUUID()}`;
|
|
435
441
|
const source = [
|
|
436
442
|
"import { defineAiAssets } from \"@ai-game-assets/core\";",
|
|
@@ -439,7 +445,8 @@ export async function writeManifestModule(modulePath, manifest) {
|
|
|
439
445
|
`${JSON.stringify(manifest.assets, null, 2)}`,
|
|
440
446
|
...optionsLines,
|
|
441
447
|
");",
|
|
442
|
-
""
|
|
448
|
+
"",
|
|
449
|
+
...assetPathsLines
|
|
443
450
|
].join("\n");
|
|
444
451
|
try {
|
|
445
452
|
await writeFile(temporaryPath, source);
|
package/dist/asset-store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"asset-store.js","sourceRoot":"","sources":["../src/asset-store.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"asset-store.js","sourceRoot":"","sources":["../src/asset-store.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,cAAc,EACd,oBAAoB,EASrB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7F,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AA4E5B,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,YAAoB;IACrD,IAAI,MAAM,WAAW,CAAC,YAAY,CAAC,EAAE,CAAC;QACpC,OAAO,qBAAqB,CAAC,YAAY,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAoB,CAAC;IACpD,cAAc,CAAC,QAAQ,CAAC,CAAC;IACzB,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,YAAoB,EACpB,QAAyB;IAEzB,IAAI,MAAM,WAAW,CAAC,YAAY,CAAC,EAAE,CAAC;QACpC,MAAM,sBAAsB,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;QACrD,OAAO;IACT,CAAC;IAED,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7D,MAAM,SAAS,CAAC,GAAG,YAAY,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IACjF,MAAM,MAAM,CAAC,GAAG,YAAY,MAAM,EAAE,YAAY,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,OAA0B,EAC1B,KAA+B;IAE/B,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAC1D,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAE7C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,qBAAqB,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,SAAS,GAAG,qBAAqB,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC/D,MAAM,QAAQ,GAAG,GAAG,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,gBAAgB,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,SAAS,EAAE,CAAC;IAC1G,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACxD,MAAM,UAAU,GACd,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,gBAAgB,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;IAElF,sBAAsB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACrC,MAAM,sBAAsB,GAAG,KAAK,CAAC,aAAa;QAChD,CAAC,CAAC,qBAAqB,CAAC,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC;QACrD,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,qBAAqB,GAAG,sBAAsB;QAClD,CAAC,CAAC,GAAG,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,gBAAgB,CAAC,KAAK,CAAC,WAAW,CAAC,mBAAmB,sBAAsB,EAAE;QACtH,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,qBAAqB,GAAG,qBAAqB;QACjD,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,qBAAqB,CAAC;QACrD,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,uBAAuB,GAAG,qBAAqB;QACnD,CAAC,CAAC,eAAe,CAAC,OAAO,EAAE,qBAAqB,CAAC;QACjD,CAAC,CAAC,SAAS,CAAC;IAEd,MAAM,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpD,MAAM,OAAO,CAAC,GAAG,CAAC;QAChB,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;QACvC,GAAG,CAAC,qBAAqB,IAAI,KAAK,CAAC,aAAa;YAC9C,CAAC,CAAC,CAAC,SAAS,CAAC,qBAAqB,EAAE,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC/D,CAAC,CAAC,EAAE,CAAC;KACR,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,oBAAoB,CAAC,KAAK,EAAE;QAC1C,IAAI,EAAE,KAAK,CAAC,WAAW;QACvB,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM;QAC3B,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK;QACzB,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC,aAAa;QACzC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ;QAC/B,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC,aAAa;QACzC,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC,aAAa;QACzC,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC,aAAa;QACzC,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,eAAe;QAC7C,aAAa,EAAE,KAAK,CAAC,aAAa,IAAI,SAAS;QAC/C,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,iBAAiB,EAAE,uBAAuB;QAC1C,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;KAC3C,CAAC,CAAC;IAEH,wEAAwE;IACxE,yEAAyE;IACzE,6EAA6E;IAE7E,MAAM,YAAY,GAAG,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,WAAW,EAAE,OAAO,EAAE;QACjE,QAAQ,EAAE,KAAK,CAAC,QAAQ;KACzB,CAAC,CAAC;IAEH,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,QAAQ;QAC7C,CAAC,CAAC;YACE,GAAG,YAAY;YACf,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU,IAAI,YAAY,CAAC,UAAU;YAC9D,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,SAAS,IAAI,YAAY,CAAC,SAAS;YAC3D,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,IAAI,YAAY,CAAC,OAAO;YACrD,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU,IAAI,YAAY,CAAC,UAAU;YAC9D,QAAQ,EAAE;gBACR,GAAG,YAAY,CAAC,QAAQ;gBACxB,GAAG,OAAO,CAAC,QAAQ;aACpB;YACD,aAAa,EAAE;gBACb,GAAG,YAAY,CAAC,aAAa;gBAC7B,GAAG,OAAO,CAAC,aAAa;aACzB;YACD,aAAa,EAAE;gBACb,GAAG,YAAY,CAAC,aAAa;gBAC7B,GAAG,OAAO,CAAC,aAAa;aACzB;YACD,aAAa,EAAE;gBACb,GAAG,YAAY,CAAC,aAAa;gBAC7B,GAAG,OAAO,CAAC,aAAa;aACzB;SACF;QACH,CAAC,CAAC,YAAY,CAAC;IAEjB,cAAc,CAAC,QAAQ,CAAC,CAAC;IACzB,MAAM,aAAa,CAAC,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IAEpD,IAAI,OAAO,CAAC,kBAAkB,IAAI,CAAC,KAAK,CAAC,wBAAwB,EAAE,CAAC;QAClE,MAAM,mBAAmB,CAAC,OAAO,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;IAClE,CAAC;IAED,OAAO;QACL,QAAQ;QACR,OAAO;QACP,QAAQ;KACT,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,OAA0B,EAC1B,KAAgC;IAEhC,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAC1D,MAAM,gBAAgB,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAE7C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,qBAAqB,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;IAC1D,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,aAAa,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;IACnE,CAAC;IAED,MAAM,iBAAiB,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CACtD,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,KAAK,KAAK,CAAC,YAAY,CACpD,CAAC;IACF,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,8BAA8B,KAAK,CAAC,YAAY,mBAAmB,KAAK,CAAC,OAAO,IAAI,CACrF,CAAC;IACJ,CAAC;IACD,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,IAAI,iBAAiB,CAAC;IACxD,IAAI,SAAS,CAAC,GAAG,KAAK,KAAK,CAAC,YAAY,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;IAC/E,CAAC;IACD,MAAM,eAAe,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;QACzC,GAAG,KAAK;QACR,OAAO,EAAE;YACP,GAAG,KAAK,CAAC,OAAO;YAChB,UAAU,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAC9D,SAAS,CAAC,GAAG,KAAK,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAC7D,CAAC;SACH;KACF,CAAC,CAAC,CAAC,KAAK,CAAC;IACV,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,UAAU,EAAE,CAAC;QACjD,MAAM,IAAI,KAAK,CACb,sBAAsB,KAAK,CAAC,YAAY,sBAAsB,SAAS,CAAC,UAAU,UAAU,CAC7F,CAAC;IACJ,CAAC;IACD,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;IACpC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,eAAe,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;IACxE,CAAC;IACD,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;QACpD,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;YAC9D,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,GAAG,CAAC,iCAAiC,CAAC,CAAC;QACzF,CAAC;QAED,IAAI,GAAQ,CAAC;QACb,IAAI,CAAC;YACH,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QAChD,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,KAAK,CAAC,2BAA2B,KAAK,GAAG,CAAC,4BAA4B,CAAC,CAAC;QACpF,CAAC;QACD,IAAI,GAAG,CAAC,KAAK,KAAK,UAAU,CAAC,KAAK,IAAI,GAAG,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC;YACvE,MAAM,IAAI,KAAK,CACb,2BAA2B,KAAK,GAAG,CAAC,YAAY,UAAU,CAAC,KAAK,IAAI,UAAU,CAAC,MAAM,cAAc,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,MAAM,GAAG,CAC9H,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,iBAAiB,GAAG,KAAK,CAAC,aAAa,CAAC;IAC9C,MAAM,aAAa,GAAG,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IACxD,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,eAAe,KAAK,CAAC,OAAO,oCAAoC,CAAC,CAAC;IACpF,CAAC;IAED,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE;QAC3C,GAAG,iBAAiB,IAAI,gBAAgB,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;IAC/E,IAAI,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,YAAY,WAAW,kCAAkC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;IAC9F,CAAC;IAED,MAAM,aAAa,GAAG,UAAU,EAAE,CAAC;IACnC,MAAM,QAAQ,GAAG;QACf,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC;QAC/B,gBAAgB,CAAC,WAAW,CAAC;QAC7B,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;KAC1B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACZ,MAAM,YAAY,GAMb,EAAE,CAAC;IAER,MAAM,SAAS,GAAG,CAAC,QAAgB,EAAE,KAAiB,EAAE,EAAE;QACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACxD,YAAY,CAAC,IAAI,CAAC;YAChB,KAAK;YACL,QAAQ;YACR,QAAQ;YACR,aAAa,EAAE,GAAG,QAAQ,QAAQ,aAAa,EAAE;YACjD,UAAU,EAAE,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC;SAC/C,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,qBAAqB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAChE,SAAS,CACP,GAAG,QAAQ,IAAI,aAAa,EAAE,EAC9B,MAAM,mBAAmB,CAAC,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,CACvD,CAAC;IAEF,IAAI,iBAA4D,CAAC;IACjE,IAAI,aAAa,CAAC,iBAAiB,EAAE,CAAC;QACpC,MAAM,eAAe,GAAG,qBAAqB,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;QAC/E,SAAS,CACP,GAAG,QAAQ,mBAAmB,eAAe,EAAE,EAC/C,MAAM,mBAAmB,CAAC,OAAO,EAAE,aAAa,CAAC,iBAAiB,CAAC,CACpE,CAAC;QACF,iBAAiB,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,aAAa,GAAwC,EAAE,CAAC;IAC9D,KAAK,MAAM,UAAU,IAAI,eAAe,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,EAAE,CAAC;QACnE,IAAI,UAAU,CAAC,GAAG,KAAK,KAAK,CAAC,YAAY,EAAE,CAAC;YAC1C,MAAM,WAAW,GAAa,EAAE,CAAC;YACjC,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;gBACpD,MAAM,SAAS,GAAG,qBAAqB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBACxD,MAAM,QAAQ,GAAG,GAAG,QAAQ,YAAY,gBAAgB,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,SAAS,EAAE,CAAC;gBACrG,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;gBACjC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;YACvD,CAAC;YACD,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;YACvD,SAAS;QACX,CAAC;QAED,MAAM,cAAc,GAAG,aAAa,CAAC,iBAAiB,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACzE,IAAI,CAAC,cAAc;YAAE,SAAS;QAE9B,MAAM,WAAW,GAAa,EAAE,CAAC;QACjC,KAAK,MAAM,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,cAAc,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;YACjE,MAAM,SAAS,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;YACpD,MAAM,QAAQ,GAAG,GAAG,QAAQ,YAAY,gBAAgB,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,SAAS,EAAE,CAAC;YACrG,SAAS,CAAC,QAAQ,EAAE,MAAM,mBAAmB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;YACpE,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;QACvD,CAAC;QACD,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IACzD,CAAC;IAED,MAAM,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpD,MAAM,cAAc,GAAa,EAAE,CAAC;IACpC,IAAI,eAAe,GAAG,KAAK,CAAC;IAE5B,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,GAAG,CACf,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CACtE,CAAC;QACF,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;YAChC,MAAM,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YAChD,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrC,CAAC;QAED,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QACjC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,eAAe,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAC;QAChF,CAAC;QACD,MAAM,OAAO,GAAG,oBAAoB,CAAC,eAAe,EAAE;YACpD,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,QAAQ,CAAC,UAAU;YACzB,MAAM,EAAE,aAAa,CAAC,MAAM;YAC5B,KAAK,EAAE,aAAa,CAAC,KAAK;YAC1B,aAAa,EAAE,aAAa,CAAC,aAAa;YAC1C,QAAQ,EAAE,aAAa,CAAC,QAAQ;YAChC,aAAa,EAAE,iBAAiB;YAChC,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,iBAAiB,EAAE,aAAa;YAChC,iBAAiB,EAAE,iBAAiB,EAAE,UAAU;YAChD,iBAAiB,EAAE,aAAa,CAAC,iBAAiB;SACnD,CAAC,CAAC;QACH,MAAM,YAAY,GAAG,UAAU,CAAC,eAAe,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3F,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC;QAC9C,cAAc,CAAC,QAAQ,CAAC,CAAC;QACzB,MAAM,aAAa,CAAC,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;QACpD,eAAe,GAAG,IAAI,CAAC;QAEvB,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;YAC/B,IAAI,CAAC;gBACH,MAAM,mBAAmB,CAAC,OAAO,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;YAClE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC;oBACH,MAAM,aAAa,CAAC,OAAO,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;oBAC5D,eAAe,GAAG,KAAK,CAAC;gBAC1B,CAAC;gBAAC,OAAO,aAAa,EAAE,CAAC;oBACvB,MAAM,IAAI,cAAc,CACtB,CAAC,KAAK,EAAE,aAAa,CAAC,EACtB,gGAAgG,CACjG,CAAC;gBACJ,CAAC;gBACD,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;QAED,OAAO;YACL,QAAQ;YACR,KAAK,EAAE,YAAY;YACnB,WAAW;YACX,OAAO;YACP,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,kBAAkB,EAAE,YAAY;iBAC7B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,iBAAiB,CAAC;iBACjE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC;SAChC,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,CAAC,GAAG,CACf,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAChE,CAAC;QACF,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,MAAM,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACjF,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAA0B,EAC1B,KAA0B;IAE1B,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAC1D,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,MAAM,MAAM,GAA6C,EAAE,CAAC;IAE5D,MAAM,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEpD,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;QACpD,MAAM,SAAS,GAAG,qBAAqB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,eAAe,SAAS,IAAI,KAAK,GAAG,CAAC,IAAI,SAAS,EAAE,CAAC;QACtE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACxD,MAAM,UAAU,GACd,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,gBAAgB,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;QAElF,MAAM,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QACvC,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ;SACzB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC;IACjD,QAAQ,CAAC,UAAU,GAAG,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/E,MAAM,aAAa,CAAC,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IAEpD,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAC/B,MAAM,mBAAmB,CAAC,OAAO,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;IAClE,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,OAA0B,EAC1B,KAA8B;IAE9B,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAC1D,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAE7C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,qBAAqB,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,oBAAoB,KAAK,CAAC,WAAW,mBAAmB,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;IAC7F,CAAC;IAED,IAAI,KAAK,CAAC,aAAa,KAAK,KAAK,CAAC,WAAW,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,iCAAiC,KAAK,CAAC,WAAW,mBAAmB,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;IAC1G,CAAC;IAED,MAAM,cAAc,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACzD,MAAM,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,GAAG,iBAAiB,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC;IAC/E,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG;QAC/B,GAAG,KAAK;QACR,QAAQ,EAAE,iBAAiB;KAC5B,CAAC;IAEF,cAAc,CAAC,QAAQ,CAAC,CAAC;IAEzB,MAAM,aAAa,CAAC,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IAEpD,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAC/B,MAAM,mBAAmB,CAAC,OAAO,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;IAClE,CAAC;IAED,yEAAyE;IACzE,0EAA0E;IAC1E,0EAA0E;IAC1E,oEAAoE;IACpE,MAAM,8BAA8B,CAAC,OAAO,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;IAExE,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,OAA0B,EAC1B,KAA+B;IAE/B,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAC1D,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAElD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,qBAAqB,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,4BAA4B,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC;IAClE,CAAC;IAED,MAAM,sBAAsB,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAE9D,IAAI,sBAAsB,EAAE,CAAC;QAC3B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,sBAAsB,CAAC,EAAE,CAAC;YAC7C,MAAM,IAAI,KAAK,CACb,WAAW,KAAK,CAAC,QAAQ,WAAW,KAAK,CAAC,OAAO,+BAA+B,sBAAsB,IAAI,CAC3G,CAAC;QACJ,CAAC;QAED,OAAO;YACL,QAAQ;YACR,OAAO,EAAE,sBAAsB;SAChC,CAAC;IACJ,CAAC;IAED,MAAM,cAAc,GAAG,aAAa,CAClC,QAAQ,EACR,GAAG,KAAK,CAAC,OAAO,IAAI,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CACtD,CAAC;IACF,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG;QAChC,GAAG,WAAW;QACd,EAAE,EAAE,cAAc;QAClB,QAAQ,EAAE,MAAM,CAAC,WAAW,CAC1B,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC;YACnE,WAAW;YACX;gBACE,GAAG,OAAO;gBACV,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,SAAS,EAAE,CAAC,CAAC;gBACpF,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;oBAC1C,CAAC,CAAC,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC;wBACjE,GAAG;wBACH,EAAE,KAAK,EAAE,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,EAAE;qBAC/B,CAAC,CACH;oBACH,CAAC,CAAC,SAAS;aACd;SACF,CAAC,CACH;QACD,qBAAqB,EAAE,WAAW,CAAC,qBAAqB;YACtD,CAAC,CAAC,EAAE,GAAG,WAAW,CAAC,qBAAqB,EAAE;YAC1C,CAAC,CAAC,SAAS;QACb,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS;QACxE,aAAa,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,GAAG,WAAW,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,SAAS;QACvF,aAAa,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,GAAG,WAAW,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,SAAS;QACvF,aAAa,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,GAAG,WAAW,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,SAAS;QACvF,OAAO,EAAE,WAAW,CAAC,OAAO;YAC1B,CAAC,CAAC;gBACE,GAAG,WAAW,CAAC,OAAO;gBACtB,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;gBAC9D,UAAU,EAAE,WAAW,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;oBAC9D,GAAG,SAAS;oBACZ,YAAY,EAAE,SAAS,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;iBACvE,CAAC,CAAC;aACJ;YACH,CAAC,CAAC,SAAS;QACb,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;KAC3D,CAAC;IACF,QAAQ,CAAC,UAAU,GAAG;QACpB,GAAG,QAAQ,CAAC,UAAU;QACtB,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,gBAAgB,CAAC,WAAW,CAAC;KACxF,CAAC;IACF,QAAQ,CAAC,OAAO,GAAG;QACjB,GAAG,QAAQ,CAAC,OAAO;QACnB,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;YAChB,GAAG,MAAM;YACT,QAAQ,EAAE;gBACR,GAAG,MAAM,CAAC,QAAQ;gBAClB,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,cAAc;aAChC;SACF;KACF,CAAC;IAEF,MAAM,aAAa,CAAC,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IAEpD,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAC/B,MAAM,mBAAmB,CAAC,OAAO,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;IAClE,CAAC;IAED,OAAO;QACL,QAAQ;QACR,OAAO,EAAE,cAAc;KACxB,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,UAAkB,EAClB,QAAyB;IAEzB,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3D,MAAM,kBAAkB,GAAG,QAAQ,CAAC,UAAU;QAC5C,CAAC,CAAC,EAAE,UAAU,EAAE,QAAQ,CAAC,UAAU,EAAE;QACrC,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,eAAe,GAAG,QAAQ,CAAC,OAAO;QACtC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE;QAC/B,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,eAAe,GAAG;QACtB,GAAG,kBAAkB;QACrB,GAAG,eAAe;KACnB,CAAC;IACF,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM;QACtD,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;QACnD,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,eAAe,GAAG,QAAQ,CAAC,UAAU;QACzC,CAAC,CAAC;YACE,uBAAuB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG;YACtE,EAAE;SACH;QACH,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,aAAa,GAAG,GAAG,UAAU,QAAQ,UAAU,EAAE,EAAE,CAAC;IAC1D,MAAM,MAAM,GAAG;QACX,0DAA0D;QAC1D,EAAE;QACF,uCAAuC;QACvC,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;QAC7C,GAAG,YAAY;QACf,IAAI;QACJ,EAAE;QACF,GAAG,eAAe;KACnB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEf,IAAI,CAAC;QACH,MAAM,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QACvC,MAAM,MAAM,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;IAC1C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,eAAe,CAAC,aAAa,CAAC,CAAC;QACrC,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAa;IACrC,OAAO,KAAK,CAAC,OAAO,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,eAAe,CAAC,KAAa;IACpC,OAAO,KAAK;SACT,OAAO,CAAC,oBAAoB,EAAE,OAAO,CAAC;SACtC,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC;SAC9B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;SACvB,WAAW,EAAE,CAAC;AACnB,CAAC;AAED,SAAS,aAAa,CAAC,QAAyB,EAAE,WAAmB;IACnE,IAAI,SAAS,GAAG,WAAW,CAAC;IAC5B,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,OAAO,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;QAClC,SAAS,GAAG,GAAG,WAAW,IAAI,MAAM,EAAE,CAAC;QACvC,MAAM,IAAI,CAAC,CAAC;IACd,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,KAAK,UAAU,8BAA8B,CAC3C,OAA0B,EAC1B,QAAyB,EACzB,OAAuB;IAEvB,MAAM,eAAe,GAAG,IAAI,GAAG,CAC7B,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAC/C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CACpD,CACF,CAAC;IACF,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IAEjF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3E,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,OAAuB;IAC3C,OAAO;QACL,OAAO,CAAC,IAAI;QACZ,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACjE,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;KACxF,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAC7B,KAAwB,EACxB,KAA+B;IAE/B,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC;IAC1C,MAAM,iBAAiB,GAAG,KAAK,CAAC,iBAAiB,CAAC;IAClD,MAAM,SAAS,GAAG,aAAa,KAAK,SAAS,CAAC;IAC9C,MAAM,aAAa,GAAG,iBAAiB,KAAK,SAAS,CAAC;IACtD,IAAI,SAAS,KAAK,aAAa,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;IACpF,CAAC;IACD,IAAI,CAAC,SAAS,IAAI,CAAC,aAAa;QAAE,OAAO;IACzC,IAAI,CAAC,aAAa,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;IACpF,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC7E,CAAC;IACD,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC7D,CAAC;IACD,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjD,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC;IACtD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CACxB,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,IAAI,EACnD,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,IAAI,CAC/B,CAAC;IACF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,iBAAiB,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAChF,MAAM,IAAI,KAAK,CAAC,0CAA0C,SAAS,WAAW,CAAC,CAAC;IAClF,CAAC;IACD,KAAK,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,IAAI,iBAAiB,CAAC,OAAO,EAAE,EAAE,CAAC;QAC7D,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC;YACnF,MAAM,IAAI,KAAK,CAAC,qBAAqB,KAAK,4BAA4B,CAAC,CAAC;QAC1E,CAAC;QACD,IACE,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;YACnC,SAAS,CAAC,MAAM,IAAI,CAAC;YACrB,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;YACnC,SAAS,CAAC,MAAM,IAAI,CAAC,EACrB,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,qBAAqB,KAAK,mCAAmC,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,mBAAmB,CAChC,OAA0B,EAC1B,UAAkB;IAElB,IAAI,qBAAqB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1E,MAAM,IAAI,KAAK,CAAC,8DAA8D,UAAU,IAAI,CAAC,CAAC;IAChG,CAAC;IACD,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC3E,CAAC;AAED,SAAS,eAAe,CAAC,OAA0B,EAAE,QAAgB;IACnE,OAAO,OAAO,CAAC,gBAAgB;QAC7B,CAAC,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,QAAQ,EAAE;QAC9D,CAAC,CAAC,QAAQ,CAAC;AACf,CAAC;AAED,SAAS,qBAAqB,CAAC,QAAgB;IAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAChE,IAAI,CAAC,SAAS,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACjD,MAAM,IAAI,KAAK,CAAC,6CAA6C,QAAQ,IAAI,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,QAAgB;IAC7C,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;IACzB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACvD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,QAAgB;IACzC,IAAI,CAAC;QACH,OAAO,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAC9C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,KAAK,UAAU,qBAAqB,CAAC,WAAmB;IACtD,MAAM,MAAM,GAAsC,EAAE,CAAC;IACrD,MAAM,UAAU,GAA6B,EAAE,CAAC;IAChD,IAAI,UAAyC,CAAC;IAC9C,IAAI,OAAkD,CAAC;IAEvD,KAAK,MAAM,QAAQ,IAAI,MAAM,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;QACpD,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAE1D,IAAI,YAAY,KAAK,kBAAkB,EAAE,CAAC;YACxC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAsB,CAAC;YAC/E,SAAS;QACX,CAAC;QAED,IAAI,YAAY,KAAK,cAAc,EAAE,CAAC;YACpC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAkC,CAAC;YACxF,SAAS;QACX,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAsB,CAAC;QAChF,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC;QACzB,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,GAAG;YACvD,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjD,CAAC;IAED,MAAM,QAAQ,GAAoB;QAChC,aAAa,EAAE,CAAC;QAChB,MAAM;QACN,UAAU;QACV,OAAO;QACP,UAAU;KACX,CAAC;IACF,cAAc,CAAC,QAAQ,CAAC,CAAC;IACzB,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,KAAK,UAAU,sBAAsB,CACnC,WAAmB,EACnB,QAAyB;IAEzB,MAAM,KAAK,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE9C,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;QACxB,MAAM,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,kBAAkB,CAAC,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;IACvF,CAAC;IAED,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;QACrB,MAAM,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IAChF,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACnD,MAAM,WAAW,GAAG,QAAQ,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC/E,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CACxB,WAAW,EACX,GAAG,WAAW,EACd,GAAG,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CACrC,CAAC;QACF,MAAM,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC;AACH,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,QAAgB,EAAE,KAAc;IAC3D,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzD,MAAM,SAAS,CAAC,GAAG,QAAQ,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IAC1E,MAAM,MAAM,CAAC,GAAG,QAAQ,MAAM,EAAE,QAAQ,CAAC,CAAC;AAC5C,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,OAAe;IACtC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAChE,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAEhD,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC3C,CAAC;aAAM,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1D,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;AACtB,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAwB;IAChD,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO;QAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAC3C,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO;QAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7C,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY;QAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE7E,IAAI,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IACrE,IAAI,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAC1D,IAAI,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACjE,IAAI,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC;QAAE,OAAO,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IAC1E,OAAO,CAAC,UAAU,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,qBAAqB,CAAC,QAAgB;IAC7C,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,WAAW;YACd,OAAO,KAAK,CAAC;QACf,KAAK,YAAY;YACf,OAAO,MAAM,CAAC;QAChB,KAAK,YAAY;YACf,OAAO,KAAK,CAAC;QACf,KAAK,eAAe;YAClB,OAAO,KAAK,CAAC;QACf,KAAK,YAAY;YACf,OAAO,KAAK,CAAC;QACf,KAAK,WAAW,CAAC;QACjB,KAAK,aAAa;YAChB,OAAO,KAAK,CAAC;QACf,KAAK,WAAW;YACd,OAAO,KAAK,CAAC;QACf,KAAK,YAAY;YACf,OAAO,MAAM,CAAC;QAChB,KAAK,WAAW,CAAC;QACjB,KAAK,WAAW;YACd,OAAO,KAAK,CAAC;QACf;YACE,MAAM,IAAI,KAAK,CAAC,0CAA0C,QAAQ,IAAI,CAAC,CAAC;IAC5E,CAAC;AACH,CAAC"}
|
|
@@ -2,6 +2,19 @@ import type { AiAssetDimensions } from "@ai-game-assets/core";
|
|
|
2
2
|
export type ImageGenerationSize = AiAssetDimensions & {
|
|
3
3
|
value: string;
|
|
4
4
|
};
|
|
5
|
-
export
|
|
6
|
-
|
|
5
|
+
export type ImageGenerationGrid = {
|
|
6
|
+
columns: number;
|
|
7
|
+
rows: number;
|
|
8
|
+
};
|
|
9
|
+
export declare const GPT_IMAGE_2_SIZE_CONSTRAINTS: {
|
|
10
|
+
readonly multiple: 16;
|
|
11
|
+
readonly minimumPixels: 655360;
|
|
12
|
+
readonly maximumPixels: 8294400;
|
|
13
|
+
readonly maximumEdge: 3840;
|
|
14
|
+
readonly maximumAspectRatio: 3;
|
|
15
|
+
};
|
|
16
|
+
export declare function isGptImage2Model(model: string): boolean;
|
|
17
|
+
export declare function closestImageGenerationSize(dimensions: AiAssetDimensions, model?: string, grid?: ImageGenerationGrid): string;
|
|
18
|
+
export declare function closestImageGenerationDimensions(dimensions: AiAssetDimensions, model?: string, grid?: ImageGenerationGrid): ImageGenerationSize;
|
|
19
|
+
export declare function isValidGptImage2GenerationDimensions(dimensions: AiAssetDimensions): boolean;
|
|
7
20
|
//# sourceMappingURL=image-generation-sizes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image-generation-sizes.d.ts","sourceRoot":"","sources":["../src/image-generation-sizes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,MAAM,MAAM,mBAAmB,GAAG,iBAAiB,GAAG;IACpD,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,
|
|
1
|
+
{"version":3,"file":"image-generation-sizes.d.ts","sourceRoot":"","sources":["../src/image-generation-sizes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,MAAM,MAAM,mBAAmB,GAAG,iBAAiB,GAAG;IACpD,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,eAAO,MAAM,4BAA4B;;;;;;CAM/B,CAAC;AAMX,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,iBAAiB,EAC7B,KAAK,SAAgB,EACrB,IAAI,CAAC,EAAE,mBAAmB,GACzB,MAAM,CAIR;AAED,wBAAgB,gCAAgC,CAC9C,UAAU,EAAE,iBAAiB,EAC7B,KAAK,SAAgB,EACrB,IAAI,CAAC,EAAE,mBAAmB,GACzB,mBAAmB,CAerB;AAED,wBAAgB,oCAAoC,CAClD,UAAU,EAAE,iBAAiB,GAC5B,OAAO,CAuBT"}
|
|
@@ -1,15 +1,127 @@
|
|
|
1
|
-
export const
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
1
|
+
export const GPT_IMAGE_2_SIZE_CONSTRAINTS = {
|
|
2
|
+
multiple: 16,
|
|
3
|
+
minimumPixels: 655_360,
|
|
4
|
+
maximumPixels: 8_294_400,
|
|
5
|
+
maximumEdge: 3_840,
|
|
6
|
+
maximumAspectRatio: 3
|
|
7
|
+
};
|
|
8
|
+
// Preserve the previous provider's baseline detail level for small assets. This
|
|
9
|
+
// is a quality/cost policy, not an API restriction.
|
|
10
|
+
const DEFAULT_IMAGE_GENERATION_MINIMUM_PIXELS = 1_048_576;
|
|
11
|
+
export function isGptImage2Model(model) {
|
|
12
|
+
return model === "gpt-image-2" || model.startsWith("gpt-image-2-");
|
|
13
|
+
}
|
|
14
|
+
export function closestImageGenerationSize(dimensions, model = "gpt-image-2", grid) {
|
|
15
|
+
requirePositiveDimensions(dimensions);
|
|
16
|
+
if (!isGptImage2Model(model))
|
|
17
|
+
return "auto";
|
|
18
|
+
return closestImageGenerationDimensions(dimensions, model, grid).value;
|
|
19
|
+
}
|
|
20
|
+
export function closestImageGenerationDimensions(dimensions, model = "gpt-image-2", grid) {
|
|
21
|
+
requirePositiveDimensions(dimensions);
|
|
22
|
+
if (!isGptImage2Model(model)) {
|
|
23
|
+
throw new Error(`Custom image-generation dimensions are not available for model "${model}". ` +
|
|
24
|
+
"Use the API's auto size or provide an explicit supported size.");
|
|
25
|
+
}
|
|
26
|
+
return closestGptImage2Dimensions(dimensions, grid) ??
|
|
27
|
+
// A very large grid can be impossible to divide evenly within the API's
|
|
28
|
+
// edge limit. In that unusual case, retain the requested aspect without
|
|
29
|
+
// requiring exact grid divisibility.
|
|
30
|
+
closestGptImage2Dimensions(dimensions);
|
|
31
|
+
}
|
|
32
|
+
export function isValidGptImage2GenerationDimensions(dimensions) {
|
|
33
|
+
const { multiple, minimumPixels, maximumPixels, maximumEdge, maximumAspectRatio } = GPT_IMAGE_2_SIZE_CONSTRAINTS;
|
|
34
|
+
const { width, height } = dimensions;
|
|
35
|
+
const pixels = width * height;
|
|
36
|
+
const aspectRatio = Math.max(width / height, height / width);
|
|
37
|
+
return Number.isInteger(width) &&
|
|
38
|
+
Number.isInteger(height) &&
|
|
39
|
+
width > 0 &&
|
|
40
|
+
height > 0 &&
|
|
41
|
+
width % multiple === 0 &&
|
|
42
|
+
height % multiple === 0 &&
|
|
43
|
+
width <= maximumEdge &&
|
|
44
|
+
height <= maximumEdge &&
|
|
45
|
+
pixels >= minimumPixels &&
|
|
46
|
+
pixels <= maximumPixels &&
|
|
47
|
+
aspectRatio <= maximumAspectRatio;
|
|
48
|
+
}
|
|
49
|
+
function closestGptImage2Dimensions(dimensions, grid) {
|
|
50
|
+
const { multiple, minimumPixels, maximumPixels, maximumEdge, maximumAspectRatio } = GPT_IMAGE_2_SIZE_CONSTRAINTS;
|
|
51
|
+
const requestedRatio = dimensions.width / dimensions.height;
|
|
52
|
+
const targetRatio = clamp(requestedRatio, 1 / maximumAspectRatio, maximumAspectRatio);
|
|
53
|
+
const targetPixels = clamp(dimensions.width * dimensions.height, Math.max(minimumPixels, DEFAULT_IMAGE_GENERATION_MINIMUM_PIXELS), maximumPixels);
|
|
54
|
+
let idealWidth = Math.sqrt(targetPixels * targetRatio);
|
|
55
|
+
let idealHeight = Math.sqrt(targetPixels / targetRatio);
|
|
56
|
+
const edgeScale = Math.min(1, maximumEdge / Math.max(idealWidth, idealHeight));
|
|
57
|
+
idealWidth *= edgeScale;
|
|
58
|
+
idealHeight *= edgeScale;
|
|
59
|
+
const idealPixels = idealWidth * idealHeight;
|
|
60
|
+
const widthMultiple = grid
|
|
61
|
+
? leastCommonMultiple(multiple, positiveInteger(grid.columns))
|
|
62
|
+
: multiple;
|
|
63
|
+
const heightMultiple = grid
|
|
64
|
+
? leastCommonMultiple(multiple, positiveInteger(grid.rows))
|
|
65
|
+
: multiple;
|
|
66
|
+
let best;
|
|
67
|
+
for (let width = widthMultiple; width <= maximumEdge; width += widthMultiple) {
|
|
68
|
+
for (let height = heightMultiple; height <= maximumEdge; height += heightMultiple) {
|
|
69
|
+
const candidate = { width, height };
|
|
70
|
+
if (!isValidGptImage2GenerationDimensions(candidate))
|
|
71
|
+
continue;
|
|
72
|
+
const aspectDelta = Math.abs(Math.log((width / height) / targetRatio));
|
|
73
|
+
const areaDelta = Math.abs(Math.log((width * height) / idealPixels));
|
|
74
|
+
const scaleDelta = areaDelta / 2;
|
|
75
|
+
// Layout-sensitive game assets benefit most from preserving aspect ratio;
|
|
76
|
+
// area remains a secondary signal so an exact-ratio canvas is not chosen
|
|
77
|
+
// at a wildly different scale.
|
|
78
|
+
const score = 4 * aspectDelta ** 2 + scaleDelta ** 2;
|
|
79
|
+
const size = { width, height, value: `${width}x${height}` };
|
|
80
|
+
const candidateResult = { size, score, aspectDelta, areaDelta };
|
|
81
|
+
if (!best || isBetterCandidate(candidateResult, best)) {
|
|
82
|
+
best = candidateResult;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
return best?.size;
|
|
87
|
+
}
|
|
88
|
+
function isBetterCandidate(candidate, current) {
|
|
89
|
+
const epsilon = 1e-12;
|
|
90
|
+
if (Math.abs(candidate.score - current.score) > epsilon) {
|
|
91
|
+
return candidate.score < current.score;
|
|
92
|
+
}
|
|
93
|
+
if (Math.abs(candidate.aspectDelta - current.aspectDelta) > epsilon) {
|
|
94
|
+
return candidate.aspectDelta < current.aspectDelta;
|
|
95
|
+
}
|
|
96
|
+
if (Math.abs(candidate.areaDelta - current.areaDelta) > epsilon) {
|
|
97
|
+
return candidate.areaDelta < current.areaDelta;
|
|
98
|
+
}
|
|
99
|
+
return candidate.size.width * candidate.size.height <
|
|
100
|
+
current.size.width * current.size.height;
|
|
101
|
+
}
|
|
102
|
+
function requirePositiveDimensions(dimensions) {
|
|
103
|
+
if (!Number.isFinite(dimensions.width) ||
|
|
104
|
+
!Number.isFinite(dimensions.height) ||
|
|
105
|
+
dimensions.width <= 0 ||
|
|
106
|
+
dimensions.height <= 0) {
|
|
107
|
+
throw new Error("Image generation dimensions must be positive numbers.");
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
function positiveInteger(value) {
|
|
111
|
+
return Number.isInteger(value) && value > 0 ? value : 1;
|
|
112
|
+
}
|
|
113
|
+
function leastCommonMultiple(left, right) {
|
|
114
|
+
return Math.abs(left * right) / greatestCommonDivisor(left, right);
|
|
115
|
+
}
|
|
116
|
+
function greatestCommonDivisor(left, right) {
|
|
117
|
+
let a = Math.abs(left);
|
|
118
|
+
let b = Math.abs(right);
|
|
119
|
+
while (b !== 0) {
|
|
120
|
+
[a, b] = [b, a % b];
|
|
121
|
+
}
|
|
122
|
+
return a;
|
|
123
|
+
}
|
|
124
|
+
function clamp(value, minimum, maximum) {
|
|
125
|
+
return Math.min(maximum, Math.max(minimum, value));
|
|
14
126
|
}
|
|
15
127
|
//# sourceMappingURL=image-generation-sizes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image-generation-sizes.js","sourceRoot":"","sources":["../src/image-generation-sizes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"image-generation-sizes.js","sourceRoot":"","sources":["../src/image-generation-sizes.ts"],"names":[],"mappings":"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"}
|
|
@@ -54,13 +54,19 @@ export declare function removeTilesetChromaBackground(image: Uint8Array, tileset
|
|
|
54
54
|
type BackgroundRemoval = {
|
|
55
55
|
kind: "chroma";
|
|
56
56
|
chromaKey: RgbColor;
|
|
57
|
+
removeDisconnected: boolean;
|
|
57
58
|
} | {
|
|
58
59
|
kind: "edge-matte";
|
|
59
60
|
matteColor: RgbColor;
|
|
61
|
+
} | {
|
|
62
|
+
kind: "coherent-edge-matte";
|
|
63
|
+
matteColor: RgbColor;
|
|
60
64
|
};
|
|
61
65
|
export declare function detectBackgroundRemoval(png: PNG, chromaKey: RgbColor): BackgroundRemoval | undefined;
|
|
62
66
|
export declare function hasRequestedChromaKey(png: PNG, chromaKey: RgbColor): boolean;
|
|
67
|
+
export declare function hasRequestedChromaKeyOnEdges(png: PNG, chromaKey: RgbColor): boolean;
|
|
63
68
|
export declare function detectNeutralEdgeMatte(png: PNG): RgbColor | undefined;
|
|
69
|
+
export declare function detectCoherentEdgeMatte(png: PNG): RgbColor | undefined;
|
|
64
70
|
export declare function resizePngToDimensions(image: Uint8Array, dimensions: AiAssetDimensions): Buffer;
|
|
65
71
|
export declare function resizeRasterToDimensions(image: Uint8Array, dimensions: AiAssetDimensions, outputFormat: "webp" | "jpeg"): Promise<Buffer>;
|
|
66
72
|
export declare function rasterizeSvgToPng(image: Uint8Array): Promise<Buffer>;
|
|
@@ -69,6 +75,7 @@ export declare function featherBackgroundEdges(png: PNG, transparent: Uint8Array
|
|
|
69
75
|
export declare function touchesTransparentNeighbor(transparent: Uint8Array, width: number, height: number, x: number, y: number): boolean;
|
|
70
76
|
export declare function isChromaPixel(png: PNG, index: number, tolerance: number, chromaKey: RgbColor): boolean;
|
|
71
77
|
export declare function isRemovableEdgeBackgroundPixel(png: PNG, index: number, backgroundRemoval: BackgroundRemoval): boolean;
|
|
78
|
+
export declare function isHighConfidenceChromaPixel(png: PNG, index: number, chromaKey: RgbColor): boolean;
|
|
72
79
|
export declare function isKeyTintedPixel(color: RgbColor, chromaKey: RgbColor, strength: number): boolean;
|
|
73
80
|
export declare function promptMentionsChromaFamily(prompt: string, chromaKey: RgbColor): boolean;
|
|
74
81
|
export declare function chromaDistance(png: PNG, index: number, chromaKey: RgbColor): number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-image-processing.d.ts","sourceRoot":"","sources":["../src/provider-image-processing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,gBAAgB,EAChB,yBAAyB,EACzB,cAAc,EACf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAE5B,OAAO,KAAK,EACV,sBAAsB,EACtB,oBAAoB,EACpB,0BAA0B,EAC3B,MAAM,eAAe,CAAC;AAEvB,MAAM,MAAM,QAAQ,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"provider-image-processing.d.ts","sourceRoot":"","sources":["../src/provider-image-processing.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,12 +11,17 @@ const CHROMA_KEY_CANDIDATES = [
|
|
|
11
11
|
const CHROMA_MATCH_TOLERANCE = 120;
|
|
12
12
|
const CHROMA_EDGE_TOLERANCE = 170;
|
|
13
13
|
const CHROMA_EDGE_FILL_TOLERANCE = 150;
|
|
14
|
+
const STRICT_CHROMA_MATCH_TOLERANCE = 90;
|
|
15
|
+
const COHERENT_EDGE_MATTE_TOLERANCE = 96;
|
|
16
|
+
const COHERENT_EDGE_MATTE_MIN_COVERAGE = 0.55;
|
|
17
|
+
const OPAQUE_EDGE_ALPHA_THRESHOLD = 224;
|
|
14
18
|
export function selectChromaKey(request) {
|
|
15
19
|
const samples = [...(request.references ?? []), ...(request.styleReferences ?? [])]
|
|
16
20
|
.flatMap((reference) => referenceColorSamples(reference));
|
|
17
21
|
const prompt = [
|
|
18
22
|
request.prompt,
|
|
19
23
|
request.asset.prompt,
|
|
24
|
+
request.stylePrompt,
|
|
20
25
|
...(request.asset.tileset?.tiles?.map((tile) => tile.prompt) ?? [])
|
|
21
26
|
].filter(Boolean).join(" ").toLowerCase();
|
|
22
27
|
if (!samples.length) {
|
|
@@ -338,7 +343,10 @@ function removeDetectedBackground(png, backgroundRemoval) {
|
|
|
338
343
|
enqueue(x, y - 1);
|
|
339
344
|
}
|
|
340
345
|
for (let index = 0; index < transparent.length; index += 1) {
|
|
341
|
-
if (transparent[index]
|
|
346
|
+
if (transparent[index] ||
|
|
347
|
+
(backgroundRemoval.kind === "chroma" &&
|
|
348
|
+
backgroundRemoval.removeDisconnected &&
|
|
349
|
+
isHighConfidenceChromaPixel(png, index, backgroundRemoval.chromaKey))) {
|
|
342
350
|
transparent[index] = 1;
|
|
343
351
|
setAlpha(png, index, 0);
|
|
344
352
|
}
|
|
@@ -357,7 +365,11 @@ function removeKnownChromaPixels(png, chromaKey) {
|
|
|
357
365
|
}
|
|
358
366
|
}
|
|
359
367
|
if (found) {
|
|
360
|
-
featherBackgroundEdges(png, transparent, {
|
|
368
|
+
featherBackgroundEdges(png, transparent, {
|
|
369
|
+
kind: "chroma",
|
|
370
|
+
chromaKey,
|
|
371
|
+
removeDisconnected: true
|
|
372
|
+
});
|
|
361
373
|
}
|
|
362
374
|
return found;
|
|
363
375
|
}
|
|
@@ -396,20 +408,28 @@ function pastePngRect(png, source, x, y) {
|
|
|
396
408
|
}
|
|
397
409
|
export function detectBackgroundRemoval(png, chromaKey) {
|
|
398
410
|
if (hasRequestedChromaKey(png, chromaKey)) {
|
|
399
|
-
return {
|
|
411
|
+
return {
|
|
412
|
+
kind: "chroma",
|
|
413
|
+
chromaKey,
|
|
414
|
+
removeDisconnected: hasRequestedChromaKeyOnEdges(png, chromaKey)
|
|
415
|
+
};
|
|
400
416
|
}
|
|
401
417
|
const matteColor = detectNeutralEdgeMatte(png);
|
|
402
|
-
|
|
418
|
+
if (matteColor) {
|
|
419
|
+
return { kind: "edge-matte", matteColor };
|
|
420
|
+
}
|
|
421
|
+
const coherentMatteColor = detectCoherentEdgeMatte(png);
|
|
422
|
+
return coherentMatteColor
|
|
423
|
+
? { kind: "coherent-edge-matte", matteColor: coherentMatteColor }
|
|
424
|
+
: undefined;
|
|
403
425
|
}
|
|
404
426
|
export function hasRequestedChromaKey(png, chromaKey) {
|
|
405
|
-
|
|
406
|
-
isKeyTintedPixel(rgbAt(png, index), chromaKey, 0.8)));
|
|
407
|
-
if (edgeStats.matches / edgeStats.total >= 0.18)
|
|
427
|
+
if (hasRequestedChromaKeyOnEdges(png, chromaKey))
|
|
408
428
|
return true;
|
|
409
429
|
let matches = 0;
|
|
410
430
|
const threshold = Math.max(256, Math.floor(png.width * png.height * 0.005));
|
|
411
431
|
for (let index = 0; index < png.width * png.height; index += 1) {
|
|
412
|
-
if (isChromaPixel(png, index,
|
|
432
|
+
if (isChromaPixel(png, index, STRICT_CHROMA_MATCH_TOLERANCE, chromaKey) ||
|
|
413
433
|
isKeyTintedPixel(rgbAt(png, index), chromaKey, 0.8)) {
|
|
414
434
|
matches += 1;
|
|
415
435
|
if (matches >= threshold)
|
|
@@ -418,6 +438,11 @@ export function hasRequestedChromaKey(png, chromaKey) {
|
|
|
418
438
|
}
|
|
419
439
|
return false;
|
|
420
440
|
}
|
|
441
|
+
export function hasRequestedChromaKeyOnEdges(png, chromaKey) {
|
|
442
|
+
const edgeStats = sampleImageEdges(png, (index) => (isChromaPixel(png, index, STRICT_CHROMA_MATCH_TOLERANCE, chromaKey) ||
|
|
443
|
+
isKeyTintedPixel(rgbAt(png, index), chromaKey, 0.8)));
|
|
444
|
+
return edgeStats.matches / edgeStats.total >= 0.18;
|
|
445
|
+
}
|
|
421
446
|
export function detectNeutralEdgeMatte(png) {
|
|
422
447
|
let edgePixelCount = 0;
|
|
423
448
|
let neutralEdgePixelCount = 0;
|
|
@@ -448,6 +473,51 @@ export function detectNeutralEdgeMatte(png) {
|
|
|
448
473
|
const matteStats = sampleImageEdges(png, (index) => (isNeutralMattePixel(rgbAt(png, index), matteColor)));
|
|
449
474
|
return matteStats.matches / matteStats.total >= 0.55 ? matteColor : undefined;
|
|
450
475
|
}
|
|
476
|
+
export function detectCoherentEdgeMatte(png) {
|
|
477
|
+
const corners = [
|
|
478
|
+
{ x: 0, y: 0 },
|
|
479
|
+
{ x: png.width - 1, y: 0 },
|
|
480
|
+
{ x: 0, y: png.height - 1 },
|
|
481
|
+
{ x: png.width - 1, y: png.height - 1 }
|
|
482
|
+
].map(({ x, y }) => y * png.width + x)
|
|
483
|
+
.filter((index) => alphaAt(png, index) >= OPAQUE_EDGE_ALPHA_THRESHOLD)
|
|
484
|
+
.map((index) => rgbAt(png, index));
|
|
485
|
+
if (corners.length < 3)
|
|
486
|
+
return undefined;
|
|
487
|
+
const cornerCluster = corners
|
|
488
|
+
.map((seed) => corners.filter((color) => (colorDistance(color, seed) <= COHERENT_EDGE_MATTE_TOLERANCE)))
|
|
489
|
+
.sort((left, right) => right.length - left.length)[0];
|
|
490
|
+
if (!cornerCluster || cornerCluster.length < 3)
|
|
491
|
+
return undefined;
|
|
492
|
+
const cornerColor = averageColors(cornerCluster);
|
|
493
|
+
const matchingEdgeColors = [];
|
|
494
|
+
const edgeStats = sampleImageEdges(png, (index) => {
|
|
495
|
+
if (alphaAt(png, index) < OPAQUE_EDGE_ALPHA_THRESHOLD)
|
|
496
|
+
return false;
|
|
497
|
+
const color = rgbAt(png, index);
|
|
498
|
+
const matches = colorDistance(color, cornerColor) <= COHERENT_EDGE_MATTE_TOLERANCE;
|
|
499
|
+
if (matches)
|
|
500
|
+
matchingEdgeColors.push(color);
|
|
501
|
+
return matches;
|
|
502
|
+
});
|
|
503
|
+
if (matchingEdgeColors.length === 0 ||
|
|
504
|
+
edgeStats.matches / edgeStats.total < COHERENT_EDGE_MATTE_MIN_COVERAGE) {
|
|
505
|
+
return undefined;
|
|
506
|
+
}
|
|
507
|
+
const matteColor = averageColors(matchingEdgeColors);
|
|
508
|
+
const refinedStats = sampleImageEdges(png, (index) => (alphaAt(png, index) >= OPAQUE_EDGE_ALPHA_THRESHOLD &&
|
|
509
|
+
colorDistance(rgbAt(png, index), matteColor) <= COHERENT_EDGE_MATTE_TOLERANCE));
|
|
510
|
+
return refinedStats.matches / refinedStats.total >= COHERENT_EDGE_MATTE_MIN_COVERAGE
|
|
511
|
+
? matteColor
|
|
512
|
+
: undefined;
|
|
513
|
+
}
|
|
514
|
+
function averageColors(colors) {
|
|
515
|
+
return {
|
|
516
|
+
red: Math.round(colors.reduce((sum, color) => sum + color.red, 0) / colors.length),
|
|
517
|
+
green: Math.round(colors.reduce((sum, color) => sum + color.green, 0) / colors.length),
|
|
518
|
+
blue: Math.round(colors.reduce((sum, color) => sum + color.blue, 0) / colors.length)
|
|
519
|
+
};
|
|
520
|
+
}
|
|
451
521
|
export function resizePngToDimensions(image, dimensions) {
|
|
452
522
|
const source = PNG.sync.read(Buffer.from(image));
|
|
453
523
|
if (source.width === dimensions.width && source.height === dimensions.height) {
|
|
@@ -670,8 +740,16 @@ export function isRemovableEdgeBackgroundPixel(png, index, backgroundRemoval) {
|
|
|
670
740
|
return (isChromaPixel(png, index, CHROMA_EDGE_FILL_TOLERANCE, backgroundRemoval.chromaKey) ||
|
|
671
741
|
isKeyTintedPixel(rgbAt(png, index), backgroundRemoval.chromaKey, 0.86));
|
|
672
742
|
}
|
|
743
|
+
if (backgroundRemoval.kind === "coherent-edge-matte") {
|
|
744
|
+
return colorDistance(rgbAt(png, index), backgroundRemoval.matteColor) <=
|
|
745
|
+
COHERENT_EDGE_MATTE_TOLERANCE;
|
|
746
|
+
}
|
|
673
747
|
return isNeutralMattePixel(rgbAt(png, index), backgroundRemoval.matteColor);
|
|
674
748
|
}
|
|
749
|
+
export function isHighConfidenceChromaPixel(png, index, chromaKey) {
|
|
750
|
+
return (isChromaPixel(png, index, STRICT_CHROMA_MATCH_TOLERANCE, chromaKey) ||
|
|
751
|
+
isKeyTintedPixel(rgbAt(png, index), chromaKey, 0.86));
|
|
752
|
+
}
|
|
675
753
|
export function isKeyTintedPixel(color, chromaKey, strength) {
|
|
676
754
|
const keyChannels = [
|
|
677
755
|
{ color: color.red, key: chromaKey.red },
|