Skip to content

Latest commit

 

History

100 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

English | 日本語 | 中文 | Español | Français | हिन्दी | Italiano | Português (BR)

CodeComfy VSCode

CI Landing Page

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.

Windows-first, cross-platform friendly. Fully tested on Windows 10/11. macOS and Linux are expected to work — see Known Limitations. PRs welcome.


Prerequisites

Dependency Required Notes
VS Code Yes ^1.85.0 or newer. The extension uses the InputBox and structured cancellation APIs that shipped with 1.85; tested on 1.85.0 through current stable.
ComfyUI Yes Running locally (http://127.0.0.1:8188) or on a remote machine. CodeComfy talks to its HTTP API.
FFmpeg Optional Only needed for legacy frame-assembly presets. The shipped video preset is encoded by ComfyUI itself (CreateVideoSaveVideo), so FFmpeg is not required. Download FFmpeg.
NextGallery Optional Companion gallery viewer. Not required for generation itself.

Installation

From the VS Code Marketplace (recommended)

  1. Open the Extensions sidebar (Ctrl+Shift+X).
  2. Search for CodeComfy or visit the Marketplace listing.
  3. Click Install and reload the window when prompted.

From a .vsix file (alternative)

For development builds or offline installs:

  1. Download the latest .vsix from Releases.
  2. In VS Code: Extensions sidebar → ··· menu → Install from VSIX…
  3. Reload the window when prompted.

Settings

Open Settings → Extensions → CodeComfy or add to settings.json:

{
  "codecomfy.comfyuiUrl": "http://127.0.0.1:8188",
  "codecomfy.ffmpegPath": "",
  "codecomfy.autoOpenGalleryOnComplete": true,
  "codecomfy.nextGalleryPath": "",
  "codecomfy.defaultNegativePrompt": ""
}
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

  1. Start ComfyUI — make sure it is running and reachable.
  2. Pick a command — open the Command Palette (Ctrl+Shift+P) and choose:
    • CodeComfy: Generate Image (HQ) — single image
    • CodeComfy: Generate Video (HQ) — short video (2–8 s)
  3. 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-video preset 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_stats in 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 /prompt and /history directly 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.exe is on your system PATH.
  • Or set codecomfy.ffmpegPath to 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: true removed 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

About

Generate images and videos with ComfyUI directly from VS Code

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Contributors

Languages