Skip to content

What do I edit?

This table is the whole point. Bookmark it.

FileEdit?Meaning
ir.build.tsYesFirst-party / code-authored source. Change topology here.
workflow.ts (imported package)Yes, if you adopt itConvenience emission from cwf import / cwf init. Optional.
Generated node SDK (*/nodes, src/nodes/gen)NoFrom /object_info. Regenerated by cwf codegen.
workflow.ir.jsonNoGenerated semantic artifact.
comfy.workflow.jsonUsually generatedPackage manifest. Edit only when you intend to change published metadata.
comfy.lock.jsonUpdate on purposeEnvironment lock. Recapture with cwf lock, do not tweak hashes.
Comfy API JSON / prompt.template.jsonNoCompiled execution artifact.
object_info.jsonNoSnapshot of a live Comfy. Recapture, don't patch.
NODES.md / catalog.jsonNoCodegen companions.
Edit this means a human or agent maintains it. Generated — do not hand-edit means a tool wrote it.

Two normal package shapes

Imported package

workflow.json          ← you already had this
    ↓ cwf init / import
workflow.ir.json       ← generated
workflow.ts            ← optional, editable convenience
comfy.workflow.json    ← generated, then you expose params

First-party / code-authored package

ir.build.ts            ← you edit this
    ↓ build
workflow.ir.json       ← generated
comfy.workflow.json    ← generated / derived
    ↓ compile
API JSON               ← generated

Rule of thumb

If changing a value changes which nodes exist, that is topology. Put it in TypeScript.

If it only changes a widget (prompt, seed, steps, a filename on the server), that is a runtime parameter.

Linked from

This page is linked from the homepage, the code-first quickstart, the package guide, and product integration on purpose. The mix-up (editing IR because "IR is canonical") is the most expensive conceptual bug in this project.

Released under the MIT License. Unofficial project. Not affiliated with or endorsed by Comfy Org.