Review & Crop Photos

Photos are automatically cropped using face detection. Click the pen icon to manually adjust the crop area.

{#if isProcessing}
Processing photos...
{processedCount} / {totalCount}
{#if totalCount > 0}
{/if}
{/if} {#if !isProcessing && photos.length > 0}

Processing Summary

{photos.length}
Total Photos
{photos.filter((p) => p.status === 'success').length}
Loaded
{photos.filter((p) => p.faceDetectionStatus === 'completed').length}
Auto-cropped
{photos.filter((p) => p.cropData).length}
Ready
{photos.filter((p) => p.status === 'error').length}
Failed
{#if photos.filter((p) => p.status === 'error').length > 0}

Note: Cards will only be generated for photos that load successfully.

{/if} {#if !canProceed() && photos.filter((p) => p.status === 'success').length > 0}

Tip: All photos need to be cropped before proceeding. Face detection runs automatically.

{/if}
{/if}
{#if photos.length === 0 && !isProcessing}

No photos found

Go back to check your column mapping and selected rows.

{:else}
{#each photos as photo, index} handleCropUpdate(index, e)} onRetry={() => retryPhoto(index)} /> {/each}
{/if}
p.status === 'success' && p.cropData).length} Cards`} />