ComfySketch Pro

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.

How to open: Click the Sketch button on the ComfySketch Pro node to enter fullscreen editing mode. Canvas data is automatically saved and restored between sessions.

Node Outputs

OutputFormatDescription
image(1, H, W, 3) float32All visible layers composited as RGB
mask(1, H, W) float32Designated mask layer — white=1.0, black=0.0

Interface Layout

Toolbar (top)All tool buttons, file menu, undo/redo, zoom, mirror, flip, and settings.
Options bar (top)Context-sensitive controls for the active tool — size, opacity, flow, stabilization. Double-click any tool button to open its full properties panel.
Canvas (center)Drawing area. Zoom, pan, and rotate freely. Canvas rotation is view-only and doesn't affect pixel data.
Layers panel (right)Full layer stack with thumbnails, visibility, opacity, blend mode, and action buttons.
Color panel (right)HSV color wheel, hex input, foreground/background swatches, and saved palettes.
Run panel (right)Workflow execution and Quick Gen tab for direct AI generation.
Tip: Press Space to hide/show all panels for a distraction-free full-canvas view.

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

NameDimensionsUse case
Square SD512 × 512Standard diffusion square
Portrait SD512 × 768Portrait diffusion
Landscape SD768 × 512Landscape diffusion
Portrait medium768 × 1024SDXL portrait
Landscape medium1024 × 768SDXL landscape
Square large1024 × 1024SDXL square
Phone portrait1080 × 1920Mobile
HD landscape1920 × 1080HD 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.

New canvasFile → New Canvas — creates a new document tab with name input (when under the 4-canvas limit)
Clear canvasFile → Clear Canvas — wipes all layers on the current canvas
Close canvasClick the × button on any canvas row in the floating switcher, or use Canvases menu → Close Current Canvas. Shows confirmation if unsaved.

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.

ElementMeaning
ThumbnailLive 36 px preview of each canvas
● before nameCurrently active canvas
• after nameCanvas has unsaved changes
× buttonClose the switcher panel (canvas stays open)
Switch canvasClick any row in the panel to make that canvas active
Move panelDrag the header bar to reposition — position is remembered if the panel is rebuilt
Toggle panelClick the Canvases button in the toolbar (document icon) to show or hide it
Auto-show: The switcher appears automatically the first time a second canvas is created. It hides automatically if you close down to a single canvas.

Pencil Paint

P

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

SizeDefault 12 px max 50 px
OpacityDefault 90%
FlowDefault 18% — low flow means each stamp is very light; multiple passes build up tone
TaperLength of the taper at stroke start/end 0–20
StabilizationDefault 6 — low smoothing for natural hand feel
TextureBristol paper at 30% strength by default
PressureAffects both size and opacity — light touch gives fine hairlines
Tip: Layer multiple strokes with low flow to build up dark areas gradually, just like real graphite. Use size jitter (default 12%) for organic variation.

Ink Paint

N

Fine ink pen with sharp pressure-responsive tapers. Ideal for precise linework, comic inking, and technical illustration. High stabilization produces smooth, clean curves.

Options

SizeDefault 9 px max 30 px
OpacityDefault 95% — nearly fully opaque
FlowDefault 100%
TaperDefault 11 — long sharp taper at both ends of each stroke
StabilizationDefault 10 — high smoothing for calligraphy-style clean curves
PressureAffects size only (not opacity) — lines vary in weight but stay opaque
Tip: For expressive brush pen feel, raise size to 15–20 px and enable pressure on size. The taper gives strokes a natural start and finish.

Felt Tip Paint

B

Smooth marker-like brush with soft wetness bleed at edges. Produces clean, even strokes suitable for coloring flats, concept art, and illustration.

Options

SizeDefault 12 px max 60 px
OpacityDefault 90%
FlowDefault 95%
BleedDefault 15 — controls how much wet ink spreads at the stroke edges
TaperDefault 6 — slight start/end taper
StabilizationDefault 8
PressureAffects size only — opacity stays consistent

Marker Paint

K

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

SizeDefault 30 px max 80 px
OpacityDefault 55% — overlapping strokes build up darker color
FlowDefault 90%
BleedDefault 20 — wet edge spread effect
TaperDefault 7
PressureAffects size only
Tip: Use on a dedicated layer at Multiply blend mode for the classic marker-on-paper look where colors compound on top of sketch lines.

Paint Paint

A

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

SizeDefault 55 px max 200 px
OpacityDefault 100%
MixingDefault 0 — how much canvas color is picked up. Higher = more color blending from existing paint.
Bleed (Wetness)Edge darkening and wet bleed effect on stroke edges
TaperDefault 5 — taper at stroke start and end
StabilizationDefault 10
PressureAffects both size and opacity for a dynamic, expressive feel
Tip: Set Mixing to 30–50% for a blending effect that drags existing colors. Set to 0 for clean opaque strokes. Great for digital oil painting techniques.

Pastel Paint

Y

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

SizeDefault 60 px max 200 px
OpacityDefault 60%
FlowDefault 50% — gradual buildup per stamp
TextureBristol paper at 50% strength — paper grain shows through strokes
Opacity JitterDefault 35% — natural variation in stamp transparency
WetnessDefault 15 — slight wet bleed at edges
PressureAffects both size and opacity

