curl --request POST \
--url https://core.cyberun.cloud/api/v1/workflows/import \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"workflow_slug": "sd-portrait-v2",
"display_name": "SD 1.5 Portrait Generator",
"workflow_json": {
"5": {
"class_type": "EmptyLatentImage",
"inputs": {
"width": 512,
"height": 512,
"batch_size": 1
}
},
"6": {
"class_type": "CLIPTextEncode",
"inputs": {
"text": "a portrait photo",
"clip": [
"4",
0
]
}
}
},
"description": "<string>",
"parameters": [
{
"key": "prompt",
"label": "Positive Prompt",
"node_id": "6",
"field": "text",
"target_path": "train.max_num_iterations",
"description": "<string>",
"required": true,
"default": "<unknown>",
"min": 123,
"max": 123,
"options": [
"<string>"
],
"accept": [
"<string>"
],
"source_key": "input_image"
}
],
"tool_type": "comfyui",
"required_labels": [
"gpu",
"sd15"
],
"task_timeout": 0,
"max_retries": 0,
"preferred_gpu": "RTX_4090",
"default_dispatch_target": "agent",
"min_vram_gb": 24,
"required_models": [
"checkpoints/sdxl-base.safetensors",
"loras/style.safetensors"
]
}
'import requests
url = "https://core.cyberun.cloud/api/v1/workflows/import"
payload = {
"workflow_slug": "sd-portrait-v2",
"display_name": "SD 1.5 Portrait Generator",
"workflow_json": {
"5": {
"class_type": "EmptyLatentImage",
"inputs": {
"width": 512,
"height": 512,
"batch_size": 1
}
},
"6": {
"class_type": "CLIPTextEncode",
"inputs": {
"text": "a portrait photo",
"clip": ["4", 0]
}
}
},
"description": "<string>",
"parameters": [
{
"key": "prompt",
"label": "Positive Prompt",
"node_id": "6",
"field": "text",
"target_path": "train.max_num_iterations",
"description": "<string>",
"required": True,
"default": "<unknown>",
"min": 123,
"max": 123,
"options": ["<string>"],
"accept": ["<string>"],
"source_key": "input_image"
}
],
"tool_type": "comfyui",
"required_labels": ["gpu", "sd15"],
"task_timeout": 0,
"max_retries": 0,
"preferred_gpu": "RTX_4090",
"default_dispatch_target": "agent",
"min_vram_gb": 24,
"required_models": ["checkpoints/sdxl-base.safetensors", "loras/style.safetensors"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
workflow_slug: 'sd-portrait-v2',
display_name: 'SD 1.5 Portrait Generator',
workflow_json: {
'5': {
class_type: 'EmptyLatentImage',
inputs: {width: 512, height: 512, batch_size: 1}
},
'6': {
class_type: 'CLIPTextEncode',
inputs: {text: 'a portrait photo', clip: ['4', 0]}
}
},
description: '<string>',
parameters: [
{
key: 'prompt',
label: 'Positive Prompt',
node_id: '6',
field: 'text',
target_path: 'train.max_num_iterations',
description: '<string>',
required: true,
default: '<unknown>',
min: 123,
max: 123,
options: ['<string>'],
accept: ['<string>'],
source_key: 'input_image'
}
],
tool_type: 'comfyui',
required_labels: ['gpu', 'sd15'],
task_timeout: 0,
max_retries: 0,
preferred_gpu: 'RTX_4090',
default_dispatch_target: 'agent',
min_vram_gb: 24,
required_models: ['checkpoints/sdxl-base.safetensors', 'loras/style.safetensors']
})
};
fetch('https://core.cyberun.cloud/api/v1/workflows/import', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://core.cyberun.cloud/api/v1/workflows/import",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'workflow_slug' => 'sd-portrait-v2',
'display_name' => 'SD 1.5 Portrait Generator',
'workflow_json' => [
'5' => [
'class_type' => 'EmptyLatentImage',
'inputs' => [
'width' => 512,
'height' => 512,
'batch_size' => 1
]
],
'6' => [
'class_type' => 'CLIPTextEncode',
'inputs' => [
'text' => 'a portrait photo',
'clip' => [
'4',
0
]
]
]
],
'description' => '<string>',
'parameters' => [
[
'key' => 'prompt',
'label' => 'Positive Prompt',
'node_id' => '6',
'field' => 'text',
'target_path' => 'train.max_num_iterations',
'description' => '<string>',
'required' => true,
'default' => '<unknown>',
'min' => 123,
'max' => 123,
'options' => [
'<string>'
],
'accept' => [
'<string>'
],
'source_key' => 'input_image'
]
],
'tool_type' => 'comfyui',
'required_labels' => [
'gpu',
'sd15'
],
'task_timeout' => 0,
'max_retries' => 0,
'preferred_gpu' => 'RTX_4090',
'default_dispatch_target' => 'agent',
'min_vram_gb' => 24,
'required_models' => [
'checkpoints/sdxl-base.safetensors',
'loras/style.safetensors'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://core.cyberun.cloud/api/v1/workflows/import"
payload := strings.NewReader("{\n \"workflow_slug\": \"sd-portrait-v2\",\n \"display_name\": \"SD 1.5 Portrait Generator\",\n \"workflow_json\": {\n \"5\": {\n \"class_type\": \"EmptyLatentImage\",\n \"inputs\": {\n \"width\": 512,\n \"height\": 512,\n \"batch_size\": 1\n }\n },\n \"6\": {\n \"class_type\": \"CLIPTextEncode\",\n \"inputs\": {\n \"text\": \"a portrait photo\",\n \"clip\": [\n \"4\",\n 0\n ]\n }\n }\n },\n \"description\": \"<string>\",\n \"parameters\": [\n {\n \"key\": \"prompt\",\n \"label\": \"Positive Prompt\",\n \"node_id\": \"6\",\n \"field\": \"text\",\n \"target_path\": \"train.max_num_iterations\",\n \"description\": \"<string>\",\n \"required\": true,\n \"default\": \"<unknown>\",\n \"min\": 123,\n \"max\": 123,\n \"options\": [\n \"<string>\"\n ],\n \"accept\": [\n \"<string>\"\n ],\n \"source_key\": \"input_image\"\n }\n ],\n \"tool_type\": \"comfyui\",\n \"required_labels\": [\n \"gpu\",\n \"sd15\"\n ],\n \"task_timeout\": 0,\n \"max_retries\": 0,\n \"preferred_gpu\": \"RTX_4090\",\n \"default_dispatch_target\": \"agent\",\n \"min_vram_gb\": 24,\n \"required_models\": [\n \"checkpoints/sdxl-base.safetensors\",\n \"loras/style.safetensors\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://core.cyberun.cloud/api/v1/workflows/import")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"workflow_slug\": \"sd-portrait-v2\",\n \"display_name\": \"SD 1.5 Portrait Generator\",\n \"workflow_json\": {\n \"5\": {\n \"class_type\": \"EmptyLatentImage\",\n \"inputs\": {\n \"width\": 512,\n \"height\": 512,\n \"batch_size\": 1\n }\n },\n \"6\": {\n \"class_type\": \"CLIPTextEncode\",\n \"inputs\": {\n \"text\": \"a portrait photo\",\n \"clip\": [\n \"4\",\n 0\n ]\n }\n }\n },\n \"description\": \"<string>\",\n \"parameters\": [\n {\n \"key\": \"prompt\",\n \"label\": \"Positive Prompt\",\n \"node_id\": \"6\",\n \"field\": \"text\",\n \"target_path\": \"train.max_num_iterations\",\n \"description\": \"<string>\",\n \"required\": true,\n \"default\": \"<unknown>\",\n \"min\": 123,\n \"max\": 123,\n \"options\": [\n \"<string>\"\n ],\n \"accept\": [\n \"<string>\"\n ],\n \"source_key\": \"input_image\"\n }\n ],\n \"tool_type\": \"comfyui\",\n \"required_labels\": [\n \"gpu\",\n \"sd15\"\n ],\n \"task_timeout\": 0,\n \"max_retries\": 0,\n \"preferred_gpu\": \"RTX_4090\",\n \"default_dispatch_target\": \"agent\",\n \"min_vram_gb\": 24,\n \"required_models\": [\n \"checkpoints/sdxl-base.safetensors\",\n \"loras/style.safetensors\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://core.cyberun.cloud/api/v1/workflows/import")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"workflow_slug\": \"sd-portrait-v2\",\n \"display_name\": \"SD 1.5 Portrait Generator\",\n \"workflow_json\": {\n \"5\": {\n \"class_type\": \"EmptyLatentImage\",\n \"inputs\": {\n \"width\": 512,\n \"height\": 512,\n \"batch_size\": 1\n }\n },\n \"6\": {\n \"class_type\": \"CLIPTextEncode\",\n \"inputs\": {\n \"text\": \"a portrait photo\",\n \"clip\": [\n \"4\",\n 0\n ]\n }\n }\n },\n \"description\": \"<string>\",\n \"parameters\": [\n {\n \"key\": \"prompt\",\n \"label\": \"Positive Prompt\",\n \"node_id\": \"6\",\n \"field\": \"text\",\n \"target_path\": \"train.max_num_iterations\",\n \"description\": \"<string>\",\n \"required\": true,\n \"default\": \"<unknown>\",\n \"min\": 123,\n \"max\": 123,\n \"options\": [\n \"<string>\"\n ],\n \"accept\": [\n \"<string>\"\n ],\n \"source_key\": \"input_image\"\n }\n ],\n \"tool_type\": \"comfyui\",\n \"required_labels\": [\n \"gpu\",\n \"sd15\"\n ],\n \"task_timeout\": 0,\n \"max_retries\": 0,\n \"preferred_gpu\": \"RTX_4090\",\n \"default_dispatch_target\": \"agent\",\n \"min_vram_gb\": 24,\n \"required_models\": [\n \"checkpoints/sdxl-base.safetensors\",\n \"loras/style.safetensors\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"id": "019abc12-3456-7890-abcd-ef1234567890"
}{
"error_message": "resource not found"
}{
"error_message": "resource not found"
}{
"error_message": "resource not found"
}Import a workflow
Imports a workflow from previously exported data. If a workflow with the same slug already exists in the team, it is overwritten (all fields are updated and the version is incremented). Otherwise a new workflow is created.
curl --request POST \
--url https://core.cyberun.cloud/api/v1/workflows/import \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"workflow_slug": "sd-portrait-v2",
"display_name": "SD 1.5 Portrait Generator",
"workflow_json": {
"5": {
"class_type": "EmptyLatentImage",
"inputs": {
"width": 512,
"height": 512,
"batch_size": 1
}
},
"6": {
"class_type": "CLIPTextEncode",
"inputs": {
"text": "a portrait photo",
"clip": [
"4",
0
]
}
}
},
"description": "<string>",
"parameters": [
{
"key": "prompt",
"label": "Positive Prompt",
"node_id": "6",
"field": "text",
"target_path": "train.max_num_iterations",
"description": "<string>",
"required": true,
"default": "<unknown>",
"min": 123,
"max": 123,
"options": [
"<string>"
],
"accept": [
"<string>"
],
"source_key": "input_image"
}
],
"tool_type": "comfyui",
"required_labels": [
"gpu",
"sd15"
],
"task_timeout": 0,
"max_retries": 0,
"preferred_gpu": "RTX_4090",
"default_dispatch_target": "agent",
"min_vram_gb": 24,
"required_models": [
"checkpoints/sdxl-base.safetensors",
"loras/style.safetensors"
]
}
'import requests
url = "https://core.cyberun.cloud/api/v1/workflows/import"
payload = {
"workflow_slug": "sd-portrait-v2",
"display_name": "SD 1.5 Portrait Generator",
"workflow_json": {
"5": {
"class_type": "EmptyLatentImage",
"inputs": {
"width": 512,
"height": 512,
"batch_size": 1
}
},
"6": {
"class_type": "CLIPTextEncode",
"inputs": {
"text": "a portrait photo",
"clip": ["4", 0]
}
}
},
"description": "<string>",
"parameters": [
{
"key": "prompt",
"label": "Positive Prompt",
"node_id": "6",
"field": "text",
"target_path": "train.max_num_iterations",
"description": "<string>",
"required": True,
"default": "<unknown>",
"min": 123,
"max": 123,
"options": ["<string>"],
"accept": ["<string>"],
"source_key": "input_image"
}
],
"tool_type": "comfyui",
"required_labels": ["gpu", "sd15"],
"task_timeout": 0,
"max_retries": 0,
"preferred_gpu": "RTX_4090",
"default_dispatch_target": "agent",
"min_vram_gb": 24,
"required_models": ["checkpoints/sdxl-base.safetensors", "loras/style.safetensors"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
workflow_slug: 'sd-portrait-v2',
display_name: 'SD 1.5 Portrait Generator',
workflow_json: {
'5': {
class_type: 'EmptyLatentImage',
inputs: {width: 512, height: 512, batch_size: 1}
},
'6': {
class_type: 'CLIPTextEncode',
inputs: {text: 'a portrait photo', clip: ['4', 0]}
}
},
description: '<string>',
parameters: [
{
key: 'prompt',
label: 'Positive Prompt',
node_id: '6',
field: 'text',
target_path: 'train.max_num_iterations',
description: '<string>',
required: true,
default: '<unknown>',
min: 123,
max: 123,
options: ['<string>'],
accept: ['<string>'],
source_key: 'input_image'
}
],
tool_type: 'comfyui',
required_labels: ['gpu', 'sd15'],
task_timeout: 0,
max_retries: 0,
preferred_gpu: 'RTX_4090',
default_dispatch_target: 'agent',
min_vram_gb: 24,
required_models: ['checkpoints/sdxl-base.safetensors', 'loras/style.safetensors']
})
};
fetch('https://core.cyberun.cloud/api/v1/workflows/import', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://core.cyberun.cloud/api/v1/workflows/import",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'workflow_slug' => 'sd-portrait-v2',
'display_name' => 'SD 1.5 Portrait Generator',
'workflow_json' => [
'5' => [
'class_type' => 'EmptyLatentImage',
'inputs' => [
'width' => 512,
'height' => 512,
'batch_size' => 1
]
],
'6' => [
'class_type' => 'CLIPTextEncode',
'inputs' => [
'text' => 'a portrait photo',
'clip' => [
'4',
0
]
]
]
],
'description' => '<string>',
'parameters' => [
[
'key' => 'prompt',
'label' => 'Positive Prompt',
'node_id' => '6',
'field' => 'text',
'target_path' => 'train.max_num_iterations',
'description' => '<string>',
'required' => true,
'default' => '<unknown>',
'min' => 123,
'max' => 123,
'options' => [
'<string>'
],
'accept' => [
'<string>'
],
'source_key' => 'input_image'
]
],
'tool_type' => 'comfyui',
'required_labels' => [
'gpu',
'sd15'
],
'task_timeout' => 0,
'max_retries' => 0,
'preferred_gpu' => 'RTX_4090',
'default_dispatch_target' => 'agent',
'min_vram_gb' => 24,
'required_models' => [
'checkpoints/sdxl-base.safetensors',
'loras/style.safetensors'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://core.cyberun.cloud/api/v1/workflows/import"
payload := strings.NewReader("{\n \"workflow_slug\": \"sd-portrait-v2\",\n \"display_name\": \"SD 1.5 Portrait Generator\",\n \"workflow_json\": {\n \"5\": {\n \"class_type\": \"EmptyLatentImage\",\n \"inputs\": {\n \"width\": 512,\n \"height\": 512,\n \"batch_size\": 1\n }\n },\n \"6\": {\n \"class_type\": \"CLIPTextEncode\",\n \"inputs\": {\n \"text\": \"a portrait photo\",\n \"clip\": [\n \"4\",\n 0\n ]\n }\n }\n },\n \"description\": \"<string>\",\n \"parameters\": [\n {\n \"key\": \"prompt\",\n \"label\": \"Positive Prompt\",\n \"node_id\": \"6\",\n \"field\": \"text\",\n \"target_path\": \"train.max_num_iterations\",\n \"description\": \"<string>\",\n \"required\": true,\n \"default\": \"<unknown>\",\n \"min\": 123,\n \"max\": 123,\n \"options\": [\n \"<string>\"\n ],\n \"accept\": [\n \"<string>\"\n ],\n \"source_key\": \"input_image\"\n }\n ],\n \"tool_type\": \"comfyui\",\n \"required_labels\": [\n \"gpu\",\n \"sd15\"\n ],\n \"task_timeout\": 0,\n \"max_retries\": 0,\n \"preferred_gpu\": \"RTX_4090\",\n \"default_dispatch_target\": \"agent\",\n \"min_vram_gb\": 24,\n \"required_models\": [\n \"checkpoints/sdxl-base.safetensors\",\n \"loras/style.safetensors\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://core.cyberun.cloud/api/v1/workflows/import")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"workflow_slug\": \"sd-portrait-v2\",\n \"display_name\": \"SD 1.5 Portrait Generator\",\n \"workflow_json\": {\n \"5\": {\n \"class_type\": \"EmptyLatentImage\",\n \"inputs\": {\n \"width\": 512,\n \"height\": 512,\n \"batch_size\": 1\n }\n },\n \"6\": {\n \"class_type\": \"CLIPTextEncode\",\n \"inputs\": {\n \"text\": \"a portrait photo\",\n \"clip\": [\n \"4\",\n 0\n ]\n }\n }\n },\n \"description\": \"<string>\",\n \"parameters\": [\n {\n \"key\": \"prompt\",\n \"label\": \"Positive Prompt\",\n \"node_id\": \"6\",\n \"field\": \"text\",\n \"target_path\": \"train.max_num_iterations\",\n \"description\": \"<string>\",\n \"required\": true,\n \"default\": \"<unknown>\",\n \"min\": 123,\n \"max\": 123,\n \"options\": [\n \"<string>\"\n ],\n \"accept\": [\n \"<string>\"\n ],\n \"source_key\": \"input_image\"\n }\n ],\n \"tool_type\": \"comfyui\",\n \"required_labels\": [\n \"gpu\",\n \"sd15\"\n ],\n \"task_timeout\": 0,\n \"max_retries\": 0,\n \"preferred_gpu\": \"RTX_4090\",\n \"default_dispatch_target\": \"agent\",\n \"min_vram_gb\": 24,\n \"required_models\": [\n \"checkpoints/sdxl-base.safetensors\",\n \"loras/style.safetensors\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://core.cyberun.cloud/api/v1/workflows/import")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"workflow_slug\": \"sd-portrait-v2\",\n \"display_name\": \"SD 1.5 Portrait Generator\",\n \"workflow_json\": {\n \"5\": {\n \"class_type\": \"EmptyLatentImage\",\n \"inputs\": {\n \"width\": 512,\n \"height\": 512,\n \"batch_size\": 1\n }\n },\n \"6\": {\n \"class_type\": \"CLIPTextEncode\",\n \"inputs\": {\n \"text\": \"a portrait photo\",\n \"clip\": [\n \"4\",\n 0\n ]\n }\n }\n },\n \"description\": \"<string>\",\n \"parameters\": [\n {\n \"key\": \"prompt\",\n \"label\": \"Positive Prompt\",\n \"node_id\": \"6\",\n \"field\": \"text\",\n \"target_path\": \"train.max_num_iterations\",\n \"description\": \"<string>\",\n \"required\": true,\n \"default\": \"<unknown>\",\n \"min\": 123,\n \"max\": 123,\n \"options\": [\n \"<string>\"\n ],\n \"accept\": [\n \"<string>\"\n ],\n \"source_key\": \"input_image\"\n }\n ],\n \"tool_type\": \"comfyui\",\n \"required_labels\": [\n \"gpu\",\n \"sd15\"\n ],\n \"task_timeout\": 0,\n \"max_retries\": 0,\n \"preferred_gpu\": \"RTX_4090\",\n \"default_dispatch_target\": \"agent\",\n \"min_vram_gb\": 24,\n \"required_models\": [\n \"checkpoints/sdxl-base.safetensors\",\n \"loras/style.safetensors\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"id": "019abc12-3456-7890-abcd-ef1234567890"
}{
"error_message": "resource not found"
}{
"error_message": "resource not found"
}{
"error_message": "resource not found"
}Authorizations
User session JWT (Bearer ). Must be paired with the X-Team-ID
request header on team-scoped endpoints so the server knows which
team's resources to operate on.
Headers
UUID of the team to scope the request to. Used by dual-auth endpoints (runtime + scoped management):
- JWT callers MUST send it — a user may belong to multiple teams and the runtime cannot otherwise know which one to operate on. Missing header → 400.
- Credential callers (
sk-,dk-) can omit it because the team is derived from the credential row itself. Any value sent is ignored.
"019abc12-4567-7890-abcd-ef1234567891"
Body
Globally unique URL-friendly identifier for the workflow. Lowercase letters, numbers, and hyphens only.
2 - 100^[a-z0-9]+(?:-[a-z0-9]+)*$"sd-portrait-v2"
Human-readable name for this workflow template.
1 - 255"SD 1.5 Portrait Generator"
Tool-specific workflow definition. For tool_type=comfyui, this is a
ComfyUI API workflow JSON object. For tool_type=nerfstudio, this is a
Nerfstudio 3DGS pipeline spec.
{
"5": {
"class_type": "EmptyLatentImage",
"inputs": {
"width": 512,
"height": 512,
"batch_size": 1
}
},
"6": {
"class_type": "CLIPTextEncode",
"inputs": {
"text": "a portrait photo",
"clip": ["4", 0]
}
}
}
Optional description of what this workflow does.
2000Configurable parameters that can be overridden at run time. Each parameter maps a user-facing key to a tool-specific injection target. See ParameterDefInput for the mapping mechanism.
Show child attributes
Show child attributes
Tool runtime used by this workflow:
comfyui: ComfyUI API workflow JSON (default, backward compatible).nerfstudio: Nerfstudio 3DGS pipeline spec.
comfyui, nerfstudio "comfyui"
Labels that an agent must have in order to receive tasks from this workflow. All labels must match (AND logic). If empty or omitted, any agent can execute it.
["gpu", "sd15"]
Maximum execution time in seconds after agent ACK. If the agent does not report completion within this time, the task is marked as failed and may be retried. 0 means use the gateway's default max timeout (typically 24 hours).
x >= 0Maximum number of automatic retries on failure. When a task fails (agent disconnect, timeout, ComfyUI error), a new retry task is created automatically up to this limit. 0 means no retry.
x >= 0Preferred GPU type for agent matching (e.g. "RTX_4090", "A100_80GB"). When set, the scheduler prioritises agents with this GPU type. If empty, any available GPU is accepted.
100"RTX_4090"
Default compute source for tasks created from this workflow.
Can be overridden per-run. If not set, defaults to agent.
agent, comfy_cloud "agent"
Minimum GPU VRAM required (decimal GB) for an agent to run
this workflow. The dispatcher's hard filter excludes agents
whose advertised vram_total_gb is below this number. 0 means
no requirement (default).
0 <= x <= 204824
Model paths the workflow needs (relative to the runtime's
models root, e.g. checkpoints/sdxl-base.safetensors). The
dispatcher's hard filter excludes any agent missing one or
more of these files. Empty / omitted means no requirement.
512[
"checkpoints/sdxl-base.safetensors",
"loras/style.safetensors"
]
Response
Workflow imported (created or updated)
UUID of the created or updated resource.
"019abc12-3456-7890-abcd-ef1234567890"
