Find a library avatar and preset
Setinclude_public=true to include shared library assets. Set paginated=true for an object response with pagination:
type=preset for scenes. Choose an asset by its alias and preview, then keep its id. When page_info.has_next_page is true, send page_info.next_cursor as the next cursor, keeping the same filters.
Without
paginated=true, GET /assets returns a bare array. It also defaults to type=model when you omit the type. Do not parse both modes as the same response shape.Save a product
Create the asset record
id as OUTFIT_ASSET_ID.
Upload the references to that asset
POST /images/{id}/asset and {"asset_id":"OUTFIT_ASSET_ID"}.
Read back your references with GET /assets/{id}/images?for_training=true. Omit the for_training filter to read the asset’s wider image collection. Public preset source photos may not be accessible even when you can use the preset for generation.
Use the saved references
Substitute the IDs returned by your own requests:POST /images/generate. It returns an array of jobs. Change the outfit asset for another product while keeping the same avatar, preset, and settings for a consistent series.
Create your own avatar or preset
Create an asset withtype=model for an avatar or type=preset for a visual setup. Give it a useful alias and characteristics. Upload its reference photos to /assets/{id}/images with type=training.
For a preset, use a class such as human_studio, human_location, ghost_mannequin, flat_lay, or product_packshot. You can analyze one to three uploaded images to obtain a suggested name, class, and prompt before saving the asset.
A display_image URL is only a thumbnail. You must also upload or link source images for the asset to act as a visual reference. Reference-based image models such as Nano Banana 2 can use these saved references without a separate model-training request.