Smudge / Blend Utility

F

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

SizeDefault 30 px max 120 px
OpacityDefault 50%
MixingDefault 70% — controls how aggressively existing color is dragged. Higher = stronger smear.
StabilizationDefault 8
PressureAffects both size and opacity

Eraser Utility

E

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

SizeDefault 100 px max 200 px
OpacityDefault 70% — partial erasure preserves underlying paint at reduced opacity
FlowDefault 40% — gradual transparency buildup per stamp
Hardness0 = fully feathered soft edge, 100 = crisp pixel-sharp edge
StabilizationDefault 4
PressureAffects both size and opacity
Soft eraser: Hardness 0, flow 40%, opacity 70% — smooth blended edges.
Hard eraser: Hardness 100, opacity 100% — precise pixel cutout.

Clone Stamp Utility

T

Samples an area of the canvas and paints it elsewhere. Used for retouching, removing unwanted elements, and duplicating texture regions.

How to Use

  1. Alt + click to set the clone source point (a crosshair appears)
  2. Release Alt, then paint normally — the brush samples from the source
  3. The source offset moves relative to your brush as you stroke

Options

SizeDefault 30 px max 150 px
OpacityDefault 80%
HardnessDefault 20% — soft feathered edge for seamless blending into surroundings
StabilizationDefault 2

Eyedropper Utility

I

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.

Quick access: Hold Alt while using any painting tool to temporarily activate the eyedropper. Release Alt to return to painting immediately.

Shape Tools Shape

Shape tools draw directly onto the active pixel layer using the current foreground color, brush size, and opacity.

╱
LineL

Click and drag to draw a straight line. Hold Shift to snap to 45° angle increments. Stroke width = current brush size.

○
Circle / EllipseC

Click and drag to draw an ellipse. Hold Shift to constrain to a perfect circle. Toggle fill in tool options.

□
RectangleR

Click and drag to draw a rectangle. Hold Shift to constrain to a perfect square. Toggle fill in tool options.

⬡
Polyline—

Click to place vertices one at a time. Press Enter to finalize as a closed filled polygon. Press Escape to cancel.

All shape tools share: default size 4 px, opacity 100%, flow 100%. Change size via brush size controls or [ / ] keys.

Pen Tool (Bezier) Vector

U

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.

When you switch to the Pen tool, a floating options bar appears. Select a drawing sub-mode before starting. The bar stays open until you switch away from the Pen tool.

Options Bar

Color swatchClick to open a color picker and choose the stroke/fill color
Op (Opacity)Layer opacity 1–100. Drag the number field to adjust.
W (Stroke Width)Stroke width in pixels 1–100. Drag the number field to adjust.
S / F toggleS = Stroke only (outline). F = Fill (solid shape, also stroked).
ApplyFinalize the current path and save/update the pen layer
CloseDismiss the options bar (switches away from Pen tool)

Sub-Modes

Pen

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 + anchor — toggle smooth ↔ corner
Alt + drag handle — break handle symmetry
Shift + click — snap to 45° from previous point
Click on segment — insert anchor at that position
Freehand

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.

Rectangle

Drag to create a rectangular closed vector path with four corner anchor points. Hold Shift for a perfect square. Auto-finalizes on release.

Ellipse

Drag to create an elliptical closed path with four smooth bezier anchor points. Hold Shift for a perfect circle. Auto-finalizes on release.

Add Point

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.

Delete Point

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.

Convert Point

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.

Auto-enters edit mode when clicking the sub-mode button with an existing pen layer active.
Add Pt / Delete Pt / Convert Pt buttons appear dimmed until a path exists — they unlock automatically after the first path is committed.
Curvature Pen

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.

Double-click — place a corner (cusp) point instead of smooth
Shift + click — snap to 45° from previous point
Click first anchor — close the path
Enter — finalize  |  Escape — cancel

Pen Mode Interactions

ActionResult
Click empty spaceAdd corner anchor (no handles)
Click + dragAdd smooth anchor with symmetric bezier handles
Click first anchor (≥2 points)Close the path
Alt + click anchorToggle smooth ↔ corner (remove or create handles)
Alt + drag handleBreak handle symmetry — move one handle independently
Shift + clickSnap new anchor to 45° angles from previous
Click segmentInsert new anchor at that point on the curve
Drag corner anchor (no handles)Pull out symmetric handles (converts to smooth)
EnterFinalize path and create/update pen layer
EscapeCancel 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

G

Flood Fill

Click on the canvas to flood-fill a contiguous region of similar color with the foreground color.

Tolerance0–100. Low = only fills near-identical pixels. High = fills broader color ranges including gradients.

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.

LinearGradient flows along a straight line from the start point to the end point
RadialGradient radiates outward from the start point as a circle

Gradient Editor

Add stopClick anywhere on the gradient bar to add a color stop up to 8 stops
Move stopDrag a stop left or right to reposition it
Change colorClick the color swatch on a stop to open the color picker
Delete stopRight-click a stop to remove it
Re-edit: Select the Fill tool (G) and click an existing gradient layer to reopen the editor — change stops, colors, and drag the gradient direction handles.

Fill Shortcuts

ShortcutAction
Alt+DeleteFill selection (or entire layer) with foreground color
Ctrl+DeleteFill 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.

