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.
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.
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.
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.
| Item | Reference | Status in this folder |
|---|---|---|
| ComfyUI core | 0.37.0, full commit in the manifest | Node definitions checked |
| ComfyUI frontend | 1.52.7, full commit in the manifest | Documented widget order |
| Workflow format | Interface JSON 0.4 | Schema and graph checked |
| Python / PyTorch used for generation | To record on the machine used | No generation run here |
| Driver, precision, memory and duration | To observe during your trial | Not measured |
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.
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.
| Node | Count | Role in this exercise |
|---|---|---|
| CheckpointLoaderSimple | 1 | Load the checkpoint; provide MODEL, CLIP and VAE |
| EmptyLatentImage | 1 | Set 1024 × 1024 pixels and a batch of 1 |
| CLIPTextEncode | 4 | Encode three positive prompts and one shared negative |
| KSampler | 3 | Compute the latents with the shared settings |
| VAEDecode | 3 | Decode the latents into images |
| SaveImage | 3 | Write the variants to three distinct prefixes |
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.imagesKeep 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.
| Variant | Lighting instruction | Question to ask of the output |
|---|---|---|
| A · frontal | Large, frontal and diffuse source | Does the volume remain readable without too much shadow? |
| B · side | Large source on the left, soft shadow toward the right | Do the relief and material serve the poster? |
| C · backlight | Backlight and slight frontal fill | Is the bright edge enough to separate the vase? |
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.
python validate_workflow.pypython validate_workflow.py --checkpoint "D:/modeles/sd_xl_base_1.0.safetensors"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.
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.
| Symptom | First check | Useful suite |
|---|---|---|
| Checkpoint missing from the menu | Checkpoints name and folder, or additional paths | Refresh the list according to your installation |
| Unknown node after import | Technical type and version actually used | Compare against the manifest's six core types |
| Validator link error | Reported input, output and link number | Start from the intact copy or rebuild the connection |
| Variants that are hard to compare | Seed, fixed, dimensions and parameters of the three branches | Modify only the lighting sentence |
| Out of memory during the computation | Exact step and workload actually launched | Measure and then prepare an adapted test, with a new manifest |
| PNG present but poor composition | Selection criteria and full prompt | Rewrite a single constraint; keep the previous version |
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.
To move your project forward.
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.