lesson 3 of 3 · the image pipeline — turning one idea into a hundred shipped assetsthe image pipeline — turning one idea into a hundred shipped assetsthe image pipeline — turning one idea into a hundred shipped assetsthe image pipeline — turning one idea into a hundred shipped assetslesson 3 of 3 · the image pipeline — turning one idea into a hundred shipped assetsthe image pipeline — turning one idea into a hundred shipped assetsthe image pipeline — turning one idea into a hundred shipped assetsthe image pipeline — turning one idea into a hundred shipped assetslesson 3 of 3 · the image pipeline — turning one idea into a hundred shipped assetsthe image pipeline — turning one idea into a hundred shipped assetsthe image pipeline — turning one idea into a hundred shipped assetsthe image pipeline — turning one idea into a hundred shipped assetslesson 3 of 3 · the image pipeline — turning one idea into a hundred shipped assetsthe image pipeline — turning one idea into a hundred shipped assetsthe image pipeline — turning one idea into a hundred shipped assetsthe image pipeline — turning one idea into a hundred shipped assetslesson 3 of 3 · the image pipeline — turning one idea into a hundred shipped assetsthe image pipeline — turning one idea into a hundred shipped assetsthe image pipeline — turning one idea into a hundred shipped assetsthe image pipeline — turning one idea into a hundred shipped assetslesson 3 of 3 · the image pipeline — turning one idea into a hundred shipped assetsthe image pipeline — turning one idea into a hundred shipped assetsthe image pipeline — turning one idea into a hundred shipped assetsthe image pipeline — turning one idea into a hundred shipped assetslesson 3 of 3 · the image pipeline — turning one idea into a hundred shipped assetsthe image pipeline — turning one idea into a hundred shipped assetsthe image pipeline — turning one idea into a hundred shipped assetsthe image pipeline — turning one idea into a hundred shipped assetslesson 3 of 3 · the image pipeline — turning one idea into a hundred shipped assetsthe image pipeline — turning one idea into a hundred shipped assetsthe image pipeline — turning one idea into a hundred shipped assetsthe image pipeline — turning one idea into a hundred shipped assetslesson 3 of 3 · the image pipeline — turning one idea into a hundred shipped assetsthe image pipeline — turning one idea into a hundred shipped assetsthe image pipeline — turning one idea into a hundred shipped assetsthe image pipeline — turning one idea into a hundred shipped assetslesson 3 of 3 · the image pipeline — turning one idea into a hundred shipped assetsthe image pipeline — turning one idea into a hundred shipped assetsthe image pipeline — turning one idea into a hundred shipped assetsthe image pipeline — turning one idea into a hundred shipped assetslesson 3 of 3 · the image pipeline — turning one idea into a hundred shipped assetsthe image pipeline — turning one idea into a hundred shipped assetsthe image pipeline — turning one idea into a hundred shipped assetsthe image pipeline — turning one idea into a hundred shipped assets
Checkpoint
One last thing before we move on. pass this to mark the lesson done, or skip and keep moving.
Final image drill. Wire all three lessons together. Write
plan_shoot(brief) that takes a brief dict and returns a plan
dict:
{"model": str, "count": int, "total_cost": float, "formats": list[str]}
The brief may contain:
channel: one of"instagram","web","email","tiktok"batch_count: int (default 1)budget_per_image: float (default 1.0)needs_text_in_image: boolneeds_vector: boolphotoreal_art_directed: boolinstruction_heavy: boolgoogle_premium: boolneeds_4k: bool (uses the 4K row for nano banana 2 / Pro)
Use the routing from lesson 01 (pick_image_model), the pricing
table from lesson 03 step 06, and the PLATFORM_FORMATS
table (provided) to pick output formats by channel.
Four briefs run. Expected output:
B1: model=ideogram-v4 count= 5 total=$ 0.30 formats=['WEBP_1920', 'WEBP_400_thumb']
B2: model=gpt-image-2 count= 4 total=$ 0.21 formats=['JPEG_1080']
B3: model=gemini-3.1-flash-image count= 50 total=$ 3.35 formats=['JPEG_1080_vertical']
B4: model=gemini-3-pro-image count= 10 total=$ 2.40 formats=['WEBP_1920', 'WEBP_400_thumb']