#!/usr/bin/env node // Prints the background-removal request for one product photo. It does not call any API. // Usage: node scripts/build-cutout-input.mjs --image https://example.com/product.jpg import { readFileSync } from 'node:fs' import { dirname, join } from 'node:path' import { fileURLToPath } from 'node:url' const root = join(dirname(fileURLToPath(import.meta.url)), '..') const args = process.argv.slice(2) if (args.length !== 2 || args[0] !== '--image' || args[1].startsWith('--')) { console.error('Usage: node scripts/build-cutout-input.mjs --image https://... (a public https URL of the product photo)') process.exit(1) } const image = args[1] if (!image || !/^https:\/\//.test(image)) { console.error('Usage: node scripts/build-cutout-input.mjs --image https://... (a public https URL of the product photo)') process.exit(1) } const settings = JSON.parse(readFileSync(join(root, 'assets/generation-input.json'), 'utf8')) console.log(JSON.stringify({ model: settings.model, input: { ...settings.input, image_url: image } }, null, 2))