GAIA-UNIL / G2S

A flexible MPS framework
https://gaia-unil.github.io/G2S/
GNU General Public License v3.0
43 stars 10 forks source link

Portable GUI-type version for windows, for just texture synthesis #59

Closed jeremydeanw closed 1 year ago

jeremydeanw commented 1 year ago

As a beginner coder, im finding it difficult to set up the server portion of the program on WSL and navigate all the parts in different folders.
I have installed with "build/c++-build/install_needs_W_VM.sh" , after migrating from WSL1 to WSL2 (WSL gave me many errors) but running the ./server part does nothing on my end currently, as in nothing happens or opens running this command and no errors.
I'm not sure where to put the examples at the bottom of https://gaia-unil.github.io/G2S/ and how to execute them.
Basically, for me, running https://www.mgravey.com/mps.online/ is great. Being able to load in my own image, and having intuitive sliders for the controls of the output. It would be of great use if I could emulate the demo (javascript?) on my own machine. With the same input button, and spots to plug in parameters. To include all the parameters from all the other options I haven't explored from the examples as well. I'm only interested in the texture synthesis aspect. Having it bundled somehow where I could either execute it all in one go, or call it from the powershell would be an ideal workflow.

Also, it seems for the demo there is a limited input size, it seems to be 100x100. I'm curious to know if smaller inputs are possible as well?

Cheers!

mgravey commented 1 year ago

I will always advice to start with the short course and use the Colab to start. The issue with WSL 1 VS. 2 is weird and would be investigated. Example needs to be run in a Python or Matlab environment. It's impossible to handle all possible scenarios with this type of browser-based GUI, and it's here only as an example and not in the context of production. Anymore advance use cases need to be done by the user itself by installing and running the server and then using the interface to get expected results. (For example, 3D cases or nD would be really challenging with the web interface.) The source code of this web page is available here but I am almost sure it will not help you.

When designing code we need to decide between simplicity to run, distribute, efficiency, maintainability, possible evolution, and versatility. If I can imagine that this code is not as simple to execute as you would expect, the choice for server/interface design is a result of performance consideration. Python and matlab have to pure performance to consider a native implementation, and their C/C++ interfacing force to do some performance sacrifice we were not ready for. Look with them for this XD

The Colab example is overall an all-in-one go, the selection of an online VM, allow to guarantee that it always works whatever the computer is used on the user side.

The limitation on image size from the mps.online is related to design the web interface and not the method, to go over it run G2S yourself. Or deploy and modify the code from here

And at the end of the day it stays a research code, that we kindly share with the community, when most of the other research does not provide code, of not free or not working. Overall the feedback that we get is that this code run well with expected performance.