comfy-edit
Original:🇺🇸 English
Translated
Use when editing ComfyUI workflow JSON, adding nodes, wiring connections, modifying workflows, adding ControlNet/LoRA/upscaling to a workflow, or submitting workflows to ComfyUI.
3installs
Sourcepeteromallet/vibecomfy
Added on
NPX Install
npx skill4agent add peteromallet/vibecomfy comfy-editTags
Translated version includes tags in frontmatterSKILL.md Content
View Translation Comparison →ComfyUI Workflow Editing
Edit workflow JSON files using the VibeComfy CLI.
When working in the repo, see CLAUDE.md for full command reference.
CLI Commands
All edit commands require . Use to preview changes.
-o output.json--dry-run| Command | Purpose |
|---|---|
| Show node inputs/outputs with slot names |
| Find nodes feeding into target |
| Find nodes fed by source |
| Connect nodes |
| Duplicate a node |
| Set widget values |
| Remove nodes |
| Create new node |
| Multi-step edits |
| Run workflow in ComfyUI |
Tip: Use first to find slot numbers, then to connect.
tracewireAdding Nodes Workflow
- Find the node: (use comfy-registry skill)
comfy_search("controlnet") - Get the spec: - see inputs/outputs
comfy_spec("ControlNetLoader") - Understand the flow:
python we_vibin.py trace workflow.json <ksampler_id> - Create and wire:
bash
python we_vibin.py create workflow.json ControlNetLoader -o step1.json
python we_vibin.py trace step1.json <new_node_id> # Find the slot numbers
python we_vibin.py wire step1.json <src_id> <src_slot> <dst_id> <dst_slot> -o step2.jsonOr use batch scripts for multi-step edits (slot names work in batch mode):
bash
create ControlNetLoader as $cn
wire $cn:control_net -> 15:control_netCommon Patterns
What nodes go together. See references/PATTERNS.md for details.
Image Generation
| Pattern | Flow |
|---|---|
| txt2img | Checkpoint → CLIP (x2) → EmptyLatent → KSampler → VAEDecode → Save |
| img2img | LoadImage → VAEEncode → KSampler (denoise<1) → VAEDecode → Save |
| inpaint | LoadImage + Mask → VAEEncodeForInpaint → KSampler → VAEDecode |
Enhancements
| Pattern | Flow |
|---|---|
| ControlNet | LoadControlNet → ControlNetApply → KSampler |
| LoRA | Checkpoint → LoraLoader → KSampler |
| Upscale | LoadUpscaleModel → ImageUpscaleWithModel → Save |
| IPAdapter | LoadIPAdapter → IPAdapterApply → KSampler |
Video
| Pattern | Flow |
|---|---|
| AnimateDiff | Checkpoint → ADE_LoadAnimateDiff → ADE_Apply → KSampler → VHS_Combine |
| Wan t2v | WanModelLoader → WanTextEncode → WanSampler → WanDecode |
| LTX | LTXVLoader → LTXVTextEncode → LTXVSampler → LTXVDecode |
| v2v | VHS_LoadVideo → VAEEncode → KSampler → VAEDecode → VHS_Combine |
Flux
| Pattern | Flow |
|---|---|
| Flux txt2img | UNETLoader + DualCLIPLoader + VAELoader → FluxGuidance → KSampler |
Batch Scripts
For multi-step edits, use batch scripts:
bash
# Copy node, assign to variable
copy 1183 as $selector
# Set widgets
set $selector indexes="0:81"
# Wire using slot names
wire 1140:IMAGE -> $selector:image
# Delete nodes
delete 1220 1228Run with:
python we_vibin.py batch workflow.json script.txt -o out.json --dry-run