A long time ago, in a galaxy far far away...
This commit is contained in:
@@ -0,0 +1,75 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Baxxter pipeline 2: composites using outputs from baxxter run 1."""
|
||||
|
||||
from pathlib import Path
|
||||
|
||||
from imagepipeline import Pipeline
|
||||
|
||||
INPUT = Path("/home/frank/pics/20260525_Shooting Baxxter Boys/darktable_exported")
|
||||
OUTPUT_BASE = Path.home() / "pipeline_output"
|
||||
|
||||
# Previous run (pipeline_baxxter.py).
|
||||
PREV = Path("/home/frank/pipeline_output/baxxter_260530102700")
|
||||
|
||||
# step_id -> folder from PREV. Third gmic step is gmic_03 here but reuses PREV/gmic_06.
|
||||
EXISTING_OUTPUTS: dict[str, Path] = {
|
||||
"rembg_01": PREV / "rembg_01",
|
||||
"gmic_01": PREV / "gmic_01",
|
||||
"gmic_02": PREV / "gmic_02",
|
||||
"gmic_03": PREV / "gmic_06",
|
||||
}
|
||||
|
||||
YELLOW = "#d7fd00"
|
||||
|
||||
# Commands only for step definition; reused steps are not executed.
|
||||
GMIC_STEREO = "-gcd_stereo_img 0,0,2.028,1,1.714,3.06,4,1,0"
|
||||
GMIC_DROP_SHADOW = "-fx_drop_shadow3d 0,0,0,10,1,1,2,0.5,252,10,222,200,0"
|
||||
GMIC_JPR_SMOOTH = "-jpr_gradient_smooth 0,1.5"
|
||||
|
||||
|
||||
def main() -> None:
|
||||
with Pipeline(
|
||||
name="baxxter_2",
|
||||
input_dir=INPUT,
|
||||
output_base=OUTPUT_BASE,
|
||||
existing_outputs=EXISTING_OUTPUTS,
|
||||
) as p:
|
||||
rembg = p.step("rembg", inputs="input")
|
||||
|
||||
gmic_stereo = p.step("gmic", inputs=rembg, command=GMIC_STEREO)
|
||||
gmic_shadow = p.step("gmic", inputs=rembg, command=GMIC_DROP_SHADOW)
|
||||
gmic_smooth = p.step("gmic", inputs=rembg, command=GMIC_JPR_SMOOTH)
|
||||
|
||||
gmic_stereo_alpha = p.step(
|
||||
"color_to_alpha", inputs=gmic_stereo, color="#000000"
|
||||
)
|
||||
yellow_bg = p.step("imagemagick_fill", inputs="input", color1=YELLOW)
|
||||
|
||||
gmic_smooth_alpha = p.step(
|
||||
"color_to_alpha", inputs=gmic_smooth, color="#7f7f7f"
|
||||
)
|
||||
gmic_smooth_sized = p.step(
|
||||
"imagemagick_scale_crop",
|
||||
inputs=gmic_smooth_alpha,
|
||||
scale=1.05,
|
||||
)
|
||||
|
||||
# combine: original, gmic_01 (black to alpha), rembg
|
||||
stereo_mid = p.step("composite", inputs=["input", gmic_stereo_alpha])
|
||||
p.step("composite", inputs=[stereo_mid, rembg])
|
||||
|
||||
# combine: yellow background, gmic_02, rembg
|
||||
shadow_mid = p.step("composite", inputs=[yellow_bg, gmic_shadow])
|
||||
p.step("composite", inputs=[shadow_mid, rembg])
|
||||
|
||||
# combine: original, gmic_06 (#7f7f7f to alpha, scaled), rembg
|
||||
smooth_mid = p.step("composite", inputs=["input", gmic_smooth_sized])
|
||||
p.step("composite", inputs=[smooth_mid, rembg])
|
||||
|
||||
output_root = p.run()
|
||||
|
||||
print(f"Pipeline finished. Output: {output_root}")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user