ComfySketch Pro
Full-featured digital painting app running as a ComfyUI custom node
ComfySketch Pro is a browser-based painting editor embedded directly inside ComfyUI. It runs in a fullscreen overlay, supports pen tablet pressure, layers, bezier paths, text, gradients, 3D model viewing, and direct AI generation — all without leaving your workflow.
Node Outputs
| Output | Format | Description |
|---|---|---|
| image | (1, H, W, 3) float32 | All visible layers composited as RGB |
| mask | (1, H, W) float32 | Designated mask layer — white=1.0, black=0.0 |
Interface Layout
Canvas Setup
Set canvas size via the node's preset_size dropdown or enter custom width/height. Supported range: 64–4096 px per side.
Size Presets
| Name | Dimensions | Use case |
|---|---|---|
| Square SD | 512 × 512 | Standard diffusion square |
| Portrait SD | 512 × 768 | Portrait diffusion |
| Landscape SD | 768 × 512 | Landscape diffusion |
| Portrait medium | 768 × 1024 | SDXL portrait |
| Landscape medium | 1024 × 768 | SDXL landscape |
| Square large | 1024 × 1024 | SDXL square |
| Phone portrait | 1080 × 1920 | Mobile |
| HD landscape | 1920 × 1080 | HD widescreen |
Multiple Canvases
ComfySketch Pro supports up to 4 independent canvases open at the same time. Each has its own layer stack, undo history, and settings. Switching between them preserves all work.
Floating Canvas Switcher
When a second canvas is opened, a small draggable "Canvases" panel appears automatically in the drawing area. It lists all open canvases and lets you switch between them with a single click.
| Element | Meaning |
|---|---|
| Thumbnail | Live 36 px preview of each canvas |
| ● before name | Currently active canvas |
| • after name | Canvas has unsaved changes |
| × button | Close the switcher panel (canvas stays open) |
Pencil Paint
Realistic graphite pencil with tapered strokes and paper texture. The alpha tip gives it authentic grain that builds up naturally with repeated passes, simulating real pencil on paper.
Options
Ink Paint
Fine ink pen with sharp pressure-responsive tapers. Ideal for precise linework, comic inking, and technical illustration. High stabilization produces smooth, clean curves.
Options
Felt Tip Paint
Smooth marker-like brush with soft wetness bleed at edges. Produces clean, even strokes suitable for coloring flats, concept art, and illustration.
Options
Marker Paint
Bold marker with slightly ragged edges and wetness bleed. Semi-transparent strokes overlap to create deeper color, mimicking the look of alcohol markers like Copic.
Options
Paint Paint
Oil paint simulation with color mixing and wetness. The brush picks up colors already on the canvas and blends them as you paint, simulating physical paint behavior.
Options
Pastel Paint
Soft pastel stick with paper texture and natural opacity variation. Builds up in layers with a chalky matte finish. Opacity and position jitter create the characteristic rough texture of real pastels.
Options
Smudge / Blend Utility
Blends colors that are already on the canvas without adding new color. Simulates finger-smearing wet paint. Higher Mixing values create a stronger drag of existing color.
Options
Eraser Utility
Erases pixels on the active layer. Supports the same brush types and settings as painting tools. Soft eraser for blended edges; hard eraser for clean cuts.
Options
Hard eraser: Hardness 100, opacity 100% — precise pixel cutout.
Clone Stamp Utility
Samples an area of the canvas and paints it elsewhere. Used for retouching, removing unwanted elements, and duplicating texture regions.
How to Use
- Alt + click to set the clone source point (a crosshair appears)
- Release Alt, then paint normally — the brush samples from the source
- The source offset moves relative to your brush as you stroke
Options
Eyedropper Utility
Click anywhere on the canvas to sample that color and set it as the foreground color. Automatically returns to the previously active tool after picking.
Shape Tools Shape
Shape tools draw directly onto the active pixel layer using the current foreground color, brush size, and opacity.
Click and drag to draw a straight line. Hold Shift to snap to 45° angle increments. Stroke width = current brush size.
Click and drag to draw an ellipse. Hold Shift to constrain to a perfect circle. Toggle fill in tool options.
Click and drag to draw a rectangle. Hold Shift to constrain to a perfect square. Toggle fill in tool options.
Click to place vertices one at a time. Press Enter to finalize as a closed filled polygon. Press Escape to cancel.
Pen Tool (Bezier) Vector
Creates resolution-independent vector paths stored as pen layers. Paths are procedural — re-rendered at any zoom and fully editable at any time. Each pen layer stores anchor points, bezier handles, color, stroke width, and fill state.
Options Bar
Sub-Modes
Classic bezier pen. Click to add corner anchors. Click-drag to create smooth anchor points with symmetric handles. Click the first anchor to close the path.
Alt + drag handle — break handle symmetry
Shift + click — snap to 45° from previous point
Click on segment — insert anchor at that position
Draw a freehand stroke naturally. On release, ComfySketch Pro automatically fits smooth cubic bezier curves through your stroke using Schneider's algorithm. Sub-mode persists so you can keep drawing consecutive strokes.
Drag to create a rectangular closed vector path with four corner anchor points. Hold Shift for a perfect square. Auto-finalizes on release.
Drag to create an elliptical closed path with four smooth bezier anchor points. Hold Shift for a perfect circle. Auto-finalizes on release.
Click anywhere on an existing path segment to insert a new anchor using De Casteljau subdivision — preserving the curve shape exactly. You can also drag existing anchors and handles in this mode.
Click an anchor to delete it. Drag to draw a red selection rectangle — all anchors inside are highlighted and deleted on release. Small click = single delete, drag rectangle = batch delete.
Click a smooth anchor to convert it to a corner (removes handles). Click a corner anchor and drag to pull out symmetric handles and convert it to smooth. Also allows dragging existing handles directly.
Add Pt / Delete Pt / Convert Pt buttons appear dimmed until a path exists — they unlock automatically after the first path is committed.
Click to place anchor points — the path automatically flows through them as smooth curves using Catmull-Rom interpolation. No handle dragging required. Handles are invisible during creation and auto-calculated.
Shift + click — snap to 45° from previous point
Click first anchor — close the path
Enter — finalize | Escape — cancel
Pen Mode Interactions
| Action | Result |
|---|---|
| Click empty space | Add corner anchor (no handles) |
| Click + drag | Add smooth anchor with symmetric bezier handles |
| Click first anchor (≥2 points) | Close the path |
| Alt + click anchor | Toggle smooth ↔ corner (remove or create handles) |
| Alt + drag handle | Break handle symmetry — move one handle independently |
| Shift + click | Snap new anchor to 45° angles from previous |
| Click segment | Insert new anchor at that point on the curve |
| Drag corner anchor (no handles) | Pull out symmetric handles (converts to smooth) |
| Enter | Finalize path and create/update pen layer |
| Escape | Cancel current edit / clear path |
Re-editing Pen Layers
Double-click a pen layer in the layers panel to re-enter edit mode. All anchors and handles reappear. Apply commits changes; Escape reverts to the original path.
SVG Export / Import
Right-click a pen layer → Export as SVG to download as an .svg file. Use File → Import SVG… to import paths from Inkscape, Illustrator, or Affinity Designer. See the SVG section for full details.
Fill & Gradient
Flood Fill
Click on the canvas to flood-fill a contiguous region of similar color with the foreground color.
Gradient
Click-drag on the canvas to define a gradient from start to end point. Gradients are stored as vector layers and can always be re-edited.
Gradient Editor
Fill Shortcuts
| Shortcut | Action |
|---|---|
| Alt+Delete | Fill selection (or entire layer) with foreground color |
| Ctrl+Delete | Fill selection (or entire layer) with background color |
Selection Tools Select
Selections define an active region. Painting, filling, and transforms affect only the selected area. Multiple selection modes can be combined using Shift/Alt modifiers.
Click and drag to define a rectangular selection. Hold Shift while dragging to constrain to a perfect square.
Click and drag for an elliptical selection. Hold Shift to constrain to a perfect circle.
Draw a freehand closed boundary around the area you want to select. Release to close the selection automatically.
Click to place polygon vertices. Press Enter to finalize (minimum 3 points). Press Escape to cancel. Creates a precise polygonal selection.
Paint a selection mask with a soft or hard brush. Paint to add, Alt+paint to erase from the mask. Press Enter to convert the painted mask to a selection.
Click to select a contiguous region of similar color. Shift+click adds more regions to the existing selection.
Selection Modifiers (while drawing)
| Modifier | Effect |
|---|---|
| Shift + drag | Add to existing selection |
| Alt + drag | Subtract from selection |
Selection Operations
| Shortcut | Action |
|---|---|
| Ctrl+A | Select entire canvas |
| Ctrl+D | Deselect all |
| Ctrl+Shift+I | Invert selection |
| Ctrl+J | Copy selected area to a new layer |
| Ctrl+Shift+J | Cut selected area to a new layer |
| Delete | Clear (erase) the selected area on the active layer |
| Alt+Delete | Fill selected area with foreground color |
| Ctrl+Delete | Fill selected area with background color |
Selection Refinements (tool properties)
Move / Transform Utility
Moves and transforms any layer non-destructively. A live preview shows changes before committing. Works on pixel layers, text layers, gradient layers, and pen layers.
Transform Handles
Commit & Cancel
| Action | Result |
|---|---|
| Enter or double-click inside | Commit the transform and apply permanently |
| Escape | Cancel — reverts to original position and size |
| Alt + click (no active transform) | Duplicate the layer then enter move mode on the copy |
Auto-Select
Double-click the Move tool button in the toolbar to open Move Options. Enable Auto-select to automatically pick the topmost layer with visible content under the cursor when clicking — no manual layer selection required.
Multi-Layer Transform
Select multiple layers using Ctrl+click or Shift+click in the Layers panel, then use the Move tool. All selected layers transform together. Click a group header to select and transform all children simultaneously.
Crop Tool Utility
Photoshop-style crop with adjustable handles. When you switch to the Crop tool, crop handles appear over the full canvas immediately. Drag handles to define the crop area. A rule-of-thirds grid overlays while dragging.
How to Use
- Press H or click the Crop button in the toolbar
- Drag any of the 8 edge/corner handles to define the crop region
- Drag inside the crop area to reposition the frame (or drag the underlying image)
- Press Enter or double-click inside the frame to apply the crop
- Press Escape or switch tools to cancel
Features
Text Tool Vector
Click anywhere on the canvas to place a new editable text layer. A floating options bar appears with full typographic controls. Text remains vector/editable as long as it hasn't been rasterized.
Text Properties
Per-Character Formatting
Select a range of characters inside the text overlay using click-drag, then change the color or size in the options bar. Only the selected characters are affected — the rest of the text is unchanged.
Committing & Re-editing
3D Layers
ComfySketch Pro has a fully integrated 3D pipeline built on Three.js. You can add 3D model layers, create extruded 3D text, convert SVG artwork to 3D geometry, apply PBR materials, sync live with Blender, Maya, or Houdini viewports, and run AI workflows directly from 3D mode — all without leaving the canvas.
3D Toolbar Buttons
Four buttons in the top bar (amber border) open different 3D modes:
3D Model Layers
Models can only be imported from inside the 3D Viewer. Enter the viewer first (toolbar button or double-click an existing 3D model layer), then drag and drop model files into the viewport. Multiple models are visible simultaneously in the same scene. Each model appears as a separate layer in the 3D Viewer's layer panel (shown with an amber border).
3D Viewer Layer Panel
Inside the 3D Viewer, each model has its own entry in the layer panel:
Gizmo Controls
Keyboard shortcuts for the transform gizmo inside the 3D Viewer:
Fullscreen 3D Mode
Entering the 3D Viewer expands the Three.js viewport to fill the entire screen — regardless of canvas aspect ratio. An orange crop frame shows where the canvas boundary sits within the fullscreen workspace. This gives you maximum space for orbiting and positioning, especially with portrait canvases on landscape monitors.
3D Viewer — Navigation
Enter the 3D Viewer via the toolbar button or by double-clicking the 3D Viewer row in the layer panel. All other UI panels are hidden except the layer panel (for switching between models). Use the viewer panel to position and light models:
Material Undo / Redo
Material changes support undo with Ctrl+Z and redo with Ctrl+Shift+Z. Each material drop, color change, and UV adjustment is a separate step. Undo/redo works across all models in the scene — applying materials to different models creates interleaved history steps that undo correctly per-action. Materials are stored per-layer, so each model keeps its own overrides even when switching between layers.
Flatten to Raster
Right-click any 3D layer in the Layers panel → Flatten to Raster. This snapshots the 3D view and replaces the 3D layer with a regular pixel layer — freeing the 3D slot. A confirmation dialog appears before the operation.
3D Color Swatches
When applying materials that use a color (non-texture), a mini color wheel appears with a swatch grid below it (4×2 = 8 slots). Colors you pick are automatically remembered in the swatches. Click any swatch to reuse that exact color on another face — no eyeballing needed.
Workflow Lock
When you run a workflow from 3D mode (via the Prompt button), the 3D viewer locks to prevent scene changes during generation:
Bloom (Glow Effect)
Emissive materials (Lava, Neon, Solar, Red Warning, etc.) produce a screen-space bloom — a soft glow halo that bleeds beyond the object's silhouette. Bloom is selective: only materials with emissive properties glow. Non-emissive materials (metals, wood, etc.) are unaffected.
Text 3D 3D
Create extruded 3D text directly on the canvas. Click the T3D button in the toolbar to add a Text 3D layer. The layer appears with an amber border and a text editing panel opens automatically.
Text Panel
Colors & Spacing
Transform
SVG to 3D 3D
Extrude any SVG artwork into a 3D shape layer. Drop an .svg file directly onto the canvas, or right-click a pen layer and choose Extrude to 3D.
SVG 3D Panel
Working with SVG Shapes
Each path in the SVG becomes a separate mesh. Holes (inner rings) are automatically detected and subtracted. Materials from the Material Gallery can be dragged directly onto individual shapes within the SVG 3D layer.
<path> elements are extruded. Text, raster images, and non-path primitives are ignored. Complex self-intersecting paths may produce artifacts — simplify in Inkscape first.Material Gallery 3D
While in 3D Mode, click the material button in the panel to open the Material Gallery. Browse PBR material presets organized into four tabs and drag any preset onto a mesh to apply it instantly.
Material Tabs
Applying a Material
- Enter 3D Mode (double-click any 3D layer)
- Open the Material Gallery from the panel button
- Drag any material swatch onto the mesh in the viewer
- For texture materials a UV Widget opens with Tile X/Y, Rotate, Offset sliders
- For procedural materials (Glow) a UV Widget opens with Tile, Offset, and Glow (bloom intensity) sliders. For plain color materials a color wheel opens to tint. For fur materials a fur settings panel opens. Double-click any mesh to reopen its panel
UV Widget & Procedural Controls
All sliders use integer values from 0 to 20.
HDRI Environment
Click the + button next to the lookdev sphere in the 3D panel to change the environment light:
Use the Environment Intensity and Environment Rotation sliders in the panel to fine-tune the lighting.
Viewport Sync 3D
Stream your 3D viewport live from Blender, Maya, or Houdini into ComfySketch. The DCC plugin captures the viewport as JPEG frames and pushes them over WebSocket — zero export, zero file saves. Camera matrices are synced at 30fps for real-time 3D scene matching. Viewport Sync uses an isolated viewer that does not conflict with 3D model layers.
Supported DCC Applications
| Application | Plugin File | Stream FPS | Install Location |
|---|---|---|---|
| Blender 4.2+ | comfysketch_sync.py | 6 fps | Edit → Preferences → Add-ons → Install from Disk |
| Maya 2024+ | comfysketch_maya_sync.py | 12 fps | Copy to ~/Documents/maya/<ver>/scripts/ |
| Houdini 21.0+ | comfysketch_houdini_sync.py | 6 fps | Copy to ~/houdini21.0/scripts/python/ |
installplugin.html with detailed step-by-step installation instructions.Quick Start
- Install the plugin in your DCC app (see table above)
- In the DCC app, click Start Sync — the WebSocket server starts on port 9876
- Click Stream Viewport to begin sending frames
- In ComfySketch, click the Viewport Sync button in the toolbar — connection is automatic
Sync Panel Controls
Performance
playblast(offScreen=True) — no viewport flashSpot Heal Utility
Removes small blemishes, dust spots, logos, thin seams, and edge halos using the Telea Fast Marching Method. Paint over the area and release — the fill applies instantly.
The mask overlay is red while painting.
Not suited for: large objects or complex backgrounds — use Remove (AI) instead.
Options
Remove (AI) Utility
Fills in painted areas using the LaMa neural network — content-aware AI inpainting that reconstructs complex backgrounds, hair, textures, and structures. Paint over any object you want to erase, then lift the pen or release the mouse — the fill applies automatically.
The mask overlay is blue while painting.
Options
AI Removal Setup
AI mode requires a LaMa ONNX model. Paste a URL or local file path into the Model URL field in the AI Removal panel and click Load.
Recommended model
https://huggingface.co/Carve/LaMa-ONNX/resolve/main/lama_fp32.onnxThis is the only model currently confirmed working on all onnxruntime versions.
opencv/inpainting_lama_2025jan.onnx (~93 MB) — uses INT8 quantization that most onnxruntime builds cannot load (INVALID_PROTOBUF error).
Option B — Local file (no download)
If you already have a .onnx file on disk, paste the full file path instead of a URL. The server uses it directly — no download or copy occurs.
| Example path | Notes |
|---|---|
C:\ComfyUI\models\inpaint\lama_fp32.onnx | Windows absolute path |
C:/Users/YourName/Downloads/lama_fp32.onnx | Forward slashes also work |
~/models/lama_fp32.onnx | Home-relative, expanded server-side |
Server vs Browser Inference
When onnxruntime is installed in ComfyUI's Python environment, inference runs on the server using your GPU or CPU. The status indicator in the AI Removal panel shows:
| Status | Meaning |
|---|---|
| Server ready (GPU) | CUDA GPU via onnxruntime — ~2–3 s per removal |
| Server ready (CPU) | CPU via onnxruntime — ~8–15 s per removal |
| Browser model ready | WASM inference in the browser — ~40 s per removal |
| Not loaded | Click Load to begin |
To enable server GPU inference, install onnxruntime and restart ComfyUI:
pip install onnxruntime-gpu # NVIDIA GPU (recommended) pip install onnxruntime # CPU only
The model is cached in .model_cache/ inside the ComfySketch extension folder. Use Clear Cache to force a fresh download.
Troubleshooting
Brush Types
Every painting tool uses one of these underlying brush rendering engines. Change it in a tool's properties panel (double-click the tool button).
| Type | Description |
|---|---|
| Round | Hard-edged circle. Hardness controls how sharply the edge falls off (0 = soft feather, 100 = crisp). |
| Soft | Gaussian radial falloff from center to edge — classic soft-glow or airbrush look. |
| Airbrush | Wide soft spray with flow-based buildup. Color accumulates while held in one position. |
| Spray | Scattered random dots. Density controls particles per stamp. Creates stipple and splatter effects. |
| Marker | Flat chisel-shaped stamp. Rotating the brush angle changes apparent width. |
| Ragged | Irregular rough edges — ideal for dry brush, charcoal, and textured painting effects. |
| Alpha | Custom grayscale tip image (pencil grain, pastel texture, eraser shape). White = full paint, black = no paint. Auto-inverted if average brightness > 50%. |
Round / Soft Shape Controls
Pressure Sensitivity
When a pen tablet is connected, stylus pressure data modulates the brush dynamically on every stroke.
Pressure Curves
| Curve | Feel |
|---|---|
| Linear | Direct 1:1 mapping — pressure value directly becomes size/opacity |
| Soft | Very sensitive at low pressure — a light touch gives a bigger response than expected |
| Firm | Requires more force — small response until mid-pressure range |
| S-Curve | Gentle at both low and high extremes, steepest in the middle range |
Stabilization (Smoothing)
Smooths out shaky hand movements using a lazy brush algorithm — the brush tip lags behind the physical cursor, filtering out tremor while preserving intentional movements.
Accessible via the smoothing icon in the top options bar, or inside any tool's properties panel.
Texture
Textures add surface variation to brush strokes. The texture alpha map is multiplied into each brush stamp, simulating painting on different paper and canvas surfaces.
Procedural Textures
| Name | Character |
|---|---|
| None | No texture applied |
| Hot Press | Very smooth — subtle micro-fiber grain (watercolor hot-press paper) |
| Cold Press | Prominent bumpy grain with peaks and valleys |
| Canvas | Regular woven grid pattern — linen/cotton canvas |
| Bristol | Nearly invisible fine grain — default for pencil and pastel |
| Kraft | Medium irregular fibrous texture — brown kraft paper |
| Rough | Heavy tooth, chunky irregular grain — rough sketch paper |
Image Textures (512×512)
Jitter
Jitter adds controlled randomness to brush stamps, creating organic natural-looking variation along a stroke.
Brush Library
Browse, load, and save brush presets. Press J to open the brush library panel. Presets are stored in browser IndexedDB and persist across sessions.
Built-in Preset Categories
| Category | Count | Includes |
|---|---|---|
| Dry | 9 | Soft/Hard/Oil Pastel, Chalk, Soft/Vine/Compressed/Hard Charcoal, Conte |
| Paint | 12 | Round/Flat/Spray/Oil Brush, Wet Acrylic, Turpentine, Palette Knife, Impasto, Wash, Gouache, Watercolor |
| Ink | 11 | Fine Ink, Brush Pen, Technical Pen, Felt Tip, Chisel Tip, Fine Liner, Felt Nib, Marker, Copic Broad, Copic Brush, Highlighter |
| Pencil | 10 | 8B, 5B, 2B, B, HB, 3H, 6H, Technical, Colored, Sketch |
| Utility | 7 | Soft Blend, Smudge, Finger Paint, Wet Paint, Dry Brush, Soft Eraser, Hard Eraser |
Layer Panel
Layers are stacked top-to-bottom in the panel — the topmost layer is drawn on top. Click to select. All painting operations affect the active layer only.
Layer Controls
Multi-Select
Reorder
Drag layers up or down to reorder. Drag a layer onto a group header to nest it inside the group.
Right-Click Context Menu
Right-click any layer for additional options: Rename, Duplicate, Merge Down, Merge Visible, Move to Group, Set as Mask, Ungroup, Rasterize, and (for pen layers) Export as SVG.
Layer Types
Standard bitmap layer. Created by default. Receives all painting, erasing, and filter operations. Content is resolution-dependent.
Editable text stored as vector data. Rendered on-the-fly at any zoom. Re-editable at any time. Non-destructively transformable with the Move tool.
Vector gradient fill. Color stops and direction are editable at any time by selecting the Fill tool and clicking the gradient layer.
Vector bezier path. Stores anchor points, handles, color, width, and fill. Double-click in the layers panel to re-edit. Exportable as SVG.
Container for 3D models (GLB/GLTF/OBJ/FBX). Double-click to enter the 3D Viewer. Read-only on the 2D canvas. Multiple models can coexist in the same 3D scene. Always placed at the bottom of the layer stack. Snapshot captures the entire scene with post-processing.
Blend Modes
Controls how a layer's colors interact with the layers beneath it.
| Mode | Effect |
|---|---|
| Normal | Standard alpha compositing. Replaces what's below at the layer's opacity. |
| Multiply | Darkens. Multiplies layer color with layers below. White = transparent, black stays black. |
| Screen | Lightens. Inverted multiply. Black = transparent, white stays white. |
| Overlay | Contrast boost. Multiplies darks, screens lights. Intensifies the image below. |
| Darken | Keeps only the darkest pixel between this layer and the layers below, per channel. |
| Lighten | Keeps only the lightest pixel between this layer and the layers below, per channel. |
| Color Dodge | Brightens the lower layer based on this layer's brightness. Creates vivid highlights. |
| Color Burn | Darkens the lower layer. Deepens shadows and increases saturation. |
| Hard Light | Strong Multiply or Screen depending on upper layer brightness. High contrast. |
| Soft Light | Subtle dodge/burn effect. Gentle lighting and shading. |
| Difference | Inverts lower layer where upper is white. No change where upper is black. |
| Exclusion | Similar to Difference but lower contrast and softer. |
| Hue | Applies the hue of this layer while keeping the saturation and luminance below. |
| Saturation | Applies the saturation of this layer to the colors below. |
| Color | Applies hue + saturation. Useful for colorizing grayscale artwork. |
| Luminosity | Applies the brightness of this layer to the hue and saturation below. |
Groups
Groups (folder layers) organize layers and enable transforming multiple layers as a single unit.
Mask Layer
One layer can be designated as the output mask. This layer's content is exported through the node's mask output as a float32 grayscale tensor.
Color Wheel
Click the foreground color swatch to open the full HSV color wheel panel.
Foreground / Background
Mini Color Wheel (Pie Menu)
Right-clicking the canvas also opens a mini color wheel in the center of the pie menu, allowing quick color changes without opening the full panel.
Palettes & Swatches
Press Q to toggle the floating swatch panel. Pick saved colors quickly or manage custom palettes.
Built-in Palettes
Create custom palettes, add the current foreground color to any palette, and reorder or delete saved swatches. Palettes persist across sessions.
Zoom, Pan & Rotate
| Action | Input |
|---|---|
| Zoom in/out | Scroll wheel |
| Fine zoom | Alt + scroll |
| Zoom in (stepped) | + or = |
| Zoom out (stepped) | - or _ |
| Reset to 100% | 0 |
| Fit to view | Fit button in toolbar (scales canvas to fill the window) |
| Pan | Middle mouse button drag |
| Rotate canvas (smooth) | Shift + scroll wheel |
| Rotate canvas ±15° | Alt+← / Alt+→ |
| Reset rotation | 0 (also resets zoom to 100%) |
Flip Canvas
The toolbar includes Flip H and Flip V buttons to horizontally or vertically flip the entire canvas (all layers). Useful for checking composition balance and spotting drawing errors.
Mirror Drawing
Toggle horizontal and/or vertical mirror drawing from the toolbar. Every brush stroke is automatically mirrored in real-time across the axis. Dashed guide lines show the mirror axis while active.
Quick Generate (AI)
Ctrl+EnterThe Quick Gen tab provides direct text-to-image generation without needing to wire up a full ComfyUI workflow. It builds a minimal SD pipeline internally and submits it to ComfyUI's API.
How to Use
- Open the Run panel on the right and switch to the Quick Gen tab
- Type your prompt in the text area
- Optionally click the gear icon to open settings (model, LoRA, negative prompt, RMBG)
- Click Run or press Ctrl+Enter
- Result appears in the preview panel
Settings (Gear Icon)
Fixed Generation Parameters
Node Outputs
| Output | Format | Description |
|---|---|---|
| image | (1, H, W, 3) float32 | All visible layers composited as a flat RGB image tensor |
| mask | (1, H, W) float32 | The designated mask layer as grayscale. White=1.0, black=0.0. |
Connect image to any image input in your workflow. Connect mask to inpainting, ControlNet, or any node accepting a ComfyUI mask tensor.
SVG Import / Export
Export a Pen Layer as SVG
- Right-click the pen layer in the layers panel
- Click Export as SVG — an .svg file is downloaded named after the layer
Import an SVG File
- Go to File → Import SVG…
- Select an .svg file
- Each subpath (M…Z block) becomes a separate pen layer inserted above the active layer
Compatible Apps
Supported SVG Features
<path> elements are imported. Groups, transforms, text, images, and rect/circle primitives are not supported.File Operations
File Menu (toolbar folder icon)
| Item | Description |
|---|---|
| New Canvas | Create a fresh empty canvas at the current size |
| Clear Canvas | Erase all content on the current canvas |
| Open Image… | Open an image file as a new canvas (replaces current) |
| Open from Input Image | Load the image connected to the node's input as a new canvas |
| Open Project (.csk)… | Load a saved .csk project file (restores all layers, text, pens, groups) |
| Open PSD… | Open a Photoshop PSD file as a new canvas with preserved layers |
| Open ORA… | Open an OpenRaster .ora file as a new canvas |
| Import Image… | Add an image file as a new pixel layer on the current canvas |
| Import from Input | Add the node's input image as a new layer |
| Import PSD Layers… | Import layers from a PSD file into the current canvas |
| Import ORA Layers… | Import layers from an ORA file into the current canvas |
| Import SVG… | Import SVG paths as pen layers |
| Save PNG | Export all visible layers as a flat PNG Ctrl+S |
| Save PSD (layers) | Export the full layer stack as a Photoshop PSD file |
| Save ORA (layers) | Export the full layer stack as an OpenRaster .ora file |
| Save Project (.csk) | Save full project with all layer data Ctrl+Shift+S |
| Export Mask PNG | Export the mask layer as a standalone grayscale PNG |
| Close | Exit the fullscreen editor |
Clipboard
Auto-Save
Canvas data is continuously auto-saved to browser IndexedDB after every change (debounced 300ms). If the browser crashes, your work is automatically recovered on the next load.
Settings
Access via the ⚙ settings button in the toolbar.
Theme
Theme choice is saved and restored automatically across sessions.
Preferences
All settings save immediately on change (crash-safe). No need to manually save.
Import / Export Settings
Export all preferences as a JSON backup file. Import to restore settings on another machine. A Reset to Defaults option returns all preferences to factory values.
Hotkeys Reference
Click the ? button in the toolbar (or settings panel) to open the full interactive hotkeys overlay with all keyboard shortcuts listed by category.
Help Menu
The ? toolbar button opens a dropdown with the following items:
For purchase, support, or bug reports see the Contact & Support section.
Keyboard Shortcuts
Tools
| Key | Tool |
|---|---|
| B | Felt Tip |
| A | Paint |
| N | Ink |
| P | Pencil |
| K | Marker |
| Y | Pastel |
| F | Smudge / Blend |
| E | Eraser |
| T | Clone Stamp |
| G | Fill / Gradient |
| I | Eyedropper |
| V | Move / Transform (auto-shows handles at 35% opacity) |
| H | Crop |
| L | Line |
| C | Circle / Ellipse |
| R | Rectangle |
| U | Pen (Bezier) |
| M | Rectangle Select |
| ⇧M | Ellipse Select |
| W | Magic Wand |
| ⇧X | Text |
| / | Toggle previous tool |
| — | Spot Heal (toolbar only) |
| — | Remove / AI (toolbar only) |
View & Canvas
| Key | Action |
|---|---|
| + / = | Zoom in |
| - / _ | Zoom out |
| 0 | Reset view (100%, no rotation) |
| Alt+←/→ | Rotate canvas ±15° |
| ⇧+Wheel | Smooth canvas rotation |
| Middle drag | Pan canvas |
| Space | Toggle all UI panels |
Brush
| Key | Action |
|---|---|
| [ | Smaller brush |
| ] | Larger brush |
| S+drag | Interactive size adjust |
| O+drag | Interactive opacity adjust |
| Alt+click | Pick color (eyedropper) |
Color
| Key | Action |
|---|---|
| X | Swap foreground/background |
| D | Reset to white/black |
| Q | Toggle floating swatches |
Edit
| Key | Action |
|---|---|
| Ctrl+Z | Undo |
| Ctrl+Y | Redo |
| Ctrl+A | Select all |
| Ctrl+D | Deselect |
| Ctrl+⇧I | Invert selection |
| Ctrl+C | Copy to clipboard |
| Ctrl+V | Paste from clipboard |
| Ctrl+J | Copy selection → new layer |
| Ctrl+⇧J | Cut selection → new layer |
| Ctrl+E | Merge down |
| Ctrl+⇧E | Merge visible |
| Ctrl+⇧G | Group selected layers |
| Delete | Clear selection (or delete active layer if no selection) |
| Alt+Delete | Fill with FG color |
| Ctrl+Delete | Fill with BG color |
File
| Key | Action |
|---|---|
| Ctrl+S | Save PNG |
| Ctrl+⇧S | Save project (.csk) |
| Ctrl+Enter | Run workflow / Quick Gen |
Transform
| Key | Action |
|---|---|
| Enter | Commit transform |
| Esc | Cancel / deselect |
| ⇧+rotate handle | Snap to 15° increments |
| Ctrl+corner handle | Free distort (pixel layers) |
Other
| Key | Action |
|---|---|
| Right-click canvas | Open pie menu |
| J | Toggle brush library |
| ` | Toggle size/opacity widget |
Credits & Attributions
ComfySketch Pro bundles third-party assets for the 3D pipeline. All are used under their respective open licenses.
PBR Materials — AmbientCG
Texture maps used in the Metals and Glass material tabs are sourced from AmbientCG (ambientcg.com).
AmbientCG provides hundreds of high-quality PBR texture sets for free. Consider supporting the project if you find these materials useful.
HDRI Environment Maps — Poly Haven
Environment maps used for 3D scene lighting are sourced from Poly Haven (polyhaven.com).
Poly Haven is a community-funded library of high-quality HDRIs, textures, and 3D models. Consider supporting them at polyhaven.com.
3D Text Fonts — Google Fonts
The fonts bundled for the Text 3D feature are derived from typefaces available on Google Fonts (fonts.google.com), converted to Three.js typeface JSON format for use in WebGL rendering.
Rendering Engine
3D rendering is powered by Three.js — an MIT-licensed WebGL library.
↑ Back to topContact & Support
Have a question, found a bug, or want to share your work? Reach out through any of the channels below.