| const axios = require('axios'); | |
| async function removebg(img_url) { | |
| const uploadResponse = await axios.get('https://aibackgroundremover.org/api/get-upload-url'); | |
| const { uploadUrl, publicUrl } = uploadResponse.data; | |
| const imageResponse = await axios.get(img_url, { responseType: 'arraybuffer' }); | |
| await axios.put(uploadUrl, imageResponse.data, { | |
| headers: { | |
| 'Content-Type': 'image/png', | |
| 'Referer': 'https://aibackgroundremover.org/?utm_source=chatgpt.com' | |
| } | |
| }); | |
| const removeBgResponse = await axios.post('https://aibackgroundremover.org/api/remove-bg', { | |
| image: publicUrl | |
| }, { | |
| headers: { | |
| 'Content-Type': 'application/json', | |
| 'Referer': 'https://aibackgroundremover.org/?utm_source=chatgpt.com' | |
| } | |
| }); | |
| const { id } = removeBgResponse.data; | |
| while (true) { | |
| const statusResponse = await axios.get(`https://aibackgroundremover.org/api/check-status?id=${id}`, { | |
| headers: { | |
| 'Referer': 'https://aibackgroundremover.org/?utm_source=chatgpt.com' | |
| } | |
| }); | |
| const { status, output, error } = statusResponse.data; | |
| if (status === 'succeeded') { | |
| return output; | |
| } else if (status === 'failed') { | |
| throw new Error(error || 'Background removal failed'); | |
| } | |
| await new Promise(resolve => setTimeout(resolve, 2000)); | |
| } | |
| } | |
| const handler = async (req, res) => { | |
| try { | |
| const { url } = req.query; | |
| if (!url) { | |
| return res.status(400).json({ | |
| success: false, | |
| error: 'Missing required parameter: url' | |
| }); | |
| } | |
| const result = await removebg(url); | |
| res.json({ | |
| success: true, | |
| data: { | |
| original_url: url, | |
| output_url: result | |
| } | |
| }); | |
| } catch (error) { | |
| res.status(500).json({ | |
| success: false, | |
| error: error.message | |
| }); | |
| } | |
| }; | |
| module.exports = { | |
| name: 'Background Remover', | |
| description: 'Remove background from images using AI', | |
| type: 'GET', | |
| routes: ['api/tools/removebg'], | |
| tags: ['image', 'ai', 'background'], | |
| parameters: ['url', 'key'], | |
| enabled: true, | |
| main: ['tools'], | |
| handler | |
| }; |