Add initial implementation of comfyui_api_sdk with API models and examples

This commit is contained in:
2025-03-20 13:51:02 +01:00
commit 1f9409ce0e
28 changed files with 16525 additions and 0 deletions

View File

@@ -0,0 +1,87 @@
/// Models that represent ComfyUI API responses
/// Represents queue information from ComfyUI
class QueueInfo {
final int queueRunning;
final List<Map<String, dynamic>> queue;
final Map<String, dynamic> queuePending;
QueueInfo({
required this.queueRunning,
required this.queue,
required this.queuePending,
});
factory QueueInfo.fromJson(Map<String, dynamic> json) {
return QueueInfo(
queueRunning: json['queue_running'] as int,
queue: List<Map<String, dynamic>>.from(json['queue'] ?? []),
queuePending: Map<String, dynamic>.from(json['queue_pending'] ?? {}),
);
}
}
/// Represents a prompt execution status
class PromptExecutionStatus {
final String? promptId;
final int? number;
final String? status;
final dynamic error;
PromptExecutionStatus({
this.promptId,
this.number,
this.status,
this.error,
});
factory PromptExecutionStatus.fromJson(Map<String, dynamic> json) {
return PromptExecutionStatus(
promptId: json['prompt_id'] as String?,
number: json['number'] as int?,
status: json['status'] as String?,
error: json['error'],
);
}
}
/// Represents history data
class HistoryItem {
final String promptId;
final Map<String, dynamic> prompt;
final Map<String, dynamic>? outputs;
HistoryItem({
required this.promptId,
required this.prompt,
this.outputs,
});
factory HistoryItem.fromJson(Map<String, dynamic> json) {
return HistoryItem(
promptId: json['prompt_id'] as String,
prompt: Map<String, dynamic>.from(json['prompt'] ?? {}),
outputs: json['outputs'] != null
? Map<String, dynamic>.from(json['outputs'])
: null,
);
}
}
/// Represents a progress update received via WebSocket
class ProgressUpdate {
final String type;
final Map<String, dynamic> data;
ProgressUpdate({
required this.type,
required this.data,
});
factory ProgressUpdate.fromJson(Map<String, dynamic> json) {
return ProgressUpdate(
type: json['type'] as String,
data: Map<String, dynamic>.from(json['data'] ?? {}),
);
}
}