GPUs for your creations · crypto without KYC Explore
NOTEBOOK 03 · COMFYUI

The same project, another machine: rebuild your ComfyUI workflow.

To resume a ComfyUI workflow, bring the JSON, identify the exact models and note the environment that runs them. The graph file does not contain the weights. Our "Ceramics — three lighting intentions" folder gives you an original recipe to rebuild: three comparable variants, a manifest and an offline check. The JSON and the graph have been verified; no image or GPU measurement is presented as produced by this exercise.

THE KIT TO TAKE WITH YOU · 1.0.0

Ceramics — three lighting intentions

Original workflow, manifest, step-by-step reconstruction, Python validator with no external dependencies and tracking sheets. No weights or generated results in the archive.

What was verified

  • JSON compliant with the ComfyUI interface schema 0.4; 15 core nodes and 25 connections checked.
  • Parameters of the three branches verified; offline check available in the bundle.
  • ComfyUI import and generation not run: no image, duration or VRAM measured.
  • Model fingerprint from the publisher's repository; weights not downloaded.
01

A concrete case: finding the light for a poster

The project is a direction study for a fictional ceramic piece: a matte ivory vase, a cobalt blue base and a sand-colored background. The composition calls for an open area in the top left to add a title later in layout software. The goal is to compare three lighting intentions, then explain the choice made. This is not about faithfully reproducing a photographed object.

The provided workflow has three branches, with the same dimensions, the same model, the same seed and the same settings. Only the lighting sentence changes in the positive prompt. It uses no input image, no custom node, no refiner and no LoRA. You get a project small enough to understand every connection and structured enough to prepare a real comparison. The download provides the workflow and the settings. No generation was run for this folder: produce and then compare the images in your own environment.

02

Prepare the software and note the versions actually used

The graph targets ComfyUI core 0.37.0 definitions and the frontend 1.52.7 designated by its dependencies. The manifest keeps their full commits. These versions were checked against the official sources; they do not describe an installation run for this article. Use an installation prepared according to the procedure suited to your system, then compare its versions against this reference.

Python, PyTorch, the driver and the compute precision are also part of the resumption folder. The environnement-a-remplir.json file leaves these fields empty until you observe them. Do not copy over a version assumed from your GPU's name. The Environments page helps organize these dependencies. The download validator only requires Python 3.10 or newer and its standard library; it does not require ComfyUI.

Folder references and information to record
ItemReferenceStatus in this folder
ComfyUI core0.37.0, full commit in the manifestNode definitions checked
ComfyUI frontend1.52.7, full commit in the manifestDocumented widget order
Workflow formatInterface JSON 0.4Schema and graph checked
Python / PyTorch used for generationTo record on the machine usedNo generation run here
Driver, precision, memory and durationTo observe during your trialNot measured
03

Identify the checkpoint without confusing name and content

The expected file is sd_xl_base_1.0.safetensors, in ComfyUI/models/checkpoints/, from the Stability AI repository at the revision pinned in the manifest. This recipe uses the full SDXL Base 1.0 checkpoint: the loader supplies the model, the text encoding and the VAE to the graph. No weights are distributed with our resources. Check the model page and its license before obtaining it separately.

The manifest provides a size of 6,938,078,334 bytes and a SHA-256 hash taken from the publisher repository's metadata. We did not download the weights to recalculate this hash. The validator's --checkpoint option compares the file you already have against this reference. A renamed file is not necessarily the same model; its size on disk also does not give its peak GPU memory usage.

If your installation uses a central directory or a subfolder, select the path offered by the loader and note that adaptation. An empty menu is a prompt to first check the folder and the loader type, before multiplying copies of the model.

04

Import the JSON and read the nodes in the right order

Unzip the folder, then open workflow-ui.json in the ComfyUI interface or drop the file onto its canvas. This is the interface format 0.4, with positions, widgets and connections. This file is not the payload intended for the /prompt API endpoint. Check the selected checkpoint and make sure no nodes are missing before launching anything.

The 15 nodes use only six built-in types. The loader, the empty latent and the negative text are shared. Each branch adds a positive text, a KSampler, a VAE decode and a save. Three branches mean neither three GPUs nor simultaneous execution. The reconstruction.md file details the 25 connections if you prefer to rebuild the graph by hand.

The project chain, from model to file
NodeCountRole in this exercise
CheckpointLoaderSimple1Load the checkpoint; provide MODEL, CLIP and VAE
EmptyLatentImage1Set 1024 × 1024 pixels and a batch of 1
CLIPTextEncode4Encode three positive prompts and one shared negative
KSampler3Compute the latents with the shared settings
VAEDecode3Decode the latents into images
SaveImage3Write the variants to three distinct prefixes
Connections for each branch
Checkpoint.CLIP → Texte positif.clip
Checkpoint.MODEL → KSampler.model
Texte positif.CONDITIONING → KSampler.positive
Texte négatif.CONDITIONING → KSampler.negative
Latent vide.LATENT → KSampler.latent_image
KSampler.LATENT → VAEDecode.samples
Checkpoint.VAE → VAEDecode.vae
VAEDecode.IMAGE → SaveImage.images
05

Keep the settings fixed to compare three intentions

The three KSamplers use the seed 24092026, 24 steps, a CFG of 6.5, the euler sampler, the normal scheduler and a denoise of 1. The post-generation control is set to fixed in each branch. This choice keeps the trial parameters identical; it does not claim to be the best setting for every image.

