Nodes/comfyui_brick_tools/Save Brick Image
ComfyUI Node

Save Brick Image

Stop losing archviz renders to ComfyUI's output folder

By brick-momen-sirri·Created 4 months ago·Updated 3 months ago· 0
Save Brick Image
  • images
  • project_root
  • saved_primary_path
  • version
project_name0000_base
model_prefix
camera_modecamera_number
camera_number1
camera_name

ComfyUI's default SaveImage dumps everything into one flat output/ folder with filenames like ComfyUI_00047_.png. That's fine for hobby work and a slow-burn disaster for a studio - try finding the third revision of the lobby view for project 8140 in a folder of four thousand PNGs. Save Brick Image (class SaveArchVizImage) is the fix, and it's the star of comfyui_brick_tools, the free toolkit that architectural-visualization studio Brick Visual shipped from their in-house pipeline.

It saves your renders into a proper project tree with production filenames, auto-incrementing versions, and the workflow embedded in every PNG.

The naming it enforces

Every save lands at ComfyUI/output/projects/<project>/images/YYYYMMDD/ with a name like:

20260312_8140_cam-02_v004.png
20260312_flux-2-dev_8140_lobby-view_v004.png

That's date, optional model prefix, project code, camera, version. The project code is the first four digits of the project folder name, so 8140_The Edge_Riverside_Tower becomes 8140.

The version number is the part that will sell you on this node. It auto-increments per project and per camera - save twice from camera 2 and you get v001 then v002, automatically. No manual _final2_REAL file naming ever again. Batches larger than one image get _01, _02, … suffixes after the version token, so nothing collides.

The inputs that matter

  • project_name - a dropdown of existing projects, defaulting to the placeholder 0000_base. This one has a catch, see below.
  • camera_mode - switch between camera_number (an integer, formatted cam-02) and camera_name (free text, sanitized to a lowercase hyphenated token like lobby-view). The UI shows the relevant widget for whichever mode you pick.
  • model_prefix - optional; leave empty for the plain scheme, or fill in flux-2-dev to bake the model into the filename after the date.

There's also a Create Project button on the node. Clicking it opens a dialog where you type a folder name in the required studio format - ####_Office_Name_Project_Name, e.g. 1234_Client Name_Project_Name - and the node creates the folder, refreshes the dropdown, and switches to it. Names that don't match the format are rejected.

Outputs

Three of them, all boring and all useful: project_root (the project folder path), saved_primary_path (the first file written), and version (the integer version, handy for display or feeding other nodes).

Install

Same for the whole pack - no models, no keys, no requirements.txt:

cd ComfyUI/custom_nodes
git clone https://github.com/brick-momen-sirri/comfyui_brick_tools

Restart ComfyUI and hard-refresh the browser, because the pack ships frontend JavaScript (the Create Project button and the Brick Browser sidebar live there). Manager users: search comfyui_brick_tools.

The gotchas

  • 0000_base is a trap. It's a placeholder, and the node errors if you try to save to it. Create or pick a real project first.
  • The project name must exactly match a folder under ComfyUI/output/projects/ - either create it with the button or make the folder yourself, then the dropdown sees it.
  • Since the pack embeds workflow metadata in every PNG (the same "image is the project file" trick ComfyUI core uses), keep the PNGs as masters - don't re-encode if you ever want to drag a render back in and rebuild its graph.

For anyone who has ever presented a client a folder of final_final_2.png, this is the node that makes you look professional for free.

CategoryBrick/Save

Inputs (6)

NameTypeDefaultDescription
imagesIMAGE
project_nameCOMBO0000_base1 options: 0000_base
model_prefixSTRING
camera_modeCOMBOcamera_number2 options: camera_number, camera_name
camera_numberINT10–9999
camera_nameSTRING

Outputs (3)

NameTypeDescription
project_rootSTRING
saved_primary_pathSTRING
versionINT