▭
Rectangle SelectM

Click and drag to define a rectangular selection. Hold Shift while dragging to constrain to a perfect square.

◯
Ellipse Select⇧M

Click and drag for an elliptical selection. Hold Shift to constrain to a perfect circle.

⌖
Lasso—

Draw a freehand closed boundary around the area you want to select. Release to close the selection automatically.

⬡
Polyline Select—

Click to place polygon vertices. Press Enter to finalize (minimum 3 points). Press Escape to cancel. Creates a precise polygonal selection.

🖌
Brush Select—

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.

SizeDefault 50 px brush
HardnessDefault 80% — adjusts edge feathering
🪄
Magic WandW

Click to select a contiguous region of similar color. Shift+click adds more regions to the existing selection.

Tolerance0 = exact match only. 100 = selects almost everything.

Selection Modifiers (while drawing)

ModifierEffect
Shift + dragAdd to existing selection
Alt + dragSubtract from selection

Selection Operations

ShortcutAction
Ctrl+ASelect entire canvas
Ctrl+DDeselect all
Ctrl+Shift+IInvert selection
Ctrl+JCopy selected area to a new layer
Ctrl+Shift+JCut selected area to a new layer
DeleteClear (erase) the selected area on the active layer
Alt+DeleteFill selected area with foreground color
Ctrl+DeleteFill selected area with background color

Selection Refinements (tool properties)

GrowExpand selection boundary outward by N pixels
ShrinkContract selection boundary inward by N pixels
FeatherBlur the selection edge for a soft, gradual transition

Move / Transform Utility

V

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

Center dragReposition the layer
Edge handlesScale in one axis only (stretches)
Corner handlesScale freely. Hold Shift for proportional scaling.
Outside cornersRotate. Hold Shift to snap to 15° increments.
Ctrl + cornerFree distort / perspective warp (pixel layers only)

Commit & Cancel

ActionResult
Enter or double-click insideCommit the transform and apply permanently
EscapeCancel — 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

H

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

  1. Press H or click the Crop button in the toolbar
  2. Drag any of the 8 edge/corner handles to define the crop region
  3. Drag inside the crop area to reposition the frame (or drag the underlying image)
  4. Press Enter or double-click inside the frame to apply the crop
  5. Press Escape or switch tools to cancel

Features

Rule of thirdsGrid lines appear while dragging handles to help with composition
Canvas expansionDrag handles outside the canvas bounds to expand the canvas size (new areas are transparent)
Content previewExisting off-canvas content (overflow) is shown as a checkerboard preview while crop is active
Edge snappingHandles snap to the edges of visible layer content
W/H inputsNumeric width and height inputs in the confirm bar — type exact pixel values
Tip: To add canvas space on one side without cropping, drag a handle beyond the canvas edge. The expansion area is shown with a checkerboard pattern.

Text Tool Vector

⇧X

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

Font FamilyAny system-installed font
Font Size1–999 px
Bold / ItalicToggle standard weight and style
UnderlineAdd underline decoration
ColorText color — can be applied per-character (see below)
AlignmentLeft, Center, or Right
Line Height0.5× – 3.0× multiplier
Letter Spacing−50 to +50 px

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

CommitSwitch tools or click outside the text overlay
Re-editSwitch to Text tool and click an existing text layer
TransformUse Move tool (V) to non-destructively rotate, scale, and position text

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.

Limit: Maximum 4 3D models, 1 Text 3D layer, and 1 SVG 3D layer per canvas. All 3D layers are stacked below raster paint layers and grouped into collapsed rows in the 2D layer panel: 3D Viewer, 3D Text, 3D SVG. Double-click any row to enter its editor.

3D Toolbar Buttons

Four buttons in the top bar (amber border) open different 3D modes:

Monitor + sync arrowsViewport Sync — stream a live camera feed from Blender, Maya, or Houdini via WebSocket
Cube wireframe3D Viewer — enter the 3D viewer where you can import and compose multiple models (GLB / GLTF / FBX / OBJ)
Letter T3D Text — create extruded 3D text with materials, lighting, and animation
Pentagon prismSVG 3D — extrude SVG vector files into 3D shapes

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).

GLB
GLTF
OBJ
FBX
On the 2D canvas, 3D model layers are collapsed into a single 3D Viewer row in the layer panel. Double-click this row (or right-click → Enter 3D Viewer) to re-enter the viewer and edit the scene. Individual model layers are only visible inside the 3D Viewer.

3D Viewer Layer Panel

Inside the 3D Viewer, each model has its own entry in the layer panel:

ClickSelect the model — gizmo attaches to it
Double-clickRename the model layer
Right-clickContext menu: Reset Transform, Delete
Eye toggleShow or hide individual models in the scene

Gizmo Controls

Keyboard shortcuts for the transform gizmo inside the 3D Viewer:

WTranslate (move)
ERotate
RScale
FFrame selected model (zoom to fit)
EscDeselect current model

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.

Crop frameOrange border with darkened outside shows the capture area. What's inside the frame = what Snap captures.
Lookdev sphereFixed to the bottom-right corner. Drag left/right to rotate the HDRI environment. Click + to switch environments.
Zoom restoreYour 2D zoom, pan, and rotation are saved on entry and restored on exit.

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:

