Authorization
The Nero AI API requires authorization via an API key generated within your Nero AI account.
All of the methods in the Nero AI API require authorization using x-neroai-api-key
.
Rate limit
APIs starting with /biz/api/task
are rate limited to 10 times per second.
If this rate is exceeded, the request will receive http status code 429
with error message "Too Many Requests".
API
All AI task APIs are asynchronous. You can get the results through query or webhook.
Create a task
POST
https://api.nero.com/biz/api/task
Query task result
GET
https://api.nero.com/biz/api/task?task_id=
Webhook
Provide a url to which the result will be sent when the task is completed. If the webhook invoke fails, it will be retried three times
to ensure the result is sent.
Request example
curl -X POST 'https://api.nero.com/biz/api/task' \
--header 'x-neroai-api-key: your API key' \
--header 'Content-Type: application/json' \
--data '{
"type": "ImageUpscaler:Standard",
"body": {
"image": "https://image.url"
},
"info": {
"webhook": "https://webhook.url"
}
}'
The result will be sent.
{
"task_id": "bmtrfykh",
"status": "done",
"result": {
"output": "https://image.url"
}
}
ImageUpscaler
Take "ImageUpscaler:Standard" as an example below.
Supported Formats
Currently, the supported file formats are JPG
, JPEG
, PNG
, BMP
, WEBP
, JFIF
, JFI
, JPE
, JIF
and ICO
.
Request example
curl -X POST 'https://api.nero.com/biz/api/task' \
--header 'x-neroai-api-key: your API key' \
--header 'Content-Type: application/json' \
--data '{
"type": "ImageUpscaler:Standard",
"body": {
"image": "https://image.url"
}
}'
Response success example
{
"code": 0,
"data": {
"task_id": "bmtrfykh"
}
}
Headers
Field | Description |
---|---|
x-neroai-api-key | your API key |
Parameters
Field | Type | Required | Description |
---|---|---|---|
type | string | true | ImageUpscaler:Standard | ImageUpscaler:Photograph | ImageUpscaler:Anime | ImageUpscaler:FaceEnhancement |
body.image | string | true | an image url |
body.quality_factor | number | false | the quality factor of result. the larger the value, the higher the quality. range is [80, 100], default is 95. only takes effect when the result is one of jpg or jpeg or webp |
body.presigned_url | string | false | a presigned URL generated for temporary upload access to private objects. |
body.upscaling_rate | number | false | upscaling rate, 2 or 4, default is 4 (face enhancement is not supported) |
Query task result
curl 'https://api.nero.com/biz/api/task?task_id=bmtrfykh' \
--header 'x-neroai-api-key: your API key'
Response success example
// pending
{
"code": 0,
"data": {
"status": "pending",
"pending_count": 5
}
}
// running
{
"code": 0,
"data": {
"status": "running",
"progress": 99
}
}
// done
{
"code": 0,
"data": {
"status": "done",
"result": {
"output": "https://image.url"
}
}
}
// failed
{
"code": 0,
"data": {
"status": "failed",
"msg": "error message"
}
}
ScratchFix
Supported Formats
Currently, the supported file formats are JPG
, JPEG
, PNG
, BMP
, WEBP
, JFIF
, JFI
, JPE
, JIF
.
Request example
curl -X POST 'https://api.nero.com/biz/api/task' \
--header 'x-neroai-api-key: your API key' \
--header 'Content-Type: application/json' \
--data '{
"type": "ScratchFix",
"body": {
"image": "https://image.url"
}
}'
Headers
Field | Description |
---|---|
x-neroai-api-key | your API key |
Parameters
Field | Type | Required | Description |
---|---|---|---|
type | string | true | ScratchFix |
body.image | string | true | an image url |
body.mask | string | false | user-created scratch mask image url |
body.presigned_url | string | false | a presigned URL generated for temporary upload access to private objects. |
Task result
{
"code": 0,
"data": {
"status": "done",
"result": {
"output": "https://image.url",
"mask": "https://image.url"
}
}
}
ColorizePhoto
Supported Formats
Currently, the supported file formats are JPG
, JPEG
, PNG
, BMP
, WEBP
, JFIF
, JFI
, JPE
, JIF
.
Request example
curl -X POST 'https://api.nero.com/biz/api/task' \
--header 'x-neroai-api-key: your API key' \
--header 'Content-Type: application/json' \
--data '{
"type": "ColorizePhoto",
"body": {
"image": "https://image.url"
}
}'
Headers
Field | Description |
---|---|
x-neroai-api-key | your API key |
Parameters
Field | Type | Required | Description |
---|---|---|---|
type | string | true | ColorizePhoto |
body.image | string | true | an image url |
body.presigned_url | string | false | a presigned URL generated for temporary upload access to private objects. |
Task result
{
"code": 0,
"data": {
"status": "done",
"result": {
"output": "https://image.url"
}
}
}
FaceRestoration
Supported Formats
Currently, the supported file formats are JPG
, JPEG
, PNG
, BMP
, WEBP
, JFIF
, JFI
, JPE
, JIF
.
Request example
curl -X POST 'https://api.nero.com/biz/api/task' \
--header 'x-neroai-api-key: your API key' \
--header 'Content-Type: application/json' \
--data '{
"type": "FaceRestoration",
"body": {
"image": "https://image.url"
}
}'
Headers
Field | Description |
---|---|
x-neroai-api-key | your API key |
Parameters
Field | Type | Required | Description |
---|---|---|---|
type | string | true | FaceRestoration |
body.image | string | true | an image url |
body.presigned_url | string | false | a presigned URL generated for temporary upload access to private objects. |
Task result
{
"code": 0,
"data": {
"status": "done",
"result": {
"output": "https://image.url"
}
}
}
FaceAnimation:Detection
Supported Formats
Currently, the supported file formats are JPG
, JPEG
, PNG
, BMP
, WEBP
, JFIF
, JFI
, JPE
, JIF
.
Request example
curl -X POST 'https://api.nero.com/biz/api/task' \
--header 'x-neroai-api-key: your API key' \
--header 'Content-Type: application/json' \
--data '{
"type": "FaceAnimation:Detection",
"body": {
"image": "https://image.url"
}
}'
Headers
Field | Description |
---|---|
x-neroai-api-key | your API key |
Parameters
Field | Type | Required | Description |
---|---|---|---|
type | string | true | FaceAnimation:Detection |
body.image | string | true | an image url |
Task result
{
"code": 0,
"data": {
"status": "done",
"result": {
"face_positions": [
{
"left": 311.2,
"top": 144.8,
"width": 800.8,
"height": 787.4
}
]
}
}
}
FaceAnimation:Generation
Request example
curl -X POST 'https://api.nero.com/biz/api/task' \
--header 'x-neroai-api-key: your API key' \
--header 'Content-Type: application/json' \
--data '{
"type": "FaceAnimation:Generation",
"body": {
"image": "https://image.url",
"face_positions": [
{
"left": 311.2,
"top": 144.8,
"width": 800.8,
"height": 787.4
}
]
}
}'
Supported Video File
Field | Description |
---|---|
Format | MP4, MOV, WMV, AVI |
Duration | Less than 20s |
Headers
Field | Description |
---|---|
x-neroai-api-key | your API key |
Parameters
Field | Type | Required | Description |
---|---|---|---|
type | string | true | FaceAnimation:Generation |
body.image | string | true | an image url |
body.face_positions | Array<{ left, top, width, height }> | true | face positions based on "FaceAnimation:Detection" |
body.driver_video | string | false | a driver video url, the first frame of the video needs to have facial features. |
body.presigned_urls | Array<string> | false | a list of presigned URLs generated for temporary upload access to private objects. |
body.mode | number | false | generating scheme, 0: crop + full, 1: crop, 2: full, default: 1 |
Task result
{
"code": 0,
"data": {
"status": "done",
"result": {
"output": "https://image.url"
}
}
}
AvatarProfileTraining (deprecated)
This API will be deprecated after June 30, 2025. Please switch to Avatar Generator V2 API in time.
Request example
curl -X POST 'https://api.nero.com/biz/api/task' \
--header 'x-neroai-api-key: your API key' \
--header 'Content-Type: application/json' \
--data '{
"type": "AvatarProfileTraining",
"body": {
"images": [
"https://image1.url",
"https://image2.url"
],
"presets": [
{ "id": "zuxdrewf", "count": 1 },
{ "id": "fstzzsma", "count": 1 }
]
}
}'
Headers
Field | Description |
---|---|
x-neroai-api-key | your API key |
Parameters
Field | Type | Required | Description |
---|---|---|---|
type | string | true | AvatarProfileTraining |
body.images | Array<string> | true | image urls, at least 10 images |
body.presets | Array<{ id, count }> | true | you can get presets from avatar API |
body.presigned_urls | Array<string> | false | a list of presigned URLs generated for temporary upload access to private objects. |
Task result
{
"code": 0,
"data": {
"status": "done",
"result": {
"outputs": [
{ "preset_id": "zuxdrewf", "image": "https://image.url" },
{ "preset_id": "fstzzsma", "image": "https://image.url" }
]
}
}
}
AvatarGeneratorV2
Request example
curl -X POST 'https://api.nero.com/biz/api/task' \
--header 'x-neroai-api-key: your API key' \
--header 'Content-Type: application/json' \
--data '{
"type": "AvatarGeneratorV2",
"body": {
"images": [
"https://image1.url",
"https://image2.url"
],
"style_id": "foo",
"type": "female",
"count": 5
}
}'
Headers
Field | Description |
---|---|
x-neroai-api-key | your API key |
Parameters
Field | Type | Required | Description |
---|---|---|---|
type | string | true | AvatarGeneratorV2 |
body.images | Array<string> | true | image urls |
body.style_id | string | true | you can get style id from avatar API |
body.type | string | true | male or female |
body.count | number | false | the number of result images, maximum is 100, default is 1 |
body.presigned_urls | Array<string> | false | a list of presigned URLs generated for temporary upload access to private objects. |
Task result
{
"code": 0,
"data": {
"status": "done",
"result": {
"outputs": [
"https://image1.url",
"https://image2.url"
]
},
"msg": "the failed image information" // If partially successful, show the failed image information
}
}
FaceDetection
Request example
curl -X POST 'https://api.nero.com/biz/api/task' \
--header 'x-neroai-api-key: your API key' \
--header 'Content-Type: application/json' \
--data '{
"type": "FaceDetection",
"body": {
"images": [
"https://image1.url",
"https://image2.url"
]
}
}'
Headers
Field | Description |
---|---|
x-neroai-api-key | your API key |
Parameters
Field | Type | Required | Description |
---|---|---|---|
type | string | true | FaceDetection |
body.images | Array<string> | true | image urls |
Task result
{
"code": 0,
"data": {
"status": "done",
"result": {
"outputs": [
{
"filename": "foo.png",
"code": 0 // face detection passed
},
{
"filename": "bar.png",
"code": 105 // if code > 0, it means that the face detection unpassed
}
]
}
}
}
ImageDenoiser
Supported Formats
Currently, the supported file formats are JPG
, JPEG
, PNG
, BMP
, WEBP
, JFIF
, JFI
, JPE
and JIF
.
Request example
curl -X POST 'https://api.nero.com/biz/api/task' \
--header 'x-neroai-api-key: your API key' \
--header 'Content-Type: application/json' \
--data '{
"type": "ImageDenoiser",
"body": {
"image": "https://image.url"
}
}'
Headers
Field | Description |
---|---|
x-neroai-api-key | your API key |
Parameters
Field | Type | Required | Description |
---|---|---|---|
type | string | true | ImageDenoiser |
body.image | string | true | an image url |
body.presigned_url | string | false | a presigned URL generated for temporary upload access to private objects. |
Task result
{
"code": 0,
"data": {
"status": "done",
"result": {
"output": "https://image.url"
}
}
}
ImageCompressor
Supported Formats
Currently, the supported file formats are JPG
, JPEG
, PNG
, BMP
, WEBP
, GIF
, JFIF
, JFI
, JPE
, JIF
and SVG
.
Request example
curl -X POST 'https://api.nero.com/biz/api/task' \
--header 'x-neroai-api-key: your API key' \
--header 'Content-Type: application/json' \
--data '{
"type": "ImageCompressor",
"body": {
"image": "https://image.url"
}
}'
Headers
Field | Description |
---|---|
x-neroai-api-key | your API key |
Parameters
Field | Type | Required | Description |
---|---|---|---|
type | string | true | ImageCompressor |
body.image | string | true | an image url |
body.presigned_url | string | false | a presigned URL generated for temporary upload access to private objects. |
body.strategy | string | false | "high" "mid" two compression rate, default is "high", one is higher, may cause image quality loss, one is lower, the file size may be larger. |
Task result
{
"code": 0,
"data": {
"status": "done",
"result": {
"output": "https://image.url",
"ratio": 1.52, // ratio = size_in / size_out
"size_in": 139144,
"size_out": 91267
}
}
}
ImageToImage
Supported Formats
Currently, the supported file formats are JPG
, JPEG
, PNG
, BMP
, WEBP
, JFIF
, JFI
, JPE
, JIF
.
Request example
curl -X POST 'https://api.nero.com/biz/api/task' \
--header 'x-neroai-api-key: your API key' \
--header 'Content-Type: application/json' \
--data '{
"type": "ImageToImage",
"body": {
"image": "https://image.url",
"style_id": "Line_Art_img"
}
}'
Headers
Field | Description |
---|---|
x-neroai-api-key | your API key |
Parameters
Field | Type | Required | Description |
---|---|---|---|
type | string | true | ImageToImage |
body.image | string | true | an image url |
body.count | number | false | the number of result images, maximum is 100, default is 1 |
body.style_id | string | true | which style to recreate based on, get all styles via /biz/api/cartoon/styles |
body.HD | boolean | false | whether to generate HD results, default is false |
body.presigned_urls | Array<string> | false | a list of presigned URLs generated for temporary upload access to private objects. |
Task result
{
"code": 0,
"data": {
"status": "done",
"result": {
"outputs": [
"https://image1.url",
"https://image2.url"
]
}
}
}
ObjectCounter
Request example
curl -X POST 'https://api.nero.com/biz/api/task' \
--header 'x-neroai-api-key: your API key' \
--header 'Content-Type: application/json' \
--data '{
"type": "ObjectCounter",
"body": {
"image": "https://image.url",
"guide_bboxes": [[[160,41], [251,258]], [[534,190], [605,257]], [[345,467], [413,562]]]
}
}'
Headers
Field | Description |
---|---|
x-neroai-api-key | your API key |
Parameters
Field | Type | Required | Description |
---|---|---|---|
type | string | true | ObjectCounter |
body.image | string | true | an image url |
body.guide_bboxes | Array<Array<Array<number>>> | false | 3 set of coordinates of left_top(lt) and right_bottom(rb) points, order: [[[lt_x1, lt_y1], [rb_x1, rb_y1]], [[lt_x2, lt_y2], [rb_x2, rb_y3]], [[lt_x3, lt_y3], [rb_x3, rb_y3]]] |
body.threshold | number | false | confidence threshold, effective interval [0, 255], default value: 50 |
Task result
{
"code": 0,
"data": {
"status": "done",
"result": {
"output": "https://image1.url",
"obj_num": 5,
"center_coords": [[x1, y1], [x2, y2], ...[x5, y5]] // coordinates per object
}
}
}
ImageSharpener
Request example
curl -X POST 'https://api.nero.com/biz/api/task' \
--header 'x-neroai-api-key: your API key' \
--header 'Content-Type: application/json' \
--data '{
"type": "ImageSharpener",
"body": {
"image": "https://image.url",
"model": "sharp",
"face_enhance": true
}
}'
Headers
Field | Description |
---|---|
x-neroai-api-key | your API key |
Parameters
Field | Type | Required | Description |
---|---|---|---|
type | string | true | ImageSharpener |
body.image | string | true | an image url |
body.model | string | false | 'sharp', 'balanced', 'gentle', 'anime', default is sharp sharp: High-strength enhancement that maximizes detail visibility. Produces sharper results than the balanced model. balanced: Medium-strength enhancement ideal for everyday photos, improving both clarity and detail. gentle: Subtle enhancement that stays true to the original image, delivering softer results than the balanced model. anime: Optimized for AI artwork, illustrations, paintings, anime, and cartoons. |
body.face_enhance | boolean | false | default is false |
Task result
{
"code": 0,
"data": {
"status": "done",
"result": {
"output": "https://image.url"
}
}
}
BackgroundRemover
Supported Formats
Currently, the supported file formats are JPG
, JPEG
, PNG
, BMP
, WEBP
, JFIF
, JFI
, JPE
, JIF
.
Request example
curl -X POST 'https://api.nero.com/biz/api/task' \
--header 'x-neroai-api-key: your API key' \
--header 'Content-Type: application/json' \
--data '{
"type": "BackgroundRemover",
"body": {
"image": "https://image.url"
"action": "auto"
}
}'
Headers
Field | Description |
---|---|
x-neroai-api-key | your API key |
Parameters
Field | Type | Required | Description |
---|---|---|---|
type | string | true | BackgroundRemover |
body.image | string | true | an image url |
body.action | string | true | auto |
body.presigned_url | string | false | a presigned URL generated for temporary upload access to private objects. |
Task result
{
"code": 0,
"data": {
"status": "done",
"result": {
"output": "https://image.url"
}
}
}
BackgroundChanger
Supported Formats
Currently, the supported file formats are JPG
, JPEG
, PNG
, BMP
, WEBP
, JFIF
, JFI
, JPE
, JIF
.
Request example
curl -X POST 'https://api.nero.com/biz/api/task' \
--header 'x-neroai-api-key: your API key' \
--header 'Content-Type: application/json' \
--data '{
"type": "BackgroundChanger",
"body": {
"image": "https://image.url"
"background": "https://new.background.url"
}
}'
Headers
Field | Description |
---|---|
x-neroai-api-key | your API key |
Parameters
Field | Type | Required | Description |
---|---|---|---|
type | string | true | BackgroundChanger |
body.image | string | true | an image url |
body.background | string | true | remove the original background and replace with the new one |
Task result
{
"code": 0,
"data": {
"status": "done",
"result": {
"output": "https://image.url"
}
}
}
BackgroundGenerator
Request example
curl -X POST 'https://api.nero.com/biz/api/task' \
--header 'x-neroai-api-key: your API key' \
--header 'Content-Type: application/json' \
--data '{
"type": "BackgroundGenerator",
"body": {
"image": "https://image.url",
"prompts": "",
"count": 2
}
}'
Headers
Field | Description |
---|---|
x-neroai-api-key | your API key |
Parameters
Field | Type | Required | Description |
---|---|---|---|
type | string | true | BackgroundGenerator |
body.image | string | true | an image url |
body.count | number | false | the number of result images, maximum is 4, default is 1 |
body.prompts | string | true | write the description of the background you want to generate, maximum is 200 characters, here we provide a lot of prompts for reference |
Task result
{
"code": 0,
"data": {
"status": "done",
"result": {
"outputs": [
"https://image1.url",
"https://image2.url"
]
}
}
}
Avatar
Groups (deprecated)
Query avatar groups
GET
https://api.nero.com/biz/api/avatar/groups
Response success example
{
"code": 0,
"data": {
"groups": [
{
"group_id": "general_12",
"title": "Portraits",
"description": "Create different looks for your portrait photos.",
"image": "https://image.url",
"good_sample_images": [
"https://good_sample_image1.url",
"https://good_sample_image2.url"
],
"bad_sample_images": [
"https://bad_sample_image1.url",
"https://bad_sample_image2.url"
]
}
]
}
}
Presets (deprecated)
Query avatar presets
GET
https://api.nero.com/biz/api/avatar/presets?group_id=
Response success example
{
"code": 0,
"data": {
"presets": [
{
"id": "8k3823bd",
"name": "luxury fashion",
"type": "Female"
},
{
"id": "fs3j8e06",
"name": "luxury fashion",
"type": "Female"
}
]
}
}
Styles
Query avatar styles
GET
https://api.nero.com/biz/api/avatar/styles
Response success example
{
"code": 0,
"data": {
"styles": [
{
"style_id": "professional",
"title": "Job",
"description": "Get a professional look with formal headshots.",
"presets": {
"female": 45,
"male": 56
},
"images": [
"https://sample.image1.url",
"https://sample.image2.url"
]
}
]
}
}
Cartoon
Styles
Query cartoon styles
GET
https://api.nero.com/biz/api/cartoon/styles
Response success example
{
"code": 0,
"data": {
"styles": [
{
"id": "Cartoon_img",
"name": "Cartoon",
"image": "https://example.image"
},
{
"id": "Video_Game_img",
"name": "PS2 Game",
"image": "https://example.image"
}
]
}
}
API key
Info
Query your API key info
GET
https://api.nero.com/biz/api/apikey?key=
Response success example
{
"code": 0,
"data": {
"status": "valid",
"expired_at": "2099-01-01 00:00:00",
"remaining_credits": 100
}
}
Replace
Replace your API key
PUT
https://api.nero.com/biz/api/apikey/replace
Request example
curl -X PUT 'https://api.nero.com/biz/api/apikey/replace' \
--header 'Content-Type: application/json' \
--data '{
"key": "your API key"
}'
Parameters
Field | Type | Required | Description |
---|---|---|---|
key | string | true | your API key |
Response success example
{
"code": 0,
"data": {
"key: "new API key"
}
}
Local files
Stability: Experimental
You can upload local files when creating a task now. The following are codes for creating tasks using local files
or file links
. Please note their differences.
Maximum size of each local file is 50MB.
Tips:
- Local files, http request header should be:
Content-Type: multipart/form-data; boundary=xxxx
- File links,
Content-Type: application/json
If an error occurs, make sure the "Content-Type" is correct.
// 1. local files
const axios = require('axios')
const FormData = require('form-data')
const fs = require('fs')
const data = new FormData()
const payload = {
type: 'ImageUpscaler:Standard',
body: {
// ignore "image", replace with local file
// image: 'https://image.url',
upscaling_rate: 2,
// ...
},
}
data.append('payload', JSON.stringify(payload))
data.append('file', fs.createReadStream('/local/file/path'))
axios({
method: 'POST',
url: 'https://api.nero.com/biz/api/task',
headers: {
'x-neroai-api-key': 'your API key',
...data.getHeaders(),
},
data,
}).then(response => {
console.log(response)
}).catch(error => {
console.log(error)
})
// 2. file links
const axios = require('axios')
const data = {
type: 'ImageUpscaler:Standard',
body: {
// using file link
image: 'https://image.url',
upscaling_rate: 2,
// ...
},
}
axios({
method: 'POST',
url: 'https://api.nero.com/biz/api/task',
headers: {
'x-neroai-api-key': 'your API key',
},
data,
}).then(response => {
console.log(response)
}).catch(error => {
console.log(error)
})
Error
We will return a standard http response. For business errors, we return error information in the response body with http status code 200
, and we return error with http status code 5xx
only when an unpredictable exception occurs on the server.
The Nero AI API uses the following error codes.
Code | Meaning |
---|---|
11002 | The API key is invalid |
11003 | The API key is expired |
11004 | The remaining credits of API key are insufficient |
Response error example
{
"code": 11002,
"msg": "The API key is invalid, xxxxxx"
}
Prompts
Product
- Name: Marble
Prompt: luxury white marble table with soft gray veining, soft natural light from the left, blurred white wall in background, minimal lifestyle interior, high realism, shallow depth of field - Name: Wood
Prompt: wooden table surface with warm sunlight casting soft shadows, minimalistic neutral gray wall in background, cozy indoor lighting, natural texture, depth of field - Name: Leaf
Prompt: black tabletop with soft reflections, (monstera leaf) behind the product, soft marble wall, soft natural light, minimalist realistic indoor scene, shallow depth of field - Name: Silk
Prompt: a product placed on soft silver satin fabric with natural folds, background also draped with matching silver fabric, soft natural lighting, minimal and high-end scene, clean and realistic - Name: Beach
Prompt: a product placed on soft sand at the beach, with gentle ocean waves and clear sky in the background, soft natural sunlight, minimalist and realistic lifestyle scene, no clutter, high-end aesthetic - Name: Floral Nest
Prompt: a product placed on a light rattan or wooden table in a cozy home setting, with white flowers and soft natural light, blurred pillows and furniture in the background, clean and minimal, high realism - Name: Houseplants
Prompt: On a white marble pedestal stand. The background is a minimalist studio setting with foliage plants. Overhead shot, soft, natural lighting, studio product photography. - Name: Crisp
Prompt: Clear blue water with natural ripples, soft reflections and bright lighting. - Name: Rosemist
Prompt: On a wooden surface, surrounded by fresh dewdrop-covered roses and eucalyptus leaves, soft light and blurred green garden background. - Name: Premium
Prompt: Displayed on a sleek presentation surface with subtle gold accents, set against a minimalist background with soft, diffused lighting to create a luxurious, high-end atmosphere. - Name: Blackcloth
Prompt: On soft black satin fabric with natural folds, background also draped with matching black satin fabric, soft natural lighting, minimal and high-end scene, clean and realistic. - Name: Concrete
Prompt: On a smooth, dark grey concrete surface, soft shadows, clean lighting, seamless grey background, studio shot. - Name: Walnut
Prompt: On a dark wood table with rich grain, soft warm lighting, and dark wood background. Clean and moody. - Name: Bokeh
Prompt: On a glossy surface. Soft golden lights and blurred bokeh backdrop. - Name: Tropical
Prompt: On wet stone with tropical flowers like hibiscus and plumeria around it, sunlit water droplets and palm leaf shadows in the background. - Name: Green Velvet
Prompt: On a table with dark green velvet cover, matching a velvet curtain backdrop, under soft dramatic lighting. - Name: Vintage
Prompt: On an antique wooden table, surrounded by stacked books and delicate vintage objects, soft golden hour light filters through lace curtains, evoking a refined and nostalgic aesthetic. - Name: Mirror
Prompt: On a mirrored stand with soft reflections, set against a minimal gradient backdrop and ambient lighting. The scene blends naturally with the product, highlighting its modern elegance. - Name: Clean
Prompt: Minimalist white studio background with soft shadows, subtle gradient lighting, and a smooth reflective surface to highlight product contours. Clean, distraction-free, seamless professional look. - Name: Gold Fabric
Prompt: On soft beige satin fabric with natural folds, background also draped with matching light beige satin fabric, soft natural lighting, minimal and high-end scene, clean and realistic. - Name: Bagstage
Prompt: Luxury boutique counter with marble, dark wood, and warm lighting. Minimal, elegant setting to highlight premium handbags with style and sophistication.
Portrait
- Name: Brick
Prompt: in front of a white brick wall with soft natural lighting - Name: Sea
Prompt: portrait on a beach with wide blue sea and clear blue sky, daylight - Name: Bistro
Prompt: in a softly lit bistro with string lights and a cozy atmosphere - Name: Japanese Room
Prompt: inside a traditional Japanese tea room with wooden panels, tatami mats, and natural window light - Name: Balcony
Prompt: standing on a small Parisian balcony with wrought iron railing, Haussmann buildings and skyline in the background, golden hour lighting - Name: Plant
Prompt: next to a large window with indoor plants and soft daylight