SD3.5 Large Canny ControlNet - After
SD3.5 Large Canny ControlNet - Before

This ComfyUI workflow uses Stability AI’s SD 3.5 Large model with a Canny ControlNet to generate images that follow the structure of an input image’s edges. The pipeline loads the SD 3.5 checkpoint (CheckpointLoaderSimple) and the Canny ControlNet (ControlNetLoader), encodes your text prompt (CLIPTextEncode), and extracts a high-contrast edge map from your guide image (Canny). The edge map is applied as a structural constraint via ControlNetApplyAdvanced so the KSampler can synthesize new content that respects the outlines while still following your prompt.

Technically, the workflow creates a latent canvas at your target resolution (EmptySD3LatentImage), conditions the model with your positive prompt plus the ControlNet edge guidance, and optionally zeroes the negative prompt (ConditioningZeroOut) for simplicity. After sampling (KSampler), the result is decoded to RGB (VAEDecode), previewed (PreviewImage), and saved (SaveImage). ImageScale is included to match the Canny edge map to the chosen output size for consistent alignment. This setup is ideal when you want strong compositional control—like sticking to silhouettes or product contours—while letting SD 3.5 handle detail, texture, and style.

API

Use this workflow from code

Every Comfy workflow is a JSON graph. The payload below is this workflow, exactly as ComfyUI runs it — fetch it from the URL, keep it in version control, or load it in ComfyUI and run it node by node.

sd3.5_large_canny_controlnet_example.json
Fetching workflow JSON…

Run it from TypeScript or Python with the Comfy SDK. The same code targets Comfy Cloud or a ComfyUI you host yourself — only the base URL changes.

// Install (beta)
npm i @comfyorg/sdk

// Run "SD3.5 Large Canny ControlNet" (TypeScript)
import { Comfy } from "@comfyorg/sdk";

const client = new Comfy({ apiKey: "comfyui-..." });

// This workflow, exported in API format (see note below)
const wf = await client.workflows.fromFile("sd3.5_large_canny_controlnet_example_api.json");

const asset = client.assets.fromFile("input.png");
wf.setInput("45", "image", asset); // LoadImage

wf.setInput("6", "text", "crystal pink dragon on a blue mystery sky, hyperdetailed"); // CLIPTextEncode

const job = await client.run(wf);
await job.getOutputs("9")[0].toFile("output.png"); // SaveImage

The SDK takes a workflow in API format: open this workflow in ComfyUI and use File → Export Workflow (API).

Comfy Cloud API access requires a plan with an API key.

FAQ

Frequently Asked Questions

View all workflows
Character
Cinematic
Image to Video
Lip Sync
Multiple Angles
Portrait
Style Reference
Style Transfer
Text to Video
Video Generation
Video
Showing 30 of 30 templates