Можно рассмотреть градиент и несколько фонов:
.box {
display:inline-block;
width:200px;
height:200px;
padding:10px; /*control the space around the rotated square*/
border:1px solid;
box-sizing:border-box;
background:
linear-gradient(to top left, #fff1f2 49.8%,transparent 50%) top left/50% 50% content-box,
linear-gradient(to top right,#fff1f2 49.8%,transparent 50%) top right/50% 50% content-box,
linear-gradient(to bottom left, #fff1f2 49.8%,transparent 50%) bottom left/50% 50% content-box,
linear-gradient(to bottom right,#fff1f2 49.8%,transparent 50%) bottom right/50% 50% content-box,
var(--i,url(https://picsum.photos/200/300?image=0));
background-repeat:no-repeat;
}
<div class="box">
</div>
<div class="box" style="--i:url(https://picsum.photos/200/300?image=1069);width:150px;height:150px;">
</div>
<div class="box" style="--i:url(https://picsum.photos/200/300?image=1069);width:150px;height:150px;padding:20px;">
</div>
Вы также можете сделать то же самое с вашим кодом:
figure {
display:inline-block;
position:relative;
}
figure figcaption {
position:absolute;
top:10px;
left:10px;
right:10px;
bottom:10px;
box-sizing:border-box;
background:
linear-gradient(to top left, #fff1f2 49.8%,transparent 50%) top left,
linear-gradient(to top right,#fff1f2 49.8%,transparent 50%) top right,
linear-gradient(to bottom left, #fff1f2 49.8%,transparent 50%) bottom left,
linear-gradient(to bottom right,#fff1f2 49.8%,transparent 50%) bottom right;
background-size:50% 50%;
background-repeat:no-repeat;
}
<figure>
<img src="https://placekitten.com/150/150" />
<figcaption class="caption-1"></figcaption>
</figure>
<figure>
<img src="https://placekitten.com/200/200" />
<figcaption class="caption-1"></figcaption>
</figure>