@ai-game-assets/dev 0.11.0 → 0.11.2

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/README.md CHANGED
@@ -12,10 +12,10 @@ Use this package during development to generate, edit, promote, and build game a
12
12
 
13
13
  ## Scaled variants
14
14
 
15
- `POST /__ai-assets/scaled-variant` creates, regenerates, touches up, or deletes a version-scoped resolution. Requests include `assetId`, `versionName`, `sourceFile`, `action`, and, for existing variants, `id` and `expectedFile`. Generate accepts `width`, `height`, and `method` (`nearest`, `resample`, or `ai-upscale`); touch-up accepts a PNG `dataUrl` with unchanged variant dimensions. Width/height describe each frame or tile when the source is a sheet. Responses include the updated manifest and variant.
15
+ `POST /__ai-assets/scaled-variant` creates, regenerates, touches up, or deletes a version-scoped resolution. Requests include `assetId`, `versionName`, `sourceFile`, `action`, and, for existing variants, `id` and `expectedFile`. Generate accepts `width`, `height`, and `method` (`nearest`, `resample`, or `ai-upscale`); touch-up accepts a PNG `dataUrl` with unchanged variant dimensions. Width/height describe each frame or tile when the source is a sheet. Responses include the updated manifest and variant. Generate and touch-up also return `previewDataUrl` containing the saved PNG, allowing immediate previews before public-file watchers expose the new URL.
16
16
 
17
17
  The server validates image dimensions and frame geometry, rejects stale updates, reads only local source files within `assetsDir`, and saves immutable PNGs. Failed generation leaves existing variants unchanged. Variant files and metadata are retained in production manifest builds. Replaced files are retained because other target assets or provenance may reference them.
18
18
 
19
- Strict resizing works without API credentials. To enable dedicated AI enlargement, set `REPLICATE_API_TOKEN`, or pass an `upscaleProvider` to `createAiAssetDevServer`. The built-in adapter uses Real-ESRGAN with face enhancement disabled; it never calls the normal image-generation provider. AI enlargement can infer fine detail and cannot guarantee zero interpretation. For exact pixel preservation, use `nearest`. OpenAI image-generation credentials alone do not provide this dedicated upscaling endpoint.
19
+ Strict resizing works without API credentials. AI enlargement uses the OpenAI Images edit API with the existing `OPENAI_API_KEY`; no additional provider token is needed. The default model is GPT Image 2.5 Sunburst with high quality and a fixed preservation prompt. Smaller targets are generated on an API-supported canvas and resized to the exact requested dimensions with nearest-neighbor sampling. The edited image's transparency is retained. OpenAI may refine details; use `nearest` for exact pixel preservation. Downscaling in AI mode uses deterministic smooth resizing without an API call.
20
20
 
