Your First Workflow: Text to Image
- Load a checkpoint model into the default workflow and run a complete text-to-image generation
- Write positive and negative prompts and identify where they connect in the workflow
- Read the generation queue and find completed output in the Assets panel
The Default Workflow Is Already Open
When you first open ComfyUI, the canvas shows a default text-to-image workflow. This workflow is a complete, working pipeline — seven nodes connected in a specific order that takes your prompt and turns it into an image. You do not need to build anything yet. Your job in this lesson is to understand what is already there and run it.
Before running anything, you need a checkpoint model. If the Load Checkpoint node already shows a model name in its dropdown, skip ahead to the "Writing Your First Prompt" section. If it shows an empty dropdown or a loading spinner, continue to the next paragraph.
The fastest model to download for a first generation is v1-5-pruned-emaonly.safetensors (the standard SD 1.5 base model). Download it from Hugging Face (runwayml/stable-diffusion-v1-5) and place it in the ComfyUI/models/checkpoints/ folder. After downloading, press R on the canvas to refresh the model list, then select it in the Load Checkpoint dropdown. Lesson 6 covers model types and downloads in full detail — for now, any checkpoint in the dropdown will work.
The Seven Nodes in the Default Workflow
Let's identify each node and what it does before you run anything. Reading left to right:
- Load Checkpoint: This is where you select the AI model. It outputs three things: MODEL (the diffusion weights), CLIP (the text encoder), and VAE (the image decoder). Everything in the pipeline depends on these three outputs.
- CLIP Text Encode (Positive): Takes your positive prompt text and converts it to a conditioning vector using the CLIP output from Load Checkpoint. This tells the model what to generate.
- CLIP Text Encode (Negative): Takes your negative prompt text. This tells the model what to avoid.
- Empty Latent Image: Creates a blank noise image in latent space at the dimensions you specify. The default is 512x512 for SD 1.5 or 1024x1024 for SDXL. This is the starting canvas for the generation.
- KSampler: The engine. It receives the model, positive conditioning, negative conditioning, and the blank latent — then runs the diffusion process for the specified number of steps. The output is a denoised latent image.
- VAE Decode: Converts the KSampler's latent output from compressed latent space back into a full-pixel image. Think of it as developing a photograph from a negative.
- Save Image: Takes the decoded image and saves it to the
ComfyUI/output/folder. It also displays a preview in the node itself after generation completes.
Writing Your First Prompt
Click on the CLIP Text Encode (Positive) node — the one at the top, connected to the KSampler's positive input. You will see a text field. Click inside it and type your prompt. A good starting prompt for SD 1.5:
a red fox sitting in a snowy forest, cinematic lighting, detailed fur, professional photography
Now click on the CLIP Text Encode (Negative) node below it. Type what you want to avoid:
blurry, low quality, watermark, text, deformed, ugly
Negative prompts work differently depending on the model architecture. For SD 1.5 and SDXL, they meaningfully push the model away from the listed concepts. For FLUX.1 models, negative prompts have little effect — FLUX uses a different conditioning approach. Lesson 7 covers this in detail. For now, both text boxes are connected and will work with any SD 1.5 model.
Running the Generation
Press Ctrl+Enter (or click the Run button at the top of the interface). The KSampler node will show a progress bar — this is the diffusion process running. With SD 1.5 at 20 steps on a modern GPU, expect 5-15 seconds. On CPU-only, expect 2-5 minutes.
Watch the KSampler node. You will see a step counter incrementing. When it reaches the step limit, the VAE Decode and Save Image nodes activate in sequence. The Save Image node displays a thumbnail of the result.
The queue counter in the top bar shows how many generations are pending or running. If you press Ctrl+Enter while one is already running, the new job queues up and runs after the current one finishes.
Finding Your Output
After generation completes, the result appears in two places:
- The Save Image node: A thumbnail preview appears directly in the node on the canvas.
- The Assets panel: Open the left sidebar and click Assets. Your generated image appears there as a full-size preview. Click it to view it, right-click to download or copy it.
The image file is also saved to ComfyUI/output/ on your local machine (or the RunPod pod storage if you are using cloud). The filename includes the timestamp and a sequential number.
Congratulations — you just ran your first ComfyUI generation. In the next lesson you will learn what nodes actually are at the technical level, which makes it much easier to understand why each connection matters and what happens when you change one.
- The default workflow has exactly seven nodes — Load Checkpoint, two CLIP Text Encode, Empty Latent Image, KSampler, VAE Decode, and Save Image — and they form a complete generation pipeline you do not need to modify to run your first image.
- The Load Checkpoint node outputs three separate connections — MODEL, CLIP, and VAE — and each feeds a different downstream node; this is why changing the checkpoint affects the entire pipeline.
- Positive prompts tell the model what to generate; negative prompts tell it what to avoid — but negative prompts have minimal effect in FLUX.1 workflows (they are effective for SD 1.5 and SDXL).
- Ctrl+Enter runs the current workflow — pressing it while a generation is running adds the new job to the queue rather than interrupting the current one.
- Output appears in both the Save Image node thumbnail and the Assets panel in the left sidebar — the Assets panel is better for reviewing multiple outputs in sequence without scrolling around the canvas.