В общем всё до чего додумался, это сделать так:
public function loadImages($images)
{
$uploadPath = Yii::getAlias('@frontend') .'/web/uploads';
$dir = $uploadPath.'/portfolio/';
foreach ($images as $index => $image) {
$model = PortfolioImages::find()->where(['id' => $image->id])->one();
if($picImg = UploadedFile::getInstance($image, "[$index]" . 'image')){
$file_name = uniqid().'_'.$picImg->baseName.'.'.$picImg->extension;
$image->image = $file_name;
$picImg->saveAs($dir.$image->image);
Image::thumbnail($dir.$file_name,'397', '402')->save(Yii::getAlias($dir.'thumb/' . $file_name), ['quality' => 75]);
}else{
$image->image = $model->image;
}
$image->save(false);
}
}
Вроде работает.