@scenario-labs/sdk 1.1.0 → 1.2.0

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.
Files changed (139) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/client.d.mts +6 -6
  3. package/client.d.mts.map +1 -1
  4. package/client.d.ts +6 -6
  5. package/client.d.ts.map +1 -1
  6. package/client.js +17 -6
  7. package/client.js.map +1 -1
  8. package/client.mjs +17 -6
  9. package/client.mjs.map +1 -1
  10. package/internal/request-options.d.mts +0 -4
  11. package/internal/request-options.d.mts.map +1 -1
  12. package/internal/request-options.d.ts +0 -4
  13. package/internal/request-options.d.ts.map +1 -1
  14. package/internal/request-options.js.map +1 -1
  15. package/internal/request-options.mjs.map +1 -1
  16. package/lib/workflow.d.mts +2 -2
  17. package/lib/workflow.d.mts.map +1 -1
  18. package/lib/workflow.d.ts +2 -2
  19. package/lib/workflow.d.ts.map +1 -1
  20. package/lib/workflow.js +2 -2
  21. package/lib/workflow.js.map +1 -1
  22. package/lib/workflow.mjs +2 -2
  23. package/lib/workflow.mjs.map +1 -1
  24. package/package.json +1 -1
  25. package/resources/assets/assets.d.mts +1 -5
  26. package/resources/assets/assets.d.mts.map +1 -1
  27. package/resources/assets/assets.d.ts +1 -5
  28. package/resources/assets/assets.d.ts.map +1 -1
  29. package/resources/assets/assets.js +0 -4
  30. package/resources/assets/assets.js.map +1 -1
  31. package/resources/assets/assets.mjs +0 -4
  32. package/resources/assets/assets.mjs.map +1 -1
  33. package/resources/assets/index.d.mts +0 -1
  34. package/resources/assets/index.d.mts.map +1 -1
  35. package/resources/assets/index.d.ts +0 -1
  36. package/resources/assets/index.d.ts.map +1 -1
  37. package/resources/assets/index.js +1 -3
  38. package/resources/assets/index.js.map +1 -1
  39. package/resources/assets/index.mjs +0 -1
  40. package/resources/assets/index.mjs.map +1 -1
  41. package/resources/index.d.mts +2 -1
  42. package/resources/index.d.mts.map +1 -1
  43. package/resources/index.d.ts +2 -1
  44. package/resources/index.d.ts.map +1 -1
  45. package/resources/index.js +3 -1
  46. package/resources/index.js.map +1 -1
  47. package/resources/index.mjs +1 -0
  48. package/resources/index.mjs.map +1 -1
  49. package/resources/jobs.d.mts +10 -3
  50. package/resources/jobs.d.mts.map +1 -1
  51. package/resources/jobs.d.ts +10 -3
  52. package/resources/jobs.d.ts.map +1 -1
  53. package/resources/models/models.d.mts +13 -11
  54. package/resources/models/models.d.mts.map +1 -1
  55. package/resources/models/models.d.ts +13 -11
  56. package/resources/models/models.d.ts.map +1 -1
  57. package/resources/models/models.js.map +1 -1
  58. package/resources/models/models.mjs.map +1 -1
  59. package/resources/oscu.d.mts +5 -0
  60. package/resources/oscu.d.mts.map +1 -1
  61. package/resources/oscu.d.ts +5 -0
  62. package/resources/oscu.d.ts.map +1 -1
  63. package/resources/oscu.js +5 -0
  64. package/resources/oscu.js.map +1 -1
  65. package/resources/oscu.mjs +5 -0
  66. package/resources/oscu.mjs.map +1 -1
  67. package/resources/pricing/index.d.mts +3 -0
  68. package/resources/pricing/index.d.mts.map +1 -0
  69. package/resources/pricing/index.d.ts +3 -0
  70. package/resources/pricing/index.d.ts.map +1 -0
  71. package/resources/pricing/index.js +9 -0
  72. package/resources/pricing/index.js.map +1 -0
  73. package/resources/pricing/index.mjs +4 -0
  74. package/resources/pricing/index.mjs.map +1 -0
  75. package/resources/pricing/oscu.d.mts +25 -0
  76. package/resources/pricing/oscu.d.mts.map +1 -0
  77. package/resources/pricing/oscu.d.ts +25 -0
  78. package/resources/pricing/oscu.d.ts.map +1 -0
  79. package/resources/pricing/oscu.js +16 -0
  80. package/resources/pricing/oscu.js.map +1 -0
  81. package/resources/pricing/oscu.mjs +12 -0
  82. package/resources/pricing/oscu.mjs.map +1 -0
  83. package/resources/pricing/pricing.d.mts +10 -0
  84. package/resources/pricing/pricing.d.mts.map +1 -0
  85. package/resources/pricing/pricing.d.ts +10 -0
  86. package/resources/pricing/pricing.d.ts.map +1 -0
  87. package/resources/pricing/pricing.js +17 -0
  88. package/resources/pricing/pricing.js.map +1 -0
  89. package/resources/pricing/pricing.mjs +12 -0
  90. package/resources/pricing/pricing.mjs.map +1 -0
  91. package/resources/pricing.d.mts +2 -0
  92. package/resources/pricing.d.mts.map +1 -0
  93. package/resources/pricing.d.ts +2 -0
  94. package/resources/pricing.d.ts.map +1 -0
  95. package/resources/pricing.js +6 -0
  96. package/resources/pricing.js.map +1 -0
  97. package/resources/pricing.mjs +3 -0
  98. package/resources/pricing.mjs.map +1 -0
  99. package/resources/usages.d.mts +6 -4
  100. package/resources/usages.d.mts.map +1 -1
  101. package/resources/usages.d.ts +6 -4
  102. package/resources/usages.d.ts.map +1 -1
  103. package/resources/workflows.d.mts +1156 -1142
  104. package/resources/workflows.d.mts.map +1 -1
  105. package/resources/workflows.d.ts +1156 -1142
  106. package/resources/workflows.d.ts.map +1 -1
  107. package/resources/workflows.js +13 -6
  108. package/resources/workflows.js.map +1 -1
  109. package/resources/workflows.mjs +13 -6
  110. package/resources/workflows.mjs.map +1 -1
  111. package/src/client.ts +24 -11
  112. package/src/internal/request-options.ts +0 -2
  113. package/src/lib/workflow.ts +4 -4
  114. package/src/resources/assets/assets.ts +3 -13
  115. package/src/resources/assets/index.ts +0 -6
  116. package/src/resources/index.ts +3 -1
  117. package/src/resources/jobs.ts +12 -4
  118. package/src/resources/models/models.ts +51 -11
  119. package/src/resources/oscu.ts +5 -0
  120. package/src/resources/pricing/index.ts +4 -0
  121. package/src/resources/pricing/oscu.ts +35 -0
  122. package/src/resources/pricing/pricing.ts +15 -0
  123. package/src/resources/pricing.ts +3 -0
  124. package/src/resources/usages.ts +7 -3
  125. package/src/resources/workflows.ts +1540 -1522
  126. package/src/version.ts +1 -1
  127. package/version.d.mts +1 -1
  128. package/version.d.ts +1 -1
  129. package/version.js +1 -1
  130. package/version.mjs +1 -1
  131. package/resources/assets/public.d.mts +0 -1538
  132. package/resources/assets/public.d.mts.map +0 -1
  133. package/resources/assets/public.d.ts +0 -1538
  134. package/resources/assets/public.d.ts.map +0 -1
  135. package/resources/assets/public.js +0 -28
  136. package/resources/assets/public.js.map +0 -1
  137. package/resources/assets/public.mjs +0 -24
  138. package/resources/assets/public.mjs.map +0 -1
  139. package/src/resources/assets/public.ts +0 -2461
@@ -53,15 +53,9 @@ export class Workflows extends APIResource {
53
53
  }
54
54
 
55
55
  /**
56
- * Approve a user approval node in a workflow
56
+ * @deprecated Use `userApproval()` instead
57
57
  */
58
- approveUser(
59
- workflowID: string,
60
- body: WorkflowApproveUserParams,
61
- options?: RequestOptions,
62
- ): APIPromise<WorkflowApproveUserResponse> {
63
- return this._client.put(path`/workflows/${workflowID}/user-approval`, { body, ...options });
64
- }
58
+ approveUser = this.userApproval;
65
59
 
66
60
  /**
67
61
  * Get all unique tags from workflows in a project (all privacy levels). Optionally
@@ -89,6 +83,17 @@ export class Workflows extends APIResource {
89
83
  ...options,
90
84
  });
91
85
  }
86
+
87
+ /**
88
+ * Approve a user approval node in a workflow
89
+ */
90
+ userApproval(
91
+ workflowID: string,
92
+ body: WorkflowUserApprovalParams,
93
+ options?: RequestOptions,
94
+ ): APIPromise<WorkflowUserApprovalResponse> {
95
+ return this._client.put(path`/workflows/${workflowID}/user-approval`, { body, ...options });
96
+ }
92
97
  }
93
98
 
94
99
  export type WorkflowListResponsesWorkflowsCursor = WorkflowsCursor<WorkflowListResponse>;