OrbitLeft-drag to rotate the camera around the scene
PanMiddle-drag or right-drag to pan
ZoomScroll wheel to dolly in/out
SnapshotCaptures the entire scene at full canvas resolution with all post-processing effects as a flat pixel layer. Post-processing is baked in by default (disable in Settings).
PosesSave camera positions with thumbnail previews. Click a pose to restore it. Poses persist across sessions via AutoSave.
AnimationIf a model contains animations, a timeline appears — play, pause, and scrub clips
PromptOpens the workflow prompt panel as an overlay. Type a prompt, click Run — the 3D composite is sent to your workflow. The 3D viewer locks during generation (buttons dimmed, orbit disabled) and unlocks on result.
ExitClick the green ✓ button or press Esc

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:

LockedOrbit disabled, all panel controls dimmed (buttons, sliders, font selector, text input, scrub widgets), 3D entry blocked, model drop blocked
FreeExit ✓ and Prompt buttons stay active. 2D canvas fully usable. Stop button available.
Safety timeoutLock auto-releases after 3 minutes if the server fails to respond.

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.

Glow sliderControls bloom intensity (integer 0–20). Available in the procedural UV widget when a glow material is applied.
DefaultBloom starts at intensity 1 (subtle). Increase for dramatic neon/traffic light effects.
PerformanceQuarter-resolution multi-pass blur — negligible GPU cost. Disabled entirely when Glow = 0.
↑ Back to top

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

Text areaType your text — supports multi-line (Enter for new line)
FontChoose from 14 bundled Google Fonts: Archivo Black, Bebas Neue, Bowlby One, Bungee, Geologica, Give You Glory, Inter, Notable, Oswald, Pacifico, Playfair Display, Roboto, Sora, Story Script
SizeDrag to scrub font size, or double-click to type a value
B / IBold and Italic toggles (where supported by the font)
AlignLeft / Center / Right text alignment for multi-line text

Colors & Spacing

Face colorColor of the front and back faces of the extruded text — click swatch to open a mini color wheel
Side colorColor of the extruded side walls
Lh (Line Height)Line gap multiplier for multi-line text. Default 1.2
Ls (Letter Spacing)Extra spacing between characters in world units. 0 = default font tracking

Transform

Pos X / Y / ZMove the text group along each world axis (drag to scrub)
Rot X / Y / ZRotate the text around each axis in degrees (drag to scrub, or double-click to type)
DepthExtrusion depth — how thick the letters are
BevelBevel size on the letter edges for a chamfered look
Undo: All text edits are undoable (debounced 500 ms). The full edit history is preserved in the project .csk file.
Fonts are converted from Google Fonts into Three.js typeface format and bundled with the plugin — no internet connection required at runtime. See Credits for attribution.
↑ Back to top

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

DepthExtrusion depth — how thick the extruded shape is
BevelBevel size on extruded edges
Smooth normalsBlend face normals for a smoother curved look (useful for organic shapes)
Use SVG Colors (palette icon)Toggle in the drop zone — when active (blue highlight), the original SVG fill colors are preserved on the 3D shape instead of using the material color

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.

Limitations: Only <path> elements are extruded. Text, raster images, and non-path primitives are ignored. Complex self-intersecting paths may produce artifacts — simplify in Inkscape first.
↑ Back to top

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

MetalsGold, silver, copper, iron, brushed steel, chrome, and more — full PBR with roughness, metalness, and normal maps sourced from AmbientCG
GlassTransparent materials: clear glass, tinted glass, frosted glass, crystal, and physical materials with transmission and IOR
GlowEmissive procedural effects with bloom glow: Lava, Aurora, Nebula, Bioluminescent, Solar, Void, Radioactive, Supernova, Cyberpunk, Molten, Ghost Fire, Red Warning, Jellyfish, Quantum Foam — all with real-time bloom halos on emissive surfaces
StyleArtistic surface treatments: Oxidized, Anodized, Impasto, Velveteen, Soap Bubble, Charred, Hammered, Glitch, Mother of Pearl, Wax, Porcelain, Ink Bleed, Sketch, and more
FurShell-based fur system with 14 presets (Short Velvet, Cat Fur, Tiger, Leopard, etc.). Fur blades are instanced geometry with GLSL color injection.

Applying a Material

  1. Enter 3D Mode (double-click any 3D layer)
  2. Open the Material Gallery from the panel button
  3. Drag any material swatch onto the mesh in the viewer
  4. For texture materials a UV Widget opens with Tile X/Y, Rotate, Offset sliders
  5. 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.

Tile X / YTexture repeat count along each axis (texture materials only, integer 0–20)
TileNoise pattern scale — lower = bigger shapes, higher = finer detail (procedural materials only, integer 0–20)
RotateRotate the texture UV coordinates (texture materials only, integer 0–20)
Offset / Offset X / YShift the texture or pattern position on the surface (integer 0–20)
GlowBloom intensity for emissive materials — 0 = off, 20 = maximum glow halo (procedural materials only, integer 0–20). Controls bloom post-processing intensity. Default 1.

HDRI Environment

Click the + button next to the lookdev sphere in the 3D panel to change the environment light:

