How d3voz/openjutsu works
Openjutsu is a local-GPU video and image editing app: users select a mode, provide source media and settings, check workflow requirements, submit a ComfyUI job, and follow its progress or retrieve outputs. Its documented modes cover simple and advanced character swaps, reviewed person matching and montage, object edits, picture-led generation and relighting, face repair, and colour finishing. The graph keeps UI, API orchestration, workflow construction, and ComfyUI execution distinct. Some feature paths are documented but their implementation excerpts were not sampled, so those relationships cite the README.
Main entry points: comfy.ts Workflow submission and jobs · route.ts Job submission · setup.ts Workflow requirement checks · simple.ts Simple swap workflow
Components 25
User interface
- Editor and mode selection
components/openjutsu.tsx - Model selection
components/welcome.tsx - From picture editor
components/from-picture.tsx - Object placement
components/object-placement.tsx
API orchestration
- Job submission
app/api/jobs/route.ts - Job details
app/api/jobs/[id]/route.ts - Live job events
app/api/jobs/[id]/events/route.ts - Job outputs
app/api/jobs/[id]/outputs/[outputId]/route.ts - Model listing
app/api/models/route.ts - Edit presets
app/api/presets/route.ts - Workflow readiness
app/api/setup/route.ts - Picture pipeline API
app/api/picture/route.ts - Upload and request handling
lib/http.ts
Edit workflows
- Workflow requirement checks
lib/setup.ts - Simple swap workflow
lib/simple.ts - Advanced character workflow
lib/advanced.ts - People matching and montage
lib/montage.ts - Object edit workflow
lib/object.ts - Picture and relight workflow
lib/picture.ts - Face repair workflow
lib/face.ts - Colour finishing workflow
lib/color.ts - Model and LoRA settings
lib/model.ts
ComfyUI runtime
- Workflow submission and jobs
lib/comfy.ts
Other components
- Editor user
- ComfyUI
Connections 45
- Editor user → Editor and mode selection: selects and submits
README.md - Editor and mode selection → Model selection: opens model setup
components/openjutsu.tsx - Editor and mode selection → From picture editor: opens picture mode
components/openjutsu.tsx - Editor and mode selection → Object placement: opens object placement
components/openjutsu.tsx - Editor and mode selection → Job submission: submits jobs
README.md - Editor and mode selection → Workflow readiness: checks workflow
README.md - Model selection → Model listing: refreshes models
README.md - From picture editor → Picture pipeline API: requests picture render
README.md - Object placement → Job submission: provides edit settings
README.md - Job submission → Upload and request handling: parses uploads
app/api/jobs/route.ts - Job submission → Workflow submission and jobs: dispatches selected mode
app/api/jobs/route.ts - Job submission → Simple swap workflow: validates settings
app/api/jobs/route.ts - Job submission → Advanced character workflow: validates settings
app/api/jobs/route.ts - Job submission → Object edit workflow: validates settings
app/api/jobs/route.ts - Job submission → People matching and montage: validates review data
app/api/jobs/route.ts - Job submission → Face repair workflow: validates settings
app/api/jobs/route.ts - Job submission → Colour finishing workflow: validates settings
app/api/jobs/route.ts - Workflow readiness → Workflow requirement checks: checks readiness
app/api/setup/route.ts - Picture pipeline API → Picture and relight workflow: applies render settings
app/api/picture/route.ts - Picture pipeline API → Workflow submission and jobs: submits picture workflow
app/api/picture/route.ts - Model listing → Workflow submission and jobs: lists models
app/api/models/route.ts - Edit presets → Workflow submission and jobs: reads presets
app/api/presets/route.ts - Job details → Workflow submission and jobs: reads job state
app/api/jobs/[id]/route.ts - Live job events → Workflow submission and jobs: streams job events
app/api/jobs/[id]/events/route.ts - Job outputs → Workflow submission and jobs: retrieves output
app/api/jobs/[id]/outputs/[outputId]/route.ts - Workflow requirement checks → Workflow submission and jobs: checks node registry
lib/setup.ts - Workflow submission and jobs → ComfyUI: submits workflows
lib/comfy.ts - Workflow submission and jobs → Simple swap workflow: builds swap graph
lib/comfy.ts - Workflow submission and jobs → Advanced character workflow: finds workflow nodes
lib/comfy.ts - Workflow submission and jobs → Model and LoRA settings: applies model settings
lib/comfy.ts - Workflow submission and jobs → Face repair workflow: prunes face graph
lib/comfy.ts - Workflow submission and jobs → Colour finishing workflow: prunes colour graph
lib/comfy.ts - Simple swap workflow → Model and LoRA settings: shares model settings
lib/model.ts - Advanced character workflow → Simple swap workflow: uses graph helpers
lib/advanced.ts - Object edit workflow → Simple swap workflow: uses graph helpers
lib/object.ts - Object edit workflow → Advanced character workflow: finds workflow nodes
lib/object.ts - People matching and montage → Advanced character workflow: prunes shared graph
lib/montage.ts - Picture and relight workflow → Simple swap workflow: uses sizing helpers
lib/picture.ts - Picture and relight workflow → Model and LoRA settings: uses model settings
lib/picture.ts - Workflow requirement checks → Simple swap workflow: prunes selected graph
lib/setup.ts - Workflow requirement checks → Object edit workflow: prunes selected graph
lib/setup.ts - Workflow requirement checks → Advanced character workflow: prunes selected graph
lib/setup.ts - Workflow requirement checks → People matching and montage: prunes selected graph
lib/setup.ts - Workflow requirement checks → Face repair workflow: prunes selected graph
lib/setup.ts - Workflow requirement checks → Colour finishing workflow: prunes selected graph
lib/setup.ts