Configure CE.SDK to load default and demo assets from your own servers or local filesystem for server-side deployments.
The @cesdk/node package bundles the core WASM engine files directly—no additional setup is required to initialize the engine and use its APIs. You only need to configure asset paths if you use addDefaultAssetSources() or addDemoAssetSources() to populate the asset library.
For rendering-only workflows (loading existing scenes and exporting to PDF, PNG, or video), you can skip asset configuration entirely. The engine loads scene-referenced assets directly from their embedded URLs.
Download Assets (v1.68.0)This guide covers how to self-host default assets when you need them, either from the local filesystem or your own CDN.
Quick Start#
Download and extract the essential assets for your SDK version:
# Download assets for current SDK versioncurl -O https://cdn.img.ly/packages/imgly/cesdk-node/1.68.0/imgly-assets.zip
# Create versioned directory and extract assetsmkdir -p cesdk-assets/1.68.0unzip imgly-assets.zip -d cesdk-assets/1.68.0/rm imgly-assets.zipThen configure CE.SDK to use your local assets:
import CreativeEngine from '@cesdk/node';import path from 'path';import { pathToFileURL } from 'url';
const engine = await CreativeEngine.init({ license: 'YOUR_CESDK_LICENSE_KEY'});
// Point to local assets instead of CDNengine.addDefaultAssetSources({ baseURL: pathToFileURL(path.resolve(`./cesdk-assets/${CreativeEngine.version}`)).href + '/'});Understanding Asset Categories#
The imgly-assets.zip contains directories organized by function:
| Directory | Contents | Bundled in npm? | When Needed |
|---|---|---|---|
core/ | WASM engine files | Yes | Always (bundled) |
i18n/ | Translations | Yes | Always (bundled) |
emoji/ | Emoji assets | No | If rendering emojis |
fonts/ | System fonts | No | If using system fonts |
ui/ | UI resources | No | Browser only |
ly.img.sticker/ | Stickers | No | If using addDefaultAssetSources() |
ly.img.sticker.misc/ | Additional stickers | No | If using addDefaultAssetSources() |
ly.img.vectorpath/ | Shapes and arrows | No | If using addDefaultAssetSources() |
ly.img.typeface/ | Font definitions | No | If using addDefaultAssetSources() |
ly.img.filter.lut/ | LUT filter effects | No | If using addDefaultAssetSources() |
ly.img.filter.duotone/ | Duotone effects | No | If using addDefaultAssetSources() |
ly.img.effect/ | Visual effects | No | If using addDefaultAssetSources() |
ly.img.blur/ | Blur presets | No | If using addDefaultAssetSources() |
ly.img.colors.defaultPalette/ | Color palettes | No | If using addDefaultAssetSources() |
ly.img.crop.presets/ | Crop aspect ratios | No | If using addDefaultAssetSources() |
ly.img.page.presets/ | Page format presets | No | If using addDefaultAssetSources() |
ly.img.page.presets.video/ | Video page presets | No | If using addDefaultAssetSources() |
ly.img.captionPresets/ | Caption formatting presets | No | If using addDefaultAssetSources() |
ly.img.animation/ | Animation presets | No | If using addDefaultAssetSources() |
ly.img.animation.text/ | Text animation presets | No | If using addDefaultAssetSources() |
ly.img.image/ | Sample images (demo content) | No | Development only |
ly.img.video/ | Sample videos (demo content) | No | Development only |
ly.img.audio/ | Sample audio (demo content) | No | Development only |
ly.img.template/ | Design templates (demo content) | No | Development only |
ly.img.video.template/ | Video templates (demo content) | No | Development only |
ly.img.textComponents/ | Text components (demo content) | No | Development only |
For most server-side integrations, you need the ly.img.* asset sources you use.
Default Asset Sources#
Calling addDefaultAssetSources() registers these asset sources:
ly.img.sticker- Stickersly.img.sticker.misc- Additional stickersly.img.vectorpath- Shapes and arrowsly.img.typeface- Font definitionsly.img.colors.defaultPalette- Color palettesly.img.filter.lut- LUT effectsly.img.filter.duotone- Duotone effectsly.img.effect- Visual effectsly.img.blur- Blur presetsly.img.crop.presets- Crop aspect ratiosly.img.page.presets- Page format presetsly.img.page.presets.video- Video page presetsly.img.captionPresets- Caption formattingly.img.animation- Animation presetsly.img.animation.text- Text animation presets
Configuration#
Using Local Filesystem#
Use Node.js pathToFileURL() to load assets directly from disk:
import CreativeEngine from '@cesdk/node';import path from 'path';import { pathToFileURL } from 'url';
const engine = await CreativeEngine.init({ license: 'YOUR_CESDK_LICENSE_KEY'});
// Load default assets from local filesystemengine.addDefaultAssetSources({ baseURL: pathToFileURL(path.resolve(`./cesdk-assets/${CreativeEngine.version}`)).href + '/'});
// Use the engine for processing// ...
// Clean up when doneengine.dispose();The file:// protocol loads assets directly from the filesystem without network overhead.
Using Your Own CDN#
If you prefer serving assets from your own CDN:
import CreativeEngine from '@cesdk/node';
const engine = await CreativeEngine.init({ license: 'YOUR_CESDK_LICENSE_KEY'});
engine.addDefaultAssetSources({ baseURL: `https://cdn.yourdomain.com/cesdk/${CreativeEngine.version}/`});Excluding Unused Asset Sources#
If you only need specific assets, exclude the rest to reduce initialization time:
engine.addDefaultAssetSources({ baseURL: pathToFileURL(path.resolve(`./cesdk-assets/${CreativeEngine.version}`)).href + '/', excludeAssetSourceIds: [ 'ly.img.sticker', 'ly.img.page.presets.video' ]});Troubleshooting#
404 Errors for Assets#
If you see errors loading content.json files:
- Verify the
baseURLinaddDefaultAssetSources()is correct - Check that asset directories exist at the expected paths
- For file-based assets, ensure read permissions are set correctly
File URL Formatting#
When using file:// URLs:
- Use
path.resolve()to get absolute paths - URLs must end with a trailing slash for directories
- Always use
pathToFileURL()from theurlmodule instead of string concatenation
API Reference#
| Method/Config | Purpose |
|---|---|
CreativeEngine.init(config) | Initialize engine with configuration |
engine.addDefaultAssetSources(options) | Register default asset sources |
engine.addDemoAssetSources(options) | Register demo asset sources |
CreativeEngine.version | Get current SDK version string |
pathToFileURL(path) | Convert filesystem path to file:// URL (Node.js url module) |