Studio ASoft neutral studio lighting
Studio BHigh-contrast studio setup
Photo StudioWarm photographic environment
Brown Photo StudioWarm-toned product photography studio
Ferndale StudioSoftbox studio setup with neutral fill
Glasshouse InteriorBright diffuse daylight from a glass-walled interior
DocklandsOvercast outdoor industrial environment
Partly Cloudy SkyOpen sky with directional sunlight and soft cloud fill
Sunflowers SkyWarm golden-hour outdoor sky
Import env…Load any .hdr file from your computer for a custom environment

Use the Environment Intensity and Environment Rotation sliders in the panel to fine-tune the lighting.

PBR textures (Metals, Glass tab) are sourced from AmbientCG under the CC0 license. HDRI maps are from Poly Haven under the CC0 license. See Credits for full attribution.
↑ Back to top

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

ApplicationPlugin FileStream FPSInstall Location
Blender 4.2+comfysketch_sync.py6 fpsEdit → Preferences → Add-ons → Install from Disk
Maya 2024+comfysketch_maya_sync.py12 fpsCopy to ~/Documents/maya/<ver>/scripts/
Houdini 21.0+comfysketch_houdini_sync.py6 fpsCopy to ~/houdini21.0/scripts/python/
Each plugin folder contains an installplugin.html with detailed step-by-step installation instructions.

Quick Start

  1. Install the plugin in your DCC app (see table above)
  2. In the DCC app, click Start Sync — the WebSocket server starts on port 9876
  3. Click Stream Viewport to begin sending frames
  4. In ComfySketch, click the Viewport Sync button in the toolbar — connection is automatic

Sync Panel Controls

Sync dotGreen = connected and streaming, grey = disconnected
Sync / DisconnectConnect or disconnect the WebSocket stream
SnapCapture the current viewport frame as a permanent pixel layer
PromptOpen the workflow prompt panel — run AI generation on the viewport stream
✓ ExitLeave Viewport Sync mode and return to 2D canvas

Performance

Camera sync30fps camera matrix broadcast (all apps)
QualityDynamic JPEG: 85% while moving, 92% on settle. No capture when static.
Port9876 (fixed — avoids Hyper-V / WSL2 port conflicts on Windows)
Mayaplayblast(offScreen=True) — no viewport flash
HoudiniFlipbook capture — brief overlay flash (Houdini 21 Vulkan limitation)
One sync at a time. Only one DCC app can connect on port 9876. Stop sync in one app before starting another. Blender viewport overlays are automatically hidden during sync.
↑ Back to top

Pie Menu

Right-click anywhere on the canvas to open the radial pie menu — a quick tool switcher with a mini color wheel in the center. No need to reach for the toolbar.

Pie Menu Tools

Felt Tip (B)
Paint (A)
Pastel (Y)
Smudge (F)
Eraser (E)
Pencil (P)

Center Color Wheel

The center of the pie menu contains a mini HSV color wheel — hue ring + saturation/value triangle. Change your color without opening the full color panel.

Usage

OpenRight-click anywhere on the canvas
Select toolClick any tool icon in the ring — the menu closes and the tool activates
Pick colorClick or drag inside the center color wheel
CloseClick outside the ring, press Escape, or right-click again

Spot 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.

Best for: small spots, logos, thin seams, edge halos.
Not suited for: large objects or complex backgrounds — use Remove (AI) instead.

Options

SizeBrush radius — max 200 px
HardnessMask brush edge. 100 = hard disc → clean known/unknown boundary. Lower values feather the edge.
Smoothness1–8 — Telea FMM radius. 1–2 = tight/sharp fill. 4 = general purpose. 6–8 = wide, smooth fill for larger spots.
Workflow: Ctrl+Z reverts to before the fill. Each Spot Heal stroke is a single undo entry.

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

SizeBrush radius — max 150 px. For large objects paint multiple strokes rather than one giant pass.

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

Carve/LaMa-ONNX — lama_fp32.onnx (~220 MB, float32)
https://huggingface.co/Carve/LaMa-ONNX/resolve/main/lama_fp32.onnx
This is the only model currently confirmed working on all onnxruntime versions.
Avoid: 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 pathNotes
C:\ComfyUI\models\inpaint\lama_fp32.onnxWindows absolute path
C:/Users/YourName/Downloads/lama_fp32.onnxForward slashes also work
~/models/lama_fp32.onnxHome-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:

StatusMeaning
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 readyWASM inference in the browser — ~40 s per removal
Not loadedClick 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

"INVALID_PROTOBUF" on load — the model uses a quantization format unsupported by your onnxruntime version. The bad cache file is deleted automatically. Switch to the recommended Carve float32 model and click Load again.
"Server inference failed — no browser model is loaded" — the server was available at startup so the browser WASM model was never initialised. Paste the working float32 URL, click Clear Cache, then Load again.
Tips: Hair, structured textures, and large uniform areas (walls, sky) benefit most from AI. Ctrl+Z reverts to before the fill — each remove stroke is a single undo entry.

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).

TypeDescription
RoundHard-edged circle. Hardness controls how sharply the edge falls off (0 = soft feather, 100 = crisp).
SoftGaussian radial falloff from center to edge — classic soft-glow or airbrush look.
AirbrushWide soft spray with flow-based buildup. Color accumulates while held in one position.
SprayScattered random dots. Density controls particles per stamp. Creates stipple and splatter effects.
MarkerFlat chisel-shaped stamp. Rotating the brush angle changes apparent width.
RaggedIrregular rough edges — ideal for dry brush, charcoal, and textured painting effects.
AlphaCustom 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

