Files
VrchStudio-comfyui-web-viewer/docs/workflow_export_nodes.md
T

114 lines
3.3 KiB
Markdown

### Node: `Export Workflow API @ vrch.ai` (vrch.ai/workflow)
Exports the currently executed ComfyUI workflow as **API format JSON** (from hidden `PROMPT`) to a server-side directory.
This node is designed for queue-time export (no extra HTTP route required).
It forces execution on each queue run (`IS_CHANGED = NaN`) to avoid cache-skip on unchanged graphs.
---
### 1. Add the node
Add **`Export Workflow API @ vrch.ai`** into your workflow and connect it into the execution path.
Because this is an `OUTPUT_NODE`, it can be used as an end-stage export step.
---
### 2. Configure parameters
- **`enable_save`** (`BOOLEAN`)
- Global switch for this node.
- `False` skips export without errors.
- **`disable_save_in_exported_api`** (`BOOLEAN`)
- Default: `True`
- When enabled, exported API workflow will set `enable_save=false` for all `VrchWorkflowApiExportNode` nodes.
- **`workflow_folder`** (`STRING`)
- Relative subfolder under the selected target base directory.
- Default: empty string (`""`, save into target root directly).
- Example: `TensorRT/live_portrait`
- **`workflow_name`** (`STRING`)
- Output filename. `.json` is auto-appended if missing.
- Default: `workflow_api`
- **`output_dir_option`** (`COMBO`)
- `vrch_workflows_api_dir` (default)
- `comfyui_output_dir`
- `comfyui_input_dir`
- `comfyui_temp_dir`
- `custom_dir`
- **`custom_dir`** (`STRING`)
- Used only when `output_dir_option = custom_dir`.
- Always visible in UI for easier editing.
- Default: empty string (`""`).
- **`pretty_json`** (`BOOLEAN`)
- Default: `True`
- `True`: indented JSON
- `False`: compact JSON
- **`debug`** (`BOOLEAN`)
- Prints export diagnostics to ComfyUI server logs.
---
### 3. Target directory behavior
The final path is:
`<base_dir>/<workflow_folder>/<workflow_name>.json`
Base directory resolution:
- `vrch_workflows_api_dir` -> `/basedir/user/default/workflows_api`
- `comfyui_output_dir` -> `folder_paths.output_directory`
- `comfyui_input_dir` -> `folder_paths.input_directory` (or fallback getter)
- `comfyui_temp_dir` -> `folder_paths.temp_directory` (or fallback getter)
- `custom_dir` -> user-provided absolute/expanded path
---
### 4. Safety behavior
- `workflow_name` cannot contain path separators.
- `workflow_folder` must be relative and cannot contain `.` / `..` segments.
- Non-finite numeric values (`NaN`, `Infinity`, `-Infinity`) are normalized to `null` for valid JSON output.
- Existing file is overwritten only when content changed (unchanged content skips write via in-process last-export hash cache).
---
### 5. Runner integration example
If your runner reads:
`~/data/comfyui-lite-workflows/workflows_api`
map it into the container, for example:
```yaml
volumes:
- ${HOME}/data/comfyui-lite-workflows/workflows_api:/basedir/user/default/workflows_api
```
Then set:
- `output_dir_option = vrch_workflows_api_dir`
- `workflow_folder = ""` (or nested relative folder if needed)
The exported file will be available directly to `comfyui-api-runner`.
---
### 6. Typical usage flow
1. Set `workflow_folder` and `workflow_name`.
2. Choose `output_dir_option`.
3. Optionally disable/enable export with `enable_save`.
4. Queue the workflow.
5. The node writes the API JSON on execution.
6. Use runner workflow switching/listing to load the new file.