# RenderParcel — Ceramics, three lighting intentions

Bundle version: **1.0.0**. Original workflow for rebuilding a creative test on another machine.

**What's included:** a ComfyUI 0.4 interface JSON, 15 built-in nodes, three light branches, an exact manifest of the model and software sources, an offline validator, and a blank comparison sheet.

**What has been checked:** JSON syntax, the official UI 0.4 schema, node structure, connection types, a cycle-free graph, matching parameters, and intentionally introduced defaults. **ComfyUI was not launched; no image was generated, and no VRAM requirement or generation time was measured.** Importing into a ComfyUI interface and running it in your environment remain to be verified. The bundle contains no weights.

## 1. Verify the bundle without ComfyUI

Unzip the archive and open a terminal in `comfyui-v1`. With Python 3.10 or newer:

```console
python validate_workflow.py
```

The validator uses only the standard library, contacts no server, and runs no AI computation. The expected result for the intact bundle contains `ok: true`, `nodes: 15`, `links: 25`, `checkpoint_verified: false`, `comfyui_executed: false`, and `image_generated: false`. A failure returns exit code 1 and an explanation. This validator checks the specific profile of this bundle, not any possible ComfyUI workflow.

## 2. Gather the dependencies on the destination machine

The graph was built from the definitions of **ComfyUI 0.37.0**, commit `73c9bad4d21e7addbe1d13bc92eee0f1431b017d`. The dependencies of this version point to **comfyui-frontend-package 1.52.7**, frontend commit `1a7a6b82514874545dc5e8203d0bd2188c2d9b18`. These are exact documentary references, not an environment installed and run in this delivery. A newer version may import the format; that possibility does not amount to validation of its behavior.

Use the [official installation suited to your system](https://docs.comfy.org/installation/manual_install). Don't blindly replace your production installation. Record your actual versions in `environnement-a-remplir.json`, including Python, PyTorch, the driver, precision, and launch options. No generation Python/PyTorch is presented here as tested.

The only required model is **Stable Diffusion XL Base 1.0** from Stability AI:

- repository: `stabilityai/stable-diffusion-xl-base-1.0`;
- revision: `462165984030d82259a11f4367a4eed129e94a7b`;
- file: `sd_xl_base_1.0.safetensors`;
- reference size: `6938078334` bytes, not directly related to peak VRAM;
- reference SHA-256: `31e35c80fc4829d14f90153f4c74cd59c90b779f6afe05a74cd6120b893f7e5b`;
- intended location: `ComfyUI/models/checkpoints/sd_xl_base_1.0.safetensors`.

Consult the [publisher's file at the pinned revision](https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/blob/462165984030d82259a11f4367a4eed129e94a7b/sd_xl_base_1.0.safetensors) and its [CreativeML Open RAIL++-M license](https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/blob/462165984030d82259a11f4367a4eed129e94a7b/LICENSE.md) before obtaining it separately. The bundle performs no download. The hash comes from the publisher's LFS metadata; it was not recomputed on the weights in this delivery.

To compare the file you already have, without loading it into GPU memory:

```console
python validate_workflow.py --checkpoint "D:/modeles/sd_xl_base_1.0.safetensors"
```

This option reads the file to check its size and hash. It may take time depending on your storage. A correct hash is not proof of a successful run. No refiner, LoRA, ControlNet, input image, or custom node is required by this graph.

## 3. Import and read the three branches

Open a prepared ComfyUI installation, then import `workflow-ui.json` into the interface, either by opening the workflow or by dragging and dropping the JSON onto the canvas. **Don't send this file to the API endpoint `/prompt`: it describes the interface, not the API execution payload.**

Check the checkpoint selection in node 1. If the file was placed in a subfolder, select its actual path and keep that change in your copy of the manifest. If the menu doesn't offer it, first check its location and the additional paths of your installation, then refresh the models or restart according to your version's procedure.

Branches A, B and C use the same fictional subject: a matte ivory vase on a cobalt blue base, with a free area reserved for a title added later in layout software. The prompts are in English for this SDXL example; the folder explains their role in French. Only the last sentence of the positive prompt varies: soft frontal, left side, backlit.

All three KSampler nodes use `24092026`, control after generation `fixed`, 24 steps, CFG 6.5, `euler`, `normal`, denoise 1. The shared latent is 1024 × 1024 pixels with a batch of 1. These numbers define the exercise; they are neither a universally optimal setting nor a performance measurement. The recipe does not drive three GPUs and does not assemble a triptych into a single image.

## 4. Run and judge your result

Start a run when the dependencies are available. Each branch must reach its SaveImage node. The prefixes are `RenderParcel/ceramique-v1/a_frontale`, `b_laterale` and `c_contrejour` in ComfyUI's output directory; ComfyUI adds its own file counters. Three branches do not guarantee simultaneous execution.

Open the three PNGs. Fill in `comparaison.csv`: readable edge, readable material, room for the title, distortion, variant retained and comment. The cells are intentionally empty. Light can also change the silhouette or the composition: a shared seed does not lock down a real object. For a faithful representation of a product, this text-to-image folder is only a direction study, not a controlled reproduction process.

Validation on your machine is complete when the files exist, open, have the expected dimensions and meet your criteria. Note the environment, export the JSON used and keep a reference image produced by your run. Do not invent a duration or a VRAM figure if you haven't measured it.

## 5. Rebuild, modify, pass on

`reconstruction.md` details every connection and the widget order. To modify the case, duplicate the folder, change one variable at a time and update the manifest. The v1 profile validator may reject a deliberate extension: that does not prove it is invalid for ComfyUI, only that it falls outside the controlled folder.

Keep the JSON independently of the PNGs. Embedded metadata can be stripped by a conversion or by sharing. Also archive your completed manifest, the comparison and the selected outputs. Libraries, weights and drivers remain separate dependencies.

## Technical sources

- [ComfyUI UI format 0.4](https://docs.comfy.org/specs/workflow_json_0.4).
- [Built-in nodes, ComfyUI source 0.37.0](https://github.com/Comfy-Org/ComfyUI/blob/73c9bad4d21e7addbe1d13bc92eee0f1431b017d/nodes.py).
- [Dependencies for this version](https://github.com/Comfy-Org/ComfyUI/blob/73c9bad4d21e7addbe1d13bc92eee0f1431b017d/requirements.txt).
- [Model location](https://docs.comfy.org/basic-concepts/models).
- [SDXL in ComfyUI, author's examples](https://comfyanonymous.github.io/ComfyUI_examples/sdxl/).
- [PyTorch reproducibility limitations](https://docs.pytorch.org/docs/2.14/notes/randomness.html).

The folder's original resources are covered by `LICENSE.md`. The software and the model keep their own licenses. No account, payment, identity, cookie or secret file is needed for this project.

## v1 output compatibility

New images use the prefix `RenderParcel/ceramique-v1/`. No output folder already present is moved or deleted. The identifiers of the fifteen nodes, the links and the settings remain identical.

The validator also accepts the legacy prefix `Prismora/ceramique-v1/`, with the same variant names. It can therefore read an earlier v1 workflow with the current manifest; it does not accept a different variant name. Images already produced keep their original path.