Hardness0–100. Sharpness of the brush edge. 100 = fully crisp, 0 = fully feathered Gaussian.
Roundness100 = circle. Lower values flatten the brush into an ellipse.
AngleRotation of an elliptical brush tip (0–360°).

Pressure Sensitivity

When a pen tablet is connected, stylus pressure data modulates the brush dynamically on every stroke.

Affects SizeLight pressure = smaller brush. Full pressure = maximum size.
Affects OpacityLight pressure = more transparent. Full pressure = full opacity. Minimum 15% at zero pressure (prevents invisible strokes).

Pressure Curves

CurveFeel
LinearDirect 1:1 mapping — pressure value directly becomes size/opacity
SoftVery sensitive at low pressure — a light touch gives a bigger response than expected
FirmRequires more force — small response until mid-pressure range
S-CurveGentle 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.

Range0–20. 0 = no lag (raw input). 20 = maximum smoothing with noticeable lag.
Default14 globally — varies per tool (Ink=10, Pencil=6, Pastel=6, Clone=2)

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

NameCharacter
NoneNo texture applied
Hot PressVery smooth — subtle micro-fiber grain (watercolor hot-press paper)
Cold PressProminent bumpy grain with peaks and valleys
CanvasRegular woven grid pattern — linen/cotton canvas
BristolNearly invisible fine grain — default for pencil and pastel
KraftMedium irregular fibrous texture — brown kraft paper
RoughHeavy tooth, chunky irregular grain — rough sketch paper

Image Textures (512×512)

Watercolor
Wash
Splatter
Grunge
Stipple
Wrinkle
Concrete
Stone
Blot
Decay
Texture Strength0–100%. 0 = no texture visible. 100 = texture fully dominates the stamp shape.

Jitter

Jitter adds controlled randomness to brush stamps, creating organic natural-looking variation along a stroke.

Size JitterRandom variation in brush diameter per stamp. 0 = uniform, 1 = maximum random range.
Position JitterRandom offset from the stroke path per stamp. Creates scatter/spread effects.
Opacity JitterRandom per-stamp transparency variation. Creates natural fade and density fluctuation.
Rotation JitterRandom rotation of each stamp. Most visible with alpha tips like pencil and pastel.

Brush Library

J

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

CategoryCountIncludes
Dry9Soft/Hard/Oil Pastel, Chalk, Soft/Vine/Compressed/Hard Charcoal, Conte
Paint12Round/Flat/Spray/Oil Brush, Wet Acrylic, Turpentine, Palette Knife, Impasto, Wash, Gouache, Watercolor
Ink11Fine Ink, Brush Pen, Technical Pen, Felt Tip, Chisel Tip, Fine Liner, Felt Nib, Marker, Copic Broad, Copic Brush, Highlighter
Pencil108B, 5B, 2B, B, HB, 3H, 6H, Technical, Colored, Sketch
Utility7Soft Blend, Smudge, Finger Paint, Wet Paint, Dry Brush, Soft Eraser, Hard Eraser
Save custom presets: Configure any brush the way you want, then click Save in the library panel to store it as a named preset for later reuse.

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

Opacity slider0–100% — controls the layer's transparency in the composite
Blend modeDropdown with 16 composite blend modes (see Blend Modes section)
Eye iconToggle visibility without deleting
Lock iconLock layer to prevent accidental painting (available on raster layers)
AddCreate new empty pixel layer above the active layer
DeleteRemove the active layer (undoable)
DuplicateCopy the active layer and place the copy directly above it
Merge DownFlatten the active layer into the layer below. Shortcut: Ctrl+E
Merge VisibleFlatten all visible layers into one. Shortcut: Ctrl+Shift+E
GroupWrap selected layers into a folder. Shortcut: Ctrl+Shift+G
RenameDouble-click the layer name to rename it

Multi-Select

Shift+clickRange-select from the active layer to the clicked layer
Ctrl+clickToggle individual layers in/out of the selection

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

🖼
Pixel / Raster

Standard bitmap layer. Created by default. Receives all painting, erasing, and filter operations. Content is resolution-dependent.

T
Text

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.

Rasterize: Right-click the layer → Rasterize Layer, or switch to a paint tool and click the canvas — a confirmation dialog will appear before converting to pixels.
▦
Gradient

Vector gradient fill. Color stops and direction are editable at any time by selecting the Fill tool and clicking the gradient layer.

✒
Pen (Bezier)

Vector bezier path. Stores anchor points, handles, color, width, and fill. Double-click in the layers panel to re-edit. Exportable as SVG.

Rasterize: Right-click the layer → Rasterize Layer, or switch to a paint tool and click the canvas — a confirmation dialog will appear before converting to pixels.
📦
3D

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.

