If you prefer daytime trains and hotels to sleepers, and fancy a morning (or more) in Krakow on the way, this is ideal.
This is the place to stay in Lviv, 35-70 per night.
All bedding is supplied, and washrooms and toilets are at the end of the corridor. A smartly-uniformed Ukrainian railways sleeper attendant travels with each car. Booked in the UK through German Railways: 93 each way in a 3-berth sleeper.
There's no dining-car, so take a picnic and your own supplies of wine or beer. See Tim Richards excellent blog entry about of the Kiev Express. 123 each way in a 2-bed sleeper 185 each way in a single-bed sleeper.
If Krakow has become the new Prague, then Lviv is the new Krakow...
Lviv (spelt Lviv in Ukrainian, Lvov in Russian) is a beautiful city that escaped most of the ravages of world war 2.