English | 日本語 | 中文 | Español | Français | हिन्दी | Italiano | Português (BR)
Six profiles. Verified workflows. No canvas. Drive ComfyUI from your editor — images, video, audio, 3D meshes, and image understanding. Pick a profile, answer the inputs it asks for, and watch the status bar while CodeComfy handles submission, polling, download, and assembly. Every shipped workflow is verified against the live ComfyUI catalog, and missing nodes or models are named before anything is submitted.
Prerequisites
InstallationFrom the VS Code Marketplace (recommended)
From a
|
| Setting | Description | Default |
|---|---|---|
codecomfy.comfyuiUrl |
ComfyUI server URL | http://127.0.0.1:8188 |
codecomfy.ffmpegPath |
Absolute path to FFmpeg executable (leave empty for PATH lookup) | "" |
codecomfy.autoOpenGalleryOnComplete |
Open NextGallery after generation finishes | true |
codecomfy.nextGalleryPath |
Absolute path to NextGallery.exe | Auto-detect |
codecomfy.defaultNegativePrompt |
Default negative prompt pre-filled during generation | "" |
Quickstart
- Start ComfyUI — make sure it is running and reachable.
- Pick a command — open the Command Palette (
Ctrl+Shift+P) and choose:CodeComfy: Generate Image (HQ)— single imageCodeComfy: Generate Video (HQ)— short video (2–8 s)
- Enter a prompt, optionally a negative prompt (things to avoid), and a seed, then watch the status bar.
The status bar shows real-time progress (queued → generating → done).
Structured logs appear in the CodeComfy Output channel
(Ctrl+Shift+U, then select "CodeComfy").
Outputs are saved to .codecomfy/outputs/ in your workspace root.
Run metadata lives in .codecomfy/runs/.
Cancel
Run CodeComfy: Cancel Generation from the Command Palette or click the
status bar item while a generation is in progress. This clears the pending
queue and interrupts the running job — so cancelling does not simply start
whatever you had queued next.
Clear the queue
CodeComfy: Clear ComfyUI Queue drops every pending job and leaves the
running one alone.
This is the honest version of "pause": mainline ComfyUI has /interrupt
(abort, no resume) and nothing else — there is no pause and no
resume-at-step-N. Stopping more work from starting is the part that can
actually be done.
Features
- Six profiles — image, video, audio, 3D, inference, and PNG metadata, with 27 verified reference workflows.
- Preflight — missing nodes and models are named before anything is submitted, so no GPU time is spent on a run that cannot succeed.
- Live progress — real sampler steps in the status bar (
Step 12 / 20), streamed over ComfyUI's WebSocket. Falls back to polling automatically. - Built-in HQ image + video presets — video runs on Wan 2.2 TI2V-5B (Apache-2.0, commercial-safe) with server-side encoding, no FFmpeg.
- User-authored workflow presets (NEW) — drop any ComfyUI workflow JSON in
.codecomfy/presets/. - Activity-bar run history (NEW) — browse and re-run past generations.
- Real-time progress in the status bar.
- Completion notifications (NEW, opt-out) — know when a slow video is done.
- Structured output channel for diagnostics.
- Cross-platform (Windows-first, macOS + Linux expected).
The six profiles
CodeComfy: Run… (all profiles) walks profile → preset → inputs. The inputs
are derived from the chosen preset's own graph, so an image-to-video preset asks
for a source image and a text-to-video preset does not.
| Profile | What it does | Presets |
|---|---|---|
| Image | Text-to-image, image edit, union ControlNet | Qwen txt2img, Qwen edit, ControlNet (Qwen / SDXL) |
| Video | Text- and image-to-video on real temporal models | Hunyuan 1.5 i2v + 720p, Wan 14B, LTX, Mochi |
| Audio | Text-to-music and stem separation | ACE-Step 1.5 (music / jingle / draft / mp3), separation |
| 3D | Image-to-mesh, exported as GLB | Hunyuan3D-2 (draft / standard / detail) |
| Inference | Caption, tag, detect, segment, OCR | Florence-2 (7 tasks) |
| Metadata | Read the workflow embedded in a PNG | local-only, no server needed |
Nothing is submitted before it can succeed. Every preset is preflighted
against your server: its nodes are checked with /object_info/{class} and its
models with /models/{folder}. A missing node names the pack that provides it,
a missing model names the file and the folder it belongs in — and no GPU time
is spent finding out.
Where the workflows come from
CodeComfy does not author workflow graphs. The 27 reference workflows are
vendored from comfy-headless's
in-repo knowledge base, where every class_type is verified against the live
ComfyUI catalog. Maintainers refresh them with npm run kb:sync; npm run kb:check fails if the vendored copy has drifted.
A second hand-maintained copy of that knowledge would drift, and drift in a workflow graph is silent — the graph runs green and returns nothing.
Video models
CodeComfy: Generate Video (HQ) runs Wan 2.2 TI2V-5B, derived verbatim
from ComfyUI's own video_wan2_2_5B_ti2v template. Wan 2.2 is Apache-2.0 —
generated output is commercial-safe.
It needs three files on your ComfyUI server:
| File | Put it in | Download |
|---|---|---|
wan2.2_ti2v_5B_fp16.safetensors |
models/diffusion_models/ |
Comfy-Org/Wan_2.2_ComfyUI_Repackaged |
umt5_xxl_fp8_e4m3fn_scaled.safetensors |
models/text_encoders/ |
Comfy-Org/Wan_2.1_ComfyUI_repackaged |
wan2.2_vae.safetensors |
models/vae/ |
Comfy-Org/Wan_2.2_ComfyUI_Repackaged |
Note on versions before 1.2.0. The
hq-videopreset shipped in v1.0.0 through v1.1.0 was not a video workflow — it was a text-to-image graph that generated N independent frames from one prompt and assembled them with FFmpeg. There was no motion model involved, so the output flickered instead of moving. That was our defect, not a ComfyUI limitation, and v1.2.0 replaces it. If you have a saved.codecomfy/presets/copy of the old video preset, it will now log a warning explaining the problem.
Generation Limits
Video generation enforces safety limits to prevent accidental resource exhaustion:
| Parameter | Min | Max |
|---|---|---|
| Duration | 1 s | 15 s |
| FPS | 1 | 60 |
| Total frames (duration × fps) | — | 450 |
If you hit a limit, reduce the duration or choose a preset with a lower frame rate.
Frame counts for temporal models are snapped up to the next legal 4n + 1
value (49, 53, 57, …) before submission — ComfyUI accepts off-grid counts
without complaint but the model does not handle them, so CodeComfy snaps
rather than letting the value through.
Troubleshooting
[Network] — Can't reach ComfyUI server
- Is ComfyUI running? Check
http://127.0.0.1:8188/system_statsin a browser. - If ComfyUI is on a different port or host, update
codecomfy.comfyuiUrl. - Firewall or proxy blocking the connection? Try
curl http://127.0.0.1:8188/system_stats.
[Server] — ComfyUI returned an error
- Check the ComfyUI terminal/console for stack traces.
- Common cause: missing model checkpoint or custom node.
- Ensure your ComfyUI has the nodes required by the preset workflow.
[API] — Response shape error
- Your ComfyUI version may be too old or too new for the bundled presets.
- A reverse proxy or CDN may be mangling JSON responses.
- Try hitting
/promptand/historydirectly to inspect the response shape.
[IO] — File permission or disk issues
- Ensure your workspace folder is writable.
- Check available disk space — frame downloads can be large for video.
- On Windows, avoid workspaces on network drives for best performance.
FFmpeg not found
- Install FFmpeg and ensure
ffmpeg.exeis on your system PATH. - Or set
codecomfy.ffmpegPathto the full absolute path (e.g.C:\ffmpeg\bin\ffmpeg.exe). - Relative paths and bare names (other than the PATH-resolved
ffmpeg) are rejected for security.
"Generation already running"
Only one generation can run at a time.
Cancel the current one (CodeComfy: Cancel Generation) or wait for it to finish.
There is a 2-second cooldown between consecutive jobs.
Seed / prompt validation
- Seeds must be whole numbers between 0 and 2,147,483,647.
- Prompts must be non-empty and at most 8,000 characters.
Security & Data Scope
- Network: connects only to the user-configured ComfyUI URL (default
127.0.0.1:8188) — no other outbound requests - Files: outputs saved to
.codecomfy/outputs/and.codecomfy/runs/in the workspace — no files outside the workspace are touched - FFmpeg:
shell: trueremoved from all spawns; path must be absolute, existing, and executable - No telemetry is collected or sent — see SECURITY.md for the full policy
Known Limitations
| Area | Status |
|---|---|
| Windows | Fully tested (Windows 10/11). Primary platform. |
| macOS | Expected to work for image + video generation. NextGallery may not be available yet. |
| Linux | Expected to work for image + video generation. NextGallery may not be available yet. |
| Remote / WSL | ComfyUI URL must be reachable from the host running VS Code. |
Core functionality (prompt → ComfyUI → download → FFmpeg assembly) is platform-agnostic. The only Windows-specific feature is NextGallery auto-detection, which falls back gracefully to a "set the path in settings" prompt on other platforms.
If you hit a platform-specific issue, please open an issue with your OS, VS Code version, and ComfyUI version.
How It Works
Command Palette
│
▼
extension.ts ─── validates inputs, creates JobRouter
│
▼
JobRouter ─── creates run folder, tracks lifecycle
│
▼
ComfyServerEngine ─── POST /prompt → poll /history → stream /view
│
▼
FFmpeg ─── (video only) assemble frames → MP4
│
▼
.codecomfy/outputs/index.json ─── atomic index update
License
MIT — see LICENSE for details.
Built by MCP Tool Shop