ModeEffect
NormalStandard alpha compositing. Replaces what's below at the layer's opacity.
MultiplyDarkens. Multiplies layer color with layers below. White = transparent, black stays black.
ScreenLightens. Inverted multiply. Black = transparent, white stays white.
OverlayContrast boost. Multiplies darks, screens lights. Intensifies the image below.
DarkenKeeps only the darkest pixel between this layer and the layers below, per channel.
LightenKeeps only the lightest pixel between this layer and the layers below, per channel.
Color DodgeBrightens the lower layer based on this layer's brightness. Creates vivid highlights.
Color BurnDarkens the lower layer. Deepens shadows and increases saturation.
Hard LightStrong Multiply or Screen depending on upper layer brightness. High contrast.
Soft LightSubtle dodge/burn effect. Gentle lighting and shading.
DifferenceInverts lower layer where upper is white. No change where upper is black.
ExclusionSimilar to Difference but lower contrast and softer.
HueApplies the hue of this layer while keeping the saturation and luminance below.
SaturationApplies the saturation of this layer to the colors below.
ColorApplies hue + saturation. Useful for colorizing grayscale artwork.
LuminosityApplies 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.

CreateSelect multiple layers, then click the Group button or press Ctrl+Shift+G
Expand / CollapseClick the arrow toggle on the group header
Group opacityOpacity and blend mode on the group header affect all children together as a unit
UngroupRight-click the group header → Ungroup — children move to the parent level
Move entire groupClick the group header to select all children, then use the Move tool
Nest layersDrag any layer onto a group header to add it to the group

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.

Set maskRight-click any layer → "Set as Mask Layer"
White = 1.0Painted/active areas — full mask value
Black = 0.0Transparent/empty areas — no mask
Export maskFile → Export Mask PNG — saves the mask as a standalone PNG
Workflow use: Connect the mask output to inpainting nodes, ControlNet mask inputs, or any ComfyUI node that accepts a mask tensor. The mask layer is output live whenever the node runs.

Color Wheel

Click the foreground color swatch to open the full HSV color wheel panel.

Outer hue ringDrag to select hue (0–360°)
Inner triangleHorizontal = saturation, vertical = value (brightness). Click or drag to pick.
Hex inputType a 6-digit hex code directly and press Enter

Foreground / Background

XSwap foreground and background colors
DReset to defaults: white foreground, black background
Click swatchClick either the foreground or background swatch to choose which one is being edited in the color wheel

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

Q

Press Q to toggle the floating swatch panel. Pick saved colors quickly or manage custom palettes.

Built-in Palettes

Material
Web Colors
Pastels
Vibrant
Grayscale

Create custom palettes, add the current foreground color to any palette, and reorder or delete saved swatches. Palettes persist across sessions.

Zoom, Pan & Rotate

ActionInput
Zoom in/outScroll wheel
Fine zoomAlt + scroll
Zoom in (stepped)+ or =
Zoom out (stepped)- or _
Reset to 100%0
Fit to viewFit button in toolbar (scales canvas to fill the window)
PanMiddle mouse button drag
Rotate canvas (smooth)Shift + scroll wheel
Rotate canvas ±15°Alt+← / Alt+→
Reset rotation0 (also resets zoom to 100%)
Canvas rotation is view-only — it does not transform pixel data. Use it to draw at a comfortable angle, then press 0 to reset. The rotation indicator appears in the corner when active.

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.

Mirror HReflects strokes left ↔ right across the vertical center axis
Mirror VReflects strokes top ↔ bottom across the horizontal center axis
Both4-way symmetry — stroke is copied to all four quadrants simultaneously
Use cases: Symmetrical portraits, character faces, mandalas, logos, and any design that benefits from bilateral symmetry. Disable to break symmetry for fine-tuning details.

Quick Generate (AI)

Ctrl+Enter

The 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

  1. Open the Run panel on the right and switch to the Quick Gen tab
  2. Type your prompt in the text area
  3. Optionally click the gear icon to open settings (model, LoRA, negative prompt, RMBG)
  4. Click Run or press Ctrl+Enter
  5. Result appears in the preview panel

Settings (Gear Icon)

ModelSelect any checkpoint from your ComfyUI models folder
LoRAOptional LoRA model to apply. LCM LoRAs are sorted to the top of the list.
Negative promptWords and phrases to avoid in the generation
Remove BG (RMBG)Automatically remove background after generation. Requires the RMBG node to be installed. Shown as a checkerboard icon button when available.

Fixed Generation Parameters

Resolution512 × 512
Steps5 (LCM sampler — very fast)
CFG scale2.0

Node Outputs

OutputFormatDescription
image(1, H, W, 3) float32All visible layers composited as a flat RGB image tensor
mask(1, H, W) float32The 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

  1. Right-click the pen layer in the layers panel
  2. Click Export as SVG — an .svg file is downloaded named after the layer

Import an SVG File

  1. Go to File → Import SVG…
  2. Select an .svg file
  3. Each subpath (M…Z block) becomes a separate pen layer inserted above the active layer

Compatible Apps

Inkscape
Adobe Illustrator
Affinity Designer
Any SVG editor

Supported SVG Features

Path commandsM L H V C S Q T A Z — all absolute and relative variants
Style resolutionCSS class blocks, inline style attributes, and presentation attributes (highest priority)
ScalingAutomatically scaled from SVG viewBox to canvas dimensions
Properties importedstroke color, stroke-width, fill, opacity
Limitations: Only <path> elements are imported. Groups, transforms, text, images, and rect/circle primitives are not supported.

File Operations

File Menu (toolbar folder icon)

