From ad6954884b54ba1f61e6e909fb4cad18c0cdd639 Mon Sep 17 00:00:00 2001 From: henrisel Date: Mon, 19 Jan 2026 18:55:25 +0200 Subject: [PATCH] trellis and invokeAI urls configurable in config --- 3d-generation-pipeline/README.md | 1 - .../_PROJECT/Scenes/DeltaBuilding_base.unity | 4 +- .../Scripts/ModeGeneration/ConfigManager.cs | 39 +++++++++++++++++++ .../ModeGeneration/ConfigManager.cs.meta | 11 ++++++ .../Scripts/ModeGeneration/GameConfig.cs | 8 ++++ .../Scripts/ModeGeneration/GameConfig.cs.meta | 11 ++++++ .../Scripts/ModeGeneration/InvokeAiClient.cs | 7 ++-- .../Scripts/ModeGeneration/TrellisClient.cs | 12 ++++-- 8 files changed, 83 insertions(+), 10 deletions(-) create mode 100644 Assets/_PROJECT/Scripts/ModeGeneration/ConfigManager.cs create mode 100644 Assets/_PROJECT/Scripts/ModeGeneration/ConfigManager.cs.meta create mode 100644 Assets/_PROJECT/Scripts/ModeGeneration/GameConfig.cs create mode 100644 Assets/_PROJECT/Scripts/ModeGeneration/GameConfig.cs.meta diff --git a/3d-generation-pipeline/README.md b/3d-generation-pipeline/README.md index 69bc6965..c4c87f0a 100644 --- a/3d-generation-pipeline/README.md +++ b/3d-generation-pipeline/README.md @@ -1,5 +1,4 @@ ### TODO -* InvokAI ja Trellis URLid teha konfitavaks ka buildis * glTF loading: vahetada ära shader Universal render pipelin Lit, mitte panna buildi kaasa glTf oma * shape scanner initialisation correct number of confs * user flow: grab item? mida krabada diff --git a/Assets/_PROJECT/Scenes/DeltaBuilding_base.unity b/Assets/_PROJECT/Scenes/DeltaBuilding_base.unity index 785b6794..7b24ba2a 100644 --- a/Assets/_PROJECT/Scenes/DeltaBuilding_base.unity +++ b/Assets/_PROJECT/Scenes/DeltaBuilding_base.unity @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:bbe052996af9fc5aedc6cdb3d837bde651dfa4e285e4b473a2adc3bc642c3ef9 -size 68553734 +oid sha256:2b1e730ef6fa9bc9eb2a882f08931e805e6fd85b11f9c7a653f3559e081723fc +size 68554515 diff --git a/Assets/_PROJECT/Scripts/ModeGeneration/ConfigManager.cs b/Assets/_PROJECT/Scripts/ModeGeneration/ConfigManager.cs new file mode 100644 index 00000000..e4c5a412 --- /dev/null +++ b/Assets/_PROJECT/Scripts/ModeGeneration/ConfigManager.cs @@ -0,0 +1,39 @@ + +using System.IO; +using UnityEngine; + +public class ConfigManager : MonoBehaviour +{ + public GameConfig Config { get; private set; } + public static ConfigManager Instance { get; private set; } + private static string configPath => Path.Combine(Application.persistentDataPath, "config.json"); + + private void Awake() + { + Instance = this; + LoadConfig(); + } + + public void LoadConfig() + { + if (File.Exists(configPath)) + { + string json = File.ReadAllText(configPath); + Config = JsonUtility.FromJson(json); + } + else + { + // Create config with default values + Config = new GameConfig(); + SaveConfig(); + } + + Debug.Log("Loaded config from: " + configPath); + } + + public void SaveConfig() + { + string json = JsonUtility.ToJson(Config, true); + File.WriteAllText(configPath, json); + } +} diff --git a/Assets/_PROJECT/Scripts/ModeGeneration/ConfigManager.cs.meta b/Assets/_PROJECT/Scripts/ModeGeneration/ConfigManager.cs.meta new file mode 100644 index 00000000..36af2031 --- /dev/null +++ b/Assets/_PROJECT/Scripts/ModeGeneration/ConfigManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6a9ed26713a3c4c4f8f6be3bbd4af5c7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_PROJECT/Scripts/ModeGeneration/GameConfig.cs b/Assets/_PROJECT/Scripts/ModeGeneration/GameConfig.cs new file mode 100644 index 00000000..7296c3c6 --- /dev/null +++ b/Assets/_PROJECT/Scripts/ModeGeneration/GameConfig.cs @@ -0,0 +1,8 @@ + +[System.Serializable] +public class GameConfig +{ + public string invokeAIUrl = "http://192.168.0.53:9090"; + public string invokeAIModelKey = "81d45960-08a0-4b8c-a48b-e7d73b21bfe2"; + public string TrellisUrl = "http://192.168.0.53:7960"; +} diff --git a/Assets/_PROJECT/Scripts/ModeGeneration/GameConfig.cs.meta b/Assets/_PROJECT/Scripts/ModeGeneration/GameConfig.cs.meta new file mode 100644 index 00000000..be2b504e --- /dev/null +++ b/Assets/_PROJECT/Scripts/ModeGeneration/GameConfig.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5412d5465648e6c40bfe932c9098194b +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/_PROJECT/Scripts/ModeGeneration/InvokeAiClient.cs b/Assets/_PROJECT/Scripts/ModeGeneration/InvokeAiClient.cs index 6bd4c80d..2273fd87 100644 --- a/Assets/_PROJECT/Scripts/ModeGeneration/InvokeAiClient.cs +++ b/Assets/_PROJECT/Scripts/ModeGeneration/InvokeAiClient.cs @@ -14,9 +14,7 @@ public class InvokeAiClient : MonoBehaviour { public static InvokeAiClient Instance { get; private set; } - public string INVOKEAI_BASE_URL; public string DEFAULT_QUEUE_ID = "default"; - public string MODEL_KEY; public string promptSuffix = ", single object, front and side fully visible, realistic style, plain neutral background, clear details, soft studio lighting, true-to-scale"; private HttpClient httpClient; @@ -27,7 +25,7 @@ public class InvokeAiClient : MonoBehaviour { Timeout = TimeSpan.FromSeconds(120) }; - httpClient.BaseAddress = new Uri(INVOKEAI_BASE_URL); + httpClient.BaseAddress = new Uri(ConfigManager.Instance.Config.invokeAIUrl); Instance = this; } @@ -520,13 +518,14 @@ public class InvokeAiClient : MonoBehaviour public async Task GenerateImage(string prompt) { + string modelKey = ConfigManager.Instance.Config.invokeAIModelKey; string refinedPrompt = prompt + promptSuffix; JObject args = new JObject() { ["prompt"] = refinedPrompt, ["width"] = 512, ["height"] = 512, - ["model_key"] = MODEL_KEY, + ["model_key"] = modelKey, }; UnityEngine.Debug.Log("Starting image generation..."); diff --git a/Assets/_PROJECT/Scripts/ModeGeneration/TrellisClient.cs b/Assets/_PROJECT/Scripts/ModeGeneration/TrellisClient.cs index 5cae96dd..d8697852 100644 --- a/Assets/_PROJECT/Scripts/ModeGeneration/TrellisClient.cs +++ b/Assets/_PROJECT/Scripts/ModeGeneration/TrellisClient.cs @@ -9,16 +9,16 @@ public class TrellisClient : MonoBehaviour { public static TrellisClient Instance { get; private set; } - public string TRELLIS_BASE_URL; - private HttpClient httpClient; private void Awake() { httpClient = new HttpClient(); - httpClient.BaseAddress = new Uri(TRELLIS_BASE_URL); + httpClient.BaseAddress = new Uri(ConfigManager.Instance.Config.TrellisUrl); Instance = this; + + TestConnection(); } // Start is called before the first frame update @@ -33,6 +33,12 @@ public class TrellisClient : MonoBehaviour } + private async void TestConnection() + { + var statusResp = await httpClient.GetAsync("status"); + Debug.Log("Trellis status: " + statusResp.StatusCode); + } + public async Task GenerateModel( string imageBase64,