mixvideo-v2/cargos/uni-comfyui-sdk/examples/basic_usage.rs

57 lines
1.8 KiB
Rust

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(())
}