Nodes/kubakub nodes/kubakub relief export prow (old)
ComfyUI Node

kubakub relief export prow (old)

Relief export prow (OBJ)

By kubakubkub·Created about a month ago·Updated 2 days ago· 10
kubakub relief export prow (old)
  • field_a
  • field_b
  • path
◄interior_angle_deg28.0►
◄filename_prefixreliefforge/prow►
◄base_mm40►
◄decimate3►

A flat panel is the easy export. The shapes that actually show up on buildings are corners - a prow, where two facades meet at an acute angle and the artwork wraps around the edge. Modelling that by hand in Blender is fiddly and you'll do it again on the next revision. This node takes one or two relief fields and folds them around a shared vertical edge into a single OBJ, in millimetres.

How the fold works

Both wings are built as separate height-field meshes, then folded. The transform is simple and the docs spell it out: the fold edge is the world Z axis, the tip points towards −Y, and the two wings open towards +Y. So the model lands in your viewer already oriented, with the seam precisely on Z rather than wherever a rotation happened to put it. Each wing ends up as its own OBJ group (wing_0, wing_1), which is convenient when you want to select or shade them separately in Blender.

If you don't supply a second field, wing 2 is a mirrored copy of the first, which is what you want for a symmetric prow. That's a genuinely useful default: one depth map, one field, one mirrored fold, done.

Inputs

field_a is the first wing, and it sets the geometry's reference: the fold runs down its near edge.

interior_angle_deg (default 28, range 5–170, steps of 0.5) is the full angle between the two wings. Small is a sharp prow; 180 would be a flat wall and 90 is a right-angled building corner. Read the real number off the site plan rather than eyeballing it - get it wrong and the piece won't sit against the building, which you find out at installation. The 0.5° step is there because a few degrees either way is visible on a 2.4 m panel.

filename_prefix (default reliefforge/prow) - name inside the ComfyUI output folder, with a / making a subfolder, and a counter appended so nothing is overwritten.

base_mm (default 40) is the solid back plate under each wing's relief. Same meaning as on the panel export, and the same advice: 0 exists, and you probably don't want it.

decimate (default 3, range 1–16) uses every n-th pixel. Default is coarser than the flat-panel export's 2, on the reasoning that a folded mesh at 3 still reads fine and the file stays manageable.

field_b is optional - the second wing's relief. It keeps its own size in millimetres even when its pixel dimensions differ from field_a, which is the subtle bit: if the two wings came from different-resolution depth maps or different panel_width_mm values, the second one is resampled to the first's pixel size so its real-world size survives. The console logs that resample when it happens.

Output

path - the full path of the .obj, as a STRING. OBJ rather than STL because the wings are separate groups and the file stays text and inspectable, which for a two-part folded shape is the friendlier thing to hand a fabricator.

Gotchas, from the source

If the two wings come out different heights, the fold still happens but they meet unevenly - the taller one stands above the other at the edge. That's not an error, so nothing fails; the console prints a line telling you field_a is x mm and field_b is y mm, and the fix is upstream in the relief field node where panel_width_mm and the image aspect decided the panel height. Worth checking a two-wing prow from different images, because this is exactly the mistake you'd only notice on the mill.

Second: the prow is written at field_a's pixel size, so field_a is not interchangeable with field_b in terms of what governs the output. Keep the sharper field first.

Installing

ComfyUI Manager → search kubakub nodes → install → restart, or:

cd ComfyUI/custom_nodes
git clone https://github.com/kubakubkub/ComfyUI_KubaNodes
python -m pip install -r ComfyUI_KubaNodes/requirements.txt

opencv-python-headless if OpenCV isn't already there, ComfyUI 0.37.0 or newer, no Blender, no model downloads for the relief group. If either relief node has disappeared from your menu after an update, check kubakub.ini - 3d/fabricate = off hides this whole folder of tools, and workflows using them then report missing nodes.

Categorykubakub/3d/fabricate/relief

Inputs (6)

NameTypeDefaultDescription
field_aRELIEFFORGE_FIELDThe relief for the first wing of the prow.
interior_angle_degFLOAT28.05–170Full angle between the two wings, in degrees (small = sharp prow).
filename_prefixSTRINGreliefforge/prowFile name in the ComfyUI output folder; a part before / makes a subfolder. A counter is added.
base_mmFLOAT400–500Solid back plate under each wing's relief, in mm.
decimateINT31–16Use every n-th pixel for the mesh. 1 = full detail, higher = smaller, lighter file.
field_boptRELIEFFORGE_FIELDOptional relief for the second wing. Without it, field_a is mirrored onto both wings. It keeps its own size in mm, also when its pixel size differs from field_a.

Outputs (1)

NameTypeDescription
pathSTRINGFull path of the saved .obj file.