ei-build-custom-synthetic-data-blocks
Help the user author an Edge Impulse custom synthetic data block. A synthetic data block is a Docker container that Studio runs from a project's Data acquisition → Synthetic data tab to generate samples (images, audio, time series) with a generative model or a custom generator, and upload them to the project through the Ingestion API. Any language works. Custom synthetic data blocks are an Enterprise-only feature.
Before writing a block, check whether a built-in block (DALL-E image generation, FLUX Pro image generation, Whisper keyword generation, time-series data augmentation) or an official example already does the job (see Reference repositories). Built-in blocks that call a provider need the user's own provider API key.
How synthetic data blocks work
A synthetic data block is a transformation block in standalone mode with type: "synthetic-data" in parameters.json. It receives no input file or directory. It generates data, then uploads each sample to the project with the project API key. There are no required outputs; the pattern is upload through the Ingestion API.
Studio passes --synthetic-data-job-id <job-id>. Send it as the x-synthetic-data-job-id header on every upload so Studio can show a live preview of the generated samples on the Synthetic data tab while the job runs.
Required files
Dockerfile— builds the container.ENTRYPOINTruns the script.parameters.json— block metadata (type: "synthetic-data") + user-facing parameters.- Generation script —
transform.pyin the official examples; any language that can call the Ingestion API works. - Optional
requirements.txtand.dockerignore. .ei-block-config— written byedge-impulse-blocks init; it binds the directory to one organization and block ID. Gitignore it in public or shared repos, commit it in a private team repo.