// Test upscaling functionality
import { connectToComfyUI, queuePrompt, getHistory, disconnect } from '../src/comfyui-client.js';
import { getUpscalingWorkflow } from '../src/workflows/upscaling.js';
async function testUpscaling() {
console.log('Testing upscaling with available models...\n');
try {
// Connect to ComfyUI
await connectToComfyUI('comfyui', 8188);
console.log('✅ Connected to ComfyUI\n');
// Test with 4x-UltraSharp
console.log('Testing 4x-UltraSharp model on flux_output_00001_.png...');
const workflow = getUpscalingWorkflow('flux_output_00001_.png', '4x-UltraSharp.safetensors', 1.0);
const promptId = await queuePrompt(workflow);
console.log(`Queued prompt: ${promptId}`);
// Wait for completion
let completed = false;
let attempts = 0;
const maxAttempts = 30;
while (!completed && attempts < maxAttempts) {
await new Promise(resolve => setTimeout(resolve, 1000));
const history = await getHistory(promptId);
if (history && history[promptId]) {
const outputs = history[promptId].outputs;
if (outputs && outputs['5'] && outputs['5'].images && outputs['5'].images.length > 0) {
const imageName = outputs['5'].images[0].filename;
console.log(`✅ Upscaled image saved: ${imageName}\n`);
completed = true;
}
}
attempts++;
if (attempts % 5 === 0) {
console.log(` Waiting... (${attempts}s)`);
}
}
if (!completed) {
console.log('⚠️ Timeout waiting for upscaling\n');
}
console.log('✅ Test completed!');
} catch (error) {
console.error('❌ Error during testing:', error);
} finally {
disconnect();
}
}
// Run the test
testUpscaling().catch(console.error);