Youzu Magic Background
The Youzu Magic Background Component enhances product images by adding appropriate backgrounds or removing them entirely.
API
The Magic Background API allows you to generate backgrounds for product images. You can either replace the background with another image or remove it entirely.
Authentication
Use the Authorization: Bearer YOUR_TOKEN header with a single-use token obtained from /api/v1/token. Generate a magic-background:create token for creation and a new magic-background:read token for every status request.
Generate Magic Background
Endpoint: POST /api/v1/magic-background
Generate a magic background for a product image. You can provide either a file upload or a URL for both the product and optional background images.
curl -X POST "https://platform.youzu.ai/api/v1/magic-background" \
-H "Authorization: Bearer YOUR_TOKEN" \
-F "productImage=@product.jpg" \
-F "backgroundImage=@background.jpg"
// Generate magic background using token
const formData = new FormData();
formData.append('productImage', document.getElementById('product').files[0]);
formData.append('backgroundImage', document.getElementById('background').files[0]);
fetch('https://platform.youzu.ai/api/v1/magic-background', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_TOKEN'
},
body: formData
})
.then(response => response.json())
.then(data => {
console.log('Background generation started:', data);
// Poll for completion using data.id
})
.catch(error => {
console.error('Error:', error);
});
import requests
# Generate magic background using token
url = 'https://platform.youzu.ai/api/v1/magic-background'
headers = {
'Authorization': 'Bearer YOUR_TOKEN'
}
files = [
('productImage', open('product.jpg', 'rb')),
('backgroundImage', open('background.jpg', 'rb'))
]
response = requests.post(url, headers=headers, files=files)
if response.status_code == 200:
job = response.json()
print('Background generation started:', job)
# Poll for completion using job['id']
else:
print('Error:', response.status_code, response.text)
Get Job Status
Endpoint: GET /api/v1/magic-background/{id}
Check the status of a magic background generation job.
curl -X GET "https://platform.youzu.ai/api/v1/magic-background/YOUR_JOB_ID" \
-H "Authorization: Bearer YOUR_TOKEN"
// Check job status using token
fetch('https://platform.youzu.ai/api/v1/magic-background/YOUR_JOB_ID', {
method: 'GET',
headers: {
'Authorization': 'Bearer YOUR_TOKEN'
}
})
.then(response => response.json())
.then(data => {
console.log('Job status:', data.status);
if (data.status === 'COMPLETED') {
console.log('Generated image URL:', data.outputUrls[0]);
}
})
.catch(error => {
console.error('Error:', error);
});
import requests
# Check job status using token
url = 'https://platform.youzu.ai/api/v1/magic-background/YOUR_JOB_ID'
headers = {
'Authorization': 'Bearer YOUR_TOKEN'
}
response = requests.get(url, headers=headers)
if response.status_code == 200:
job = response.json()
print('Job status:', job['status'])
if job['status'] == 'COMPLETED':
print('Generated image URL:', job['outputUrls'][0])
else:
print('Error:', response.status_code, response.text)
SDK
Props
| Property | Attribute | Description | Type | Default |
|---|---|---|---|---|
alt |
alt |
The alt text for the image | string | '' |
apiEndpoint |
api-endpoint |
The API endpoint for background processing | string | '/api/background' |
height |
height |
The height of the image | string | undefined |
hideLoading |
hide-loading |
Whether to disable the loading indicator | boolean | false |
mode |
mode |
The mode to control background application behavior - auto: Ask server if background is needed, add if necessary - always: Always add a background - manual: No automatic requests, use applyBackground() method | "always" | "auto" | "manual" |
'auto' |
showLoader |
show-loader |
Manually control the loading state (for demo purposes) | boolean | false |
src |
src |
The source URL of the image | string | undefined |
stylePreset |
style-preset |
The style preset to use for the background Default is 'modern' | string | 'modern' |
width |
width |
The width of the image | string | undefined |
Events
| Event | Description | Type |
|---|---|---|
backgroundChange |
Event emitted when a background is applied or removed | CustomEvent<BackgroundChangeEventData> |
Methods
| Method | Parameters | Return Type | Description |
|---|---|---|---|
applyBackground |
options?: BackgroundOptions |
Promise<string> |
Public method to manually apply a background Can be called in manual mode |