@@ -5309,11 +5314,20 @@ export namespace WorkflowListResponse {
5309
5314
 
5310
5315
  export type WorkflowDeleteResponse = unknown;
5311
5316
 
5312
- export interface WorkflowApproveUserResponse {
5313
- job: WorkflowApproveUserResponse.Job;
5317
+ export interface WorkflowGetTagsResponse {
5318
+ /**
5319
+ * Array of unique tags from workflows in the project
5320
+ */
5321
+ tags: Array<string>;
5322
+ }
5323
+
5324
+ export interface WorkflowRunResponse {
5325
+ job: WorkflowRunResponse.Job;
5326
+
5327
+ workflow: WorkflowRunResponse.Workflow;
5314
5328
  }
5315
5329
 
5316
- export namespace WorkflowApproveUserResponse {
5330
+ export namespace WorkflowRunResponse {
5317
5331
  export interface Job {
5318
5332
  /**
5319
5333
  * The job creation date as an ISO string (example: "2023-02-03T11:19:41.579Z")
@@ -6259,337 +6273,501 @@ export namespace WorkflowApproveUserResponse {
6259
6273
  cuDiscount: number;
6260
6274
  }
6261
6275
  }
6262
- }
6263
-
6264
- export interface WorkflowGetTagsResponse {
6265
- /**
6266
- * Array of unique tags from workflows in the project
6267
- */
6268
- tags: Array<string>;
6269
- }
6270
6276
 
6271
- export interface WorkflowRunResponse {
6272
- job: WorkflowRunResponse.Job;
6277
+ export interface Workflow {
6278
+ /**
6279
+ * Unique identifier of the workflow.
6280
+ */
6281
+ id: string;
6273
6282
 
6274
- workflow: WorkflowRunResponse.Workflow;
6275
- }
6283
+ /**
6284
+ * User that created the workflow.
6285
+ */
6286
+ authorId: string;
6276
6287
 
6277
- export namespace WorkflowRunResponse {
6278
- export interface Job {
6279
6288
  /**
6280
- * The job creation date as an ISO string (example: "2023-02-03T11:19:41.579Z")
6289
+ * ISO string
6281
6290
  */
6282
6291
  createdAt: string;
6283
6292
 
6284
6293
  /**
6285
- * The job ID (example: "job_ocZCnG1Df35XRL1QyCZSRxAG8")
6294
+ * Full description of what the workflow does.
6286
6295
  */
6287
- jobId: string;
6296
+ description: string;
6288
6297
 
6289
6298
  /**
6290
- * The type of job
6299
+ * The UI data about the workflow. This is managed by scenario webapp.
6291
6300
  */
6292
- jobType:
6293
- | 'assets-download'
6294
- | 'canvas-export'
6295
- | 'caption'
6296
- | 'caption-llava'
6297
- | 'custom'
6298
- | 'describe-style'
6299
- | 'detection'
6300
- | 'embed'
6301
- | 'flux'
6302
- | 'flux-model-training'
6303
- | 'generate-prompt'
6304
- | 'image-generation'
6305
- | 'image-prompt-editing'
6306
- | 'inference'
6307
- | 'mesh-preview-rendering'
6308
- | 'model-download'
6309
- | 'model-import'
6310
- | 'model-training'
6311
- | 'musubi-model-training'
6312
- | 'openai-image-generation'
6313
- | 'patch-image'
6314
- | 'pixelate'
6315
- | 'reframe'
6316
- | 'remove-background'
6317
- | 'repaint'
6318
- | 'restyle'
6319
- | 'segment'
6320
- | 'skybox-3d'
6321
- | 'skybox-base-360'
6322
- | 'skybox-hdri'
6323
- | 'skybox-upscale-360'
6324
- | 'texture'
6325
- | 'translate'
6326
- | 'upload'
6327
- | 'upscale'
6328
- | 'upscale-skybox'
6329
- | 'upscale-texture'
6330
- | 'vectorize'
6331
- | 'workflow';
6301
+ editorInfo: { [key: string]: unknown };
6332
6302
 
6333
6303
  /**
6334
- * Metadata of the job with some additional information
6304
+ * The flow of the workflow.
6335
6305
  */
6336
- metadata: Job.Metadata;
6306
+ flow: Array<Workflow.Flow>;
6337
6307
 
6338
6308
  /**
6339
- * Progress of the job (between 0 and 1)
6309
+ * The inputs of the workflow.
6340
6310
  */
6341
- progress: number;
6311
+ inputs: Array<Workflow.Input>;
6342
6312
 
6343
6313
  /**
6344
- * The current status of the job
6314
+ * Human-readable name of the workflow.
6345
6315
  */
6346
- status:
6347
- | 'canceled'
6348
- | 'failure'
6349
- | 'finalizing'
6350
- | 'in-progress'
6351
- | 'pending'
6352
- | 'queued'
6353
- | 'success'
6354
- | 'warming-up';
6316
+ name: string;
6355
6317
 
6356
6318
  /**
6357
- * The history of the different statuses the job went through with the ISO string
6358
- * date of when the job reached each statuses.
6319
+ * Project that owns the workflow.
6359
6320
  */
6360
- statusHistory: Array<Job.StatusHistory>;
6321
+ ownerId: string;
6361
6322
 
6362
6323
  /**
6363
- * The job last update date as an ISO string (example: "2023-02-03T11:19:41.579Z")
6324
+ * Visibility setting for the workflow.
6325
+ */
6326
+ privacy: 'private' | 'public' | 'unlisted';
6327
+
6328
+ /**
6329
+ * Short summary of the workflow.
6330
+ */
6331
+ shortDescription: string;
6332
+
6333
+ /**
6334
+ * Current lifecycle status (draft, ready, deleted).
6335
+ */
6336
+ status: 'deleted' | 'draft' | 'ready';
6337
+
6338
+ /**
6339
+ * The tag set of the workflow.
6340
+ */
6341
+ tagSet: Array<string>;
6342
+
6343
+ /**
6344
+ * ISO string
6364
6345
  */
6365
6346
  updatedAt: string;
6366
6347
 
6367
6348
  /**
6368
- * The author user ID (example: "dcf121faaa1a0a0bbbd9ca1b73d62aea")
6349
+ * A representation of an asset after being processed by the workflow
6369
6350
  */
6370
- authorId?: string;
6351
+ after?: Workflow.After;
6371
6352
 
6372
6353
  /**
6373
- * The billing of the job
6354
+ * A representation of an asset before being processed by the workflow
6374
6355
  */
6375
- billing?: Job.Billing;
6356
+ before?: Workflow.Before;
6376
6357
 
6377
6358
  /**
6378
- * The owner ID (example: "team_U3Qmc8PCdWXwAQJ4Dvw4tV6D")
6359
+ * Embedding is a map of embedding version into embedding date
6379
6360
  */
6380
- ownerId?: string;
6381
- }
6361
+ embedding?: unknown;
6382
6362
 
6383
- export namespace Job {
6384
6363
  /**
6385
- * Metadata of the job with some additional information
6364
+ * Whether the workflow is locked. Locked workflows cannot be modified or deleted
6365
+ * except by the author or a project admin.
6386
6366
  */
6387
- export interface Metadata {
6367
+ isLocked?: boolean;
6368
+
6369
+ lastIndexedAt?: string;
6370
+
6371
+ /**
6372
+ * The type of indexing operation to perform in MeiliSearch
6373
+ */
6374
+ lastIndexingType?: 'CREATE' | 'DELETE' | 'UPDATE';
6375
+
6376
+ /**
6377
+ * Timestamp when the workflow flow was last saved as a Ready (App) snapshot. Used
6378
+ * to compute the WorkflowNodes snapshot key. Only set for workflows that have been
6379
+ * in the Ready state.
6380
+ */
6381
+ lastReadyFlowUpdatedAt?: string;
6382
+
6383
+ /**
6384
+ * ISO string timestamp when lock state was last changed.
6385
+ */
6386
+ lockedStateChangedAt?: string;
6387
+
6388
+ /**
6389
+ * UserId of the user who last changed the lock state.
6390
+ */
6391
+ lockedStateChangedBy?: string;
6392
+
6393
+ /**
6394
+ * Asset kinds produced by this workflow (if specified).
6395
+ */
6396
+ outputAssetKinds?: Array<'3d' | 'audio' | 'document' | 'image' | 'image-hdr' | 'json' | 'video'>;
6397
+
6398
+ /**
6399
+ * Currently the thumbnail is identical to the after asset.
6400
+ */
6401
+ thumbnail?: Workflow.Thumbnail;
6402
+
6403
+ /**
6404
+ * The UI configuration for the workflow. This is managed by scenario webapp.
6405
+ */
6406
+ uiConfig?: Workflow.UiConfig;
6407
+ }
6408
+
6409
+ export namespace Workflow {
6410
+ export interface Flow {
6388
6411
  /**
6389
- * List of produced assets for this job
6412
+ * The id of the node.
6390
6413
  */
6391
- assetIds?: Array<string>;
6414
+ id: string;
6392
6415
 
6393
6416
  /**
6394
- * Eventual error for the job
6417
+ * The type of the job for the node.
6395
6418
  */
6396
- error?: string | null;
6419
+ type:
6420
+ | 'custom-model'
6421
+ | 'for-each'
6422
+ | 'generate-prompt'
6423
+ | 'list'
6424
+ | 'logic'
6425
+ | 'model'
6426
+ | 'remove-background'
6427
+ | 'transform'
6428
+ | 'user-approval'
6429
+ | 'workflow';
6397
6430
 
6398
6431
  /**
6399
- * The flow of the job. Only available for workflow jobs.
6432
+ * Fixed number of iterations for a ForEach node. When set, the loop runs exactly
6433
+ * `count` times regardless of array input. When not set, the loop iterates over
6434
+ * the resolved array input. Only available for ForEach nodes.
6400
6435
  */
6401
- flow?: Array<Metadata.Flow>;
6436
+ count?: number;
6402
6437
 
6403
6438
  /**
6404
- * Actionable hint for the user explaining what went wrong and how to resolve it.
6439
+ * The nodes that this node depends on. Only available for nodes that have
6440
+ * dependencies. Mainly used for user approval nodes.
6405
6441
  */
6406
- hint?: string;
6442
+ dependsOn?: Array<string>;
6407
6443
 
6408
6444
  /**
6409
- * The inputs for the job
6445
+ * If true, the outputs of this node will be included in the workflow job's final
6446
+ * output. Only applicable to producing nodes (custom-model, inference, etc.). By
6447
+ * default, only last nodes (nodes not referenced by other nodes) contribute to
6448
+ * outputs. Set this to true to also include intermediate nodes in the final
6449
+ * output. Note: This should only be set to `true` or left undefined.
6410
6450
  */
6411
- input?: { [key: string]: unknown };
6451
+ includeOutputsInWorkflowJob?: true;
6412
6452
 
6413
6453
  /**
6414
- * May contain the output of the job for specific custom models jobs. Only
6415
- * available for custom models which generate non-assets outputs. Example: LLM text
6416
- * results.
6454
+ * The inputs of the node.
6417
6455
  */
6418
- output?: { [key: string]: unknown };
6456
+ inputs?: Array<Flow.Input>;
6419
6457
 
6420
6458
  /**
6421
- * For voice-clone jobs: the ID of the model being trained.
6459
+ * Statically-configured items for a List node. The node outputs this array as-is
6460
+ * when executed. Only available for List nodes. The values can be strings,
6461
+ * numbers, or asset IDs.
6422
6462
  */
6423
- outputModelId?: string;
6463
+ items?: Array<string>;
6424
6464
 
6425
6465
  /**
6426
- * The workflow ID of the job if job is part of a workflow.
6466
+ * Zero-based index of the iteration this node copy belongs to. Set on
6467
+ * dynamically-created copies of loop body nodes.
6427
6468
  */
6428
- workflowId?: string;
6469
+ iterationIndex?: number;
6429
6470
 
6430
6471
  /**
6431
- * The workflow job ID of the job if job is part of a workflow job.
6472
+ * The logic of the node. Only available for logic nodes.
6432
6473
  */
6433
- workflowJobId?: string;
6434
- }
6474
+ logic?: Flow.Logic;
6435
6475
 
6436
- export namespace Metadata {
6437
- export interface Flow {
6438
- /**
6439
- * The id of the node.
6440
- */
6441
- id: string;
6476
+ /**
6477
+ * The type of the logic for the node. Only available for logic nodes.
6478
+ */
6479
+ logicType?: 'if-else';
6480
+
6481
+ /**
6482
+ * IDs of the body template nodes that belong to this ForEach loop. At runtime
6483
+ * these templates are cloned once per iteration and marked Skipped. Only available
6484
+ * for ForEach nodes.
6485
+ */
6486
+ loopBodyNodeIds?: Array<string>;
6487
+
6488
+ /**
6489
+ * ID of the ForEach node that spawned this iteration copy. Set on
6490
+ * dynamically-created copies of loop body nodes.
6491
+ */
6492
+ loopNodeId?: string;
6442
6493
 
6494
+ /**
6495
+ * The model id for the node. Mainly used for custom model tasks.
6496
+ */
6497
+ modelId?: string;
6498
+
6499
+ /**
6500
+ * The workflow id for the node. Mainly used for workflow tasks.
6501
+ */
6502
+ workflowId?: string;
6503
+ }
6504
+
6505
+ export namespace Flow {
6506
+ /**
6507
+ * This is used to run the flow.
6508
+ */
6509
+ export interface Input {
6443
6510
  /**
6444
- * The status of the node. Only available for WorkflowJob nodes.
6511
+ * The name that must be user to call the model through the API
6445
6512
  */
6446
- status: 'failure' | 'pending' | 'processing' | 'skipped' | 'success';
6513
+ name: string;
6447
6514
 
6448
6515
  /**
6449
- * The type of the job for the node.
6516
+ * The data type of the input
6450
6517
  */
6451
6518
  type:
6452
- | 'custom-model'
6453
- | 'for-each'
6454
- | 'generate-prompt'
6455
- | 'list'
6456
- | 'logic'
6519
+ | 'boolean'
6520
+ | 'file'
6521
+ | 'file_array'
6522
+ | 'inputs_array'
6457
6523
  | 'model'
6458
- | 'remove-background'
6459
- | 'transform'
6460
- | 'user-approval'
6461
- | 'workflow';
6524
+ | 'model_array'
6525
+ | 'number'
6526
+ | 'number_array'
6527
+ | 'string'
6528
+ | 'string_array';
6462
6529
 
6463
6530
  /**
6464
- * List of produced assets for this node.
6531
+ * The allowed values for the input. For \`string\` or \`number\` types, creates a
6532
+ * single-select dropdown. For \`string_array\` type, creates a multi-select
6533
+ * dropdown.
6465
6534
  */
6466
- assets?: Array<Flow.Asset>;
6535
+ allowedValues?: Array<unknown>;
6467
6536
 
6468
6537
  /**
6469
- * Fixed number of iterations for a ForEach node. When set, the loop runs exactly
6470
- * `count` times regardless of array input. When not set, the loop iterates over
6471
- * the resolved array input. Only available for ForEach nodes.
6538
+ * Specifies the background behavior for the input. Only available for \`file\` and
6539
+ * \`file_array\` input types with kind \`image\`.
6472
6540
  */
6473
- count?: number;
6541
+ backgroundBehavior?: 'opaque' | 'transparent';
6474
6542
 
6475
6543
  /**
6476
- * The nodes that this node depends on. Only available for nodes that have
6477
- * dependencies. Mainly used for user approval nodes.
6544
+ * Whether the input is a color or not. Only available for \`string\` input type.
6478
6545
  */
6479
- dependsOn?: Array<string>;
6546
+ color?: boolean;
6480
6547
 
6481
6548
  /**
6482
- * If true, the outputs of this node will be included in the workflow job's final
6483
- * output. Only applicable to producing nodes (custom-model, inference, etc.). By
6484
- * default, only last nodes (nodes not referenced by other nodes) contribute to
6485
- * outputs. Set this to true to also include intermediate nodes in the final
6486
- * output. Note: This should only be set to `true` or left undefined.
6549
+ * Whether this input affects the model's cost calculation
6487
6550
  */
6488
- includeOutputsInWorkflowJob?: true;
6551
+ costImpact?: boolean;
6489
6552
 
6490
6553
  /**
6491
- * The inputs of the node.
6554
+ * The default value for the input
6492
6555
  */
6493
- inputs?: Array<Flow.Input>;
6556
+ default?: unknown;
6494
6557
 
6495
6558
  /**
6496
- * Statically-configured items for a List node. The node outputs this array as-is
6497
- * when executed. Only available for List nodes. The values can be strings,
6498
- * numbers, or asset IDs.
6559
+ * Help text displayed in the UI to provide additional information about the input
6499
6560
  */
6500
- items?: Array<string>;
6561
+ description?: string;
6501
6562
 
6502
6563
  /**
6503
- * Zero-based index of the iteration this node copy belongs to. Set on
6504
- * dynamically-created copies of loop body nodes.
6564
+ * Used to visually group inputs together in the UI. Inputs with the same group
6565
+ * value appear consecutively in the UI.
6505
6566
  */
6506
- iterationIndex?: number;
6567
+ group?: string;
6507
6568
 
6508
6569
  /**
6509
- * If the flow is part of a WorkflowJob, this is the jobId for the node. jobId is
6510
- * only available for nodes started. A node "Pending" for a running workflow job is
6511
- * not started.
6570
+ * Hint text displayed in the UI as a tooltip to guide the user
6512
6571
  */
6513
- jobId?: string;
6572
+ hint?: string;
6514
6573
 
6515
6574
  /**
6516
- * The logic of the node. Only available for logic nodes.
6575
+ * The list of inputs which form an object within a container array. All inputs are
6576
+ * the same as the current object. This is only available for type inputs_array
6577
+ * inputs.
6517
6578
  */
6518
- logic?: Flow.Logic;
6579
+ inputs?: Array<{ [key: string]: unknown }>;
6519
6580
 
6520
6581
  /**
6521
- * The type of the logic for the node. Only available for logic nodes.
6582
+ * The configured items for inputs_array type inputs. Each item is an array of
6583
+ * SubNodeInput that need ref/value resolution. Only available for inputs_array
6584
+ * type.
6522
6585
  */
6523
- logicType?: 'if-else';
6586
+ items?: Array<Array<Input.Item>>;
6524
6587
 
6525
6588
  /**
6526
- * IDs of the body template nodes that belong to this ForEach loop. At runtime
6527
- * these templates are cloned once per iteration and marked Skipped. Only available
6528
- * for ForEach nodes.
6589
+ * The asset kind of the input. Only taken into account for \`file\` and
6590
+ * \`file_array\` input types. If model provides multiple kinds, the input will be
6591
+ * not able to create the asset on the flight on API side with dataurl without
6592
+ * data:kind, prefix
6529
6593
  */
6530
- loopBodyNodeIds?: Array<string>;
6594
+ kind?: '3d' | 'audio' | 'document' | 'image' | 'image-hdr' | 'json' | 'video';
6531
6595
 
6532
6596
  /**
6533
- * ID of the ForEach node that spawned this iteration copy. Set on
6534
- * dynamically-created copies of loop body nodes.
6597
+ * The label displayed in the UI for this input
6535
6598
  */
6536
- loopNodeId?: string;
6599
+ label?: string;
6537
6600
 
6538
6601
  /**
6539
- * The model id for the node. Mainly used for custom model tasks.
6602
+ * The name of the file input field to use as the mask source
6540
6603
  */
6541
- modelId?: string;
6604
+ maskFrom?: string;
6542
6605
 
6543
6606
  /**
6544
- * The output of the node. Only available for logic nodes.
6607
+ * The maximum allowed value. Only available for \`number\` and \`array\` input
6608
+ * types.
6545
6609
  */
6546
- output?: unknown;
6610
+ max?: number;
6547
6611
 
6548
6612
  /**
6549
- * The workflow id for the node. Mainly used for workflow tasks.
6613
+ * The maximum allowed length for \`string\` inputs. Also applies to each item in
6614
+ * \`string_array\`.
6550
6615
  */
6551
- workflowId?: string;
6552
- }
6616
+ maxLength?: number;
6553
6617
 
6554
- export namespace Flow {
6555
- export interface Asset {
6556
- assetId: string;
6618
+ /**
6619
+ * The maximum allowed file size in bytes. Only applies to \`file\` and
6620
+ * \`file_array\` input types. Validated against \`asset.properties.size\` at job
6621
+ * creation time.
6622
+ */
6623
+ maxSize?: number;
6557
6624
 
6558
- url: string;
6559
- }
6625
+ /**
6626
+ * The minimum allowed value. Only available for \`number\` and array input types.
6627
+ */
6628
+ min?: number;
6560
6629
 
6561
6630
  /**
6562
- * This is used to run the flow.
6631
+ * The minimum allowed length for string inputs. Also applies to each item in
6632
+ * \`string_array\`.
6563
6633
  */
6564
- export interface Input {
6565
- /**
6566
- * The name that must be user to call the model through the API
6567
- */
6568
- name: string;
6634
+ minLength?: number;
6569
6635
 
6570
- /**
6571
- * The data type of the input
6572
- */
6573
- type:
6574
- | 'boolean'
6575
- | 'file'
6576
- | 'file_array'
6577
- | 'inputs_array'
6578
- | 'model'
6579
- | 'model_array'
6580
- | 'number'
6581
- | 'number_array'
6582
- | 'string'
6583
- | 'string_array';
6636
+ /**
6637
+ * The allowed model types for this input. Example: \`["flux.1-lora"]\`. Only
6638
+ * available for \`model_array\` input type.
6639
+ */
6640
+ modelTypes?: Array<
6641
+ | 'custom'
6642
+ | 'elevenlabs-voice'
6643
+ | 'flux.1'
6644
+ | 'flux.1-composition'
6645
+ | 'flux.1-kontext-dev'
6646
+ | 'flux.1-kontext-lora'
6647
+ | 'flux.1-krea-dev'
6648
+ | 'flux.1-krea-lora'
6649
+ | 'flux.1-lora'
6650
+ | 'flux.1-pro'
6651
+ | 'flux.1.1-pro-ultra'
6652
+ | 'flux.2-dev-edit-lora'
6653
+ | 'flux.2-dev-lora'
6654
+ | 'flux.2-klein-4b-edit-lora'
6655
+ | 'flux.2-klein-4b-lora'
6656
+ | 'flux.2-klein-9b-edit-lora'
6657
+ | 'flux.2-klein-9b-lora'
6658
+ | 'flux.2-klein-base-4b-edit-lora'
6659
+ | 'flux.2-klein-base-4b-lora'
6660
+ | 'flux.2-klein-base-9b-edit-lora'
6661
+ | 'flux.2-klein-base-9b-lora'
6662
+ | 'flux1.1-pro'
6663
+ | 'gpt-image-1'
6664
+ | 'qwen-image-2512-lora'
6665
+ | 'qwen-image-edit-2509-lora'
6666
+ | 'qwen-image-edit-2511-lora'
6667
+ | 'qwen-image-edit-lora'
6668
+ | 'qwen-image-lora'
6669
+ | 'sd-1_5'
6670
+ | 'sd-1_5-composition'
6671
+ | 'sd-1_5-lora'
6672
+ | 'sd-xl'
6673
+ | 'sd-xl-composition'
6674
+ | 'sd-xl-lora'
6675
+ | 'zimage-de-turbo-lora'
6676
+ | 'zimage-lora'
6677
+ | 'zimage-turbo-lora'
6678
+ >;
6584
6679
 
6585
- /**
6586
- * The allowed values for the input. For \`string\` or \`number\` types, creates a
6587
- * single-select dropdown. For \`string_array\` type, creates a multi-select
6588
- * dropdown.
6589
- */
6590
- allowedValues?: Array<unknown>;
6680
+ /**
6681
+ * Whether this input represents a parent asset to assign to the produced assets.
6682
+ * Only available for \`file\` and \`file_array\` input types.
6683
+ *
6684
+ * For \`file_array\`, the parent asset is the first item in the array.
6685
+ */
6686
+ parent?: boolean;
6591
6687
 
6592
- /**
6688
+ /**
6689
+ * Placeholder text for the input. Only available for 'string' input type.
6690
+ */
6691
+ placeholder?: string;
6692
+
6693
+ /**
6694
+ * Whether the input is a prompt. When true, displays as a text area with prompt
6695
+ * spark feature. Only available for \`string\` input type.
6696
+ */
6697
+ prompt?: boolean;
6698
+
6699
+ /**
6700
+ * Whether the input is used with prompt spark. Only available for \`string\` input
6701
+ * type.
6702
+ */
6703
+ promptSpark?: boolean;
6704
+
6705
+ /**
6706
+ * The reference to another input or output of the same workflow. Must have at
6707
+ * least one of node or conditional.
6708
+ */
6709
+ ref?: Input.Ref;
6710
+
6711
+ /**
6712
+ * Set of rules that describes when this input is required:
6713
+ *
6714
+ * - \`always\`: Input is always required
6715
+ * - \`ifNotDefined\`: Input is required when another specified input is not
6716
+ * defined
6717
+ * - \`ifDefined\`: Input is required when another specified input is defined
6718
+ * - \`conditionalValues\`: Input is required when another input has a specific
6719
+ * value
6720
+ *
6721
+ * By default, the input is not required.
6722
+ */
6723
+ required?: Input.Required;
6724
+
6725
+ /**
6726
+ * The step increment for numeric inputs. Only available for \`number\` input type.
6727
+ */
6728
+ step?: number;
6729
+
6730
+ /**
6731
+ * The value of the input. This is the value of the input that will be used to run
6732
+ * the node. Only available for flows managed by a WorkflowJob.
6733
+ */
6734
+ value?: unknown;
6735
+ }
6736
+
6737
+ export namespace Input {
6738
+ /**
6739
+ * A sub-input within an inputs_array item. Same as NodeInput but without the
6740
+ * recursive items field.
6741
+ */
6742
+ export interface Item {
6743
+ /**
6744
+ * The name that must be user to call the model through the API
6745
+ */
6746
+ name: string;
6747
+
6748
+ /**
6749
+ * The data type of the input
6750
+ */
6751
+ type:
6752
+ | 'boolean'
6753
+ | 'file'
6754
+ | 'file_array'
6755
+ | 'inputs_array'
6756
+ | 'model'
6757
+ | 'model_array'
6758
+ | 'number'
6759
+ | 'number_array'
6760
+ | 'string'
6761
+ | 'string_array';
6762
+
6763
+ /**
6764
+ * The allowed values for the input. For \`string\` or \`number\` types, creates a
6765
+ * single-select dropdown. For \`string_array\` type, creates a multi-select
6766
+ * dropdown.
6767
+ */
6768
+ allowedValues?: Array<unknown>;
6769
+
6770
+ /**
6593
6771
  * Specifies the background behavior for the input. Only available for \`file\` and
6594
6772
  * \`file_array\` input types with kind \`image\`.
6595
6773
  */
@@ -6633,13 +6811,6 @@ export namespace WorkflowRunResponse {
6633
6811
  */
6634
6812
  inputs?: Array<{ [key: string]: unknown }>;
6635
6813
 
6636
- /**
6637
- * The configured items for inputs_array type inputs. Each item is an array of
6638
- * SubNodeInput that need ref/value resolution. Only available for inputs_array
6639
- * type.
6640
- */
6641
- items?: Array<Array<Input.Item>>;
6642
-
6643
6814
  /**
6644
6815
  * The asset kind of the input. Only taken into account for \`file\` and
6645
6816
  * \`file_array\` input types. If model provides multiple kinds, the input will be
@@ -6761,7 +6932,7 @@ export namespace WorkflowRunResponse {
6761
6932
  * The reference to another input or output of the same workflow. Must have at
6762
6933
  * least one of node or conditional.
6763
6934
  */
6764
- ref?: Input.Ref;
6935
+ ref?: Item.Ref;
6765
6936
 
6766
6937
  /**
6767
6938
  * Set of rules that describes when this input is required:
@@ -6775,7 +6946,7 @@ export namespace WorkflowRunResponse {
6775
6946
  *
6776
6947
  * By default, the input is not required.
6777
6948
  */
6778
- required?: Input.Required;
6949
+ required?: Item.Required;
6779
6950
 
6780
6951
  /**
6781
6952
  * The step increment for numeric inputs. Only available for \`number\` input type.
@@ -6789,945 +6960,953 @@ export namespace WorkflowRunResponse {
6789
6960
  value?: unknown;
6790
6961
  }
6791
6962
 
6792
- export namespace Input {
6963
+ export namespace Item {
6793
6964
  /**
6794
- * A sub-input within an inputs_array item. Same as NodeInput but without the
6795
- * recursive items field.
6965
+ * The reference to another input or output of the same workflow. Must have at
6966
+ * least one of node or conditional.
6796
6967
  */
6797
- export interface Item {
6798
- /**
6799
- * The name that must be user to call the model through the API
6800
- */
6801
- name: string;
6802
-
6968
+ export interface Ref {
6803
6969
  /**
6804
- * The data type of the input
6970
+ * The conditional nodes to reference. If the conditional nodes are successful, the
6971
+ * node will be successful. If the conditional nodes are skipped, the node will be
6972
+ * skipped. Contains an array of node ids used to check the status of the nodes.
6805
6973
  */
6806
- type:
6807
- | 'boolean'
6808
- | 'file'
6809
- | 'file_array'
6810
- | 'inputs_array'
6811
- | 'model'
6812
- | 'model_array'
6813
- | 'number'
6814
- | 'number_array'
6815
- | 'string'
6816
- | 'string_array';
6974
+ conditional?: Array<string>;
6817
6975
 
6818
6976
  /**
6819
- * The allowed values for the input. For \`string\` or \`number\` types, creates a
6820
- * single-select dropdown. For \`string_array\` type, creates a multi-select
6821
- * dropdown.
6977
+ * This is the desired node output value if ref is an if/else node.
6822
6978
  */
6823
- allowedValues?: Array<unknown>;
6979
+ equal?: string;
6824
6980
 
6825
6981
  /**
6826
- * Specifies the background behavior for the input. Only available for \`file\` and
6827
- * \`file_array\` input types with kind \`image\`.
6982
+ * The name of the input or output to reference. If the type is 'workflow', the
6983
+ * name is the name of the input of the workflow is required If the type is 'node',
6984
+ * the name is not mandatory, except if you want all outputs of the node. To get
6985
+ * all outputs of a node, you can use the name 'all'.
6828
6986
  */
6829
- backgroundBehavior?: 'opaque' | 'transparent';
6987
+ name?: string;
6830
6988
 
6831
6989
  /**
6832
- * Whether the input is a color or not. Only available for \`string\` input type.
6990
+ * The node id or 'workflow' if the source is a workflow input.
6833
6991
  */
6834
- color?: boolean;
6992
+ node?: string;
6993
+ }
6835
6994
 
6995
+ /**
6996
+ * Set of rules that describes when this input is required:
6997
+ *
6998
+ * - \`always\`: Input is always required
6999
+ * - \`ifNotDefined\`: Input is required when another specified input is not
7000
+ * defined
7001
+ * - \`ifDefined\`: Input is required when another specified input is defined
7002
+ * - \`conditionalValues\`: Input is required when another input has a specific
7003
+ * value
7004
+ *
7005
+ * By default, the input is not required.
7006
+ */
7007
+ export interface Required {
6836
7008
  /**
6837
- * Whether this input affects the model's cost calculation
7009
+ * Whether the input is always required
6838
7010
  */
6839
- costImpact?: boolean;
7011
+ always?: boolean;
6840
7012
 
6841
7013
  /**
6842
- * The default value for the input
7014
+ * Makes this input required when another input has a specific value:
7015
+ *
7016
+ * - Key: name of the input to check
7017
+ * - Value: operation and allowed values that trigger the requirement
6843
7018
  */
6844
- default?: unknown;
7019
+ conditionalValues?: unknown;
6845
7020
 
6846
7021
  /**
6847
- * Help text displayed in the UI to provide additional information about the input
7022
+ * Makes this input required when another input is defined:
7023
+ *
7024
+ * - Key: name of the input that must be defined
7025
+ * - Value: message to display when this input is required
6848
7026
  */
6849
- description?: string;
7027
+ ifDefined?: unknown;
6850
7028
 
6851
7029
  /**
6852
- * Used to visually group inputs together in the UI. Inputs with the same group
6853
- * value appear consecutively in the UI.
7030
+ * Makes this input required when another input is not defined:
7031
+ *
7032
+ * - Key: name of the input that must be undefined
7033
+ * - Value: message to display when this input is required
6854
7034
  */
6855
- group?: string;
7035
+ ifNotDefined?: unknown;
7036
+ }
7037
+ }
6856
7038
 
6857
- /**
6858
- * Hint text displayed in the UI as a tooltip to guide the user
6859
- */
6860
- hint?: string;
7039
+ /**
7040
+ * The reference to another input or output of the same workflow. Must have at
7041
+ * least one of node or conditional.
7042
+ */
7043
+ export interface Ref {
7044
+ /**
7045
+ * The conditional nodes to reference. If the conditional nodes are successful, the
7046
+ * node will be successful. If the conditional nodes are skipped, the node will be
7047
+ * skipped. Contains an array of node ids used to check the status of the nodes.
7048
+ */
7049
+ conditional?: Array<string>;
6861
7050
 
6862
- /**
6863
- * The list of inputs which form an object within a container array. All inputs are
6864
- * the same as the current object. This is only available for type inputs_array
6865
- * inputs.
6866
- */
6867
- inputs?: Array<{ [key: string]: unknown }>;
7051
+ /**
7052
+ * This is the desired node output value if ref is an if/else node.
7053
+ */
7054
+ equal?: string;
6868
7055
 
6869
- /**
6870
- * The asset kind of the input. Only taken into account for \`file\` and
6871
- * \`file_array\` input types. If model provides multiple kinds, the input will be
6872
- * not able to create the asset on the flight on API side with dataurl without
6873
- * data:kind, prefix
6874
- */
6875
- kind?: '3d' | 'audio' | 'document' | 'image' | 'image-hdr' | 'json' | 'video';
7056
+ /**
7057
+ * The name of the input or output to reference. If the type is 'workflow', the
7058
+ * name is the name of the input of the workflow is required If the type is 'node',
7059
+ * the name is not mandatory, except if you want all outputs of the node. To get
7060
+ * all outputs of a node, you can use the name 'all'.
7061
+ */
7062
+ name?: string;
6876
7063
 
6877
- /**
6878
- * The label displayed in the UI for this input
6879
- */
6880
- label?: string;
7064
+ /**
7065
+ * The node id or 'workflow' if the source is a workflow input.
7066
+ */
7067
+ node?: string;
7068
+ }
6881
7069
 
6882
- /**
6883
- * The name of the file input field to use as the mask source
6884
- */
6885
- maskFrom?: string;
7070
+ /**
7071
+ * Set of rules that describes when this input is required:
7072
+ *
7073
+ * - \`always\`: Input is always required
7074
+ * - \`ifNotDefined\`: Input is required when another specified input is not
7075
+ * defined
7076
+ * - \`ifDefined\`: Input is required when another specified input is defined
7077
+ * - \`conditionalValues\`: Input is required when another input has a specific
7078
+ * value
7079
+ *
7080
+ * By default, the input is not required.
7081
+ */
7082
+ export interface Required {
7083
+ /**
7084
+ * Whether the input is always required
7085
+ */
7086
+ always?: boolean;
6886
7087
 
6887
- /**
6888
- * The maximum allowed value. Only available for \`number\` and \`array\` input
6889
- * types.
6890
- */
6891
- max?: number;
7088
+ /**
7089
+ * Makes this input required when another input has a specific value:
7090
+ *
7091
+ * - Key: name of the input to check
7092
+ * - Value: operation and allowed values that trigger the requirement
7093
+ */
7094
+ conditionalValues?: unknown;
6892
7095
 
6893
- /**
6894
- * The maximum allowed length for \`string\` inputs. Also applies to each item in
6895
- * \`string_array\`.
6896
- */
6897
- maxLength?: number;
7096
+ /**
7097
+ * Makes this input required when another input is defined:
7098
+ *
7099
+ * - Key: name of the input that must be defined
7100
+ * - Value: message to display when this input is required
7101
+ */
7102
+ ifDefined?: unknown;
6898
7103
 
6899
- /**
6900
- * The maximum allowed file size in bytes. Only applies to \`file\` and
6901
- * \`file_array\` input types. Validated against \`asset.properties.size\` at job
6902
- * creation time.
6903
- */
6904
- maxSize?: number;
7104
+ /**
7105
+ * Makes this input required when another input is not defined:
7106
+ *
7107
+ * - Key: name of the input that must be undefined
7108
+ * - Value: message to display when this input is required
7109
+ */
7110
+ ifNotDefined?: unknown;
7111
+ }
7112
+ }
6905
7113
 
6906
- /**
6907
- * The minimum allowed value. Only available for \`number\` and array input types.
6908
- */
6909
- min?: number;
7114
+ /**
7115
+ * The logic of the node. Only available for logic nodes.
7116
+ */
7117
+ export interface Logic {
7118
+ /**
7119
+ * The cases of the logic. Only available for if/else nodes.
7120
+ */
7121
+ cases?: Array<Logic.Case>;
6910
7122
 
6911
- /**
6912
- * The minimum allowed length for string inputs. Also applies to each item in
6913
- * \`string_array\`.
6914
- */
6915
- minLength?: number;
7123
+ /**
7124
+ * The default case of the logic. Contains the id/output of the node to execute if
7125
+ * no case is matched. Only available for if/else nodes.
7126
+ */
7127
+ default?: string;
6916
7128
 
6917
- /**
6918
- * The allowed model types for this input. Example: \`["flux.1-lora"]\`. Only
6919
- * available for \`model_array\` input type.
6920
- */
6921
- modelTypes?: Array<
6922
- | 'custom'
6923
- | 'elevenlabs-voice'
6924
- | 'flux.1'
6925
- | 'flux.1-composition'
6926
- | 'flux.1-kontext-dev'
6927
- | 'flux.1-kontext-lora'
6928
- | 'flux.1-krea-dev'
6929
- | 'flux.1-krea-lora'
6930
- | 'flux.1-lora'
6931
- | 'flux.1-pro'
6932
- | 'flux.1.1-pro-ultra'
6933
- | 'flux.2-dev-edit-lora'
6934
- | 'flux.2-dev-lora'
6935
- | 'flux.2-klein-4b-edit-lora'
6936
- | 'flux.2-klein-4b-lora'
6937
- | 'flux.2-klein-9b-edit-lora'
6938
- | 'flux.2-klein-9b-lora'
6939
- | 'flux.2-klein-base-4b-edit-lora'
6940
- | 'flux.2-klein-base-4b-lora'
6941
- | 'flux.2-klein-base-9b-edit-lora'
6942
- | 'flux.2-klein-base-9b-lora'
6943
- | 'flux1.1-pro'
6944
- | 'gpt-image-1'
6945
- | 'qwen-image-2512-lora'
6946
- | 'qwen-image-edit-2509-lora'
6947
- | 'qwen-image-edit-2511-lora'
6948
- | 'qwen-image-edit-lora'
6949
- | 'qwen-image-lora'
6950
- | 'sd-1_5'
6951
- | 'sd-1_5-composition'
6952
- | 'sd-1_5-lora'
6953
- | 'sd-xl'
6954
- | 'sd-xl-composition'
6955
- | 'sd-xl-lora'
6956
- | 'zimage-de-turbo-lora'
6957
- | 'zimage-lora'
6958
- | 'zimage-turbo-lora'
6959
- >;
7129
+ /**
7130
+ * The transform of the logic. Only available for transform nodes.
7131
+ */
7132
+ transform?: string;
7133
+ }
6960
7134
 
6961
- /**
6962
- * Whether this input represents a parent asset to assign to the produced assets.
6963
- * Only available for \`file\` and \`file_array\` input types.
6964
- *
6965
- * For \`file_array\`, the parent asset is the first item in the array.
6966
- */
6967
- parent?: boolean;
7135
+ export namespace Logic {
7136
+ export interface Case {
7137
+ condition: string;
6968
7138
 
6969
- /**
6970
- * Placeholder text for the input. Only available for 'string' input type.
6971
- */
6972
- placeholder?: string;
7139
+ value: string;
7140
+ }
7141
+ }
7142
+ }
6973
7143
 
6974
- /**
6975
- * Whether the input is a prompt. When true, displays as a text area with prompt
6976
- * spark feature. Only available for \`string\` input type.
6977
- */
6978
- prompt?: boolean;
7144
+ /**
7145
+ * Defines the input parameters for a model. Use this to understand the available
7146
+ * input parameters for a given `modelId` when calling
7147
+ * `POST /generate/custom/{modelId}`. See {@link
7148
+ * https://docs.scenario.com/docs/video-generation} for examples.
7149
+ */
7150
+ export interface Input {
7151
+ /**
7152
+ * The name that must be user to call the model through the API
7153
+ */
7154
+ name: string;
6979
7155
 
6980
- /**
6981
- * Whether the input is used with prompt spark. Only available for \`string\` input
6982
- * type.
6983
- */
6984
- promptSpark?: boolean;
7156
+ /**
7157
+ * The data type of the input
7158
+ */
7159
+ type:
7160
+ | 'boolean'
7161
+ | 'file'
7162
+ | 'file_array'
7163
+ | 'inputs_array'
7164
+ | 'model'
7165
+ | 'model_array'
7166
+ | 'number'
7167
+ | 'number_array'
7168
+ | 'string'
7169
+ | 'string_array';
6985
7170
 
6986
- /**
6987
- * The reference to another input or output of the same workflow. Must have at
6988
- * least one of node or conditional.
6989
- */
6990
- ref?: Item.Ref;
7171
+ /**
7172
+ * The allowed values for the input. For \`string\` or \`number\` types, creates a
7173
+ * single-select dropdown. For \`string_array\` type, creates a multi-select
7174
+ * dropdown.
7175
+ */
7176
+ allowedValues?: Array<unknown>;
6991
7177
 
6992
- /**
6993
- * Set of rules that describes when this input is required:
6994
- *
6995
- * - \`always\`: Input is always required
6996
- * - \`ifNotDefined\`: Input is required when another specified input is not
6997
- * defined
6998
- * - \`ifDefined\`: Input is required when another specified input is defined
6999
- * - \`conditionalValues\`: Input is required when another input has a specific
7000
- * value
7001
- *
7002
- * By default, the input is not required.
7003
- */
7004
- required?: Item.Required;
7178
+ /**
7179
+ * Specifies the background behavior for the input. Only available for \`file\` and
7180
+ * \`file_array\` input types with kind \`image\`.
7181
+ */
7182
+ backgroundBehavior?: 'opaque' | 'transparent';
7005
7183
 
7006
- /**
7007
- * The step increment for numeric inputs. Only available for \`number\` input type.
7008
- */
7009
- step?: number;
7184
+ /**
7185
+ * Whether the input is a color or not. Only available for \`string\` input type.
7186
+ */
7187
+ color?: boolean;
7010
7188
 
7011
- /**
7012
- * The value of the input. This is the value of the input that will be used to run
7013
- * the node. Only available for flows managed by a WorkflowJob.
7014
- */
7015
- value?: unknown;
7016
- }
7189
+ /**
7190
+ * Whether this input affects the model's cost calculation
7191
+ */
7192
+ costImpact?: boolean;
7017
7193
 
7018
- export namespace Item {
7019
- /**
7020
- * The reference to another input or output of the same workflow. Must have at
7021
- * least one of node or conditional.
7022
- */
7023
- export interface Ref {
7024
- /**
7025
- * The conditional nodes to reference. If the conditional nodes are successful, the
7026
- * node will be successful. If the conditional nodes are skipped, the node will be
7027
- * skipped. Contains an array of node ids used to check the status of the nodes.
7028
- */
7029
- conditional?: Array<string>;
7194
+ /**
7195
+ * The default value for the input
7196
+ */
7197
+ default?: unknown;
7030
7198
 
7031
- /**
7032
- * This is the desired node output value if ref is an if/else node.
7033
- */
7034
- equal?: string;
7199
+ /**
7200
+ * Help text displayed in the UI to provide additional information about the input
7201
+ */
7202
+ description?: string;
7035
7203
 
7036
- /**
7037
- * The name of the input or output to reference. If the type is 'workflow', the
7038
- * name is the name of the input of the workflow is required If the type is 'node',
7039
- * the name is not mandatory, except if you want all outputs of the node. To get
7040
- * all outputs of a node, you can use the name 'all'.
7041
- */
7042
- name?: string;
7204
+ /**
7205
+ * Used to visually group inputs together in the UI. Inputs with the same group
7206
+ * value appear consecutively in the UI.
7207
+ */
7208
+ group?: string;
7043
7209
 
7044
- /**
7045
- * The node id or 'workflow' if the source is a workflow input.
7046
- */
7047
- node?: string;
7048
- }
7210
+ /**
7211
+ * Hint text displayed in the UI as a tooltip to guide the user
7212
+ */
7213
+ hint?: string;
7049
7214
 
7050
- /**
7051
- * Set of rules that describes when this input is required:
7052
- *
7053
- * - \`always\`: Input is always required
7054
- * - \`ifNotDefined\`: Input is required when another specified input is not
7055
- * defined
7056
- * - \`ifDefined\`: Input is required when another specified input is defined
7057
- * - \`conditionalValues\`: Input is required when another input has a specific
7058
- * value
7059
- *
7060
- * By default, the input is not required.
7061
- */
7062
- export interface Required {
7063
- /**
7064
- * Whether the input is always required
7065
- */
7066
- always?: boolean;
7067
-
7068
- /**
7069
- * Makes this input required when another input has a specific value:
7070
- *
7071
- * - Key: name of the input to check
7072
- * - Value: operation and allowed values that trigger the requirement
7073
- */
7074
- conditionalValues?: unknown;
7215
+ /**
7216
+ * The list of inputs which form an object within a container array. All inputs are
7217
+ * the same as the current object. This is only available for type inputs_array
7218
+ * inputs.
7219
+ */
7220
+ inputs?: Array<{ [key: string]: unknown }>;
7075
7221
 
7076
- /**
7077
- * Makes this input required when another input is defined:
7078
- *
7079
- * - Key: name of the input that must be defined
7080
- * - Value: message to display when this input is required
7081
- */
7082
- ifDefined?: unknown;
7222
+ /**
7223
+ * The asset kind of the input. Only taken into account for \`file\` and
7224
+ * \`file_array\` input types. If model provides multiple kinds, the input will be
7225
+ * not able to create the asset on the flight on API side with dataurl without
7226
+ * data:kind, prefix
7227
+ */
7228
+ kind?: '3d' | 'audio' | 'document' | 'image' | 'image-hdr' | 'json' | 'video';
7083
7229
 
7084
- /**
7085
- * Makes this input required when another input is not defined:
7086
- *
7087
- * - Key: name of the input that must be undefined
7088
- * - Value: message to display when this input is required
7089
- */
7090
- ifNotDefined?: unknown;
7091
- }
7092
- }
7230
+ /**
7231
+ * The label displayed in the UI for this input
7232
+ */
7233
+ label?: string;
7093
7234
 
7094
- /**
7095
- * The reference to another input or output of the same workflow. Must have at
7096
- * least one of node or conditional.
7097
- */
7098
- export interface Ref {
7099
- /**
7100
- * The conditional nodes to reference. If the conditional nodes are successful, the
7101
- * node will be successful. If the conditional nodes are skipped, the node will be
7102
- * skipped. Contains an array of node ids used to check the status of the nodes.
7103
- */
7104
- conditional?: Array<string>;
7235
+ /**
7236
+ * The name of the file input field to use as the mask source
7237
+ */
7238
+ maskFrom?: string;
7105
7239
 
7106
- /**
7107
- * This is the desired node output value if ref is an if/else node.
7108
- */
7109
- equal?: string;
7240
+ /**
7241
+ * The maximum allowed value. Only available for \`number\` and \`array\` input
7242
+ * types.
7243
+ */
7244
+ max?: number;
7110
7245
 
7111
- /**
7112
- * The name of the input or output to reference. If the type is 'workflow', the
7113
- * name is the name of the input of the workflow is required If the type is 'node',
7114
- * the name is not mandatory, except if you want all outputs of the node. To get
7115
- * all outputs of a node, you can use the name 'all'.
7116
- */
7117
- name?: string;
7246
+ /**
7247
+ * The maximum allowed length for \`string\` inputs. Also applies to each item in
7248
+ * \`string_array\`.
7249
+ */
7250
+ maxLength?: number;
7118
7251
 
7119
- /**
7120
- * The node id or 'workflow' if the source is a workflow input.
7121
- */
7122
- node?: string;
7123
- }
7252
+ /**
7253
+ * The maximum allowed file size in bytes. Only applies to \`file\` and
7254
+ * \`file_array\` input types. Validated against \`asset.properties.size\` at job
7255
+ * creation time.
7256
+ */
7257
+ maxSize?: number;
7124
7258
 
7125
- /**
7126
- * Set of rules that describes when this input is required:
7127
- *
7128
- * - \`always\`: Input is always required
7129
- * - \`ifNotDefined\`: Input is required when another specified input is not
7130
- * defined
7131
- * - \`ifDefined\`: Input is required when another specified input is defined
7132
- * - \`conditionalValues\`: Input is required when another input has a specific
7133
- * value
7134
- *
7135
- * By default, the input is not required.
7136
- */
7137
- export interface Required {
7138
- /**
7139
- * Whether the input is always required
7140
- */
7141
- always?: boolean;
7259
+ /**
7260
+ * The minimum allowed value. Only available for \`number\` and array input types.
7261
+ */
7262
+ min?: number;
7142
7263
 
7143
- /**
7144
- * Makes this input required when another input has a specific value:
7145
- *
7146
- * - Key: name of the input to check
7147
- * - Value: operation and allowed values that trigger the requirement
7148
- */
7149
- conditionalValues?: unknown;
7264
+ /**
7265
+ * The minimum allowed length for string inputs. Also applies to each item in
7266
+ * \`string_array\`.
7267
+ */
7268
+ minLength?: number;
7150
7269
 
7151
- /**
7152
- * Makes this input required when another input is defined:
7153
- *
7154
- * - Key: name of the input that must be defined
7155
- * - Value: message to display when this input is required
7156
- */
7157
- ifDefined?: unknown;
7270
+ /**
7271
+ * The allowed model types for this input. Example: \`["flux.1-lora"]\`. Only
7272
+ * available for \`model_array\` input type.
7273
+ */
7274
+ modelTypes?: Array<
7275
+ | 'custom'
7276
+ | 'elevenlabs-voice'
7277
+ | 'flux.1'
7278
+ | 'flux.1-composition'
7279
+ | 'flux.1-kontext-dev'
7280
+ | 'flux.1-kontext-lora'
7281
+ | 'flux.1-krea-dev'
7282
+ | 'flux.1-krea-lora'
7283
+ | 'flux.1-lora'
7284
+ | 'flux.1-pro'
7285
+ | 'flux.1.1-pro-ultra'
7286
+ | 'flux.2-dev-edit-lora'
7287
+ | 'flux.2-dev-lora'
7288
+ | 'flux.2-klein-4b-edit-lora'
7289
+ | 'flux.2-klein-4b-lora'
7290
+ | 'flux.2-klein-9b-edit-lora'
7291
+ | 'flux.2-klein-9b-lora'
7292
+ | 'flux.2-klein-base-4b-edit-lora'
7293
+ | 'flux.2-klein-base-4b-lora'
7294
+ | 'flux.2-klein-base-9b-edit-lora'
7295
+ | 'flux.2-klein-base-9b-lora'
7296
+ | 'flux1.1-pro'
7297
+ | 'gpt-image-1'
7298
+ | 'qwen-image-2512-lora'
7299
+ | 'qwen-image-edit-2509-lora'
7300
+ | 'qwen-image-edit-2511-lora'
7301
+ | 'qwen-image-edit-lora'
7302
+ | 'qwen-image-lora'
7303
+ | 'sd-1_5'
7304
+ | 'sd-1_5-composition'
7305
+ | 'sd-1_5-lora'
7306
+ | 'sd-xl'
7307
+ | 'sd-xl-composition'
7308
+ | 'sd-xl-lora'
7309
+ | 'zimage-de-turbo-lora'
7310
+ | 'zimage-lora'
7311
+ | 'zimage-turbo-lora'
7312
+ >;
7158
7313
 
7159
- /**
7160
- * Makes this input required when another input is not defined:
7161
- *
7162
- * - Key: name of the input that must be undefined
7163
- * - Value: message to display when this input is required
7164
- */
7165
- ifNotDefined?: unknown;
7166
- }
7167
- }
7314
+ /**
7315
+ * Whether this input represents a parent asset to assign to the produced assets.
7316
+ * Only available for \`file\` and \`file_array\` input types.
7317
+ *
7318
+ * For \`file_array\`, the parent asset is the first item in the array.
7319
+ */
7320
+ parent?: boolean;
7168
7321
 
7169
- /**
7170
- * The logic of the node. Only available for logic nodes.
7171
- */
7172
- export interface Logic {
7173
- /**
7174
- * The cases of the logic. Only available for if/else nodes.
7175
- */
7176
- cases?: Array<Logic.Case>;
7322
+ /**
7323
+ * Placeholder text for the input. Only available for 'string' input type.
7324
+ */
7325
+ placeholder?: string;
7177
7326
 
7178
- /**
7179
- * The default case of the logic. Contains the id/output of the node to execute if
7180
- * no case is matched. Only available for if/else nodes.
7181
- */
7182
- default?: string;
7327
+ /**
7328
+ * Whether the input is a prompt. When true, displays as a text area with prompt
7329
+ * spark feature. Only available for \`string\` input type.
7330
+ */
7331
+ prompt?: boolean;
7183
7332
 
7184
- /**
7185
- * The transform of the logic. Only available for transform nodes.
7186
- */
7187
- transform?: string;
7188
- }
7333
+ /**
7334
+ * Whether the input is used with prompt spark. Only available for \`string\` input
7335
+ * type.
7336
+ */
7337
+ promptSpark?: boolean;
7189
7338
 
7190
- export namespace Logic {
7191
- export interface Case {
7192
- condition: string;
7339
+ /**
7340
+ * Set of rules that describes when this input is required:
7341
+ *
7342
+ * - \`always\`: Input is always required
7343
+ * - \`ifNotDefined\`: Input is required when another specified input is not
7344
+ * defined
7345
+ * - \`ifDefined\`: Input is required when another specified input is defined
7346
+ * - \`conditionalValues\`: Input is required when another input has a specific
7347
+ * value
7348
+ *
7349
+ * By default, the input is not required.
7350
+ */
7351
+ required?: Input.Required;
7193
7352
 
7194
- value: string;
7195
- }
7196
- }
7197
- }
7353
+ /**
7354
+ * The step increment for numeric inputs. Only available for \`number\` input type.
7355
+ */
7356
+ step?: number;
7198
7357
  }
7199
7358
 
7200
- export interface StatusHistory {
7201
- date: string;
7359
+ export namespace Input {
7360
+ /**
7361
+ * Set of rules that describes when this input is required:
7362
+ *
7363
+ * - \`always\`: Input is always required
7364
+ * - \`ifNotDefined\`: Input is required when another specified input is not
7365
+ * defined
7366
+ * - \`ifDefined\`: Input is required when another specified input is defined
7367
+ * - \`conditionalValues\`: Input is required when another input has a specific
7368
+ * value
7369
+ *
7370
+ * By default, the input is not required.
7371
+ */
7372
+ export interface Required {
7373
+ /**
7374
+ * Whether the input is always required
7375
+ */
7376
+ always?: boolean;
7202
7377
 
7203
- status:
7204
- | 'canceled'
7205
- | 'failure'
7206
- | 'finalizing'
7207
- | 'in-progress'
7208
- | 'pending'
7209
- | 'queued'
7210
- | 'success'
7211
- | 'warming-up';
7212
- }
7378
+ /**
7379
+ * Makes this input required when another input has a specific value:
7380
+ *
7381
+ * - Key: name of the input to check
7382
+ * - Value: operation and allowed values that trigger the requirement
7383
+ */
7384
+ conditionalValues?: unknown;
7213
7385
 
7214
- /**
7215
- * The billing of the job
7216
- */
7217
- export interface Billing {
7218
- cuCost: number;
7386
+ /**
7387
+ * Makes this input required when another input is defined:
7388
+ *
7389
+ * - Key: name of the input that must be defined
7390
+ * - Value: message to display when this input is required
7391
+ */
7392
+ ifDefined?: unknown;
7219
7393
 
7220
- cuDiscount: number;
7394
+ /**
7395
+ * Makes this input required when another input is not defined:
7396
+ *
7397
+ * - Key: name of the input that must be undefined
7398
+ * - Value: message to display when this input is required
7399
+ */
7400
+ ifNotDefined?: unknown;
7401
+ }
7221
7402
  }
7222
- }
7223
-
7224
- export interface Workflow {
7225
- /**
7226
- * Unique identifier of the workflow.
7227
- */
7228
- id: string;
7229
-
7230
- /**
7231
- * User that created the workflow.
7232
- */
7233
- authorId: string;
7234
-
7235
- /**
7236
- * ISO string
7237
- */
7238
- createdAt: string;
7239
-
7240
- /**
7241
- * Full description of what the workflow does.
7242
- */
7243
- description: string;
7244
-
7245
- /**
7246
- * The UI data about the workflow. This is managed by scenario webapp.
7247
- */
7248
- editorInfo: { [key: string]: unknown };
7249
-
7250
- /**
7251
- * The flow of the workflow.
7252
- */
7253
- flow: Array<Workflow.Flow>;
7254
-
7255
- /**
7256
- * The inputs of the workflow.
7257
- */
7258
- inputs: Array<Workflow.Input>;
7259
-
7260
- /**
7261
- * Human-readable name of the workflow.
7262
- */
7263
- name: string;
7264
-
7265
- /**
7266
- * Project that owns the workflow.
7267
- */
7268
- ownerId: string;
7269
-
7270
- /**
7271
- * Visibility setting for the workflow.
7272
- */
7273
- privacy: 'private' | 'public' | 'unlisted';
7274
-
7275
- /**
7276
- * Short summary of the workflow.
7277
- */
7278
- shortDescription: string;
7279
-
7280
- /**
7281
- * Current lifecycle status (draft, ready, deleted).
7282
- */
7283
- status: 'deleted' | 'draft' | 'ready';
7284
-
7285
- /**
7286
- * The tag set of the workflow.
7287
- */
7288
- tagSet: Array<string>;
7289
-
7290
- /**
7291
- * ISO string
7292
- */
7293
- updatedAt: string;
7294
7403
 
7295
7404
  /**
7296
7405
  * A representation of an asset after being processed by the workflow
7297
7406
  */
7298
- after?: Workflow.After;
7299
-
7300
- /**
7301
- * A representation of an asset before being processed by the workflow
7302
- */
7303
- before?: Workflow.Before;
7304
-
7305
- /**
7306
- * Embedding is a map of embedding version into embedding date
7307
- */
7308
- embedding?: unknown;
7309
-
7310
- /**
7311
- * Whether the workflow is locked. Locked workflows cannot be modified or deleted
7312
- * except by the author or a project admin.
7313
- */
7314
- isLocked?: boolean;
7315
-
7316
- lastIndexedAt?: string;
7317
-
7318
- /**
7319
- * The type of indexing operation to perform in MeiliSearch
7320
- */
7321
- lastIndexingType?: 'CREATE' | 'DELETE' | 'UPDATE';
7322
-
7323
- /**
7324
- * Timestamp when the workflow flow was last saved as a Ready (App) snapshot. Used
7325
- * to compute the WorkflowNodes snapshot key. Only set for workflows that have been
7326
- * in the Ready state.
7327
- */
7328
- lastReadyFlowUpdatedAt?: string;
7407
+ export interface After {
7408
+ /**
7409
+ * The AssetId of the image used as a thumbnail for your model (example:
7410
+ * "asset_GTrL3mq4SXWyMxkOHRxlpw")
7411
+ */
7412
+ assetId: string;
7329
7413
 
7330
- /**
7331
- * ISO string timestamp when lock state was last changed.
7332
- */
7333
- lockedStateChangedAt?: string;
7414
+ /**
7415
+ * The url of the image used as a thumbnail for your model
7416
+ */
7417
+ url: string;
7418
+ }
7334
7419
 
7335
7420
  /**
7336
- * UserId of the user who last changed the lock state.
7421
+ * A representation of an asset before being processed by the workflow
7337
7422
  */
7338
- lockedStateChangedBy?: string;
7423
+ export interface Before {
7424
+ /**
7425
+ * The AssetId of the image used as a thumbnail for your model (example:
7426
+ * "asset_GTrL3mq4SXWyMxkOHRxlpw")
7427
+ */
7428
+ assetId: string;
7339
7429
 
7340
- /**
7341
- * Asset kinds produced by this workflow (if specified).
7342
- */
7343
- outputAssetKinds?: Array<'3d' | 'audio' | 'document' | 'image' | 'image-hdr' | 'json' | 'video'>;
7430
+ /**
7431
+ * The url of the image used as a thumbnail for your model
7432
+ */
7433
+ url: string;
7434
+ }
7344
7435
 
7345
7436
  /**
7346
7437
  * Currently the thumbnail is identical to the after asset.
7347
7438
  */
7348
- thumbnail?: Workflow.Thumbnail;
7439
+ export interface Thumbnail {
7440
+ assetId: string;
7441
+
7442
+ url: string;
7443
+ }
7349
7444
 
7350
7445
  /**
7351
7446
  * The UI configuration for the workflow. This is managed by scenario webapp.
7352
7447
  */
7353
- uiConfig?: Workflow.UiConfig;
7354
- }
7355
-
7356
- export namespace Workflow {
7357
- export interface Flow {
7448
+ export interface UiConfig {
7358
7449
  /**
7359
- * The id of the node.
7450
+ * Configuration for the input properties
7360
7451
  */
7361
- id: string;
7452
+ inputProperties?: { [key: string]: UiConfig.InputProperties };
7362
7453
 
7363
7454
  /**
7364
- * The type of the job for the node.
7455
+ * Configuration for the loras component
7365
7456
  */
7366
- type:
7367
- | 'custom-model'
7368
- | 'for-each'
7369
- | 'generate-prompt'
7370
- | 'list'
7371
- | 'logic'
7372
- | 'model'
7373
- | 'remove-background'
7374
- | 'transform'
7375
- | 'user-approval'
7376
- | 'workflow';
7457
+ lorasComponent?: UiConfig.LorasComponent;
7377
7458
 
7378
7459
  /**
7379
- * Fixed number of iterations for a ForEach node. When set, the loop runs exactly
7380
- * `count` times regardless of array input. When not set, the loop iterates over
7381
- * the resolved array input. Only available for ForEach nodes.
7460
+ * Configuration for the presets
7382
7461
  */
7383
- count?: number;
7462
+ presets?: Array<UiConfig.Preset>;
7384
7463
 
7385
7464
  /**
7386
- * The nodes that this node depends on. Only available for nodes that have
7387
- * dependencies. Mainly used for user approval nodes.
7465
+ * Configuration for the resolution component
7388
7466
  */
7389
- dependsOn?: Array<string>;
7467
+ resolutionComponent?: UiConfig.ResolutionComponent;
7390
7468
 
7391
7469
  /**
7392
- * If true, the outputs of this node will be included in the workflow job's final
7393
- * output. Only applicable to producing nodes (custom-model, inference, etc.). By
7394
- * default, only last nodes (nodes not referenced by other nodes) contribute to
7395
- * outputs. Set this to true to also include intermediate nodes in the final
7396
- * output. Note: This should only be set to `true` or left undefined.
7470
+ * Configuration for the selects
7397
7471
  */
7398
- includeOutputsInWorkflowJob?: true;
7472
+ selects?: { [key: string]: unknown };
7399
7473
 
7400
7474
  /**
7401
- * The inputs of the node.
7475
+ * Configuration for the trigger generate button
7402
7476
  */
7403
- inputs?: Array<Flow.Input>;
7477
+ triggerGenerate?: UiConfig.TriggerGenerate;
7478
+ }
7404
7479
 
7405
- /**
7406
- * Statically-configured items for a List node. The node outputs this array as-is
7407
- * when executed. Only available for List nodes. The values can be strings,
7408
- * numbers, or asset IDs.
7409
- */
7410
- items?: Array<string>;
7480
+ export namespace UiConfig {
7481
+ export interface InputProperties {
7482
+ collapsed?: boolean;
7483
+ }
7411
7484
 
7412
7485
  /**
7413
- * Zero-based index of the iteration this node copy belongs to. Set on
7414
- * dynamically-created copies of loop body nodes.
7415
- */
7416
- iterationIndex?: number;
7417
-
7418
- /**
7419
- * The logic of the node. Only available for logic nodes.
7420
- */
7421
- logic?: Flow.Logic;
7422
-
7423
- /**
7424
- * The type of the logic for the node. Only available for logic nodes.
7425
- */
7426
- logicType?: 'if-else';
7427
-
7428
- /**
7429
- * IDs of the body template nodes that belong to this ForEach loop. At runtime
7430
- * these templates are cloned once per iteration and marked Skipped. Only available
7431
- * for ForEach nodes.
7432
- */
7433
- loopBodyNodeIds?: Array<string>;
7434
-
7435
- /**
7436
- * ID of the ForEach node that spawned this iteration copy. Set on
7437
- * dynamically-created copies of loop body nodes.
7438
- */
7439
- loopNodeId?: string;
7440
-
7441
- /**
7442
- * The model id for the node. Mainly used for custom model tasks.
7443
- */
7444
- modelId?: string;
7445
-
7446
- /**
7447
- * The workflow id for the node. Mainly used for workflow tasks.
7448
- */
7449
- workflowId?: string;
7450
- }
7451
-
7452
- export namespace Flow {
7453
- /**
7454
- * This is used to run the flow.
7486
+ * Configuration for the loras component
7455
7487
  */
7456
- export interface Input {
7488
+ export interface LorasComponent {
7457
7489
  /**
7458
- * The name that must be user to call the model through the API
7490
+ * The label of the component
7459
7491
  */
7460
- name: string;
7492
+ label: string;
7461
7493
 
7462
7494
  /**
7463
- * The data type of the input
7495
+ * The input name of the model (model_array)
7464
7496
  */
7465
- type:
7466
- | 'boolean'
7467
- | 'file'
7468
- | 'file_array'
7469
- | 'inputs_array'
7470
- | 'model'
7471
- | 'model_array'
7472
- | 'number'
7473
- | 'number_array'
7474
- | 'string'
7475
- | 'string_array';
7497
+ modelInput: string;
7476
7498
 
7477
7499
  /**
7478
- * The allowed values for the input. For \`string\` or \`number\` types, creates a
7479
- * single-select dropdown. For \`string_array\` type, creates a multi-select
7480
- * dropdown.
7500
+ * The input name of the scale (number_array)
7481
7501
  */
7482
- allowedValues?: Array<unknown>;
7502
+ scaleInput: string;
7483
7503
 
7484
7504
  /**
7485
- * Specifies the background behavior for the input. Only available for \`file\` and
7486
- * \`file_array\` input types with kind \`image\`.
7505
+ * The input model id (example: a composition or a single LoRA modelId) If
7506
+ * specified, the model id will be attached to the output asset as a metadata If
7507
+ * the model-decomposer parser is specified on it, modelInput and scaleInput will
7508
+ * be automatically populated
7487
7509
  */
7488
- backgroundBehavior?: 'opaque' | 'transparent';
7510
+ modelIdInput?: string;
7511
+ }
7489
7512
 
7490
- /**
7491
- * Whether the input is a color or not. Only available for \`string\` input type.
7492
- */
7493
- color?: boolean;
7513
+ export interface Preset {
7514
+ fields: Array<string>;
7494
7515
 
7495
- /**
7496
- * Whether this input affects the model's cost calculation
7497
- */
7498
- costImpact?: boolean;
7516
+ presets: unknown;
7517
+ }
7499
7518
 
7519
+ /**
7520
+ * Configuration for the resolution component
7521
+ */
7522
+ export interface ResolutionComponent {
7500
7523
  /**
7501
- * The default value for the input
7524
+ * The input name of the height
7502
7525
  */
7503
- default?: unknown;
7526
+ heightInput: string;
7504
7527
 
7505
7528
  /**
7506
- * Help text displayed in the UI to provide additional information about the input
7529
+ * The label of the component
7507
7530
  */
7508
- description?: string;
7531
+ label: string;
7509
7532
 
7510
7533
  /**
7511
- * Used to visually group inputs together in the UI. Inputs with the same group
7512
- * value appear consecutively in the UI.
7534
+ * The resolution presets
7513
7535
  */
7514
- group?: string;
7536
+ presets: Array<ResolutionComponent.Preset>;
7515
7537
 
7516
7538
  /**
7517
- * Hint text displayed in the UI as a tooltip to guide the user
7539
+ * The input name of the width
7518
7540
  */
7519
- hint?: string;
7541
+ widthInput: string;
7542
+ }
7520
7543
 
7521
- /**
7522
- * The list of inputs which form an object within a container array. All inputs are
7523
- * the same as the current object. This is only available for type inputs_array
7524
- * inputs.
7525
- */
7526
- inputs?: Array<{ [key: string]: unknown }>;
7544
+ export namespace ResolutionComponent {
7545
+ export interface Preset {
7546
+ height: number;
7527
7547
 
7528
- /**
7529
- * The configured items for inputs_array type inputs. Each item is an array of
7530
- * SubNodeInput that need ref/value resolution. Only available for inputs_array
7531
- * type.
7532
- */
7533
- items?: Array<Array<Input.Item>>;
7548
+ label: string;
7534
7549
 
7535
- /**
7536
- * The asset kind of the input. Only taken into account for \`file\` and
7537
- * \`file_array\` input types. If model provides multiple kinds, the input will be
7538
- * not able to create the asset on the flight on API side with dataurl without
7539
- * data:kind, prefix
7540
- */
7541
- kind?: '3d' | 'audio' | 'document' | 'image' | 'image-hdr' | 'json' | 'video';
7550
+ width: number;
7551
+ }
7552
+ }
7542
7553
 
7543
- /**
7544
- * The label displayed in the UI for this input
7545
- */
7546
- label?: string;
7554
+ /**
7555
+ * Configuration for the trigger generate button
7556
+ */
7557
+ export interface TriggerGenerate {
7558
+ label: string;
7547
7559
 
7548
7560
  /**
7549
- * The name of the file input field to use as the mask source
7561
+ * The 'name' of the input where the trigger generate button will be displayed
7562
+ * (after the input). Do not specify both position and after.
7550
7563
  */
7551
- maskFrom?: string;
7564
+ after?: string;
7552
7565
 
7553
7566
  /**
7554
- * The maximum allowed value. Only available for \`number\` and \`array\` input
7555
- * types.
7567
+ * The position of the trigger generate button. If position specified, the button
7568
+ * will be displayed at the specified position. Do not specify both position and
7569
+ * after.
7556
7570
  */
7557
- max?: number;
7571
+ position?: 'bottom' | 'top';
7572
+ }
7573
+ }
7574
+ }
7575
+ }
7558
7576
 
7559
- /**
7560
- * The maximum allowed length for \`string\` inputs. Also applies to each item in
7561
- * \`string_array\`.
7562
- */
7563
- maxLength?: number;
7577
+ export interface WorkflowUserApprovalResponse {
7578
+ job: WorkflowUserApprovalResponse.Job;
7579
+ }
7564
7580
 
7565
- /**
7566
- * The maximum allowed file size in bytes. Only applies to \`file\` and
7567
- * \`file_array\` input types. Validated against \`asset.properties.size\` at job
7568
- * creation time.
7569
- */
7570
- maxSize?: number;
7581
+ export namespace WorkflowUserApprovalResponse {
7582
+ export interface Job {
7583
+ /**
7584
+ * The job creation date as an ISO string (example: "2023-02-03T11:19:41.579Z")
7585
+ */
7586
+ createdAt: string;
7571
7587
 
7572
- /**
7573
- * The minimum allowed value. Only available for \`number\` and array input types.
7574
- */
7575
- min?: number;
7588
+ /**
7589
+ * The job ID (example: "job_ocZCnG1Df35XRL1QyCZSRxAG8")
7590
+ */
7591
+ jobId: string;
7576
7592
 
7577
- /**
7578
- * The minimum allowed length for string inputs. Also applies to each item in
7579
- * \`string_array\`.
7580
- */
7581
- minLength?: number;
7593
+ /**
7594
+ * The type of job
7595
+ */
7596
+ jobType:
7597
+ | 'assets-download'
7598
+ | 'canvas-export'
7599
+ | 'caption'
7600
+ | 'caption-llava'
7601
+ | 'custom'
7602
+ | 'describe-style'
7603
+ | 'detection'
7604
+ | 'embed'
7605
+ | 'flux'
7606
+ | 'flux-model-training'
7607
+ | 'generate-prompt'
7608
+ | 'image-generation'
7609
+ | 'image-prompt-editing'
7610
+ | 'inference'
7611
+ | 'mesh-preview-rendering'
7612
+ | 'model-download'
7613
+ | 'model-import'
7614
+ | 'model-training'
7615
+ | 'musubi-model-training'
7616
+ | 'openai-image-generation'
7617
+ | 'patch-image'
7618
+ | 'pixelate'
7619
+ | 'reframe'
7620
+ | 'remove-background'
7621
+ | 'repaint'
7622
+ | 'restyle'
7623
+ | 'segment'
7624
+ | 'skybox-3d'
7625
+ | 'skybox-base-360'
7626
+ | 'skybox-hdri'
7627
+ | 'skybox-upscale-360'
7628
+ | 'texture'
7629
+ | 'translate'
7630
+ | 'upload'
7631
+ | 'upscale'
7632
+ | 'upscale-skybox'
7633
+ | 'upscale-texture'
7634
+ | 'vectorize'
7635
+ | 'workflow';
7582
7636
 
7583
- /**
7584
- * The allowed model types for this input. Example: \`["flux.1-lora"]\`. Only
7585
- * available for \`model_array\` input type.
7586
- */
7587
- modelTypes?: Array<
7588
- | 'custom'
7589
- | 'elevenlabs-voice'
7590
- | 'flux.1'
7591
- | 'flux.1-composition'
7592
- | 'flux.1-kontext-dev'
7593
- | 'flux.1-kontext-lora'
7594
- | 'flux.1-krea-dev'
7595
- | 'flux.1-krea-lora'
7596
- | 'flux.1-lora'
7597
- | 'flux.1-pro'
7598
- | 'flux.1.1-pro-ultra'
7599
- | 'flux.2-dev-edit-lora'
7600
- | 'flux.2-dev-lora'
7601
- | 'flux.2-klein-4b-edit-lora'
7602
- | 'flux.2-klein-4b-lora'
7603
- | 'flux.2-klein-9b-edit-lora'
7604
- | 'flux.2-klein-9b-lora'
7605
- | 'flux.2-klein-base-4b-edit-lora'
7606
- | 'flux.2-klein-base-4b-lora'
7607
- | 'flux.2-klein-base-9b-edit-lora'
7608
- | 'flux.2-klein-base-9b-lora'
7609
- | 'flux1.1-pro'
7610
- | 'gpt-image-1'
7611
- | 'qwen-image-2512-lora'
7612
- | 'qwen-image-edit-2509-lora'
7613
- | 'qwen-image-edit-2511-lora'
7614
- | 'qwen-image-edit-lora'
7615
- | 'qwen-image-lora'
7616
- | 'sd-1_5'
7617
- | 'sd-1_5-composition'
7618
- | 'sd-1_5-lora'
7619
- | 'sd-xl'
7620
- | 'sd-xl-composition'
7621
- | 'sd-xl-lora'
7622
- | 'zimage-de-turbo-lora'
7623
- | 'zimage-lora'
7624
- | 'zimage-turbo-lora'
7625
- >;
7637
+ /**
7638
+ * Metadata of the job with some additional information
7639
+ */
7640
+ metadata: Job.Metadata;
7641
+
7642
+ /**
7643
+ * Progress of the job (between 0 and 1)
7644
+ */
7645
+ progress: number;
7646
+
7647
+ /**
7648
+ * The current status of the job
7649
+ */
7650
+ status:
7651
+ | 'canceled'
7652
+ | 'failure'
7653
+ | 'finalizing'
7654
+ | 'in-progress'
7655
+ | 'pending'
7656
+ | 'queued'
7657
+ | 'success'
7658
+ | 'warming-up';
7659
+
7660
+ /**
7661
+ * The history of the different statuses the job went through with the ISO string
7662
+ * date of when the job reached each statuses.
7663
+ */
7664
+ statusHistory: Array<Job.StatusHistory>;
7665
+
7666
+ /**
7667
+ * The job last update date as an ISO string (example: "2023-02-03T11:19:41.579Z")
7668
+ */
7669
+ updatedAt: string;
7670
+
7671
+ /**
7672
+ * The author user ID (example: "dcf121faaa1a0a0bbbd9ca1b73d62aea")
7673
+ */
7674
+ authorId?: string;
7675
+
7676
+ /**
7677
+ * The billing of the job
7678
+ */
7679
+ billing?: Job.Billing;
7680
+
7681
+ /**
7682
+ * The owner ID (example: "team_U3Qmc8PCdWXwAQJ4Dvw4tV6D")
7683
+ */
7684
+ ownerId?: string;
7685
+ }
7686
+
7687
+ export namespace Job {
7688
+ /**
7689
+ * Metadata of the job with some additional information
7690
+ */
7691
+ export interface Metadata {
7692
+ /**
7693
+ * List of produced assets for this job
7694
+ */
7695
+ assetIds?: Array<string>;
7696
+
7697
+ /**
7698
+ * Eventual error for the job
7699
+ */
7700
+ error?: string | null;
7701
+
7702
+ /**
7703
+ * The flow of the job. Only available for workflow jobs.
7704
+ */
7705
+ flow?: Array<Metadata.Flow>;
7706
+
7707
+ /**
7708
+ * Actionable hint for the user explaining what went wrong and how to resolve it.
7709
+ */
7710
+ hint?: string;
7711
+
7712
+ /**
7713
+ * The inputs for the job
7714
+ */
7715
+ input?: { [key: string]: unknown };
7716
+
7717
+ /**
7718
+ * May contain the output of the job for specific custom models jobs. Only
7719
+ * available for custom models which generate non-assets outputs. Example: LLM text
7720
+ * results.
7721
+ */
7722
+ output?: { [key: string]: unknown };
7723
+
7724
+ /**
7725
+ * For voice-clone jobs: the ID of the model being trained.
7726
+ */
7727
+ outputModelId?: string;
7728
+
7729
+ /**
7730
+ * The workflow ID of the job if job is part of a workflow.
7731
+ */
7732
+ workflowId?: string;
7733
+
7734
+ /**
7735
+ * The workflow job ID of the job if job is part of a workflow job.
7736
+ */
7737
+ workflowJobId?: string;
7738
+ }
7626
7739
 
7740
+ export namespace Metadata {
7741
+ export interface Flow {
7627
7742
  /**
7628
- * Whether this input represents a parent asset to assign to the produced assets.
7629
- * Only available for \`file\` and \`file_array\` input types.
7630
- *
7631
- * For \`file_array\`, the parent asset is the first item in the array.
7743
+ * The id of the node.
7632
7744
  */
7633
- parent?: boolean;
7745
+ id: string;
7634
7746
 
7635
7747
  /**
7636
- * Placeholder text for the input. Only available for 'string' input type.
7748
+ * The status of the node. Only available for WorkflowJob nodes.
7637
7749
  */
7638
- placeholder?: string;
7750
+ status: 'failure' | 'pending' | 'processing' | 'skipped' | 'success';
7639
7751
 
7640
7752
  /**
7641
- * Whether the input is a prompt. When true, displays as a text area with prompt
7642
- * spark feature. Only available for \`string\` input type.
7753
+ * The type of the job for the node.
7643
7754
  */
7644
- prompt?: boolean;
7755
+ type:
7756
+ | 'custom-model'
7757
+ | 'for-each'
7758
+ | 'generate-prompt'
7759
+ | 'list'
7760
+ | 'logic'
7761
+ | 'model'
7762
+ | 'remove-background'
7763
+ | 'transform'
7764
+ | 'user-approval'
7765
+ | 'workflow';
7645
7766
 
7646
7767
  /**
7647
- * Whether the input is used with prompt spark. Only available for \`string\` input
7648
- * type.
7768
+ * List of produced assets for this node.
7649
7769
  */
7650
- promptSpark?: boolean;
7770
+ assets?: Array<Flow.Asset>;
7651
7771
 
7652
7772
  /**
7653
- * The reference to another input or output of the same workflow. Must have at
7654
- * least one of node or conditional.
7773
+ * Fixed number of iterations for a ForEach node. When set, the loop runs exactly
7774
+ * `count` times regardless of array input. When not set, the loop iterates over
7775
+ * the resolved array input. Only available for ForEach nodes.
7655
7776
  */
7656
- ref?: Input.Ref;
7777
+ count?: number;
7657
7778
 
7658
7779
  /**
7659
- * Set of rules that describes when this input is required:
7660
- *
7661
- * - \`always\`: Input is always required
7662
- * - \`ifNotDefined\`: Input is required when another specified input is not
7663
- * defined
7664
- * - \`ifDefined\`: Input is required when another specified input is defined
7665
- * - \`conditionalValues\`: Input is required when another input has a specific
7666
- * value
7667
- *
7668
- * By default, the input is not required.
7780
+ * The nodes that this node depends on. Only available for nodes that have
7781
+ * dependencies. Mainly used for user approval nodes.
7669
7782
  */
7670
- required?: Input.Required;
7783
+ dependsOn?: Array<string>;
7671
7784
 
7672
7785
  /**
7673
- * The step increment for numeric inputs. Only available for \`number\` input type.
7786
+ * If true, the outputs of this node will be included in the workflow job's final
7787
+ * output. Only applicable to producing nodes (custom-model, inference, etc.). By
7788
+ * default, only last nodes (nodes not referenced by other nodes) contribute to
7789
+ * outputs. Set this to true to also include intermediate nodes in the final
7790
+ * output. Note: This should only be set to `true` or left undefined.
7674
7791
  */
7675
- step?: number;
7792
+ includeOutputsInWorkflowJob?: true;
7676
7793
 
7677
7794
  /**
7678
- * The value of the input. This is the value of the input that will be used to run
7679
- * the node. Only available for flows managed by a WorkflowJob.
7795
+ * The inputs of the node.
7680
7796
  */
7681
- value?: unknown;
7682
- }
7797
+ inputs?: Array<Flow.Input>;
7683
7798
 
7684
- export namespace Input {
7685
7799
  /**
7686
- * A sub-input within an inputs_array item. Same as NodeInput but without the
7687
- * recursive items field.
7800
+ * Statically-configured items for a List node. The node outputs this array as-is
7801
+ * when executed. Only available for List nodes. The values can be strings,
7802
+ * numbers, or asset IDs.
7688
7803
  */
7689
- export interface Item {
7690
- /**
7691
- * The name that must be user to call the model through the API
7692
- */
7693
- name: string;
7804
+ items?: Array<string>;
7694
7805
 
7695
- /**
7696
- * The data type of the input
7697
- */
7698
- type:
7699
- | 'boolean'
7700
- | 'file'
7701
- | 'file_array'
7702
- | 'inputs_array'
7703
- | 'model'
7704
- | 'model_array'
7705
- | 'number'
7706
- | 'number_array'
7707
- | 'string'
7708
- | 'string_array';
7806
+ /**
7807
+ * Zero-based index of the iteration this node copy belongs to. Set on
7808
+ * dynamically-created copies of loop body nodes.
7809
+ */
7810
+ iterationIndex?: number;
7709
7811
 
7710
- /**
7711
- * The allowed values for the input. For \`string\` or \`number\` types, creates a
7712
- * single-select dropdown. For \`string_array\` type, creates a multi-select
7713
- * dropdown.
7714
- */
7715
- allowedValues?: Array<unknown>;
7812
+ /**
7813
+ * If the flow is part of a WorkflowJob, this is the jobId for the node. jobId is
7814
+ * only available for nodes started. A node "Pending" for a running workflow job is
7815
+ * not started.
7816
+ */
7817
+ jobId?: string;
7716
7818
 
7717
- /**
7718
- * Specifies the background behavior for the input. Only available for \`file\` and
7719
- * \`file_array\` input types with kind \`image\`.
7720
- */
7721
- backgroundBehavior?: 'opaque' | 'transparent';
7819
+ /**
7820
+ * The logic of the node. Only available for logic nodes.
7821
+ */
7822
+ logic?: Flow.Logic;
7722
7823
 
7723
- /**
7724
- * Whether the input is a color or not. Only available for \`string\` input type.
7725
- */
7726
- color?: boolean;
7824
+ /**
7825
+ * The type of the logic for the node. Only available for logic nodes.
7826
+ */
7827
+ logicType?: 'if-else';
7727
7828
 
7728
- /**
7729
- * Whether this input affects the model's cost calculation
7730
- */
7829
+ /**
7830
+ * IDs of the body template nodes that belong to this ForEach loop. At runtime
7831
+ * these templates are cloned once per iteration and marked Skipped. Only available
7832
+ * for ForEach nodes.
7833
+ */
7834
+ loopBodyNodeIds?: Array<string>;
7835
+
7836
+ /**
7837
+ * ID of the ForEach node that spawned this iteration copy. Set on
7838
+ * dynamically-created copies of loop body nodes.
7839
+ */
7840
+ loopNodeId?: string;
7841
+
7842
+ /**
7843
+ * The model id for the node. Mainly used for custom model tasks.
7844
+ */
7845
+ modelId?: string;
7846
+
7847
+ /**
7848
+ * The output of the node. Only available for logic nodes.
7849
+ */
7850
+ output?: unknown;
7851
+
7852
+ /**
7853
+ * The workflow id for the node. Mainly used for workflow tasks.
7854
+ */
7855
+ workflowId?: string;
7856
+ }
7857
+
7858
+ export namespace Flow {
7859
+ export interface Asset {
7860
+ assetId: string;
7861
+
7862
+ url: string;
7863
+ }
7864
+
7865
+ /**
7866
+ * This is used to run the flow.
7867
+ */
7868
+ export interface Input {
7869
+ /**
7870
+ * The name that must be user to call the model through the API
7871
+ */
7872
+ name: string;
7873
+
7874
+ /**
7875
+ * The data type of the input
7876
+ */
7877
+ type:
7878
+ | 'boolean'
7879
+ | 'file'
7880
+ | 'file_array'
7881
+ | 'inputs_array'
7882
+ | 'model'
7883
+ | 'model_array'
7884
+ | 'number'
7885
+ | 'number_array'
7886
+ | 'string'
7887
+ | 'string_array';
7888
+
7889
+ /**
7890
+ * The allowed values for the input. For \`string\` or \`number\` types, creates a
7891
+ * single-select dropdown. For \`string_array\` type, creates a multi-select
7892
+ * dropdown.
7893
+ */
7894
+ allowedValues?: Array<unknown>;
7895
+
7896
+ /**
7897
+ * Specifies the background behavior for the input. Only available for \`file\` and
7898
+ * \`file_array\` input types with kind \`image\`.
7899
+ */
7900
+ backgroundBehavior?: 'opaque' | 'transparent';
7901
+
7902
+ /**
7903
+ * Whether the input is a color or not. Only available for \`string\` input type.
7904
+ */
7905
+ color?: boolean;
7906
+
7907
+ /**
7908
+ * Whether this input affects the model's cost calculation
7909
+ */
7731
7910
  costImpact?: boolean;
7732
7911
 
7733
7912
  /**
@@ -7758,6 +7937,13 @@ export namespace WorkflowRunResponse {
7758
7937
  */
7759
7938
  inputs?: Array<{ [key: string]: unknown }>;
7760
7939
 
7940
+ /**
7941
+ * The configured items for inputs_array type inputs. Each item is an array of
7942
+ * SubNodeInput that need ref/value resolution. Only available for inputs_array
7943
+ * type.
7944
+ */
7945
+ items?: Array<Array<Input.Item>>;
7946
+
7761
7947
  /**
7762
7948
  * The asset kind of the input. Only taken into account for \`file\` and
7763
7949
  * \`file_array\` input types. If model provides multiple kinds, the input will be
@@ -7879,7 +8065,7 @@ export namespace WorkflowRunResponse {
7879
8065
  * The reference to another input or output of the same workflow. Must have at
7880
8066
  * least one of node or conditional.
7881
8067
  */
7882
- ref?: Item.Ref;
8068
+ ref?: Input.Ref;
7883
8069
 
7884
8070
  /**
7885
8071
  * Set of rules that describes when this input is required:
@@ -7893,7 +8079,7 @@ export namespace WorkflowRunResponse {
7893
8079
  *
7894
8080
  * By default, the input is not required.
7895
8081
  */
7896
- required?: Item.Required;
8082
+ required?: Input.Required;
7897
8083
 
7898
8084
  /**
7899
8085
  * The step increment for numeric inputs. Only available for \`number\` input type.
@@ -7907,616 +8093,435 @@ export namespace WorkflowRunResponse {
7907
8093
  value?: unknown;
7908
8094
  }
7909
8095
 
7910
- export namespace Item {
8096
+ export namespace Input {
7911
8097
  /**
7912
- * The reference to another input or output of the same workflow. Must have at
7913
- * least one of node or conditional.
8098
+ * A sub-input within an inputs_array item. Same as NodeInput but without the
8099
+ * recursive items field.
7914
8100
  */
7915
- export interface Ref {
8101
+ export interface Item {
7916
8102
  /**
7917
- * The conditional nodes to reference. If the conditional nodes are successful, the
7918
- * node will be successful. If the conditional nodes are skipped, the node will be
7919
- * skipped. Contains an array of node ids used to check the status of the nodes.
8103
+ * The name that must be user to call the model through the API
7920
8104
  */
7921
- conditional?: Array<string>;
8105
+ name: string;
7922
8106
 
7923
8107
  /**
7924
- * This is the desired node output value if ref is an if/else node.
8108
+ * The data type of the input
7925
8109
  */
7926
- equal?: string;
8110
+ type:
8111
+ | 'boolean'
8112
+ | 'file'
8113
+ | 'file_array'
8114
+ | 'inputs_array'
8115
+ | 'model'
8116
+ | 'model_array'
8117
+ | 'number'
8118
+ | 'number_array'
8119
+ | 'string'
8120
+ | 'string_array';
7927
8121
 
7928
8122
  /**
7929
- * The name of the input or output to reference. If the type is 'workflow', the
7930
- * name is the name of the input of the workflow is required If the type is 'node',
7931
- * the name is not mandatory, except if you want all outputs of the node. To get
7932
- * all outputs of a node, you can use the name 'all'.
8123
+ * The allowed values for the input. For \`string\` or \`number\` types, creates a
8124
+ * single-select dropdown. For \`string_array\` type, creates a multi-select
8125
+ * dropdown.
7933
8126
  */
7934
- name?: string;
8127
+ allowedValues?: Array<unknown>;
7935
8128
 
7936
8129
  /**
7937
- * The node id or 'workflow' if the source is a workflow input.
8130
+ * Specifies the background behavior for the input. Only available for \`file\` and
8131
+ * \`file_array\` input types with kind \`image\`.
7938
8132
  */
7939
- node?: string;
7940
- }
8133
+ backgroundBehavior?: 'opaque' | 'transparent';
7941
8134
 
7942
- /**
7943
- * Set of rules that describes when this input is required:
7944
- *
7945
- * - \`always\`: Input is always required
7946
- * - \`ifNotDefined\`: Input is required when another specified input is not
7947
- * defined
7948
- * - \`ifDefined\`: Input is required when another specified input is defined
7949
- * - \`conditionalValues\`: Input is required when another input has a specific
7950
- * value
7951
- *
7952
- * By default, the input is not required.
7953
- */
7954
- export interface Required {
7955
8135
  /**
7956
- * Whether the input is always required
8136
+ * Whether the input is a color or not. Only available for \`string\` input type.
7957
8137
  */
7958
- always?: boolean;
8138
+ color?: boolean;
7959
8139
 
7960
8140
  /**
7961
- * Makes this input required when another input has a specific value:
7962
- *
7963
- * - Key: name of the input to check
7964
- * - Value: operation and allowed values that trigger the requirement
8141
+ * Whether this input affects the model's cost calculation
7965
8142
  */
7966
- conditionalValues?: unknown;
8143
+ costImpact?: boolean;
7967
8144
 
7968
8145
  /**
7969
- * Makes this input required when another input is defined:
7970
- *
7971
- * - Key: name of the input that must be defined
7972
- * - Value: message to display when this input is required
8146
+ * The default value for the input
7973
8147
  */
7974
- ifDefined?: unknown;
8148
+ default?: unknown;
7975
8149
 
7976
8150
  /**
7977
- * Makes this input required when another input is not defined:
7978
- *
7979
- * - Key: name of the input that must be undefined
7980
- * - Value: message to display when this input is required
8151
+ * Help text displayed in the UI to provide additional information about the input
7981
8152
  */
7982
- ifNotDefined?: unknown;
7983
- }
7984
- }
8153
+ description?: string;
7985
8154
 
7986
- /**
7987
- * The reference to another input or output of the same workflow. Must have at
7988
- * least one of node or conditional.
7989
- */
7990
- export interface Ref {
7991
- /**
7992
- * The conditional nodes to reference. If the conditional nodes are successful, the
7993
- * node will be successful. If the conditional nodes are skipped, the node will be
7994
- * skipped. Contains an array of node ids used to check the status of the nodes.
7995
- */
7996
- conditional?: Array<string>;
8155
+ /**
8156
+ * Used to visually group inputs together in the UI. Inputs with the same group
8157
+ * value appear consecutively in the UI.
8158
+ */
8159
+ group?: string;
7997
8160
 
7998
- /**
7999
- * This is the desired node output value if ref is an if/else node.
8000
- */
8001
- equal?: string;
8161
+ /**
8162
+ * Hint text displayed in the UI as a tooltip to guide the user
8163
+ */
8164
+ hint?: string;
8002
8165
 
8003
- /**
8004
- * The name of the input or output to reference. If the type is 'workflow', the
8005
- * name is the name of the input of the workflow is required If the type is 'node',
8006
- * the name is not mandatory, except if you want all outputs of the node. To get
8007
- * all outputs of a node, you can use the name 'all'.
8008
- */
8009
- name?: string;
8166
+ /**
8167
+ * The list of inputs which form an object within a container array. All inputs are
8168
+ * the same as the current object. This is only available for type inputs_array
8169
+ * inputs.
8170
+ */
8171
+ inputs?: Array<{ [key: string]: unknown }>;
8010
8172
 
8011
- /**
8012
- * The node id or 'workflow' if the source is a workflow input.
8013
- */
8014
- node?: string;
8015
- }
8173
+ /**
8174
+ * The asset kind of the input. Only taken into account for \`file\` and
8175
+ * \`file_array\` input types. If model provides multiple kinds, the input will be
8176
+ * not able to create the asset on the flight on API side with dataurl without
8177
+ * data:kind, prefix
8178
+ */
8179
+ kind?: '3d' | 'audio' | 'document' | 'image' | 'image-hdr' | 'json' | 'video';
8016
8180
 
8017
- /**
8018
- * Set of rules that describes when this input is required:
8019
- *
8020
- * - \`always\`: Input is always required
8021
- * - \`ifNotDefined\`: Input is required when another specified input is not
8022
- * defined
8023
- * - \`ifDefined\`: Input is required when another specified input is defined
8024
- * - \`conditionalValues\`: Input is required when another input has a specific
8025
- * value
8026
- *
8027
- * By default, the input is not required.
8028
- */
8029
- export interface Required {
8030
- /**
8031
- * Whether the input is always required
8032
- */
8033
- always?: boolean;
8181
+ /**
8182
+ * The label displayed in the UI for this input
8183
+ */
8184
+ label?: string;
8034
8185
 
8035
- /**
8036
- * Makes this input required when another input has a specific value:
8037
- *
8038
- * - Key: name of the input to check
8039
- * - Value: operation and allowed values that trigger the requirement
8040
- */
8041
- conditionalValues?: unknown;
8186
+ /**
8187
+ * The name of the file input field to use as the mask source
8188
+ */
8189
+ maskFrom?: string;
8042
8190
 
8043
- /**
8044
- * Makes this input required when another input is defined:
8045
- *
8046
- * - Key: name of the input that must be defined
8047
- * - Value: message to display when this input is required
8048
- */
8049
- ifDefined?: unknown;
8050
-
8051
- /**
8052
- * Makes this input required when another input is not defined:
8053
- *
8054
- * - Key: name of the input that must be undefined
8055
- * - Value: message to display when this input is required
8056
- */
8057
- ifNotDefined?: unknown;
8058
- }
8059
- }
8060
-
8061
- /**
8062
- * The logic of the node. Only available for logic nodes.
8063
- */
8064
- export interface Logic {
8065
- /**
8066
- * The cases of the logic. Only available for if/else nodes.
8067
- */
8068
- cases?: Array<Logic.Case>;
8069
-
8070
- /**
8071
- * The default case of the logic. Contains the id/output of the node to execute if
8072
- * no case is matched. Only available for if/else nodes.
8073
- */
8074
- default?: string;
8075
-
8076
- /**
8077
- * The transform of the logic. Only available for transform nodes.
8078
- */
8079
- transform?: string;
8080
- }
8081
-
8082
- export namespace Logic {
8083
- export interface Case {
8084
- condition: string;
8085
-
8086
- value: string;
8087
- }
8088
- }
8089
- }
8090
-
8091
- /**
8092
- * Defines the input parameters for a model. Use this to understand the available
8093
- * input parameters for a given `modelId` when calling
8094
- * `POST /generate/custom/{modelId}`. See {@link
8095
- * https://docs.scenario.com/docs/video-generation} for examples.
8096
- */
8097
- export interface Input {
8098
- /**
8099
- * The name that must be user to call the model through the API
8100
- */
8101
- name: string;
8102
-
8103
- /**
8104
- * The data type of the input
8105
- */
8106
- type:
8107
- | 'boolean'
8108
- | 'file'
8109
- | 'file_array'
8110
- | 'inputs_array'
8111
- | 'model'
8112
- | 'model_array'
8113
- | 'number'
8114
- | 'number_array'
8115
- | 'string'
8116
- | 'string_array';
8117
-
8118
- /**
8119
- * The allowed values for the input. For \`string\` or \`number\` types, creates a
8120
- * single-select dropdown. For \`string_array\` type, creates a multi-select
8121
- * dropdown.
8122
- */
8123
- allowedValues?: Array<unknown>;
8124
-
8125
- /**
8126
- * Specifies the background behavior for the input. Only available for \`file\` and
8127
- * \`file_array\` input types with kind \`image\`.
8128
- */
8129
- backgroundBehavior?: 'opaque' | 'transparent';
8130
-
8131
- /**
8132
- * Whether the input is a color or not. Only available for \`string\` input type.
8133
- */
8134
- color?: boolean;
8135
-
8136
- /**
8137
- * Whether this input affects the model's cost calculation
8138
- */
8139
- costImpact?: boolean;
8140
-
8141
- /**
8142
- * The default value for the input
8143
- */
8144
- default?: unknown;
8145
-
8146
- /**
8147
- * Help text displayed in the UI to provide additional information about the input
8148
- */
8149
- description?: string;
8150
-
8151
- /**
8152
- * Used to visually group inputs together in the UI. Inputs with the same group
8153
- * value appear consecutively in the UI.
8154
- */
8155
- group?: string;
8156
-
8157
- /**
8158
- * Hint text displayed in the UI as a tooltip to guide the user
8159
- */
8160
- hint?: string;
8161
-
8162
- /**
8163
- * The list of inputs which form an object within a container array. All inputs are
8164
- * the same as the current object. This is only available for type inputs_array
8165
- * inputs.
8166
- */
8167
- inputs?: Array<{ [key: string]: unknown }>;
8168
-
8169
- /**
8170
- * The asset kind of the input. Only taken into account for \`file\` and
8171
- * \`file_array\` input types. If model provides multiple kinds, the input will be
8172
- * not able to create the asset on the flight on API side with dataurl without
8173
- * data:kind, prefix
8174
- */
8175
- kind?: '3d' | 'audio' | 'document' | 'image' | 'image-hdr' | 'json' | 'video';
8176
-
8177
- /**
8178
- * The label displayed in the UI for this input
8179
- */
8180
- label?: string;
8181
-
8182
- /**
8183
- * The name of the file input field to use as the mask source
8184
- */
8185
- maskFrom?: string;
8186
-
8187
- /**
8188
- * The maximum allowed value. Only available for \`number\` and \`array\` input
8189
- * types.
8190
- */
8191
- max?: number;
8192
-
8193
- /**
8194
- * The maximum allowed length for \`string\` inputs. Also applies to each item in
8195
- * \`string_array\`.
8196
- */
8197
- maxLength?: number;
8198
-
8199
- /**
8200
- * The maximum allowed file size in bytes. Only applies to \`file\` and
8201
- * \`file_array\` input types. Validated against \`asset.properties.size\` at job
8202
- * creation time.
8203
- */
8204
- maxSize?: number;
8205
-
8206
- /**
8207
- * The minimum allowed value. Only available for \`number\` and array input types.
8208
- */
8209
- min?: number;
8210
-
8211
- /**
8212
- * The minimum allowed length for string inputs. Also applies to each item in
8213
- * \`string_array\`.
8214
- */
8215
- minLength?: number;
8216
-
8217
- /**
8218
- * The allowed model types for this input. Example: \`["flux.1-lora"]\`. Only
8219
- * available for \`model_array\` input type.
8220
- */
8221
- modelTypes?: Array<
8222
- | 'custom'
8223
- | 'elevenlabs-voice'
8224
- | 'flux.1'
8225
- | 'flux.1-composition'
8226
- | 'flux.1-kontext-dev'
8227
- | 'flux.1-kontext-lora'
8228
- | 'flux.1-krea-dev'
8229
- | 'flux.1-krea-lora'
8230
- | 'flux.1-lora'
8231
- | 'flux.1-pro'
8232
- | 'flux.1.1-pro-ultra'
8233
- | 'flux.2-dev-edit-lora'
8234
- | 'flux.2-dev-lora'
8235
- | 'flux.2-klein-4b-edit-lora'
8236
- | 'flux.2-klein-4b-lora'
8237
- | 'flux.2-klein-9b-edit-lora'
8238
- | 'flux.2-klein-9b-lora'
8239
- | 'flux.2-klein-base-4b-edit-lora'
8240
- | 'flux.2-klein-base-4b-lora'
8241
- | 'flux.2-klein-base-9b-edit-lora'
8242
- | 'flux.2-klein-base-9b-lora'
8243
- | 'flux1.1-pro'
8244
- | 'gpt-image-1'
8245
- | 'qwen-image-2512-lora'
8246
- | 'qwen-image-edit-2509-lora'
8247
- | 'qwen-image-edit-2511-lora'
8248
- | 'qwen-image-edit-lora'
8249
- | 'qwen-image-lora'
8250
- | 'sd-1_5'
8251
- | 'sd-1_5-composition'
8252
- | 'sd-1_5-lora'
8253
- | 'sd-xl'
8254
- | 'sd-xl-composition'
8255
- | 'sd-xl-lora'
8256
- | 'zimage-de-turbo-lora'
8257
- | 'zimage-lora'
8258
- | 'zimage-turbo-lora'
8259
- >;
8260
-
8261
- /**
8262
- * Whether this input represents a parent asset to assign to the produced assets.
8263
- * Only available for \`file\` and \`file_array\` input types.
8264
- *
8265
- * For \`file_array\`, the parent asset is the first item in the array.
8266
- */
8267
- parent?: boolean;
8268
-
8269
- /**
8270
- * Placeholder text for the input. Only available for 'string' input type.
8271
- */
8272
- placeholder?: string;
8191
+ /**
8192
+ * The maximum allowed value. Only available for \`number\` and \`array\` input
8193
+ * types.
8194
+ */
8195
+ max?: number;
8273
8196
 
8274
- /**
8275
- * Whether the input is a prompt. When true, displays as a text area with prompt
8276
- * spark feature. Only available for \`string\` input type.
8277
- */
8278
- prompt?: boolean;
8197
+ /**
8198
+ * The maximum allowed length for \`string\` inputs. Also applies to each item in
8199
+ * \`string_array\`.
8200
+ */
8201
+ maxLength?: number;
8279
8202
 
8280
- /**
8281
- * Whether the input is used with prompt spark. Only available for \`string\` input
8282
- * type.
8283
- */
8284
- promptSpark?: boolean;
8203
+ /**
8204
+ * The maximum allowed file size in bytes. Only applies to \`file\` and
8205
+ * \`file_array\` input types. Validated against \`asset.properties.size\` at job
8206
+ * creation time.
8207
+ */
8208
+ maxSize?: number;
8285
8209
 
8286
- /**
8287
- * Set of rules that describes when this input is required:
8288
- *
8289
- * - \`always\`: Input is always required
8290
- * - \`ifNotDefined\`: Input is required when another specified input is not
8291
- * defined
8292
- * - \`ifDefined\`: Input is required when another specified input is defined
8293
- * - \`conditionalValues\`: Input is required when another input has a specific
8294
- * value
8295
- *
8296
- * By default, the input is not required.
8297
- */
8298
- required?: Input.Required;
8210
+ /**
8211
+ * The minimum allowed value. Only available for \`number\` and array input types.
8212
+ */
8213
+ min?: number;
8299
8214
 
8300
- /**
8301
- * The step increment for numeric inputs. Only available for \`number\` input type.
8302
- */
8303
- step?: number;
8304
- }
8215
+ /**
8216
+ * The minimum allowed length for string inputs. Also applies to each item in
8217
+ * \`string_array\`.
8218
+ */
8219
+ minLength?: number;
8305
8220
 
8306
- export namespace Input {
8307
- /**
8308
- * Set of rules that describes when this input is required:
8309
- *
8310
- * - \`always\`: Input is always required
8311
- * - \`ifNotDefined\`: Input is required when another specified input is not
8312
- * defined
8313
- * - \`ifDefined\`: Input is required when another specified input is defined
8314
- * - \`conditionalValues\`: Input is required when another input has a specific
8315
- * value
8316
- *
8317
- * By default, the input is not required.
8318
- */
8319
- export interface Required {
8320
- /**
8321
- * Whether the input is always required
8322
- */
8323
- always?: boolean;
8221
+ /**
8222
+ * The allowed model types for this input. Example: \`["flux.1-lora"]\`. Only
8223
+ * available for \`model_array\` input type.
8224
+ */
8225
+ modelTypes?: Array<
8226
+ | 'custom'
8227
+ | 'elevenlabs-voice'
8228
+ | 'flux.1'
8229
+ | 'flux.1-composition'
8230
+ | 'flux.1-kontext-dev'
8231
+ | 'flux.1-kontext-lora'
8232
+ | 'flux.1-krea-dev'
8233
+ | 'flux.1-krea-lora'
8234
+ | 'flux.1-lora'
8235
+ | 'flux.1-pro'
8236
+ | 'flux.1.1-pro-ultra'
8237
+ | 'flux.2-dev-edit-lora'
8238
+ | 'flux.2-dev-lora'
8239
+ | 'flux.2-klein-4b-edit-lora'
8240
+ | 'flux.2-klein-4b-lora'
8241
+ | 'flux.2-klein-9b-edit-lora'
8242
+ | 'flux.2-klein-9b-lora'
8243
+ | 'flux.2-klein-base-4b-edit-lora'
8244
+ | 'flux.2-klein-base-4b-lora'
8245
+ | 'flux.2-klein-base-9b-edit-lora'
8246
+ | 'flux.2-klein-base-9b-lora'
8247
+ | 'flux1.1-pro'
8248
+ | 'gpt-image-1'
8249
+ | 'qwen-image-2512-lora'
8250
+ | 'qwen-image-edit-2509-lora'
8251
+ | 'qwen-image-edit-2511-lora'
8252
+ | 'qwen-image-edit-lora'
8253
+ | 'qwen-image-lora'
8254
+ | 'sd-1_5'
8255
+ | 'sd-1_5-composition'
8256
+ | 'sd-1_5-lora'
8257
+ | 'sd-xl'
8258
+ | 'sd-xl-composition'
8259
+ | 'sd-xl-lora'
8260
+ | 'zimage-de-turbo-lora'
8261
+ | 'zimage-lora'
8262
+ | 'zimage-turbo-lora'
8263
+ >;
8324
8264
 
8325
- /**
8326
- * Makes this input required when another input has a specific value:
8327
- *
8328
- * - Key: name of the input to check
8329
- * - Value: operation and allowed values that trigger the requirement
8330
- */
8331
- conditionalValues?: unknown;
8265
+ /**
8266
+ * Whether this input represents a parent asset to assign to the produced assets.
8267
+ * Only available for \`file\` and \`file_array\` input types.
8268
+ *
8269
+ * For \`file_array\`, the parent asset is the first item in the array.
8270
+ */
8271
+ parent?: boolean;
8332
8272
 
8333
- /**
8334
- * Makes this input required when another input is defined:
8335
- *
8336
- * - Key: name of the input that must be defined
8337
- * - Value: message to display when this input is required
8338
- */
8339
- ifDefined?: unknown;
8273
+ /**
8274
+ * Placeholder text for the input. Only available for 'string' input type.
8275
+ */
8276
+ placeholder?: string;
8340
8277
 
8341
- /**
8342
- * Makes this input required when another input is not defined:
8343
- *
8344
- * - Key: name of the input that must be undefined
8345
- * - Value: message to display when this input is required
8346
- */
8347
- ifNotDefined?: unknown;
8348
- }
8349
- }
8278
+ /**
8279
+ * Whether the input is a prompt. When true, displays as a text area with prompt
8280
+ * spark feature. Only available for \`string\` input type.
8281
+ */
8282
+ prompt?: boolean;
8350
8283
 
8351
- /**
8352
- * A representation of an asset after being processed by the workflow
8353
- */
8354
- export interface After {
8355
- /**
8356
- * The AssetId of the image used as a thumbnail for your model (example:
8357
- * "asset_GTrL3mq4SXWyMxkOHRxlpw")
8358
- */
8359
- assetId: string;
8284
+ /**
8285
+ * Whether the input is used with prompt spark. Only available for \`string\` input
8286
+ * type.
8287
+ */
8288
+ promptSpark?: boolean;
8360
8289
 
8361
- /**
8362
- * The url of the image used as a thumbnail for your model
8363
- */
8364
- url: string;
8365
- }
8290
+ /**
8291
+ * The reference to another input or output of the same workflow. Must have at
8292
+ * least one of node or conditional.
8293
+ */
8294
+ ref?: Item.Ref;
8366
8295
 
8367
- /**
8368
- * A representation of an asset before being processed by the workflow
8369
- */
8370
- export interface Before {
8371
- /**
8372
- * The AssetId of the image used as a thumbnail for your model (example:
8373
- * "asset_GTrL3mq4SXWyMxkOHRxlpw")
8374
- */
8375
- assetId: string;
8296
+ /**
8297
+ * Set of rules that describes when this input is required:
8298
+ *
8299
+ * - \`always\`: Input is always required
8300
+ * - \`ifNotDefined\`: Input is required when another specified input is not
8301
+ * defined
8302
+ * - \`ifDefined\`: Input is required when another specified input is defined
8303
+ * - \`conditionalValues\`: Input is required when another input has a specific
8304
+ * value
8305
+ *
8306
+ * By default, the input is not required.
8307
+ */
8308
+ required?: Item.Required;
8376
8309
 
8377
- /**
8378
- * The url of the image used as a thumbnail for your model
8379
- */
8380
- url: string;
8381
- }
8310
+ /**
8311
+ * The step increment for numeric inputs. Only available for \`number\` input type.
8312
+ */
8313
+ step?: number;
8382
8314
 
8383
- /**
8384
- * Currently the thumbnail is identical to the after asset.
8385
- */
8386
- export interface Thumbnail {
8387
- assetId: string;
8315
+ /**
8316
+ * The value of the input. This is the value of the input that will be used to run
8317
+ * the node. Only available for flows managed by a WorkflowJob.
8318
+ */
8319
+ value?: unknown;
8320
+ }
8388
8321
 
8389
- url: string;
8390
- }
8322
+ export namespace Item {
8323
+ /**
8324
+ * The reference to another input or output of the same workflow. Must have at
8325
+ * least one of node or conditional.
8326
+ */
8327
+ export interface Ref {
8328
+ /**
8329
+ * The conditional nodes to reference. If the conditional nodes are successful, the
8330
+ * node will be successful. If the conditional nodes are skipped, the node will be
8331
+ * skipped. Contains an array of node ids used to check the status of the nodes.
8332
+ */
8333
+ conditional?: Array<string>;
8391
8334
 
8392
- /**
8393
- * The UI configuration for the workflow. This is managed by scenario webapp.
8394
- */
8395
- export interface UiConfig {
8396
- /**
8397
- * Configuration for the input properties
8398
- */
8399
- inputProperties?: { [key: string]: UiConfig.InputProperties };
8335
+ /**
8336
+ * This is the desired node output value if ref is an if/else node.
8337
+ */
8338
+ equal?: string;
8400
8339
 
8401
- /**
8402
- * Configuration for the loras component
8403
- */
8404
- lorasComponent?: UiConfig.LorasComponent;
8340
+ /**
8341
+ * The name of the input or output to reference. If the type is 'workflow', the
8342
+ * name is the name of the input of the workflow is required If the type is 'node',
8343
+ * the name is not mandatory, except if you want all outputs of the node. To get
8344
+ * all outputs of a node, you can use the name 'all'.
8345
+ */
8346
+ name?: string;
8405
8347
 
8406
- /**
8407
- * Configuration for the presets
8408
- */
8409
- presets?: Array<UiConfig.Preset>;
8348
+ /**
8349
+ * The node id or 'workflow' if the source is a workflow input.
8350
+ */
8351
+ node?: string;
8352
+ }
8410
8353
 
8411
- /**
8412
- * Configuration for the resolution component
8413
- */
8414
- resolutionComponent?: UiConfig.ResolutionComponent;
8354
+ /**
8355
+ * Set of rules that describes when this input is required:
8356
+ *
8357
+ * - \`always\`: Input is always required
8358
+ * - \`ifNotDefined\`: Input is required when another specified input is not
8359
+ * defined
8360
+ * - \`ifDefined\`: Input is required when another specified input is defined
8361
+ * - \`conditionalValues\`: Input is required when another input has a specific
8362
+ * value
8363
+ *
8364
+ * By default, the input is not required.
8365
+ */
8366
+ export interface Required {
8367
+ /**
8368
+ * Whether the input is always required
8369
+ */
8370
+ always?: boolean;
8415
8371
 
8416
- /**
8417
- * Configuration for the selects
8418
- */
8419
- selects?: { [key: string]: unknown };
8372
+ /**
8373
+ * Makes this input required when another input has a specific value:
8374
+ *
8375
+ * - Key: name of the input to check
8376
+ * - Value: operation and allowed values that trigger the requirement
8377
+ */
8378
+ conditionalValues?: unknown;
8420
8379
 
8421
- /**
8422
- * Configuration for the trigger generate button
8423
- */
8424
- triggerGenerate?: UiConfig.TriggerGenerate;
8425
- }
8380
+ /**
8381
+ * Makes this input required when another input is defined:
8382
+ *
8383
+ * - Key: name of the input that must be defined
8384
+ * - Value: message to display when this input is required
8385
+ */
8386
+ ifDefined?: unknown;
8426
8387
 
8427
- export namespace UiConfig {
8428
- export interface InputProperties {
8429
- collapsed?: boolean;
8430
- }
8388
+ /**
8389
+ * Makes this input required when another input is not defined:
8390
+ *
8391
+ * - Key: name of the input that must be undefined
8392
+ * - Value: message to display when this input is required
8393
+ */
8394
+ ifNotDefined?: unknown;
8395
+ }
8396
+ }
8431
8397
 
8432
- /**
8433
- * Configuration for the loras component
8434
- */
8435
- export interface LorasComponent {
8436
- /**
8437
- * The label of the component
8438
- */
8439
- label: string;
8398
+ /**
8399
+ * The reference to another input or output of the same workflow. Must have at
8400
+ * least one of node or conditional.
8401
+ */
8402
+ export interface Ref {
8403
+ /**
8404
+ * The conditional nodes to reference. If the conditional nodes are successful, the
8405
+ * node will be successful. If the conditional nodes are skipped, the node will be
8406
+ * skipped. Contains an array of node ids used to check the status of the nodes.
8407
+ */
8408
+ conditional?: Array<string>;
8440
8409
 
8441
- /**
8442
- * The input name of the model (model_array)
8443
- */
8444
- modelInput: string;
8410
+ /**
8411
+ * This is the desired node output value if ref is an if/else node.
8412
+ */
8413
+ equal?: string;
8445
8414
 
8446
- /**
8447
- * The input name of the scale (number_array)
8448
- */
8449
- scaleInput: string;
8415
+ /**
8416
+ * The name of the input or output to reference. If the type is 'workflow', the
8417
+ * name is the name of the input of the workflow is required If the type is 'node',
8418
+ * the name is not mandatory, except if you want all outputs of the node. To get
8419
+ * all outputs of a node, you can use the name 'all'.
8420
+ */
8421
+ name?: string;
8450
8422
 
8451
- /**
8452
- * The input model id (example: a composition or a single LoRA modelId) If
8453
- * specified, the model id will be attached to the output asset as a metadata If
8454
- * the model-decomposer parser is specified on it, modelInput and scaleInput will
8455
- * be automatically populated
8456
- */
8457
- modelIdInput?: string;
8458
- }
8423
+ /**
8424
+ * The node id or 'workflow' if the source is a workflow input.
8425
+ */
8426
+ node?: string;
8427
+ }
8459
8428
 
8460
- export interface Preset {
8461
- fields: Array<string>;
8429
+ /**
8430
+ * Set of rules that describes when this input is required:
8431
+ *
8432
+ * - \`always\`: Input is always required
8433
+ * - \`ifNotDefined\`: Input is required when another specified input is not
8434
+ * defined
8435
+ * - \`ifDefined\`: Input is required when another specified input is defined
8436
+ * - \`conditionalValues\`: Input is required when another input has a specific
8437
+ * value
8438
+ *
8439
+ * By default, the input is not required.
8440
+ */
8441
+ export interface Required {
8442
+ /**
8443
+ * Whether the input is always required
8444
+ */
8445
+ always?: boolean;
8462
8446
 
8463
- presets: unknown;
8464
- }
8447
+ /**
8448
+ * Makes this input required when another input has a specific value:
8449
+ *
8450
+ * - Key: name of the input to check
8451
+ * - Value: operation and allowed values that trigger the requirement
8452
+ */
8453
+ conditionalValues?: unknown;
8465
8454
 
8466
- /**
8467
- * Configuration for the resolution component
8468
- */
8469
- export interface ResolutionComponent {
8470
- /**
8471
- * The input name of the height
8472
- */
8473
- heightInput: string;
8455
+ /**
8456
+ * Makes this input required when another input is defined:
8457
+ *
8458
+ * - Key: name of the input that must be defined
8459
+ * - Value: message to display when this input is required
8460
+ */
8461
+ ifDefined?: unknown;
8474
8462
 
8475
- /**
8476
- * The label of the component
8477
- */
8478
- label: string;
8463
+ /**
8464
+ * Makes this input required when another input is not defined:
8465
+ *
8466
+ * - Key: name of the input that must be undefined
8467
+ * - Value: message to display when this input is required
8468
+ */
8469
+ ifNotDefined?: unknown;
8470
+ }
8471
+ }
8479
8472
 
8480
8473
  /**
8481
- * The resolution presets
8474
+ * The logic of the node. Only available for logic nodes.
8482
8475
  */
8483
- presets: Array<ResolutionComponent.Preset>;
8476
+ export interface Logic {
8477
+ /**
8478
+ * The cases of the logic. Only available for if/else nodes.
8479
+ */
8480
+ cases?: Array<Logic.Case>;
8484
8481
 
8485
- /**
8486
- * The input name of the width
8487
- */
8488
- widthInput: string;
8489
- }
8482
+ /**
8483
+ * The default case of the logic. Contains the id/output of the node to execute if
8484
+ * no case is matched. Only available for if/else nodes.
8485
+ */
8486
+ default?: string;
8490
8487
 
8491
- export namespace ResolutionComponent {
8492
- export interface Preset {
8493
- height: number;
8488
+ /**
8489
+ * The transform of the logic. Only available for transform nodes.
8490
+ */
8491
+ transform?: string;
8492
+ }
8494
8493
 
8495
- label: string;
8494
+ export namespace Logic {
8495
+ export interface Case {
8496
+ condition: string;
8496
8497
 
8497
- width: number;
8498
+ value: string;
8499
+ }
8498
8500
  }
8499
8501
  }
8502
+ }
8500
8503
 
8501
- /**
8502
- * Configuration for the trigger generate button
8503
- */
8504
- export interface TriggerGenerate {
8505
- label: string;
8504
+ export interface StatusHistory {
8505
+ date: string;
8506
8506
 
8507
- /**
8508
- * The 'name' of the input where the trigger generate button will be displayed
8509
- * (after the input). Do not specify both position and after.
8510
- */
8511
- after?: string;
8507
+ status:
8508
+ | 'canceled'
8509
+ | 'failure'
8510
+ | 'finalizing'
8511
+ | 'in-progress'
8512
+ | 'pending'
8513
+ | 'queued'
8514
+ | 'success'
8515
+ | 'warming-up';
8516
+ }
8512
8517
 
8513
- /**
8514
- * The position of the trigger generate button. If position specified, the button
8515
- * will be displayed at the specified position. Do not specify both position and
8516
- * after.
8517
- */
8518
- position?: 'bottom' | 'top';
8519
- }
8518
+ /**
8519
+ * The billing of the job
8520
+ */
8521
+ export interface Billing {
8522
+ cuCost: number;
8523
+
8524
+ cuDiscount: number;
8520
8525
  }
8521
8526
  }
8522
8527
  }
@@ -9656,6 +9661,18 @@ export interface WorkflowRunParams {
9656
9661
  dryRun?: unknown;
9657
9662
  }
9658
9663
 
9664
+ export interface WorkflowUserApprovalParams {
9665
+ /**
9666
+ * The ID of the user approval node to approve in the workflow
9667
+ */
9668
+ nodeId: string;
9669
+
9670
+ /**
9671
+ * The ID of the workflow job that contains the user approval node
9672
+ */
9673
+ workflowJobId: string;
9674
+ }
9675
+
9659
9676
  export declare namespace Workflows {
9660
9677
  export {
9661
9678
  type WorkflowCreateResponse as WorkflowCreateResponse,
@@ -9663,9 +9680,9 @@ export declare namespace Workflows {
9663
9680
  type WorkflowUpdateResponse as WorkflowUpdateResponse,
9664
9681
  type WorkflowListResponse as WorkflowListResponse,
9665
9682
  type WorkflowDeleteResponse as WorkflowDeleteResponse,
9666
- type WorkflowApproveUserResponse as WorkflowApproveUserResponse,
9667
9683
  type WorkflowGetTagsResponse as WorkflowGetTagsResponse,
9668
9684
  type WorkflowRunResponse as WorkflowRunResponse,
9685
+ type WorkflowUserApprovalResponse as WorkflowUserApprovalResponse,
9669
9686
  type WorkflowListResponsesWorkflowsCursor as WorkflowListResponsesWorkflowsCursor,
9670
9687
  type WorkflowCreateParams as WorkflowCreateParams,
9671
9688
  type WorkflowUpdateParams as WorkflowUpdateParams,
@@ -9673,5 +9690,6 @@ export declare namespace Workflows {
9673
9690
  type WorkflowApproveUserParams as WorkflowApproveUserParams,
9674
9691
  type WorkflowGetTagsParams as WorkflowGetTagsParams,
9675
9692
  type WorkflowRunParams as WorkflowRunParams,
9693
+ type WorkflowUserApprovalParams as WorkflowUserApprovalParams,
9676
9694
  };
9677
9695
  }