Japt, 20 bytes
"OUyj|"®c ¤Åd0S1U +R
Not too bad for a language with no built-in compression (well, except compressing strings of lowercase letters)...
Explanation
In binary, the five characters in the string are:
O 1001111
U 1010101
y 1111001
j 1101010
| 1111100
Slice off the initial 1
from each, and you get the pattern for the cube.
"OUyj|"® c ¤ Å d0S1U +R
"OUyj|"mZ{Zc s2 s1 d0S1U +R} // Expanded
// Implicit: U = input string
"OUyj|"mZ{ } // Replace each character Z in this string with this function:
Zc // Take the char-code of Z.
s2 // Convert to a binary string.
s1 // Slice off the first character (always a "1").
d0S1U // Replace "0"s with spaces and "1"s with the input.
+R // Append a newline.
// Implicit: output result of last expression