ItemDescription
New CanvasCreate a fresh empty canvas at the current size
Clear CanvasErase all content on the current canvas
Open Image…Open an image file as a new canvas (replaces current)
Open from Input ImageLoad 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 InputAdd 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 PNGExport 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 PNGExport the mask layer as a standalone grayscale PNG
CloseExit the fullscreen editor

Clipboard

Ctrl+CCopy the current selection (or entire layer if no selection) to the clipboard
Ctrl+VPaste clipboard content as a new layer

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.

.csk format: ComfySketch Pro project files are ORA-compatible ZIP archives. Renaming to .ora allows opening in other ORA-supporting apps, though vector layers (text, gradient, pen) are stored as ComfySketch Pro-specific data.

Settings

Access via the ⚙ settings button in the toolbar.

Theme

Light
Dark
Studio

Theme choice is saved and restored automatically across sessions.

Preferences

Size / Opacity widgetToggle the floating size/opacity indicator. Style selector: circular (classic) or bar (horizontal sliders).
Widget styleChoose between circular ○ or bar ▭ widget using the icon toggle.
Auto-show tool optionsAutomatically show the tool properties panel when switching tools.
Canvas size HUDShow canvas dimensions and document name at the bottom of the canvas.
Browser fullscreenAuto-enter browser native fullscreen mode when opening the editor.
Undo steps10–100 undo history steps. Default 30. More steps use more memory.
RendererWebGL (default, hardware-accelerated) or Canvas2D (fallback for compatibility).
3D Post-Processing (AO + Bloom)Enable all 3D post-processing effects: screen-space ambient occlusion for depth-based shading and bloom glow for emissive materials.
Snapshot Post-ProcessingInclude AO and bloom in 3D snapshot captures. Disable for clean renders without post-processing effects.

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:

ManualOpens this manual in a new browser tab.
Keyboard ShortcutsOpens the interactive hotkeys overlay inside the editor.
About / LicenseShows the ComfySketch Pro commercial license notice and third-party component attributions.

For purchase, support, or bug reports see the Contact & Support section.

Keyboard Shortcuts

Tools

KeyTool
BFelt Tip
APaint
NInk
PPencil
KMarker
YPastel
FSmudge / Blend
EEraser
TClone Stamp
GFill / Gradient
IEyedropper
VMove / Transform (auto-shows handles at 35% opacity)
HCrop
LLine
CCircle / Ellipse
RRectangle
UPen (Bezier)
MRectangle Select
⇧MEllipse Select
WMagic Wand
⇧XText
/Toggle previous tool
—Spot Heal (toolbar only)
—Remove / AI (toolbar only)

View & Canvas

KeyAction
+ / =Zoom in
- / _Zoom out
0Reset view (100%, no rotation)
Alt+←/→Rotate canvas ±15°
⇧+WheelSmooth canvas rotation
Middle dragPan canvas
SpaceToggle all UI panels

Brush

KeyAction
[Smaller brush
]Larger brush
S+dragInteractive size adjust
O+dragInteractive opacity adjust
Alt+clickPick color (eyedropper)

Color

KeyAction
XSwap foreground/background
DReset to white/black
QToggle floating swatches

Edit

KeyAction
Ctrl+ZUndo
Ctrl+YRedo
Ctrl+ASelect all
Ctrl+DDeselect
Ctrl+⇧IInvert selection
Ctrl+CCopy to clipboard
Ctrl+VPaste from clipboard
Ctrl+JCopy selection → new layer
Ctrl+⇧JCut selection → new layer
Ctrl+EMerge down
Ctrl+⇧EMerge visible
Ctrl+⇧GGroup selected layers
DeleteClear selection (or delete active layer if no selection)
Alt+DeleteFill with FG color
Ctrl+DeleteFill with BG color

File

KeyAction
Ctrl+SSave PNG
Ctrl+⇧SSave project (.csk)
Ctrl+EnterRun workflow / Quick Gen

Transform

KeyAction
EnterCommit transform
EscCancel / deselect
⇧+rotate handleSnap to 15° increments
Ctrl+corner handleFree distort (pixel layers)

Other

KeyAction
Right-click canvasOpen pie menu
JToggle brush library
`Toggle size/opacity widget
↑ Back to top

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).

License: Creative Commons CC0 1.0 Universal — public domain dedication. No attribution required, but gratefully given.
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).

License: Creative Commons CC0 1.0 Universal — public domain dedication. No attribution required, but gratefully given.
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.

Archivo Black
Bebas Neue
Bowlby One
Bungee
Geologica
Give You Glory
Inter
Notable
Oswald
Pacifico
Playfair Display
Roboto
Sora
Story Script
Licenses: Each font is distributed under the SIL Open Font License 1.1 or Apache License 2.0 as specified by its author on Google Fonts. These licenses permit free use, modification, and redistribution. Full license texts are available on each font's Google Fonts page.

Rendering Engine

3D rendering is powered by Three.js — an MIT-licensed WebGL library.

↑ Back to top

Contact & Support

Have a question, found a bug, or want to share your work? Reach out through any of the channels below.

Purchase mexesmith.gumroad.com — license & downloads
LinkedIn Vitor Silva
Bug reports & feature requests: Use the GitHub repository issues page for technical bugs and suggestions. For licensing questions, email directly.
↑ Back to top