The shared prompt describes the vase, the base, the background and the area intended for the title. The last sentence provides the lighting. You will find each full text in the manifest: copy the whole variant when reconstructing. The model instructions are in English in this SDXL example. The shared negative notably asks to avoid text, logos, duplicated objects and distortions. These instructions remain requests to the model, with no guarantee that it will follow them perfectly.

Three variants to evaluate, no presumed result
VariantLighting instructionQuestion to ask of the output
A · frontalLarge, frontal and diffuse sourceDoes the volume remain readable without too much shadow?
B · sideLarge source on the left, soft shadow toward the rightDo the relief and material serve the poster?
C · backlightBacklight and slight frontal fillIs the bright edge enough to separate the vase?
06

Check the folder before committing the GPU

From the unzipped folder, run the validator below. It reads only the workflow and the manifest, checking identifiers, sockets, data types, reciprocal links, the absence of cycles and the consistency of the parameters across the three variants. It contacts no service and loads no model. An error indicates which part of the folder to inspect.

The delivered workflow has also been checked against the official UI 0.4 schema. The public validator is deliberately limited to the profile of this exercise: if you add another node or change its numbering, it may reject your copy even if ComfyUI can use it. So keep a pristine original before making your own adaptations.

An ok: true result demonstrates the consistency of this JSON and its graph. It does not demonstrate the actual import into your interface, the availability of the checkpoint or the production of an image. These last steps were not carried out for the delivery of this folder.

Offline check, Python 3.10 or newer
python validate_workflow.py
Also verify a checkpoint already present on your disk
python validate_workflow.py --checkpoint "D:/modeles/sd_xl_base_1.0.safetensors"
07

Run it, open the outputs and document your choice

Once the dependencies are in place, run the workflow and check that every branch reaches SaveImage. The prefixes a_frontale, b_laterale, and c_contrejour are found under RenderParcel/ceramique-v1/ in ComfyUI's output directory. The application completes the names with its own counters. The recipe produces three separate files; it does not automatically create a comparison sheet.

Open the PNGs and check the dimensions, the edge of the vase, the legibility of the material, and the space available for the title. Fill in comparaison.csv with your observations and a rationale for selection. The download cells are empty: no variant has been visually evaluated here. If a generation fails, record that failure rather than assigning it a time or a quality.

The same seed does not guarantee identical pixels across versions, hardware, and operations. Changing the lighting can also change the silhouette: the workflow explores an intention without locking down a product identity. Keep a reference image from your own run and compare the announced criteria, then the pixels only if your environment and protocol justify it.

08

Recognize the errors that prevent recovery

Start with the first observable error. Changing the model, the ComfyUI version, and the sampling parameters all at once makes diagnosis needlessly difficult. The table separates faults in the folder from those that only surface on load or during generation.

If you are short on memory, note the step concerned: loading, sampling, or decoding. The batch is already limited to one image in this exercise. A lower resolution can serve as a diagnostic, but it creates another trial; update the manifest instead of comparing its results as if they came from the original case.

Observe a symptom, then check a specific detail
SymptomFirst checkUseful suite
Checkpoint missing from the menuCheckpoints name and folder, or additional pathsRefresh the list according to your installation
Unknown node after importTechnical type and version actually usedCompare against the manifest's six core types
Validator link errorReported input, output and link numberStart from the intact copy or rebuild the connection
Variants that are hard to compareSeed, fixed, dimensions and parameters of the three branchesModify only the lighting sentence
Out of memory during the computationExact step and workload actually launchedMeasure and then prepare an adapted test, with a new manifest
PNG present but poor compositionSelection criteria and full promptRewrite a single constraint; keep the previous version
09

Archive a recipe and choose hardware based on your observations

The final handover package gathers the JSON actually used, the completed manifest, the comparison, the environment versions and a sample output that you opened yourself. Keep the JSON separate: a media file's metadata can disappear during a conversion or a share. The export guide helps distinguish the visual deliverable from the sources needed for a new run.

Before expanding the project, watch a full generation through to decoding and saving. Here we measured neither compute time nor required VRAM capacity. Look at a 24 GB RTX 4090 or a 48 GB RTX 6000 Ada depending on the need you observe, your environment's compatibility and the plan that fits. Their memory is not a promise of throughput; this graph does not automatically pool the memory of several cards.

The image workshop helps you pin down the direction and criteria before booking. You can then prepare a configuration and keep the same inputs for your own hardware test. The package's original resources are under the MIT license; the software and the model remain subject to their respective licenses.

THE PRODUCTION JOURNALS

To move your project forward.

All notebooks
GOING FURTHER

Your questions.

Can I use the download without having the SDXL weights?+

You can read the manifest, check the JSON and rebuild the connections. A generation requires the specified checkpoint and a compatible ComfyUI environment. The validator does not replace those dependencies and does not download them.

Why does the JSON use UI format 0.4?+

This is the interface format chosen and verified against the official schema for this bundle. It describes the nodes, their positions and their widgets in particular. The format version is not the ComfyUI software version, and this JSON must not be confused with an API payload.

Can I get exactly the same vase by changing only the light?+

The recipe does not guarantee it. It compares text-to-image prompts with the other parameters fixed. The model may change details, the silhouette or the framing. To work on a real product whose shape must stay faithful, you need a different reference and control protocol.

Keep these markers in your project.

Open my notebook