diff --git a/syft/source/stereoscope_image_source.go b/syft/source/stereoscope_image_source.go
index 225db3528aa..2f45de7de15 100644
--- a/syft/source/stereoscope_image_source.go
+++ b/syft/source/stereoscope_image_source.go
@@ -109,8 +109,6 @@ func (s StereoscopeImageSource) Describe() Description {
 	} else {
 		if ref, ok := ref.(reference.Named); ok {
 			nameIfUnset(ref.Name())
-		} else {
-			nameIfUnset(s.metadata.UserInput)
 		}
 
 		if ref, ok := ref.(reference.NamedTagged); ok {
@@ -122,6 +120,7 @@ func (s StereoscopeImageSource) Describe() Description {
 		}
 	}
 
+	nameIfUnset(s.metadata.UserInput)
 	versionIfUnset(s.metadata.ManifestDigest)
 
 	return Description{
diff --git a/syft/source/stereoscope_image_source_test.go b/syft/source/stereoscope_image_source_test.go
index 8f1b8d4b202..32f89ae4d43 100644
--- a/syft/source/stereoscope_image_source_test.go
+++ b/syft/source/stereoscope_image_source_test.go
@@ -241,3 +241,31 @@ func Test_StereoscopeImageSource_ID(t *testing.T) {
 		})
 	}
 }
+
+func Test_Describe(t *testing.T) {
+	tests := []struct {
+		name     string
+		source   StereoscopeImageSource
+		expected Description
+	}{
+		{
+			name: "name from user input",
+			source: StereoscopeImageSource{
+				id: "some-id",
+				metadata: StereoscopeImageSourceMetadata{
+					UserInput: "user input",
+				},
+			},
+			expected: Description{
+				ID:   "some-id",
+				Name: "user input",
+			},
+		},
+	}
+
+	for _, test := range tests {
+		got := test.source.Describe()
+		got.Metadata = nil // might want to test this, but do not to determine if the user input is userd
+		require.Equal(t, test.expected, got)
+	}
+}