unblur
sesuai nama ygy
19 Juni 2026772 file
unblur.jsjavascript · 62 baris
import axios from 'axios'import FormData from 'form-data'import fs from 'fs'import path from 'path'const API = 'https://api.unwatermark.ai/api/web/unblurimage/v1/image-unblur-v2'const baseHeaders = { 'product-code': '067003', 'product-serial': 'q637zn', 'Referer': 'https://unblurimage.ai/', 'accept-language': 'id-ID,id;q=0.9,en-US;q=0.8,en;q=0.7', 'cache-control': 'no-cache', 'pragma': 'no-cache',}async function createJob(filePath) { const form = new FormData() form.append('original_image_file', fs.createReadStream(filePath), path.basename(filePath)) const { data } = await axios.post(`${API}/create-job`, form, { headers: { ...baseHeaders, ...form.getHeaders() }, }) if (!data.result?.job_id) throw new Error(data.message?.en ?? 'create-job failed') return data.result.job_id}async function pollJob(jobId, interval = 3000, maxAttempts = 30) { for (let i = 0; i < maxAttempts; i++) { const { data } = await axios.get(`${API}/get-job/${jobId}`, { headers: { ...baseHeaders, 'content-type': 'application/json; charset=UTF-8' }, }) if (data.result.status === 1) return data.result if (data.result.status === 2) throw new Error(data.message?.en ?? 'job failed') await new Promise(r => setTimeout(r, interval)) } throw new Error('polling timeout')}async function unblur(filePath) { const jobId = await createJob(filePath) const result = await pollJob(jobId) return { job_id: result.job_id, input_url: result.input_url, output_url: result.output_url, credits_cost: result.credits_cost, remaining_free_times: result.remaining_free_times, }}export { unblur }const [, , filePath] = process.argvif (filePath) { unblur(filePath) .then(r => console.log(JSON.stringify(r, null, 2))) .catch(e => { console.error(JSON.stringify({ error: e.message }, null, 2)) process.exit(1) })}README.mdmarkdown · 16 baris
Cara pakai
install
npm install axios form-data
CLI
node unblur.js input.jpg
sebagai module
import { unblur } from './unblur.js'
const result = await unblur('foto.jpg')
Komentar
Masuk untuk ikut berkomentar.
Belum ada komentar.