import * as fs from 'fs'; import * as path from 'path'; import { convertImageVton } from '../lib/image-converter'; import * as dotenv from 'dotenv'; dotenv.config(); const clothesDir = 'C:\\Users\\ken\\Desktop\\VTON\\clothes'; const modelPath = 'C:\\Users\\ken\\Desktop\\VTON\\models\\Jessica_body.png'; const posesDir = 'C:\\Users\\ken\\Desktop\\VTON\\poses'; const outputDir = 'generated'; const comfyBaseUrl = process.env.SERVER1_COMFY_BASE_URL; const comfyOutputDir = process.env.SERVER1_COMFY_OUTPUT_DIR; async function generateVtonImages() { if (!comfyBaseUrl || !comfyOutputDir) { throw new Error("ComfyUI URL or Output Directory is not set in environment variables."); } const clothesFiles = fs.readdirSync(clothesDir).filter(file => /\.(jpg|png|jpeg)$/i.test(file)); const poseFiles = fs.readdirSync(posesDir).filter(file => /\.(jpg|png|jpeg)$/i.test(file)); if (!fs.existsSync(outputDir)) { fs.mkdirSync(outputDir); } for (let i = 0; i < clothesFiles.length; i++) { const clothFile = clothesFiles[i]; const clothPath = path.join(clothesDir, clothFile); const randomPoseFile = poseFiles[Math.floor(Math.random() * poseFiles.length)]; const posePath = path.join(posesDir, randomPoseFile); console.log(`Processing cloth: ${clothFile} with pose: ${randomPoseFile}`); const files = [modelPath, clothPath, posePath]; const prompt = "change clothes of image1 with image2"; const outputFilename = `model_${i}.png`; const generatedImagePath = await convertImageVton(files, outputFilename, comfyBaseUrl, comfyOutputDir, { width: 720, height: 1280 }); if (generatedImagePath) { console.log(`Generated image saved to ${generatedImagePath}`); } else { console.error(`Failed to generate image for ${clothFile}`); } } } generateVtonImages().catch(console.error);