comfyui_api_sdk/example/example.dart

95 lines
2.3 KiB
Dart

import 'dart:io';
import 'package:comfyui_api_sdk/comfyui_api_sdk.dart';
void main() async {
// Create the API client
final api = ComfyUiApi(host: 'http://mennos-server:7860');
// Connect to the WebSocket for progress updates
await api.connectWebSocket();
// Listen for progress updates
api.progressUpdates.listen((update) {
print('Progress update: $update');
});
// Get available checkpoints
final checkpoints = await api.getCheckpoints();
print('Available checkpoints: ${checkpoints.keys.join(', ')}');
// Get queue status
final queue = await api.getQueue();
print('Queue status: $queue');
// Submit a basic text-to-image prompt
final promptWorkflow = {
"prompt": {
"3": {
"inputs": {
"seed": 123456789,
"steps": 20,
"cfg": 7,
"sampler_name": "euler_ancestral",
"scheduler": "normal",
"denoise": 1,
"model": ["4", 0],
"positive": ["6", 0],
"negative": ["7", 0],
"latent_image": ["5", 0]
},
"class_type": "KSampler"
},
"4": {
"inputs": {"ckpt_name": "dreamshaper_8.safetensors"},
"class_type": "CheckpointLoaderSimple"
},
"5": {
"inputs": {"width": 512, "height": 512, "batch_size": 1},
"class_type": "EmptyLatentImage"
},
"6": {
"inputs": {
"text": "a beautiful landscape with mountains and a lake",
"clip": ["4", 1]
},
"class_type": "CLIPTextEncode"
},
"7": {
"inputs": {
"text": "ugly, blurry, low quality",
"clip": ["4", 1]
},
"class_type": "CLIPTextEncode"
},
"8": {
"inputs": {
"samples": ["3", 0],
"vae": ["4", 2]
},
"class_type": "VAEDecode"
},
"9": {
"inputs": {
"filename_prefix": "ComfyUI",
"images": ["8", 0]
},
"class_type": "SaveImage"
}
},
"client_id": api.clientId
};
try {
final result = await api.submitPrompt(promptWorkflow);
print('Prompt submitted: $result');
} catch (e) {
print('Error submitting prompt: $e');
}
// Wait for some time to receive WebSocket messages
await Future.delayed(Duration(seconds: 60));
// Clean up
api.dispose();
}