use std::collections::HashMap; use uni_comfyui_sdk::{UniComfyUIClient, Result, ServerRegistrationRequest}; #[tokio::main] async fn main() -> Result<()> { // Create a new client let client = UniComfyUIClient::new("http://192.168.0.148:18000")?; // Get system metrics println!("Getting system metrics..."); let metrics = client.get_metrics().await?; println!("Metrics: {:#?}", metrics); // Get all workflows println!("\nGetting all workflows..."); let workflows = client.get_all_workflows().await?; println!("Found {} workflows", workflows.len()); // Get servers status println!("\nGetting servers status..."); let servers = client.get_servers_status().await?; println!("Found {} servers", servers.len()); // Health check println!("\nPerforming health check..."); let health = client.health_check().await?; println!("Health status: {:#?}", health); // Example: Register a new server println!("\nRegistering a new server..."); let registration_request = ServerRegistrationRequest { name: "test-server".to_string(), http_url: "http://192.168.0.148:8188".to_string(), ws_url: "ws://192.168.0.148:8188".to_string(), }; match client.register_server(registration_request).await { Ok(response) => println!("Server registered: {:#?}", response), Err(e) => println!("Failed to register server: {}", e), } // Example: Run a workflow println!("\nRunning a workflow..."); let mut workflow_data = HashMap::new(); workflow_data.insert("input".to_string(), serde_json::json!("test input")); match client .run_workflow("test_workflow", None, workflow_data) .await { Ok(response) => println!("Workflow started: {:#?}", response), Err(e) => println!("Failed to start workflow: {}", e), } Ok(()) }