This is a good start, I think I like option 2 better than option 1 as I think I would rather a user is able to complete the order with very minimal steps.
If we created a “new product” would you then add “attributes” to it to define how they would like the product created. Lets use a “widgets” example and the shop is to provide the service of adding your own print onto a widget. But these widgets may come in different shapes sizes or colours.
So a user uploads their photo and they want it printed on 2 blue square widgets and one red circle widget. So they select the attributes from the available list for an uploaded type product, then they would select their qty.
After getting the desired amount for that image they could then repeat the process with another image upload.