I was just reading about PyFace, TraitsUI and TraitsGUI but I have problems to understand the difference between those projects.
The pyface project contains a toolkit-independent GUI abstraction layer, which is used to support the "visualization" features of the Traits package.
The traitsui project contains a toolkit-independent GUI abstraction layer, which is used to support the "visualization" features of the Traits package.
The TraitsGUI project contains a toolkit-independent GUI abstraction layer (known as Pyface), which is used to support the "visualization" features of the Traits package.
TraitsGUI is an older name for TraitsUI. The name TraitsGUI is deprecated now: the github repo is there for legacy compatibility. TraitsUI is the main interface for building UI's using Traits.
Pyface should be largely out of sight for most TraitsUI users, providing an abstraction layer between the OS UI and Python.
If you're interested in developing UI's, you should definitely take a look at Enaml, a constraints-based markup language for GUI building in Python. If you've pushed very far into TraitsUI, you may have bumped into some frustrations with getting things laid out the way you want. Enaml allows a lot of really cool layout with a very gentle learning curve.