Streaming

GenerationCanvas

The post-stream output card for image generation. Pairs with ImageGenerationProgress (the in-flight state) to cover the full lifecycle. Built-in actions for regenerate, variations, fork, copy-prompt, and download — all consumer-wired callbacks.

Sourcesrc/components/ai/generation-canvas.tsx

Full action bar — ready state

The canonical layout: image canvas on top, prompt + meta + actions in the footer. Long prompts truncate to 2 lines with a 'Show full prompt' toggle.

A neon-lit ramen shop in Shibuya at night, heavy rain on the windows, steam rising from the bowls, cinematic lighting, shallow depth of field, 35mm film grain, the cook visible through the doorway

A neon-lit ramen shop in Shibuya at night, heavy rain on the windows, steam rising from the bowls, cinematic lighting, shallow depth of field, 35mm film grain, the cook visible through the doorway

modelflux-1.1-proseed42size1024×1024

Generating state

While a regeneration is in flight, the canvas keeps the previous image visible (dimmed + slight blur) and overlays a status pill. Action buttons disable so users can't double-fire.

A neon-lit ramen shop in Shibuya, raining
Generating…

A neon-lit ramen shop in Shibuya, raining

modelflux-1.1-proseed42

Error state

When the generation request fails, the canvas swaps to an error overlay with a brief message and a Try again CTA. Pass errorMessage to override the default copy.

The prompt was blocked by the safety filter. Try rewording.

A neon-lit ramen shop in Shibuya, raining

modelflux-1.1-proseed42