Have you set the # of partial images? Streaming for images works a bit differently than text. You’ll need to define how many parts of the image (from top to bottom) should stream back, up to 3 parts.
stream: true,
tools: [{ type: "image_generation", partial_images: 3 }],