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...');
const workflow = getUpscalingWorkflow('flux_output_00001_.png', '4x-UltraSharp.safetensors', 1.0);
const promptId = await queuePrompt(workflow);
console.log(`Prompt ID: ${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}`);
completed = true;
}
}
attempts++;
}
if (!completed) {
console.log('⚠️ Timeout waiting for upscaling');
}
// Test with 4x-AnimeSharp
console.log('\nTesting 4x-AnimeSharp model...');
const workflow2 = getUpscalingWorkflow('bg_removed_00001_.png', '4x-AnimeSharp.safetensors', 1.0);
const promptId2 = await queuePrompt(workflow2);
console.log(`Prompt ID: ${promptId2}`);
// Wait for completion
completed = false;
attempts = 0;
while (!completed && attempts < maxAttempts) {
await new Promise(resolve => setTimeout(resolve, 1000));
const history = await getHistory(promptId2);
if (history && history[promptId2]) {
const outputs = history[promptId2].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}`);
completed = true;
}
}
attempts++;
}
if (!completed) {
console.log('⚠️ Timeout waiting for upscaling');
}
console.log('\n✅ Upscaling tests completed!');
} catch (error) {
console.error('❌ Error during testing:', error);
} finally {
disconnect();
}
}
// Run the test
testUpscaling().catch(console.error);