comfygit-studio 0.5.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,1379 @@
1
+ {
2
+ "components": {
3
+ "parameters": {
4
+ "activeRuns": {
5
+ "in": "query",
6
+ "name": "active",
7
+ "schema": {
8
+ "type": "boolean"
9
+ }
10
+ },
11
+ "checkProxy": {
12
+ "in": "query",
13
+ "name": "check_proxy",
14
+ "schema": {
15
+ "type": "boolean"
16
+ }
17
+ },
18
+ "contract": {
19
+ "in": "path",
20
+ "name": "contract",
21
+ "required": true,
22
+ "schema": {
23
+ "type": "string"
24
+ }
25
+ },
26
+ "filename": {
27
+ "in": "query",
28
+ "name": "filename",
29
+ "schema": {
30
+ "type": "string"
31
+ }
32
+ },
33
+ "galleryCursor": {
34
+ "in": "query",
35
+ "name": "cursor",
36
+ "schema": {
37
+ "type": "string"
38
+ }
39
+ },
40
+ "galleryLimit": {
41
+ "in": "query",
42
+ "name": "limit",
43
+ "schema": {
44
+ "maximum": 200,
45
+ "minimum": 1,
46
+ "type": "integer"
47
+ }
48
+ },
49
+ "itemId": {
50
+ "in": "path",
51
+ "name": "item_id",
52
+ "required": true,
53
+ "schema": {
54
+ "type": "string"
55
+ }
56
+ },
57
+ "outputType": {
58
+ "in": "query",
59
+ "name": "type",
60
+ "schema": {
61
+ "type": "string"
62
+ }
63
+ },
64
+ "runId": {
65
+ "in": "path",
66
+ "name": "run_id",
67
+ "required": true,
68
+ "schema": {
69
+ "type": "string"
70
+ }
71
+ },
72
+ "serveArtifact": {
73
+ "in": "query",
74
+ "name": "serve_artifact",
75
+ "schema": {
76
+ "type": "string"
77
+ }
78
+ },
79
+ "subfolder": {
80
+ "in": "query",
81
+ "name": "subfolder",
82
+ "schema": {
83
+ "type": "string"
84
+ }
85
+ },
86
+ "uploadId": {
87
+ "in": "path",
88
+ "name": "upload_id",
89
+ "required": true,
90
+ "schema": {
91
+ "type": "string"
92
+ }
93
+ },
94
+ "uploadToken": {
95
+ "in": "query",
96
+ "name": "token",
97
+ "required": true,
98
+ "schema": {
99
+ "type": "string"
100
+ }
101
+ },
102
+ "workflow": {
103
+ "in": "path",
104
+ "name": "workflow",
105
+ "required": true,
106
+ "schema": {
107
+ "type": "string"
108
+ }
109
+ }
110
+ },
111
+ "schemas": {
112
+ "CancelRunResponse": {
113
+ "additionalProperties": true,
114
+ "properties": {
115
+ "error": {
116
+ "type": "string"
117
+ },
118
+ "gallery_items": {
119
+ "items": {
120
+ "$ref": "#/components/schemas/GalleryItem"
121
+ },
122
+ "type": "array"
123
+ },
124
+ "message": {
125
+ "type": "string"
126
+ },
127
+ "output_slots": {
128
+ "items": {
129
+ "$ref": "#/components/schemas/RunOutputSlot"
130
+ },
131
+ "type": "array"
132
+ },
133
+ "run": {
134
+ "oneOf": [
135
+ {
136
+ "$ref": "#/components/schemas/RunResponse"
137
+ },
138
+ {
139
+ "type": "null"
140
+ }
141
+ ]
142
+ },
143
+ "run_id": {
144
+ "type": "string"
145
+ },
146
+ "status": {
147
+ "const": "cancelled",
148
+ "type": "string"
149
+ }
150
+ },
151
+ "required": [
152
+ "status",
153
+ "run_id"
154
+ ],
155
+ "type": "object"
156
+ },
157
+ "ContractInput": {
158
+ "additionalProperties": true,
159
+ "properties": {
160
+ "default": {},
161
+ "description": {
162
+ "type": "string"
163
+ },
164
+ "display_name": {
165
+ "type": "string"
166
+ },
167
+ "enum_values": {
168
+ "items": {
169
+ "type": "string"
170
+ },
171
+ "type": "array"
172
+ },
173
+ "max": {
174
+ "type": "number"
175
+ },
176
+ "min": {
177
+ "type": "number"
178
+ },
179
+ "name": {
180
+ "type": "string"
181
+ },
182
+ "required": {
183
+ "type": "boolean"
184
+ },
185
+ "step": {
186
+ "type": "number"
187
+ },
188
+ "type": {
189
+ "type": "string"
190
+ },
191
+ "ui_control": {
192
+ "enum": [
193
+ "input",
194
+ "textarea"
195
+ ],
196
+ "type": "string"
197
+ }
198
+ },
199
+ "required": [
200
+ "name",
201
+ "type"
202
+ ],
203
+ "type": "object"
204
+ },
205
+ "ContractOutput": {
206
+ "additionalProperties": true,
207
+ "properties": {
208
+ "description": {
209
+ "type": "string"
210
+ },
211
+ "display_name": {
212
+ "type": "string"
213
+ },
214
+ "name": {
215
+ "type": "string"
216
+ },
217
+ "type": {
218
+ "type": "string"
219
+ }
220
+ },
221
+ "required": [
222
+ "name",
223
+ "type"
224
+ ],
225
+ "type": "object"
226
+ },
227
+ "ContractSummary": {
228
+ "additionalProperties": true,
229
+ "properties": {
230
+ "contract": {
231
+ "type": "string"
232
+ },
233
+ "description": {
234
+ "type": "string"
235
+ },
236
+ "display_name": {
237
+ "type": "string"
238
+ },
239
+ "inputs": {
240
+ "items": {
241
+ "$ref": "#/components/schemas/ContractInput"
242
+ },
243
+ "type": "array"
244
+ },
245
+ "outputs": {
246
+ "items": {
247
+ "$ref": "#/components/schemas/ContractOutput"
248
+ },
249
+ "type": "array"
250
+ },
251
+ "workflow": {
252
+ "type": "string"
253
+ }
254
+ },
255
+ "required": [
256
+ "workflow",
257
+ "contract",
258
+ "inputs",
259
+ "outputs"
260
+ ],
261
+ "type": "object"
262
+ },
263
+ "ContractsResponse": {
264
+ "properties": {
265
+ "contracts": {
266
+ "items": {
267
+ "$ref": "#/components/schemas/ContractSummary"
268
+ },
269
+ "type": "array"
270
+ },
271
+ "environment": {
272
+ "type": "string"
273
+ }
274
+ },
275
+ "required": [
276
+ "environment",
277
+ "contracts"
278
+ ],
279
+ "type": "object"
280
+ },
281
+ "ErrorResponse": {
282
+ "additionalProperties": true,
283
+ "properties": {
284
+ "error": {
285
+ "type": "string"
286
+ },
287
+ "message": {
288
+ "type": "string"
289
+ }
290
+ },
291
+ "type": "object"
292
+ },
293
+ "FileRef": {
294
+ "properties": {
295
+ "filename": {
296
+ "type": "string"
297
+ },
298
+ "kind": {
299
+ "const": "file_ref",
300
+ "type": "string"
301
+ },
302
+ "mime_type": {
303
+ "type": "string"
304
+ },
305
+ "ref": {
306
+ "type": "string"
307
+ },
308
+ "size": {
309
+ "type": "integer"
310
+ }
311
+ },
312
+ "required": [
313
+ "kind",
314
+ "ref",
315
+ "filename",
316
+ "mime_type"
317
+ ],
318
+ "type": "object"
319
+ },
320
+ "GalleryDeleteResponse": {
321
+ "properties": {
322
+ "deleted": {
323
+ "type": "boolean"
324
+ }
325
+ },
326
+ "required": [
327
+ "deleted"
328
+ ],
329
+ "type": "object"
330
+ },
331
+ "GalleryItem": {
332
+ "additionalProperties": true,
333
+ "properties": {
334
+ "artifact": {
335
+ "additionalProperties": true,
336
+ "type": "object"
337
+ },
338
+ "contract": {
339
+ "type": "string"
340
+ },
341
+ "contractName": {
342
+ "type": "string"
343
+ },
344
+ "contractWorkflow": {
345
+ "type": "string"
346
+ },
347
+ "createdAt": {
348
+ "type": "string"
349
+ },
350
+ "error": {
351
+ "type": "string"
352
+ },
353
+ "filename": {
354
+ "type": "string"
355
+ },
356
+ "height": {
357
+ "type": "integer"
358
+ },
359
+ "id": {
360
+ "type": "string"
361
+ },
362
+ "inputs": {
363
+ "additionalProperties": true,
364
+ "type": "object"
365
+ },
366
+ "outputName": {
367
+ "type": "string"
368
+ },
369
+ "promptId": {
370
+ "type": "string"
371
+ },
372
+ "rawResult": {
373
+ "additionalProperties": true,
374
+ "type": "object"
375
+ },
376
+ "run_id": {
377
+ "type": "string"
378
+ },
379
+ "slotId": {
380
+ "type": "string"
381
+ },
382
+ "status": {
383
+ "enum": [
384
+ "pending",
385
+ "done",
386
+ "error",
387
+ "cancelled"
388
+ ],
389
+ "type": "string"
390
+ },
391
+ "type": {
392
+ "enum": [
393
+ "image",
394
+ "video",
395
+ "audio",
396
+ "json"
397
+ ],
398
+ "type": "string"
399
+ },
400
+ "url": {
401
+ "type": "string"
402
+ },
403
+ "width": {
404
+ "type": "integer"
405
+ }
406
+ },
407
+ "required": [
408
+ "id",
409
+ "contract",
410
+ "status",
411
+ "type",
412
+ "createdAt"
413
+ ],
414
+ "type": "object"
415
+ },
416
+ "GalleryResponse": {
417
+ "properties": {
418
+ "gallery": {
419
+ "type": "string"
420
+ },
421
+ "has_more": {
422
+ "type": "boolean"
423
+ },
424
+ "items": {
425
+ "items": {
426
+ "$ref": "#/components/schemas/GalleryItem"
427
+ },
428
+ "type": "array"
429
+ },
430
+ "limit": {
431
+ "type": [
432
+ "integer",
433
+ "null"
434
+ ]
435
+ },
436
+ "next_cursor": {
437
+ "type": [
438
+ "string",
439
+ "null"
440
+ ]
441
+ },
442
+ "session_id": {
443
+ "type": "string"
444
+ },
445
+ "state": {
446
+ "type": "string"
447
+ }
448
+ },
449
+ "required": [
450
+ "state",
451
+ "gallery",
452
+ "session_id",
453
+ "items",
454
+ "has_more"
455
+ ],
456
+ "type": "object"
457
+ },
458
+ "HealthResponse": {
459
+ "additionalProperties": true,
460
+ "properties": {
461
+ "comfy_url": {
462
+ "type": "string"
463
+ },
464
+ "comfyui": {
465
+ "additionalProperties": true,
466
+ "type": "object"
467
+ },
468
+ "environment": {
469
+ "type": "string"
470
+ },
471
+ "environment_ref": {
472
+ "additionalProperties": true,
473
+ "type": "object"
474
+ },
475
+ "executor": {
476
+ "type": "string"
477
+ },
478
+ "ok": {
479
+ "type": "boolean"
480
+ },
481
+ "proxy": {
482
+ "additionalProperties": true,
483
+ "type": "object"
484
+ },
485
+ "proxy_environment_ref_match": {
486
+ "type": [
487
+ "boolean",
488
+ "null"
489
+ ]
490
+ }
491
+ },
492
+ "required": [
493
+ "ok",
494
+ "environment",
495
+ "comfy_url"
496
+ ],
497
+ "type": "object"
498
+ },
499
+ "OutputArtifact": {
500
+ "additionalProperties": true,
501
+ "properties": {
502
+ "filename": {
503
+ "type": "string"
504
+ },
505
+ "height": {
506
+ "type": "integer"
507
+ },
508
+ "raw": {},
509
+ "subfolder": {
510
+ "type": "string"
511
+ },
512
+ "type": {
513
+ "type": "string"
514
+ },
515
+ "url": {
516
+ "type": "string"
517
+ },
518
+ "width": {
519
+ "type": "integer"
520
+ }
521
+ },
522
+ "type": "object"
523
+ },
524
+ "RunDetailsResponse": {
525
+ "properties": {
526
+ "gallery_items": {
527
+ "items": {
528
+ "$ref": "#/components/schemas/GalleryItem"
529
+ },
530
+ "type": "array"
531
+ },
532
+ "output_slots": {
533
+ "items": {
534
+ "$ref": "#/components/schemas/RunOutputSlot"
535
+ },
536
+ "type": "array"
537
+ },
538
+ "run": {
539
+ "$ref": "#/components/schemas/RunResponse"
540
+ },
541
+ "session_id": {
542
+ "type": "string"
543
+ },
544
+ "state": {
545
+ "type": "string"
546
+ }
547
+ },
548
+ "required": [
549
+ "state",
550
+ "session_id",
551
+ "run",
552
+ "output_slots",
553
+ "gallery_items"
554
+ ],
555
+ "type": "object"
556
+ },
557
+ "RunIssue": {
558
+ "additionalProperties": true,
559
+ "properties": {
560
+ "code": {
561
+ "type": "string"
562
+ },
563
+ "input_name": {
564
+ "type": "string"
565
+ },
566
+ "message": {
567
+ "type": "string"
568
+ },
569
+ "severity": {
570
+ "type": "string"
571
+ }
572
+ },
573
+ "required": [
574
+ "code",
575
+ "message"
576
+ ],
577
+ "type": "object"
578
+ },
579
+ "RunOutput": {
580
+ "additionalProperties": true,
581
+ "properties": {
582
+ "artifacts": {
583
+ "items": {
584
+ "$ref": "#/components/schemas/OutputArtifact"
585
+ },
586
+ "type": "array"
587
+ },
588
+ "name": {
589
+ "type": "string"
590
+ },
591
+ "node_id": {
592
+ "type": "string"
593
+ },
594
+ "type": {
595
+ "type": "string"
596
+ }
597
+ },
598
+ "required": [
599
+ "name",
600
+ "type",
601
+ "artifacts"
602
+ ],
603
+ "type": "object"
604
+ },
605
+ "RunOutputSlot": {
606
+ "additionalProperties": true,
607
+ "properties": {
608
+ "contract": {
609
+ "type": "string"
610
+ },
611
+ "contractName": {
612
+ "type": "string"
613
+ },
614
+ "contractWorkflow": {
615
+ "type": "string"
616
+ },
617
+ "createdAt": {
618
+ "type": "string"
619
+ },
620
+ "error": {
621
+ "type": "string"
622
+ },
623
+ "height": {
624
+ "type": "integer"
625
+ },
626
+ "outputName": {
627
+ "type": "string"
628
+ },
629
+ "promptId": {
630
+ "type": "string"
631
+ },
632
+ "rawResult": {
633
+ "additionalProperties": true,
634
+ "type": "object"
635
+ },
636
+ "run_id": {
637
+ "type": "string"
638
+ },
639
+ "slot_id": {
640
+ "type": "string"
641
+ },
642
+ "status": {
643
+ "type": "string"
644
+ },
645
+ "type": {
646
+ "enum": [
647
+ "image",
648
+ "video",
649
+ "audio",
650
+ "json"
651
+ ],
652
+ "type": "string"
653
+ },
654
+ "updatedAt": {
655
+ "type": "string"
656
+ },
657
+ "width": {
658
+ "type": "integer"
659
+ }
660
+ },
661
+ "required": [
662
+ "slot_id",
663
+ "run_id",
664
+ "outputName",
665
+ "type",
666
+ "status",
667
+ "createdAt"
668
+ ],
669
+ "type": "object"
670
+ },
671
+ "RunRequest": {
672
+ "additionalProperties": true,
673
+ "properties": {
674
+ "inputs": {
675
+ "additionalProperties": true,
676
+ "type": "object"
677
+ },
678
+ "poll_interval_seconds": {
679
+ "type": "number"
680
+ },
681
+ "timeout_seconds": {
682
+ "type": "number"
683
+ },
684
+ "wait": {
685
+ "type": "boolean"
686
+ }
687
+ },
688
+ "type": "object"
689
+ },
690
+ "RunResponse": {
691
+ "additionalProperties": true,
692
+ "properties": {
693
+ "error": {
694
+ "type": "string"
695
+ },
696
+ "gallery_items": {
697
+ "items": {
698
+ "$ref": "#/components/schemas/GalleryItem"
699
+ },
700
+ "type": "array"
701
+ },
702
+ "id": {
703
+ "type": "string"
704
+ },
705
+ "issues": {
706
+ "items": {
707
+ "$ref": "#/components/schemas/RunIssue"
708
+ },
709
+ "type": "array"
710
+ },
711
+ "message": {
712
+ "type": "string"
713
+ },
714
+ "output_slots": {
715
+ "items": {
716
+ "$ref": "#/components/schemas/RunOutputSlot"
717
+ },
718
+ "type": "array"
719
+ },
720
+ "outputs": {
721
+ "items": {
722
+ "$ref": "#/components/schemas/RunOutput"
723
+ },
724
+ "type": "array"
725
+ },
726
+ "prompt_id": {
727
+ "type": "string"
728
+ },
729
+ "run_id": {
730
+ "type": "string"
731
+ },
732
+ "status": {
733
+ "type": "string"
734
+ }
735
+ },
736
+ "required": [
737
+ "status"
738
+ ],
739
+ "type": "object"
740
+ },
741
+ "RunsResponse": {
742
+ "properties": {
743
+ "runs": {
744
+ "items": {
745
+ "$ref": "#/components/schemas/RunResponse"
746
+ },
747
+ "type": "array"
748
+ },
749
+ "session_id": {
750
+ "type": "string"
751
+ },
752
+ "state": {
753
+ "type": "string"
754
+ }
755
+ },
756
+ "required": [
757
+ "state",
758
+ "session_id",
759
+ "runs"
760
+ ],
761
+ "type": "object"
762
+ },
763
+ "UploadPrepareRequest": {
764
+ "additionalProperties": true,
765
+ "properties": {
766
+ "filename": {
767
+ "type": "string"
768
+ },
769
+ "mime_type": {
770
+ "type": "string"
771
+ },
772
+ "size": {
773
+ "minimum": 0,
774
+ "type": "integer"
775
+ }
776
+ },
777
+ "required": [
778
+ "filename"
779
+ ],
780
+ "type": "object"
781
+ },
782
+ "UploadSlotResponse": {
783
+ "properties": {
784
+ "destination": {
785
+ "type": "string"
786
+ },
787
+ "file_ref": {
788
+ "$ref": "#/components/schemas/FileRef"
789
+ },
790
+ "headers": {
791
+ "additionalProperties": true,
792
+ "type": "object"
793
+ },
794
+ "kind": {
795
+ "const": "upload_slot",
796
+ "type": "string"
797
+ },
798
+ "max_size": {
799
+ "type": "integer"
800
+ },
801
+ "method": {
802
+ "const": "PUT",
803
+ "type": "string"
804
+ },
805
+ "ref": {
806
+ "type": "string"
807
+ },
808
+ "upload_id": {
809
+ "type": "string"
810
+ },
811
+ "upload_url": {
812
+ "type": "string"
813
+ }
814
+ },
815
+ "required": [
816
+ "kind",
817
+ "upload_id",
818
+ "ref",
819
+ "upload_url",
820
+ "method",
821
+ "destination",
822
+ "file_ref"
823
+ ],
824
+ "type": "object"
825
+ },
826
+ "UploadStatusResponse": {
827
+ "properties": {
828
+ "file_ref": {
829
+ "$ref": "#/components/schemas/FileRef"
830
+ },
831
+ "status": {
832
+ "type": "string"
833
+ }
834
+ },
835
+ "required": [
836
+ "status",
837
+ "file_ref"
838
+ ],
839
+ "type": "object"
840
+ }
841
+ }
842
+ },
843
+ "info": {
844
+ "description": "Public contract-shaped API used by cg serve, Manager embedded Studio, and future hosted ComfyGit endpoints.",
845
+ "title": "ComfyGit Studio Contract API",
846
+ "version": "1.0.0"
847
+ },
848
+ "openapi": "3.1.0",
849
+ "paths": {
850
+ "/contracts": {
851
+ "get": {
852
+ "operationId": "listContracts",
853
+ "responses": {
854
+ "200": {
855
+ "content": {
856
+ "application/json": {
857
+ "schema": {
858
+ "$ref": "#/components/schemas/ContractsResponse"
859
+ }
860
+ }
861
+ },
862
+ "description": "Contracts response"
863
+ }
864
+ },
865
+ "summary": "List available workflow contracts"
866
+ }
867
+ },
868
+ "/contracts/{workflow}/{contract}": {
869
+ "get": {
870
+ "operationId": "getContract",
871
+ "parameters": [
872
+ {
873
+ "$ref": "#/components/parameters/workflow"
874
+ },
875
+ {
876
+ "$ref": "#/components/parameters/contract"
877
+ }
878
+ ],
879
+ "responses": {
880
+ "200": {
881
+ "content": {
882
+ "application/json": {
883
+ "schema": {
884
+ "$ref": "#/components/schemas/ContractSummary"
885
+ }
886
+ }
887
+ },
888
+ "description": "Contract response"
889
+ }
890
+ },
891
+ "summary": "Return one workflow contract"
892
+ }
893
+ },
894
+ "/contracts/{workflow}/{contract}/run": {
895
+ "post": {
896
+ "operationId": "runContract",
897
+ "parameters": [
898
+ {
899
+ "$ref": "#/components/parameters/workflow"
900
+ },
901
+ {
902
+ "$ref": "#/components/parameters/contract"
903
+ }
904
+ ],
905
+ "requestBody": {
906
+ "content": {
907
+ "application/json": {
908
+ "schema": {
909
+ "$ref": "#/components/schemas/RunRequest"
910
+ }
911
+ }
912
+ },
913
+ "required": true
914
+ },
915
+ "responses": {
916
+ "200": {
917
+ "content": {
918
+ "application/json": {
919
+ "schema": {
920
+ "$ref": "#/components/schemas/RunResponse"
921
+ }
922
+ }
923
+ },
924
+ "description": "Run response"
925
+ },
926
+ "400": {
927
+ "content": {
928
+ "application/json": {
929
+ "schema": {
930
+ "$ref": "#/components/schemas/RunResponse"
931
+ }
932
+ }
933
+ },
934
+ "description": "Invalid request"
935
+ },
936
+ "413": {
937
+ "content": {
938
+ "application/json": {
939
+ "schema": {
940
+ "$ref": "#/components/schemas/ErrorResponse"
941
+ }
942
+ }
943
+ },
944
+ "description": "Request too large"
945
+ },
946
+ "502": {
947
+ "content": {
948
+ "application/json": {
949
+ "schema": {
950
+ "$ref": "#/components/schemas/RunResponse"
951
+ }
952
+ }
953
+ },
954
+ "description": "Executor unavailable"
955
+ },
956
+ "504": {
957
+ "content": {
958
+ "application/json": {
959
+ "schema": {
960
+ "$ref": "#/components/schemas/RunResponse"
961
+ }
962
+ }
963
+ },
964
+ "description": "Run timed out"
965
+ }
966
+ },
967
+ "summary": "Start a workflow contract run"
968
+ }
969
+ },
970
+ "/gallery": {
971
+ "get": {
972
+ "operationId": "listGallery",
973
+ "parameters": [
974
+ {
975
+ "$ref": "#/components/parameters/galleryLimit"
976
+ },
977
+ {
978
+ "$ref": "#/components/parameters/galleryCursor"
979
+ }
980
+ ],
981
+ "responses": {
982
+ "200": {
983
+ "content": {
984
+ "application/json": {
985
+ "schema": {
986
+ "$ref": "#/components/schemas/GalleryResponse"
987
+ }
988
+ }
989
+ },
990
+ "description": "Gallery response"
991
+ },
992
+ "400": {
993
+ "content": {
994
+ "application/json": {
995
+ "schema": {
996
+ "$ref": "#/components/schemas/ErrorResponse"
997
+ }
998
+ }
999
+ },
1000
+ "description": "Invalid pagination request"
1001
+ }
1002
+ },
1003
+ "summary": "List gallery items for the current Studio session"
1004
+ }
1005
+ },
1006
+ "/gallery/{item_id}": {
1007
+ "delete": {
1008
+ "operationId": "deleteGalleryItem",
1009
+ "parameters": [
1010
+ {
1011
+ "$ref": "#/components/parameters/itemId"
1012
+ }
1013
+ ],
1014
+ "responses": {
1015
+ "200": {
1016
+ "content": {
1017
+ "application/json": {
1018
+ "schema": {
1019
+ "$ref": "#/components/schemas/GalleryDeleteResponse"
1020
+ }
1021
+ }
1022
+ },
1023
+ "description": "Delete response"
1024
+ },
1025
+ "404": {
1026
+ "content": {
1027
+ "application/json": {
1028
+ "schema": {
1029
+ "$ref": "#/components/schemas/GalleryDeleteResponse"
1030
+ }
1031
+ }
1032
+ },
1033
+ "description": "Gallery item was not found"
1034
+ }
1035
+ },
1036
+ "summary": "Delete one gallery item from the current session"
1037
+ }
1038
+ },
1039
+ "/health": {
1040
+ "get": {
1041
+ "operationId": "getHealth",
1042
+ "parameters": [
1043
+ {
1044
+ "$ref": "#/components/parameters/checkProxy"
1045
+ }
1046
+ ],
1047
+ "responses": {
1048
+ "200": {
1049
+ "content": {
1050
+ "application/json": {
1051
+ "schema": {
1052
+ "$ref": "#/components/schemas/HealthResponse"
1053
+ }
1054
+ }
1055
+ },
1056
+ "description": "Health response"
1057
+ }
1058
+ },
1059
+ "summary": "Return Studio runtime and executor health"
1060
+ }
1061
+ },
1062
+ "/openapi.json": {
1063
+ "get": {
1064
+ "operationId": "getOpenApi",
1065
+ "responses": {
1066
+ "200": {
1067
+ "content": {
1068
+ "application/json": {
1069
+ "schema": {
1070
+ "type": "object"
1071
+ }
1072
+ }
1073
+ },
1074
+ "description": "OpenAPI document"
1075
+ }
1076
+ },
1077
+ "summary": "Return the Studio contract API OpenAPI document"
1078
+ }
1079
+ },
1080
+ "/outputs/view": {
1081
+ "get": {
1082
+ "operationId": "viewOutput",
1083
+ "parameters": [
1084
+ {
1085
+ "$ref": "#/components/parameters/serveArtifact"
1086
+ },
1087
+ {
1088
+ "$ref": "#/components/parameters/filename"
1089
+ },
1090
+ {
1091
+ "$ref": "#/components/parameters/subfolder"
1092
+ },
1093
+ {
1094
+ "$ref": "#/components/parameters/outputType"
1095
+ }
1096
+ ],
1097
+ "responses": {
1098
+ "200": {
1099
+ "description": "Output bytes"
1100
+ },
1101
+ "400": {
1102
+ "content": {
1103
+ "application/json": {
1104
+ "schema": {
1105
+ "$ref": "#/components/schemas/ErrorResponse"
1106
+ }
1107
+ }
1108
+ },
1109
+ "description": "Bad request"
1110
+ },
1111
+ "404": {
1112
+ "content": {
1113
+ "application/json": {
1114
+ "schema": {
1115
+ "$ref": "#/components/schemas/ErrorResponse"
1116
+ }
1117
+ }
1118
+ },
1119
+ "description": "Output not found"
1120
+ },
1121
+ "502": {
1122
+ "content": {
1123
+ "application/json": {
1124
+ "schema": {
1125
+ "$ref": "#/components/schemas/ErrorResponse"
1126
+ }
1127
+ }
1128
+ },
1129
+ "description": "ComfyUI unavailable"
1130
+ }
1131
+ },
1132
+ "summary": "Fetch a generated output artifact"
1133
+ }
1134
+ },
1135
+ "/runs": {
1136
+ "get": {
1137
+ "operationId": "listRuns",
1138
+ "parameters": [
1139
+ {
1140
+ "$ref": "#/components/parameters/activeRuns"
1141
+ }
1142
+ ],
1143
+ "responses": {
1144
+ "200": {
1145
+ "content": {
1146
+ "application/json": {
1147
+ "schema": {
1148
+ "$ref": "#/components/schemas/RunsResponse"
1149
+ }
1150
+ }
1151
+ },
1152
+ "description": "Runs response"
1153
+ }
1154
+ },
1155
+ "summary": "List run records"
1156
+ }
1157
+ },
1158
+ "/runs/{run_id}": {
1159
+ "get": {
1160
+ "operationId": "getRun",
1161
+ "parameters": [
1162
+ {
1163
+ "$ref": "#/components/parameters/runId"
1164
+ }
1165
+ ],
1166
+ "responses": {
1167
+ "200": {
1168
+ "content": {
1169
+ "application/json": {
1170
+ "schema": {
1171
+ "$ref": "#/components/schemas/RunDetailsResponse"
1172
+ }
1173
+ }
1174
+ },
1175
+ "description": "Run details"
1176
+ },
1177
+ "404": {
1178
+ "content": {
1179
+ "application/json": {
1180
+ "schema": {
1181
+ "$ref": "#/components/schemas/ErrorResponse"
1182
+ }
1183
+ }
1184
+ },
1185
+ "description": "Unknown run"
1186
+ }
1187
+ },
1188
+ "summary": "Return one run record, output slots, and gallery items"
1189
+ }
1190
+ },
1191
+ "/runs/{run_id}/cancel": {
1192
+ "post": {
1193
+ "operationId": "cancelRun",
1194
+ "parameters": [
1195
+ {
1196
+ "$ref": "#/components/parameters/runId"
1197
+ }
1198
+ ],
1199
+ "responses": {
1200
+ "200": {
1201
+ "content": {
1202
+ "application/json": {
1203
+ "schema": {
1204
+ "$ref": "#/components/schemas/CancelRunResponse"
1205
+ }
1206
+ }
1207
+ },
1208
+ "description": "Cancelled run response"
1209
+ },
1210
+ "400": {
1211
+ "content": {
1212
+ "application/json": {
1213
+ "schema": {
1214
+ "$ref": "#/components/schemas/ErrorResponse"
1215
+ }
1216
+ }
1217
+ },
1218
+ "description": "Run cannot be cancelled"
1219
+ },
1220
+ "404": {
1221
+ "content": {
1222
+ "application/json": {
1223
+ "schema": {
1224
+ "$ref": "#/components/schemas/ErrorResponse"
1225
+ }
1226
+ }
1227
+ },
1228
+ "description": "Unknown run"
1229
+ }
1230
+ },
1231
+ "summary": "Cancel a running contract run"
1232
+ }
1233
+ },
1234
+ "/uploads/prepare": {
1235
+ "post": {
1236
+ "operationId": "prepareUpload",
1237
+ "requestBody": {
1238
+ "content": {
1239
+ "application/json": {
1240
+ "schema": {
1241
+ "$ref": "#/components/schemas/UploadPrepareRequest"
1242
+ }
1243
+ }
1244
+ },
1245
+ "required": true
1246
+ },
1247
+ "responses": {
1248
+ "200": {
1249
+ "content": {
1250
+ "application/json": {
1251
+ "schema": {
1252
+ "$ref": "#/components/schemas/UploadSlotResponse"
1253
+ }
1254
+ }
1255
+ },
1256
+ "description": "Upload slot"
1257
+ },
1258
+ "400": {
1259
+ "content": {
1260
+ "application/json": {
1261
+ "schema": {
1262
+ "$ref": "#/components/schemas/ErrorResponse"
1263
+ }
1264
+ }
1265
+ },
1266
+ "description": "Bad request"
1267
+ }
1268
+ },
1269
+ "summary": "Prepare a media upload slot"
1270
+ }
1271
+ },
1272
+ "/uploads/{upload_id}": {
1273
+ "put": {
1274
+ "operationId": "putUpload",
1275
+ "parameters": [
1276
+ {
1277
+ "$ref": "#/components/parameters/uploadId"
1278
+ },
1279
+ {
1280
+ "$ref": "#/components/parameters/uploadToken"
1281
+ }
1282
+ ],
1283
+ "requestBody": {
1284
+ "content": {
1285
+ "application/octet-stream": {
1286
+ "schema": {
1287
+ "format": "binary",
1288
+ "type": "string"
1289
+ }
1290
+ }
1291
+ },
1292
+ "required": true
1293
+ },
1294
+ "responses": {
1295
+ "200": {
1296
+ "content": {
1297
+ "application/json": {
1298
+ "schema": {
1299
+ "$ref": "#/components/schemas/UploadStatusResponse"
1300
+ }
1301
+ }
1302
+ },
1303
+ "description": "Upload ready"
1304
+ },
1305
+ "403": {
1306
+ "content": {
1307
+ "application/json": {
1308
+ "schema": {
1309
+ "$ref": "#/components/schemas/ErrorResponse"
1310
+ }
1311
+ }
1312
+ },
1313
+ "description": "Forbidden"
1314
+ },
1315
+ "404": {
1316
+ "content": {
1317
+ "application/json": {
1318
+ "schema": {
1319
+ "$ref": "#/components/schemas/ErrorResponse"
1320
+ }
1321
+ }
1322
+ },
1323
+ "description": "Unknown upload"
1324
+ },
1325
+ "413": {
1326
+ "content": {
1327
+ "application/json": {
1328
+ "schema": {
1329
+ "$ref": "#/components/schemas/ErrorResponse"
1330
+ }
1331
+ }
1332
+ },
1333
+ "description": "Upload too large"
1334
+ }
1335
+ },
1336
+ "summary": "Upload bytes to a prepared slot"
1337
+ }
1338
+ },
1339
+ "/uploads/{upload_id}/status": {
1340
+ "get": {
1341
+ "operationId": "getUploadStatus",
1342
+ "parameters": [
1343
+ {
1344
+ "$ref": "#/components/parameters/uploadId"
1345
+ }
1346
+ ],
1347
+ "responses": {
1348
+ "200": {
1349
+ "content": {
1350
+ "application/json": {
1351
+ "schema": {
1352
+ "$ref": "#/components/schemas/UploadStatusResponse"
1353
+ }
1354
+ }
1355
+ },
1356
+ "description": "Upload status"
1357
+ },
1358
+ "404": {
1359
+ "content": {
1360
+ "application/json": {
1361
+ "schema": {
1362
+ "$ref": "#/components/schemas/ErrorResponse"
1363
+ }
1364
+ }
1365
+ },
1366
+ "description": "Unknown upload"
1367
+ }
1368
+ },
1369
+ "summary": "Return upload status and file reference"
1370
+ }
1371
+ }
1372
+ },
1373
+ "servers": [
1374
+ {
1375
+ "description": "Mounted Studio runtime API base path",
1376
+ "url": "/"
1377
+ }
1378
+ ]
1379
+ }