21
- A custom `AiAssetUpscaleProvider` implements `upscale({ image, width, height, signal })` and returns image bytes. The server processes frames individually, enforces exact output dimensions, and restores the original alpha coverage. `createReplicateUpscaleProvider`, `saveScaledVariant`, and `resizeScaledSource` are also exported for custom development servers.
21
+ A custom `AiAssetUpscaleProvider` implements `upscale({ image, width, height, signal })` and returns image bytes. Pass it as `upscaleProvider` to `createAiAssetDevServer`. `createOpenAiUpscaleProvider({ apiKey?, model?, fetch? })`, `saveScaledVariant`, and `resizeScaledSource` are exported for custom servers. The server selects the closest source, processes sheet frames individually, and enforces exact output dimensions.
package/dist/index.d.ts CHANGED
@@ -8,6 +8,6 @@ export type { AiAssetDevServerOptions, GeneratedTilesetAnimationStreamOption, Ge
8
8
  export { createAiAssetDevServer, serializeGeneratedTilesetAnimationOption } from "./server.js";
9
9
  export type { BuildManifestOptions } from "./build-manifest.js";
10
10
  export { buildManifestModule, normalizeAssetUrls, pruneManifestForBuild, readManifestDirectory, referencedAssetFiles } from "./build-manifest.js";
11
- export { saveScaledVariant, resizeScaledSource, createReplicateUpscaleProvider } from "./scaled-variants.js";
11
+ export { saveScaledVariant, resizeScaledSource, createOpenAiUpscaleProvider } from "./scaled-variants.js";
12
12
  export type { ScaledVariantRequest, ScaledVariantStoreOptions, AiAssetUpscaleProvider } from "./scaled-variants.js";
13
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,eAAe,EACf,sBAAsB,EACtB,+BAA+B,EAC/B,uCAAuC,EACvC,oBAAoB,EACpB,+BAA+B,EAC/B,oBAAoB,EACpB,0BAA0B,EAC3B,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,yBAAyB,EACzB,gCAAgC,EAChC,iBAAiB,EACjB,2BAA2B,EAC5B,MAAM,eAAe,CAAC;AAEvB,YAAY,EACV,eAAe,EACf,8BAA8B,EAC9B,yBAAyB,EAC1B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,6BAA6B,EAAE,MAAM,qBAAqB,CAAC;AAEpE,YAAY,EACV,iBAAiB,EACjB,wBAAwB,EACxB,yBAAyB,EACzB,yBAAyB,EACzB,0BAA0B,EAC1B,0BAA0B,EAC1B,mBAAmB,EACpB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,oBAAoB,EACpB,cAAc,EACd,mBAAmB,EACnB,aAAa,EACd,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EACV,uBAAuB,EACvB,qCAAqC,EACrC,mCAAmC,EACnC,qCAAqC,EACrC,uBAAuB,EACvB,2BAA2B,EAC3B,4BAA4B,EAC5B,8BAA8B,EAC9B,yBAAyB,EAC1B,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,sBAAsB,EACtB,wCAAwC,EACzC,MAAM,aAAa,CAAC;AAErB,YAAY,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAEhE,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,8BAA8B,EAAE,MAAM,sBAAsB,CAAC;AAC7G,YAAY,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,eAAe,EACf,sBAAsB,EACtB,+BAA+B,EAC/B,uCAAuC,EACvC,oBAAoB,EACpB,+BAA+B,EAC/B,oBAAoB,EACpB,0BAA0B,EAC3B,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,yBAAyB,EACzB,gCAAgC,EAChC,iBAAiB,EACjB,2BAA2B,EAC5B,MAAM,eAAe,CAAC;AAEvB,YAAY,EACV,eAAe,EACf,8BAA8B,EAC9B,yBAAyB,EAC1B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,6BAA6B,EAAE,MAAM,qBAAqB,CAAC;AAEpE,YAAY,EACV,iBAAiB,EACjB,wBAAwB,EACxB,yBAAyB,EACzB,yBAAyB,EACzB,0BAA0B,EAC1B,0BAA0B,EAC1B,mBAAmB,EACpB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,oBAAoB,EACpB,cAAc,EACd,mBAAmB,EACnB,aAAa,EACd,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EACV,uBAAuB,EACvB,qCAAqC,EACrC,mCAAmC,EACnC,qCAAqC,EACrC,uBAAuB,EACvB,2BAA2B,EAC3B,4BAA4B,EAC5B,8BAA8B,EAC9B,yBAAyB,EAC1B,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,sBAAsB,EACtB,wCAAwC,EACzC,MAAM,aAAa,CAAC;AAErB,YAAY,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAEhE,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AAC1G,YAAY,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC"}
package/dist/index.js CHANGED
@@ -3,5 +3,5 @@ export { createElevenLabsAudioProvider } from "./audio-provider.js";
3
3
  export { readManifest, saveGeneratedOption, saveTilesetAnimation, saveStyleGuide, writeManifestModule, writeManifest } from "./asset-store.js";
4
4
  export { createAiAssetDevServer, serializeGeneratedTilesetAnimationOption } from "./server.js";
5
5
  export { buildManifestModule, normalizeAssetUrls, pruneManifestForBuild, readManifestDirectory, referencedAssetFiles } from "./build-manifest.js";
6
- export { saveScaledVariant, resizeScaledSource, createReplicateUpscaleProvider } from "./scaled-variants.js";
6
+ export { saveScaledVariant, resizeScaledSource, createOpenAiUpscaleProvider } from "./scaled-variants.js";
7
7
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAWA,OAAO,EACL,yBAAyB,EACzB,gCAAgC,EAChC,iBAAiB,EACjB,2BAA2B,EAC5B,MAAM,eAAe,CAAC;AAQvB,OAAO,EAAE,6BAA6B,EAAE,MAAM,qBAAqB,CAAC;AAYpE,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,oBAAoB,EACpB,cAAc,EACd,mBAAmB,EACnB,aAAa,EACd,MAAM,kBAAkB,CAAC;AAc1B,OAAO,EACL,sBAAsB,EACtB,wCAAwC,EACzC,MAAM,aAAa,CAAC;AAIrB,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,8BAA8B,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAWA,OAAO,EACL,yBAAyB,EACzB,gCAAgC,EAChC,iBAAiB,EACjB,2BAA2B,EAC5B,MAAM,eAAe,CAAC;AAQvB,OAAO,EAAE,6BAA6B,EAAE,MAAM,qBAAqB,CAAC;AAYpE,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,oBAAoB,EACpB,cAAc,EACd,mBAAmB,EACnB,aAAa,EACd,MAAM,kBAAkB,CAAC;AAc1B,OAAO,EACL,sBAAsB,EACtB,wCAAwC,EACzC,MAAM,aAAa,CAAC;AAIrB,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { type AiAssetDimensions, type AiAssetScaledVariant, type AiAssetScaledSource } from "@ai-game-assets/core";
2
2
  import { type AssetStoreOptions } from "./asset-store.js";
3
- /** A dedicated super-resolution provider; no prompt, style, or image-generation API. */
3
+ /** An image enlargement provider. AI editing may refine details and transparency. */
4
4
  export type AiAssetUpscaleProvider = {
5
5
  upscale(input: {
6
6
  image: Uint8Array;
@@ -28,13 +28,16 @@ export declare function saveScaledVariant(options: ScaledVariantStoreOptions, in
28
28
  manifest: import("@ai-game-assets/core").AiAssetManifest;
29
29
  asset: import("@ai-game-assets/core").AiAssetDefinition;
30
30
  variant: AiAssetScaledVariant | undefined;
31
+ previewDataUrl: string | undefined;
31
32
  }>;
32
33
  export declare function resizeScaledSource(image: Uint8Array, source: AiAssetScaledSource, target: {
33
34
  dimensions: AiAssetDimensions;
34
35
  frameGrid?: AiAssetScaledSource["frameGrid"];
35
36
  }, method: "nearest" | "resample" | "ai-upscale", provider?: AiAssetUpscaleProvider, signal?: AbortSignal): Promise<Uint8Array>;
36
- export declare function createReplicateUpscaleProvider(options: {
37
- apiToken: string;
37
+ /** Uses the OpenAI Images edit endpoint with a fixed preservation prompt. */
38
+ export declare function createOpenAiUpscaleProvider(options?: {
39
+ apiKey?: string;
40
+ model?: string;
38
41
  fetch?: typeof fetch;
39
42
  }): AiAssetUpscaleProvider;
40
43
  //# sourceMappingURL=scaled-variants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scaled-variants.d.ts","sourceRoot":"","sources":["../src/scaled-variants.ts"],"names":[],"mappings":"AAIA,OAAO,EAML,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAIL,KAAK,iBAAiB,EACvB,MAAM,kBAAkB,CAAC;AAE1B,wFAAwF;AACxF,MAAM,MAAM,sBAAsB,GAAG;IACnC,OAAO,CAAC,KAAK,EAAE;QACb,KAAK,EAAE,UAAU,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,WAAW,CAAC;KACtB,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;CACzB,CAAC;AACF,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,UAAU,GAAG,UAAU,GAAG,QAAQ,CAAC;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,YAAY,CAAC;IAC/C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AACF,MAAM,MAAM,yBAAyB,GAAG,iBAAiB,GAAG;IAC1D,eAAe,CAAC,EAAE,sBAAsB,CAAC;CAC1C,CAAC;AAiCF,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,yBAAyB,EAClC,KAAK,EAAE,oBAAoB,EAC3B,MAAM,CAAC,EAAE,WAAW;;;;GAyJrB;AAED,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,mBAAmB,EAC3B,MAAM,EAAE;IACN,UAAU,EAAE,iBAAiB,CAAC;IAC9B,SAAS,CAAC,EAAE,mBAAmB,CAAC,WAAW,CAAC,CAAC;CAC9C,EACD,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,YAAY,EAC7C,QAAQ,CAAC,EAAE,sBAAsB,EACjC,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC,CAkGrB;AAED,wBAAgB,8BAA8B,CAAC,OAAO,EAAE;IACtD,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB,GAAG,sBAAsB,CA0FzB"}
1
+ {"version":3,"file":"scaled-variants.d.ts","sourceRoot":"","sources":["../src/scaled-variants.ts"],"names":[],"mappings":"AAIA,OAAO,EAOL,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAIL,KAAK,iBAAiB,EACvB,MAAM,kBAAkB,CAAC;AAG1B,qFAAqF;AACrF,MAAM,MAAM,sBAAsB,GAAG;IACnC,OAAO,CAAC,KAAK,EAAE;QACb,KAAK,EAAE,UAAU,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,WAAW,CAAC;KACtB,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;CACzB,CAAC;AACF,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,UAAU,GAAG,UAAU,GAAG,QAAQ,CAAC;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,YAAY,CAAC;IAC/C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AACF,MAAM,MAAM,yBAAyB,GAAG,iBAAiB,GAAG;IAC1D,eAAe,CAAC,EAAE,sBAAsB,CAAC;CAC1C,CAAC;AAiCF,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,yBAAyB,EAClC,KAAK,EAAE,oBAAoB,EAC3B,MAAM,CAAC,EAAE,WAAW;;;;;GAgKrB;AAED,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,mBAAmB,EAC3B,MAAM,EAAE;IACN,UAAU,EAAE,iBAAiB,CAAC;IAC9B,SAAS,CAAC,EAAE,mBAAmB,CAAC,WAAW,CAAC,CAAC;CAC9C,EACD,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,YAAY,EAC7C,QAAQ,CAAC,EAAE,sBAAsB,EACjC,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC,CA0FrB;AAED,6EAA6E;AAC7E,wBAAgB,2BAA2B,CAAC,OAAO,GAAE;IACnD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACjB,GAAG,sBAAsB,CAiD9B"}
@@ -2,8 +2,9 @@ import { randomUUID } from "node:crypto";
2
2
  import { mkdir, readFile, unlink, writeFile } from "node:fs/promises";
3
3
  import path from "node:path";
4
4
  import sharp from "sharp";
5
- import { assertManifest, scaledVariantGeometry, scaledVariantFrameSize, scaledVariantSources, selectScaledVariant, } from "@ai-game-assets/core";
5
+ import { assertManifest, DEFAULT_IMAGE_MODEL, scaledVariantGeometry, scaledVariantFrameSize, scaledVariantSources, selectScaledVariant, } from "@ai-game-assets/core";
6
6
  import { readManifest, writeManifest, writeManifestModule, } from "./asset-store.js";
7
+ import { closestImageGenerationSize } from "./image-generation-sizes.js";
7
8
  const transactions = new Map();
8
9
  async function transaction(key, work) {
9
10
  const previous = transactions.get(key) ?? Promise.resolve();
@@ -85,9 +86,9 @@ export async function saveScaledVariant(options, input, signal) {
85
86
  }
86
87
  else {
87
88
  const provider = options.upscaleProvider ??
88
- (process.env.REPLICATE_API_TOKEN
89
- ? createReplicateUpscaleProvider({
90
- apiToken: process.env.REPLICATE_API_TOKEN,
89
+ (process.env.OPENAI_API_KEY
90
+ ? createOpenAiUpscaleProvider({
91
+ apiKey: process.env.OPENAI_API_KEY,
91
92
  })
92
93
  : undefined);
93
94
  image = await resizeScaledSource(await readFile(localFile(options, source.file)), source, geometry, input.method ?? "nearest", provider, signal);
@@ -153,7 +154,14 @@ export async function saveScaledVariant(options, input, signal) {
153
154
  throw error;
154
155
  }
155
156
  // Older files remain immutable: other target assets or variant provenance may refer to them.
156
- return { manifest, asset: manifest.assets[input.assetId], variant };
157
+ return {
158
+ manifest,
159
+ asset: manifest.assets[input.assetId],
160
+ variant,
161
+ // A public-file watcher may not have exposed the new URL yet. Let the
162
+ // designer display the exact saved pixels without another HTTP request.
163
+ previewDataUrl: image ? `data:image/png;base64,${Buffer.from(image).toString("base64")}` : undefined,
164
+ };
157
165
  });
158
166
  }
159
167
  export async function resizeScaledSource(image, source, target, method, provider, signal) {
@@ -168,7 +176,7 @@ export async function resizeScaledSource(image, source, target, method, provider
168
176
  const sourceWidth = sourceGrid?.frameWidth ?? source.dimensions.width, sourceHeight = sourceGrid?.frameHeight ?? source.dimensions.height;
169
177
  const upscale = method === "ai-upscale" && (width > sourceWidth || height > sourceHeight);
170
178
  if (upscale && !provider)
171
- throw new Error("AI upscaling requires an upscaleProvider or REPLICATE_API_TOKEN. Strict resizing works without an API key.");
179
+ throw new Error("AI upscaling requires an upscaleProvider or OPENAI_API_KEY. Strict resizing works without an API key.");
172
180
  const output = Buffer.alloc(target.dimensions.width * target.dimensions.height * 4);
173
181
  const rows = sourceGrid?.rows ?? 1, columns = sourceGrid?.columns ?? 1;
174
182
  for (let row = 0; row < rows; row++)
@@ -197,18 +205,12 @@ export async function resizeScaledSource(image, source, target, method, provider
197
205
  signal,
198
206
  });
199
207
  pixels = await sharp(enhanced, { limitInputPixels: 33554432 })
200
- .resize(width, height, { fit: "fill", kernel: "lanczos3" })
208
+ .resize(width, height, { fit: "fill", kernel: "nearest" })
201
209
  .ensureAlpha()
202
210
  .raw()
203
211
  .toBuffer();
204
- // Preserve source coverage: AI cannot add a background or fill transparent sprite borders.
205
- for (let y = 0; y < height; y++)
206
- for (let x = 0; x < width; x++)
207
- pixels[(y * width + x) * 4 + 3] =
208
- original[(Math.floor((y * sourceHeight) / height) * sourceWidth +
209
- Math.floor((x * sourceWidth) / width)) *
210
- 4 +
211
- 3];
212
+ // Keep the returned alpha: imposing the low-resolution source mask can
213
+ // clip refined edges and misalign transparency with the edited sprite.
212
214
  }
213
215
  else if (method === "nearest" || upscale) {
214
216
  pixels = Buffer.alloc(width * height * 4);
@@ -234,74 +236,56 @@ export async function resizeScaledSource(image, source, target, method, provider
234
236
  .png()
235
237
  .toBuffer();
236
238
  }
237
- export function createReplicateUpscaleProvider(options) {
239
+ /** Uses the OpenAI Images edit endpoint with a fixed preservation prompt. */
240
+ export function createOpenAiUpscaleProvider(options = {}) {
238
241
  const request = options.fetch ?? fetch;
239
242
  return {
240
243
  async upscale({ image, width, height, signal }) {
241
- const metadata = await sharp(image).metadata();
242
- const scale = Math.min(10, Math.max(2, Math.ceil(Math.max(width / metadata.width, height / metadata.height))));
243
- const headers = {
244
- Authorization: `Bearer ${options.apiToken}`,
245
- "Content-Type": "application/json",
246
- };
247
- const deadline = AbortSignal.timeout(180000), combined = signal ? AbortSignal.any([signal, deadline]) : deadline;
248
- let response = await request("https://api.replicate.com/v1/predictions", {
244
+ signal?.throwIfAborted();
245
+ const apiKey = options.apiKey ?? process.env.OPENAI_API_KEY;
246
+ if (!apiKey)
247
+ throw new Error("OPENAI_API_KEY is required for AI scaled variants.");
248
+ const model = options.model ?? DEFAULT_IMAGE_MODEL;
249
+ const size = closestImageGenerationSize({ width, height }, model);
250
+ const { data, info } = await sharp(image, { limitInputPixels: 33554432 })
251
+ .ensureAlpha().raw().toBuffer({ resolveWithObject: true });
252
+ const transparent = data.some((alpha, index) => index % 4 === 3 && alpha < 255);
253
+ const form = new FormData();
254
+ form.append("model", model);
255
+ form.append("size", size);
256
+ form.append("quality", "high");
257
+ form.append("background", transparent ? "transparent" : "opaque");
258
+ form.append("output_format", "png");
259
+ form.append("n", "1");
260
+ form.append("prompt", [
261
+ `Upscale the attached ${info.width} by ${info.height} image for a game asset.`,
262
+ `The final asset must be ${width} by ${height} pixels. Generate on the ${size} canvas; the result will be resized to the final dimensions afterward.`,
263
+ "This is an image-preservation task, not a redesign. Only enlarge the existing image.",
264
+ "Keep the original full-canvas composition, pose, silhouette, proportions, facial features, clothing, equipment, colors, highlights, shadows and art style.",
265
+ "Preserve pixel-art structure when present. Do not smooth, sharpen, invent details, add or remove objects, move, crop, reframe or change lighting.",
266
+ transparent
267
+ ? "Preserve transparency and semi-transparent edges. Keep the background transparent; do not draw a checkerboard or a new background."
268
+ : "Preserve the existing opaque background exactly.",
269
+ "No text or watermark."
270
+ ].join(" "));
271
+ form.append("image", new Blob([Uint8Array.from(image)], { type: "image/png" }), "source.png");
272
+ const deadline = AbortSignal.timeout(180000);
273
+ const combined = signal ? AbortSignal.any([signal, deadline]) : deadline;
274
+ const response = await request("https://api.openai.com/v1/images/edits", {
249
275
  method: "POST",
250
- headers,
276
+ headers: { Authorization: `Bearer ${apiKey}` },
277
+ body: form,
251
278
  signal: combined,
252
- body: JSON.stringify({
253
- version: "350d32041630ffbe63c8352783a26d94126809164e54085352f8326e53999085",
254
- input: {
255
- image: `data:image/png;base64,${Buffer.from(image).toString("base64")}`,
256
- scale,
257
- face_enhance: false,
258
- },
259
- }),
260
279
  });
280
+ combined.throwIfAborted();
261
281
  if (!response.ok)
262
- throw new Error(`AI upscale request failed (${response.status}).`);
263
- let result = (await response.json());
264
- try {
265
- while (!["succeeded", "failed", "canceled"].includes(result.status)) {
266
- await new Promise((resolve, reject) => {
267
- const timer = setTimeout(done, 1000);
268
- function done() {
269
- combined.removeEventListener("abort", abort);
270
- resolve();
271
- }
272
- function abort() {
273
- clearTimeout(timer);
274
- combined.removeEventListener("abort", abort);
275
- reject(combined.reason);
276
- }
277
- if (combined.aborted)
278
- abort();
279
- else
280
- combined.addEventListener("abort", abort, { once: true });
281
- });
282
- response = await request(`https://api.replicate.com/v1/predictions/${encodeURIComponent(result.id)}`, { headers, signal: combined });
283
- if (!response.ok)
284
- throw new Error(`AI upscale polling failed (${response.status}).`);
285
- result = (await response.json());
286
- }
287
- if (result.status !== "succeeded" || !result.output)
288
- throw new Error("AI upscaling failed.");
289
- const outputUrl = new URL(result.output);
290
- if (outputUrl.protocol !== "https:")
291
- throw new Error("Invalid upscale output URL.");
292
- const output = await request(outputUrl, { signal: combined });
293
- if (!output.ok)
294
- throw new Error(`AI upscale download failed (${output.status}).`);
295
- return new Uint8Array(await output.arrayBuffer());
296
- }
297
- catch (error) {
298
- if (combined.aborted &&
299
- result.id &&
300
- !["succeeded", "failed", "canceled"].includes(result.status)) {
301
- await request(`https://api.replicate.com/v1/predictions/${encodeURIComponent(result.id)}/cancel`, { method: "POST", headers, signal: AbortSignal.timeout(5000) }).catch(() => { });
302
- }
303
- throw error;
304
- }
282
+ throw new Error(`OpenAI scaled variant request failed (${response.status}).`);
283
+ const result = await response.json();
284
+ combined.throwIfAborted();
285
+ const encoded = result.data?.[0]?.b64_json;
286
+ if (!encoded)
287
+ throw new Error("OpenAI returned no image for the scaled variant.");
288
+ return Buffer.from(encoded, "base64");
305
289
  },
306
290
  };
307
291
  }
@@ -1 +1 @@
1
- {"version":3,"file":"scaled-variants.js","sourceRoot":"","sources":["../src/scaled-variants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scaled-variants.js","sourceRoot":"","sources":["../src/scaled-variants.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ai-game-assets/dev",
3
- "version": "0.11.0",
3
+ "version": "0.11.2",
4
4
  "description": "Development server and AI providers for prompt-aware AI game assets.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -30,7 +30,7 @@
30
30
  "typecheck": "tsc -p tsconfig.json --noEmit"
31
31
  },
32
32
  "dependencies": {
33
- "@ai-game-assets/core": "0.11.0",
33
+ "@ai-game-assets/core": "0.11.2",
34
34
  "@types/pngjs": "^6.0.5",
35
35
  "pngjs": "^7.0.0",
36
36
  "sharp": "^0.35.3"