diff --git a/Comparison/src/main/java/cz/fidentis/analyst/Project.java b/Comparison/src/main/java/cz/fidentis/analyst/Project.java
index ffcf7cfa5eb69eb99007f00411e244486bc58b3b..2949bca5bb2c6896ebbc8f333be5a70f463690ac 100644
--- a/Comparison/src/main/java/cz/fidentis/analyst/Project.java
+++ b/Comparison/src/main/java/cz/fidentis/analyst/Project.java
@@ -218,7 +218,7 @@ public class Project {
                 Path path = this.getCfg().getPathToFaceByName(name);
                 File file = path.toFile();
                 face = new HumanFace(file, true); // loads also landmarks, if exist
-                Path preview = path.resolveSibling(name.concat("_preview.jpg"));
+                Path preview = path.resolveSibling(name.concat(".jpg"));
                 face.setPreview(preview);
                 this.addFace(face);
                 out.printDuration("Loaded model " + face.getShortName() +" with " + face.getMeshModel().getNumVertices() + " vertices");
diff --git a/GUI/pom.xml b/GUI/pom.xml
index 7af2194f284388d483ad7965ea6a3a375fa75e60..68f43d641799751d76bac53620b4b559bc8eaad4 100644
--- a/GUI/pom.xml
+++ b/GUI/pom.xml
@@ -159,6 +159,11 @@
             <artifactId>guava</artifactId>
             <version>30.1-jre</version>
         </dependency>
+        <dependency>
+            <groupId>org.imgscalr</groupId>
+            <artifactId>imgscalr-lib</artifactId>
+            <version>4.2</version>
+        </dependency>
     </dependencies>
     <properties>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
diff --git a/GUI/src/main/java/cz/fidentis/analyst/project/FaceStatePanel.java b/GUI/src/main/java/cz/fidentis/analyst/project/FaceStatePanel.java
index 1d0eb6d9525c1e22c2fc1767dde128f98b7369b1..62e08e7ac062298f3dc9850e71f6fbd64bb03ef5 100644
--- a/GUI/src/main/java/cz/fidentis/analyst/project/FaceStatePanel.java
+++ b/GUI/src/main/java/cz/fidentis/analyst/project/FaceStatePanel.java
@@ -3,16 +3,16 @@ package cz.fidentis.analyst.project;
 import cz.fidentis.analyst.core.ControlPanel;
 import cz.fidentis.analyst.face.HumanFace;
 import java.awt.Dimension;
-import java.awt.Image;
 import java.awt.Toolkit;
 import java.awt.event.ActionListener;
+import java.awt.image.BufferedImage;
 import java.io.IOException;
 import java.nio.file.Files;
 import java.nio.file.Path;
-import java.nio.file.Paths;
 import javax.imageio.ImageIO;
 import javax.swing.ImageIcon;
 import javax.swing.JOptionPane;
+import org.imgscalr.Scalr;
 
 /**
  *
@@ -22,8 +22,7 @@ public class FaceStatePanel extends ControlPanel {
 
     private final ImageIcon notCheck = new ImageIcon(FaceStatePanel.class.getClassLoader().getResource("/" + "notCheck16x16.png"));
     private final ImageIcon check = new ImageIcon(FaceStatePanel.class.getClassLoader().getResource("/" + "check16x16.png"));
-    //private final ImageIcon warning = new ImageIcon(FaceStatePanel.class.getClassLoader().getResource("/" + "warning16x16.png"));
-    private final ImageIcon anonymousFace = new ImageIcon(FaceStatePanel.class.getClassLoader().getResource("/" + "face160x160.png"));
+    private final ImageIcon previewBasic = new ImageIcon(FaceStatePanel.class.getClassLoader().getResource("/" + "face160x160.png"));
     private ImageIcon previewFace = null;
     
     public static final String ICON = "head28x28.png";
@@ -265,38 +264,65 @@ public class FaceStatePanel extends ControlPanel {
      * @return ImageIcon either loaded face preview or anonymous face when preview is not found
      */
     private ImageIcon getPhoto(HumanFace face, Path path) {
-        
-        ImageIcon image;
+
         previewFace = null;
-        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
+        BufferedImage image = null;
         
+        // If face is loaded to project, preview is loaded from face
         if (face != null) {
             if (face.getPreview() != null) {
-                previewFace = new ImageIcon(face.getPreview().getScaledInstance((int)screenSize.getWidth() - 100, (int)screenSize.getHeight() - 100, Image.SCALE_FAST));
-                photo.setToolTipText("Click to enlarge the image");
-                return new ImageIcon(face.getPreview().getScaledInstance(240, 160, Image.SCALE_FAST));
+                image = face.getPreview();
+
+            } else {
+                photo.setToolTipText("");
+                return previewBasic;
             }
-            photo.setToolTipText("");
-            return anonymousFace;
-        }
-        
-        if (path != null && path.toFile().exists()) {
             
+        } else if (path != null && path.toFile().exists()) {
             String pathString = path.toString();
-            Path preview = Paths.get(pathString.substring(0, pathString.lastIndexOf(".")).concat("_preview.jpg"));
+            String name = pathString.substring(0, pathString.lastIndexOf('.')); // remove extention
+            Path preview = path.resolveSibling(name.concat(".jpg"));
                 
             try {
-                
-                previewFace = new ImageIcon(ImageIO.read(preview.toFile()).getScaledInstance((int)screenSize.getWidth() - 200, (int)screenSize.getHeight() - 200, Image.SCALE_FAST));
-                image = new ImageIcon(previewFace.getImage().getScaledInstance(240, 160, Image.SCALE_FAST));
-                photo.setToolTipText("Click to enlarge the image");
-                return image;
+                image = ImageIO.read(preview.toFile());
             } catch (IOException ex) {
                 //Exceptions.printStackTrace(ex);)
             }
+            
+        }
+        
+        if (image == null) {      
+            
+            // Basic black siluete
+            photo.setToolTipText("");
+            return previewBasic;
         }
-        photo.setToolTipText("");
-        return anonymousFace;
+        
+        image = scaleAndRotateIfNeeded(image);
+                
+        previewFace = new ImageIcon(image);
+        photo.setToolTipText("Click to enlarge the image");
+
+        return new ImageIcon(Scalr.resize(image, 240, 160));
+        
+    }
+    
+    /**
+     * Scales photo and rotates if width is bigger than height
+     * @param image BufferedImage to be scaled or rotated
+     * @return scaled and rotated image
+     */
+    private BufferedImage scaleAndRotateIfNeeded(BufferedImage image) {
+        
+        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
+        
+        if (image.getWidth() > image.getHeight()) {
+            image = Scalr.rotate(image, Scalr.Rotation.CW_270, Scalr.OP_ANTIALIAS);
+        }
+        
+        image = Scalr.resize(image, (int)screenSize.getHeight() - 200);
+        
+        return image;
     }
     
     /**
diff --git a/GUI/src/main/java/cz/fidentis/analyst/project/ModelsTableModel.java b/GUI/src/main/java/cz/fidentis/analyst/project/ModelsTableModel.java
index ae5643e0ab21cfd0f979236c61e793799d0d6fe5..c04fcc01e2301f4d32db8a398a98925f91ce96c0 100644
--- a/GUI/src/main/java/cz/fidentis/analyst/project/ModelsTableModel.java
+++ b/GUI/src/main/java/cz/fidentis/analyst/project/ModelsTableModel.java
@@ -1,6 +1,5 @@
 package cz.fidentis.analyst.project;
 
-import java.awt.Image;
 import java.awt.image.BufferedImage;
 import java.io.IOException;
 import java.nio.file.Path;
@@ -8,6 +7,7 @@ import javax.imageio.ImageIO;
 import javax.swing.ImageIcon;
 import javax.swing.table.DefaultTableModel;
 import org.openide.util.Exceptions;
+import org.imgscalr.Scalr;
 
 /**
  * List of faces TableModel
@@ -69,7 +69,12 @@ public class ModelsTableModel extends DefaultTableModel {
         } else {
             try {
                 BufferedImage image = ImageIO.read(path.toFile());
-                addRow(new Object[]{false, name, new ImageIcon(image.getScaledInstance(75, 50, Image.SCALE_FAST))});
+                if (image.getWidth() > image.getHeight()) {
+                    image = Scalr.rotate(image, Scalr.Rotation.CW_270, Scalr.OP_ANTIALIAS);
+                }
+                //BufferedImage rotatedImage = Scalr.rotate(image, Scalr.Rotation.CW_90, Scalr.OP_ANTIALIAS);
+                BufferedImage scaledImage = Scalr.resize(image, 70, 55);
+                addRow(new Object[]{false, name, new ImageIcon(scaledImage)});
             } catch (IOException ex) {
                 Exceptions.printStackTrace(ex);
             }
diff --git a/GUI/src/main/java/cz/fidentis/analyst/project/ProjectPanel.form b/GUI/src/main/java/cz/fidentis/analyst/project/ProjectPanel.form
index f11e510ff7541445b442531ec4d579346c6b6821..79cc69cdb0bdb10363ffd6ea12b39bd801a498ac 100644
--- a/GUI/src/main/java/cz/fidentis/analyst/project/ProjectPanel.form
+++ b/GUI/src/main/java/cz/fidentis/analyst/project/ProjectPanel.form
@@ -211,7 +211,7 @@
             <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor" postCode="table.getTableHeader().setOpaque(false);&#xa;table.getTableHeader().setBackground(new java.awt.Color(204,204,204));&#xa;table.getTableHeader().setFont(new java.awt.Font(&quot;Tahoma&quot;, 0, 18));&#xa;model.addTableModelListener(new TableModelListener() {&#xa;    public void tableChanged(TableModelEvent e) {&#xa;        jTable1TableChanged(e);&#xa;    }&#xa;});">
               <Font name="Tahoma" size="18" style="0"/>
             </Property>
-            <Property name="model" type="javax.swing.table.TableModel" editor="org.netbeans.modules.form.RADConnectionPropertyEditor" postCode="table.getColumnModel().getColumn(0).setMaxWidth(50);&#xa;table.getColumnModel().getColumn(2).setMaxWidth(75);&#xa;table.getTableHeader().getColumnModel().getColumn(0).setMaxWidth(50);&#xa;table.getTableHeader().getColumnModel().getColumn(2).setMaxWidth(75);">
+            <Property name="model" type="javax.swing.table.TableModel" editor="org.netbeans.modules.form.RADConnectionPropertyEditor" postCode="table.getColumnModel().getColumn(0).setMaxWidth(50);&#xa;table.getColumnModel().getColumn(2).setMaxWidth(85);&#xa;table.getTableHeader().getColumnModel().getColumn(0).setMaxWidth(50);&#xa;table.getTableHeader().getColumnModel().getColumn(2).setMaxWidth(75);">
               <Connection code="model" type="code"/>
             </Property>
             <Property name="columnModel" type="javax.swing.table.TableColumnModel" editor="org.netbeans.modules.form.editors2.TableColumnModelEditor">
diff --git a/GUI/src/main/java/cz/fidentis/analyst/project/ProjectPanel.java b/GUI/src/main/java/cz/fidentis/analyst/project/ProjectPanel.java
index abcf91b1fcdb88ea98ea2a0f7fc2c3bcd267c01b..ee05c96cff88e631e8a98fba20ab312e0f2b9b2e 100644
--- a/GUI/src/main/java/cz/fidentis/analyst/project/ProjectPanel.java
+++ b/GUI/src/main/java/cz/fidentis/analyst/project/ProjectPanel.java
@@ -186,7 +186,7 @@ public class ProjectPanel extends JPanel {
         });
         table.setModel(model);
         table.getColumnModel().getColumn(0).setMaxWidth(50);
-        table.getColumnModel().getColumn(2).setMaxWidth(75);
+        table.getColumnModel().getColumn(2).setMaxWidth(85);
         table.getTableHeader().getColumnModel().getColumn(0).setMaxWidth(50);
         table.getTableHeader().getColumnModel().getColumn(2).setMaxWidth(75);
         table.setDragEnabled(true);
@@ -520,7 +520,8 @@ public class ProjectPanel extends JPanel {
                 
                 if (project.addNewPath(path)) {  
                     
-                    Path preview = path.resolveSibling(name.concat("_preview_small.jpg"));
+                    //Path preview = path.resolveSibling(name.concat("_preview_small.jpg"));
+                    Path preview = path.resolveSibling(name.concat(".jpg"));
                     model.addRowWithName(name, preview);
                     filterPanel.checkAllFacesLoaded(false);