diff --git a/Cargo.lock b/Cargo.lock index fdce43a041..77463cada5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -14165,6 +14165,41 @@ dependencies = [ "zstd-sys", ] +[[package]] +name = "world_labs_client" +version = "0.0.1" +dependencies = [ + "anyhow", + "base64 0.22.1", + "bstr", + "byteorder", + "chrono", + "cloudflare_errors", + "cloudflare_mitigation", + "cookie_store 0.0.1", + "env", + "env_logger", + "errors", + "filesys", + "futures 0.3.31", + "log", + "log4rs", + "once_cell", + "regex", + "scraper 0.24.0", + "serde", + "serde_json", + "sha2 0.11.0-rc.2", + "test_data", + "testing", + "tokio", + "url", + "uuid 1.18.1", + "workspace-build-acceleration", + "wreq", + "wreq-util", +] + [[package]] name = "wreq" version = "6.0.0-rc.20" diff --git a/Cargo.toml b/Cargo.toml index 61c73df1b1..8e57b93195 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -18,6 +18,7 @@ members = [ "crates/api_clients/openart_client", "crates/api_clients/runwayml_client", "crates/api_clients/thumbnail_generator", + "crates/api_clients/world_labs_client", # CLI tools for operations, etc. "crates/cli/devenv/dev-database-seed", diff --git a/crates/api_clients/world_labs_client/Cargo.toml b/crates/api_clients/world_labs_client/Cargo.toml new file mode 100644 index 0000000000..b5477e05e7 --- /dev/null +++ b/crates/api_clients/world_labs_client/Cargo.toml @@ -0,0 +1,51 @@ +[package] +name = "world_labs_client" +edition = "2024" +version = "0.0.1" +publish = false + +[package.metadata.cargo-udeps.ignore] +normal = ["workspace-build-acceleration"] + +[lib] +name = "world_labs_client" +path = "src/lib.rs" + +[dependencies] +# Workspace hack (faster compile times) +workspace-build-acceleration.workspace = true + +# Internal +cloudflare_errors.workspace = true +cloudflare_mitigation.workspace = true +cookie_store.workspace = true +errors.workspace = true + +# External +anyhow.workspace = true +base64.workspace = true +bstr.workspace = true +byteorder = "1.5.0" +chrono.workspace = true +futures.workspace = true +log.workspace = true +once_cell.workspace = true +regex.workspace = true +scraper = "0.24.0" +serde.workspace = true +serde_json.workspace = true +sha2.workspace = true +tokio = { version = "1", features = ["full"] } +url.workspace = true +uuid.workspace = true +wreq-util.workspace = true +wreq.workspace = true + +[dev-dependencies] +filesys.workspace = true +test_data.workspace = true +testing.workspace = true +log4rs = "1.4.0" +env_logger.workspace = true +env.workspace = true +chrono.workspace = true diff --git a/crates/api_clients/world_labs_client/src/client/browser_user_agents.rs b/crates/api_clients/world_labs_client/src/client/browser_user_agents.rs new file mode 100644 index 0000000000..94f3923b48 --- /dev/null +++ b/crates/api_clients/world_labs_client/src/client/browser_user_agents.rs @@ -0,0 +1,10 @@ + +/// Firefox 139 (2025) on macOS, which matches wreq's Emulation::Firefox139 +pub const FIREFOX_139_MAC_USER_AGENT : &str = + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:139.0) Gecko/20100101 Firefox/139.0"; + +pub const FIREFOX_143_MAC_USER_AGENT : &str = + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:143.0) Gecko/20100101 Firefox/143.0"; + +pub const FIREFOX_144_MAC_USER_AGENT_UNSUPPORTED_TLS_FINGERPRINTING : &str = + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:144.0) Gecko/20100101 Firefox/144.0"; diff --git a/crates/api_clients/world_labs_client/src/client/mod.rs b/crates/api_clients/world_labs_client/src/client/mod.rs new file mode 100644 index 0000000000..82c176fa31 --- /dev/null +++ b/crates/api_clients/world_labs_client/src/client/mod.rs @@ -0,0 +1 @@ +pub mod browser_user_agents; \ No newline at end of file diff --git a/crates/api_clients/world_labs_client/src/credentials/mod.rs b/crates/api_clients/world_labs_client/src/credentials/mod.rs new file mode 100644 index 0000000000..a5f44b7792 --- /dev/null +++ b/crates/api_clients/world_labs_client/src/credentials/mod.rs @@ -0,0 +1 @@ +pub mod world_labs_cookies; diff --git a/crates/api_clients/world_labs_client/src/credentials/world_labs_cookies.rs b/crates/api_clients/world_labs_client/src/credentials/world_labs_cookies.rs new file mode 100644 index 0000000000..f953c47dde --- /dev/null +++ b/crates/api_clients/world_labs_client/src/credentials/world_labs_cookies.rs @@ -0,0 +1,24 @@ + +#[derive(Clone)] +pub struct WorldLabsCookies { + /// The entire cookies header (for now) + cookies: String, +} + +impl WorldLabsCookies { + pub fn new(cookies: String) -> Self { + Self { cookies } + } + + pub fn as_str(&self) -> &str { + &self.cookies + } + + pub fn as_bytes(&self) -> &[u8] { + self.cookies.as_bytes() + } + + pub fn to_string(&self) -> String { + self.cookies.clone() + } +} diff --git a/crates/api_clients/world_labs_client/src/lib.rs b/crates/api_clients/world_labs_client/src/lib.rs new file mode 100644 index 0000000000..ab8916a319 --- /dev/null +++ b/crates/api_clients/world_labs_client/src/lib.rs @@ -0,0 +1,6 @@ + +#[cfg(test)] +pub (crate) mod test_utils; +mod client; +mod credentials; +mod requests; diff --git a/crates/api_clients/world_labs_client/src/requests/_metadata/r1_object_request.txt b/crates/api_clients/world_labs_client/src/requests/_metadata/r1_object_request.txt new file mode 100644 index 0000000000..efd77011a0 --- /dev/null +++ b/crates/api_clients/world_labs_client/src/requests/_metadata/r1_object_request.txt @@ -0,0 +1,20 @@ +curl 'https://marble2-kgw-prod-iac1.wlt-ai.art/api/v1/objects' \ + -H 'accept: */*' \ + -H 'accept-language: en-US,en;q=0.9' \ + -H 'authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6Ijk1MTg5MTkxMTA3NjA1NDM0NGUxNWUyNTY0MjViYjQyNWVlYjNhNWMiLCJ0eXAiOiJKV1QifQ.eyJuYW1lIjoiVmljdG9yIFZvaWNlIiwicGljdHVyZSI6Imh0dHBzOi8vbGgzLmdvb2dsZXVzZXJjb250ZW50LmNvbS9hL0FDZzhvY0t3MGFhWEtZU3F5LVhra242OXlkSUpGR25KQTM3UzEzWHZqTlk0ZDl4Q3pVektVdz1zOTYtYyIsImlzcyI6Imh0dHBzOi8vc2VjdXJldG9rZW4uZ29vZ2xlLmNvbS93bHQtdHJhaW5pbmctZ3NjIiwiYXVkIjoid2x0LXRyYWluaW5nLWdzYyIsImF1dGhfdGltZSI6MTc2NTMyMDg0MiwidXNlcl9pZCI6InNWZ0FRRHlIM0JmWU9CZkY2ZXBXVGpMSHlnWDIiLCJzdWIiOiJzVmdBUUR5SDNCZllPQmZGNmVwV1RqTEh5Z1gyIiwiaWF0IjoxNzY1MzIwODQyLCJleHAiOjE3NjUzMjQ0NDIsImVtYWlsIjoidmljdG9ydm9pY2U4OUBnbWFpbC5jb20iLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwiZmlyZWJhc2UiOnsiaWRlbnRpdGllcyI6eyJnb29nbGUuY29tIjpbIjExNjQ1OTMwMDE5ODYxOTg4ODgzNiJdLCJlbWFpbCI6WyJ2aWN0b3J2b2ljZTg5QGdtYWlsLmNvbSJdfSwic2lnbl9pbl9wcm92aWRlciI6Imdvb2dsZS5jb20ifX0.SHy8_FpsekZ3LvRdwfDMqW1BDdBHVfJO78x0xtJuIhsKKrUCD88eb256MsAKFb_ak6mujk7GjzajUtkcV-JiZhxElzQ_lu1kQiOoSWcnmuXe8Pm1trx-NN1DUGLbVj2CopdmsRmX2Fs_hFgXd4KhGmcaiqKxEVKZGoq2vB4Bs2kvIjA7u3bqAdS75BsJ5kaxvvIrqY7WjmpVb2LWr6uZIaSZa2BFZi_CAs8rGFV7cO9zg3xGD8MKwG6DmJbopYrtHHECxHbYCe1f-HS5eXCN_tJFIq7CHV9RSyv3KkT5Da9yOIeDP8YBATxTLNWqdkq3h-mXmkFvgL7-n49-aqcIgA' \ + -H 'baggage: sentry-environment=prod,sentry-release=rel-4c2ae3c,sentry-public_key=3779934420ee57f00d05e5fb1e57f79d,sentry-trace_id=f6a6fcf2cd474d488082c00a8f915ab6,sentry-org_id=4509005975388160,sentry-transaction=%2F(main)%2F_explore%2F,sentry-sampled=true,sentry-sample_rand=0.8715408597022593,sentry-sample_rate=1' \ + -H 'cache-control: no-cache' \ + -H 'content-type: application/json' \ + -H 'origin: https://marble.worldlabs.ai' \ + -H 'pragma: no-cache' \ + -H 'priority: u=1, i' \ + -H 'referer: https://marble.worldlabs.ai/' \ + -H 'sec-ch-ua: "Not_A Brand";v="99", "Chromium";v="142"' \ + -H 'sec-ch-ua-mobile: ?0' \ + -H 'sec-ch-ua-platform: "Linux"' \ + -H 'sec-fetch-dest: empty' \ + -H 'sec-fetch-mode: cors' \ + -H 'sec-fetch-site: cross-site' \ + -H 'sentry-trace: f6a6fcf2cd474d488082c00a8f915ab6-811b3fc3ecdaaff5-1' \ + -H 'user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36' \ + --data-raw '{"metadata":{"version":"0.0.1","createdAt":1765323283075,"updatedAt":1765323283075,"useAdvancedEditing":false,"draftMode":false,"nodes":{}},"mime_type":"application/run+json"}' \ No newline at end of file diff --git a/crates/api_clients/world_labs_client/src/requests/_metadata/r1_object_response.txt b/crates/api_clients/world_labs_client/src/requests/_metadata/r1_object_response.txt new file mode 100644 index 0000000000..580e03e1be --- /dev/null +++ b/crates/api_clients/world_labs_client/src/requests/_metadata/r1_object_response.txt @@ -0,0 +1,19 @@ +{ + "context": null, + "id": "10ad82a1-5f61-447f-b162-e3da0ef3e5b5", + "display_name": null, + "owner_id": "sVgAQDyH3BfYOBfF6epWTjLHygX2", + "status": "CREATED", + "created_at": 1765323283, + "updated_at": 1765323283, + "object_uri": null, + "mime_type": "application/run+json", + "metadata": { + "version": "0.0.1", + "createdAt": 1765323283075, + "updatedAt": 1765323283075, + "useAdvancedEditing": false, + "draftMode": false, + "nodes": {} + } +} \ No newline at end of file diff --git a/crates/api_clients/world_labs_client/src/requests/_metadata/r2_object_request.txt b/crates/api_clients/world_labs_client/src/requests/_metadata/r2_object_request.txt new file mode 100644 index 0000000000..1c56678735 --- /dev/null +++ b/crates/api_clients/world_labs_client/src/requests/_metadata/r2_object_request.txt @@ -0,0 +1,20 @@ +curl 'https://marble2-kgw-prod-iac1.wlt-ai.art/api/v1/objects' \ + -H 'accept: */*' \ + -H 'accept-language: en-US,en;q=0.9' \ + -H 'authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6Ijk1MTg5MTkxMTA3NjA1NDM0NGUxNWUyNTY0MjViYjQyNWVlYjNhNWMiLCJ0eXAiOiJKV1QifQ.eyJuYW1lIjoiVmljdG9yIFZvaWNlIiwicGljdHVyZSI6Imh0dHBzOi8vbGgzLmdvb2dsZXVzZXJjb250ZW50LmNvbS9hL0FDZzhvY0t3MGFhWEtZU3F5LVhra242OXlkSUpGR25KQTM3UzEzWHZqTlk0ZDl4Q3pVektVdz1zOTYtYyIsImlzcyI6Imh0dHBzOi8vc2VjdXJldG9rZW4uZ29vZ2xlLmNvbS93bHQtdHJhaW5pbmctZ3NjIiwiYXVkIjoid2x0LXRyYWluaW5nLWdzYyIsImF1dGhfdGltZSI6MTc2NTMyMDg0MiwidXNlcl9pZCI6InNWZ0FRRHlIM0JmWU9CZkY2ZXBXVGpMSHlnWDIiLCJzdWIiOiJzVmdBUUR5SDNCZllPQmZGNmVwV1RqTEh5Z1gyIiwiaWF0IjoxNzY1MzIwODQyLCJleHAiOjE3NjUzMjQ0NDIsImVtYWlsIjoidmljdG9ydm9pY2U4OUBnbWFpbC5jb20iLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwiZmlyZWJhc2UiOnsiaWRlbnRpdGllcyI6eyJnb29nbGUuY29tIjpbIjExNjQ1OTMwMDE5ODYxOTg4ODgzNiJdLCJlbWFpbCI6WyJ2aWN0b3J2b2ljZTg5QGdtYWlsLmNvbSJdfSwic2lnbl9pbl9wcm92aWRlciI6Imdvb2dsZS5jb20ifX0.SHy8_FpsekZ3LvRdwfDMqW1BDdBHVfJO78x0xtJuIhsKKrUCD88eb256MsAKFb_ak6mujk7GjzajUtkcV-JiZhxElzQ_lu1kQiOoSWcnmuXe8Pm1trx-NN1DUGLbVj2CopdmsRmX2Fs_hFgXd4KhGmcaiqKxEVKZGoq2vB4Bs2kvIjA7u3bqAdS75BsJ5kaxvvIrqY7WjmpVb2LWr6uZIaSZa2BFZi_CAs8rGFV7cO9zg3xGD8MKwG6DmJbopYrtHHECxHbYCe1f-HS5eXCN_tJFIq7CHV9RSyv3KkT5Da9yOIeDP8YBATxTLNWqdkq3h-mXmkFvgL7-n49-aqcIgA' \ + -H 'baggage: sentry-environment=prod,sentry-release=rel-4c2ae3c,sentry-public_key=3779934420ee57f00d05e5fb1e57f79d,sentry-trace_id=f6a6fcf2cd474d488082c00a8f915ab6,sentry-org_id=4509005975388160,sentry-transaction=%2F(main)%2F_explore%2F,sentry-sampled=true,sentry-sample_rand=0.8715408597022593,sentry-sample_rate=1' \ + -H 'cache-control: no-cache' \ + -H 'content-type: application/json' \ + -H 'origin: https://marble.worldlabs.ai' \ + -H 'pragma: no-cache' \ + -H 'priority: u=1, i' \ + -H 'referer: https://marble.worldlabs.ai/' \ + -H 'sec-ch-ua: "Not_A Brand";v="99", "Chromium";v="142"' \ + -H 'sec-ch-ua-mobile: ?0' \ + -H 'sec-ch-ua-platform: "Linux"' \ + -H 'sec-fetch-dest: empty' \ + -H 'sec-fetch-mode: cors' \ + -H 'sec-fetch-site: cross-site' \ + -H 'sentry-trace: f6a6fcf2cd474d488082c00a8f915ab6-b9e78b9b380dd719-1' \ + -H 'user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36' \ + --data-raw '{"display_name":"uploaded_image_1ed9f547-5527-48d3-b5df-aab476532317.jpeg","mime_type":"image/jpeg"}' \ No newline at end of file diff --git a/crates/api_clients/world_labs_client/src/requests/_metadata/r2_object_response.txt b/crates/api_clients/world_labs_client/src/requests/_metadata/r2_object_response.txt new file mode 100644 index 0000000000..ca0c8c1fad --- /dev/null +++ b/crates/api_clients/world_labs_client/src/requests/_metadata/r2_object_response.txt @@ -0,0 +1,12 @@ +{ + "context": null, + "id": "25ddd6ab-931c-480b-a817-cfbb562da980", + "display_name": "uploaded_image_1ed9f547-5527-48d3-b5df-aab476532317.jpeg", + "owner_id": "sVgAQDyH3BfYOBfF6epWTjLHygX2", + "status": "CREATED", + "created_at": 1765323283, + "updated_at": 1765323283, + "object_uri": null, + "mime_type": "image/jpeg", + "metadata": null +} \ No newline at end of file diff --git a/crates/api_clients/world_labs_client/src/requests/_metadata/r3_recaption_request.txt b/crates/api_clients/world_labs_client/src/requests/_metadata/r3_recaption_request.txt new file mode 100644 index 0000000000..1c5198654a --- /dev/null +++ b/crates/api_clients/world_labs_client/src/requests/_metadata/r3_recaption_request.txt @@ -0,0 +1,20 @@ +curl 'https://marble2-kgw-prod-iac1.wlt-ai.art/api/v1/recaption2' \ + -H 'accept: */*' \ + -H 'accept-language: en-US,en;q=0.9' \ + -H 'authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6Ijk1MTg5MTkxMTA3NjA1NDM0NGUxNWUyNTY0MjViYjQyNWVlYjNhNWMiLCJ0eXAiOiJKV1QifQ.eyJuYW1lIjoiVmljdG9yIFZvaWNlIiwicGljdHVyZSI6Imh0dHBzOi8vbGgzLmdvb2dsZXVzZXJjb250ZW50LmNvbS9hL0FDZzhvY0t3MGFhWEtZU3F5LVhra242OXlkSUpGR25KQTM3UzEzWHZqTlk0ZDl4Q3pVektVdz1zOTYtYyIsImlzcyI6Imh0dHBzOi8vc2VjdXJldG9rZW4uZ29vZ2xlLmNvbS93bHQtdHJhaW5pbmctZ3NjIiwiYXVkIjoid2x0LXRyYWluaW5nLWdzYyIsImF1dGhfdGltZSI6MTc2NTMyMDg0MiwidXNlcl9pZCI6InNWZ0FRRHlIM0JmWU9CZkY2ZXBXVGpMSHlnWDIiLCJzdWIiOiJzVmdBUUR5SDNCZllPQmZGNmVwV1RqTEh5Z1gyIiwiaWF0IjoxNzY1MzIwODQyLCJleHAiOjE3NjUzMjQ0NDIsImVtYWlsIjoidmljdG9ydm9pY2U4OUBnbWFpbC5jb20iLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwiZmlyZWJhc2UiOnsiaWRlbnRpdGllcyI6eyJnb29nbGUuY29tIjpbIjExNjQ1OTMwMDE5ODYxOTg4ODgzNiJdLCJlbWFpbCI6WyJ2aWN0b3J2b2ljZTg5QGdtYWlsLmNvbSJdfSwic2lnbl9pbl9wcm92aWRlciI6Imdvb2dsZS5jb20ifX0.SHy8_FpsekZ3LvRdwfDMqW1BDdBHVfJO78x0xtJuIhsKKrUCD88eb256MsAKFb_ak6mujk7GjzajUtkcV-JiZhxElzQ_lu1kQiOoSWcnmuXe8Pm1trx-NN1DUGLbVj2CopdmsRmX2Fs_hFgXd4KhGmcaiqKxEVKZGoq2vB4Bs2kvIjA7u3bqAdS75BsJ5kaxvvIrqY7WjmpVb2LWr6uZIaSZa2BFZi_CAs8rGFV7cO9zg3xGD8MKwG6DmJbopYrtHHECxHbYCe1f-HS5eXCN_tJFIq7CHV9RSyv3KkT5Da9yOIeDP8YBATxTLNWqdkq3h-mXmkFvgL7-n49-aqcIgA' \ + -H 'baggage: sentry-environment=prod,sentry-release=rel-4c2ae3c,sentry-public_key=3779934420ee57f00d05e5fb1e57f79d,sentry-trace_id=f6a6fcf2cd474d488082c00a8f915ab6,sentry-org_id=4509005975388160,sentry-transaction=%2F(main)%2F_explore%2F,sentry-sampled=true,sentry-sample_rand=0.8715408597022593,sentry-sample_rate=1' \ + -H 'cache-control: no-cache' \ + -H 'content-type: application/json' \ + -H 'origin: https://marble.worldlabs.ai' \ + -H 'pragma: no-cache' \ + -H 'priority: u=1, i' \ + -H 'referer: https://marble.worldlabs.ai/' \ + -H 'sec-ch-ua: "Not_A Brand";v="99", "Chromium";v="142"' \ + -H 'sec-ch-ua-mobile: ?0' \ + -H 'sec-ch-ua-platform: "Linux"' \ + -H 'sec-fetch-dest: empty' \ + -H 'sec-fetch-mode: cors' \ + -H 'sec-fetch-site: cross-site' \ + -H 'sentry-trace: f6a6fcf2cd474d488082c00a8f915ab6-a84e4b29068074a0-1' \ + -H 'user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36' \ + --data-raw '{"world_prompt":{"type":"image","image_prompt":{"uri":"https://cdn.marble.worldlabs.ai/object/25ddd6ab-931c-480b-a817-cfbb562da980/asset.jpg"},"text_prompt":""},"user_caption":"","context":{"run_id":"10ad82a1-5f61-447f-b162-e3da0ef3e5b5"}}' \ No newline at end of file diff --git a/crates/api_clients/world_labs_client/src/requests/_metadata/r3_recaption_response.txt b/crates/api_clients/world_labs_client/src/requests/_metadata/r3_recaption_response.txt new file mode 100644 index 0000000000..f2a5041f8e --- /dev/null +++ b/crates/api_clients/world_labs_client/src/requests/_metadata/r3_recaption_response.txt @@ -0,0 +1,4 @@ +{ + "caption": "The scene is a somber and gothic graveyard at night, captured in a realistic, almost cinematic style, evoking a mood of quiet contemplation and melancholy. Numerous headstones and crypts of varying sizes and designs emerge from the overgrown grass, their weathered surfaces suggesting a long history. Tall, dark trees with skeletal branches stand against the cloudy night sky, their leaves barely visible, enhancing the scene's desolate atmosphere. A full, luminous moon hangs high in the sky, casting soft, ethereal light over the entire graveyard, illuminating the intricate carvings on some of the older monuments and the subtle textures of the ground. The ground itself is a mix of patchy grass and fallen leaves, indicating a neglected or aged burial ground, with small, indistinct flora growing in scattered clusters. Pathways, possibly made of worn earth or gravel, wind between the graves, though they are largely obscured by the low light and foliage. A low, stone wall or barrier might enclose the graveyard on one side, separating it from an unseen, silent world beyond. The moon remains a singular, dominant light source, creating long, soft shadows that stretch across the uneven terrain of the cemetery. ", + "title": "Moonlit Graveyard Vigil" +} \ No newline at end of file diff --git a/crates/api_clients/world_labs_client/src/requests/_metadata/r4_worlds_request.txt b/crates/api_clients/world_labs_client/src/requests/_metadata/r4_worlds_request.txt new file mode 100644 index 0000000000..21c6f91eec --- /dev/null +++ b/crates/api_clients/world_labs_client/src/requests/_metadata/r4_worlds_request.txt @@ -0,0 +1,20 @@ +curl 'https://marble2-kgw-prod-iac1.wlt-ai.art/api/v1/worlds' \ + -H 'accept: */*' \ + -H 'accept-language: en-US,en;q=0.9' \ + -H 'authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6Ijk1MTg5MTkxMTA3NjA1NDM0NGUxNWUyNTY0MjViYjQyNWVlYjNhNWMiLCJ0eXAiOiJKV1QifQ.eyJuYW1lIjoiVmljdG9yIFZvaWNlIiwicGljdHVyZSI6Imh0dHBzOi8vbGgzLmdvb2dsZXVzZXJjb250ZW50LmNvbS9hL0FDZzhvY0t3MGFhWEtZU3F5LVhra242OXlkSUpGR25KQTM3UzEzWHZqTlk0ZDl4Q3pVektVdz1zOTYtYyIsImlzcyI6Imh0dHBzOi8vc2VjdXJldG9rZW4uZ29vZ2xlLmNvbS93bHQtdHJhaW5pbmctZ3NjIiwiYXVkIjoid2x0LXRyYWluaW5nLWdzYyIsImF1dGhfdGltZSI6MTc2NTMyMDg0MiwidXNlcl9pZCI6InNWZ0FRRHlIM0JmWU9CZkY2ZXBXVGpMSHlnWDIiLCJzdWIiOiJzVmdBUUR5SDNCZllPQmZGNmVwV1RqTEh5Z1gyIiwiaWF0IjoxNzY1MzIwODQyLCJleHAiOjE3NjUzMjQ0NDIsImVtYWlsIjoidmljdG9ydm9pY2U4OUBnbWFpbC5jb20iLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwiZmlyZWJhc2UiOnsiaWRlbnRpdGllcyI6eyJnb29nbGUuY29tIjpbIjExNjQ1OTMwMDE5ODYxOTg4ODgzNiJdLCJlbWFpbCI6WyJ2aWN0b3J2b2ljZTg5QGdtYWlsLmNvbSJdfSwic2lnbl9pbl9wcm92aWRlciI6Imdvb2dsZS5jb20ifX0.SHy8_FpsekZ3LvRdwfDMqW1BDdBHVfJO78x0xtJuIhsKKrUCD88eb256MsAKFb_ak6mujk7GjzajUtkcV-JiZhxElzQ_lu1kQiOoSWcnmuXe8Pm1trx-NN1DUGLbVj2CopdmsRmX2Fs_hFgXd4KhGmcaiqKxEVKZGoq2vB4Bs2kvIjA7u3bqAdS75BsJ5kaxvvIrqY7WjmpVb2LWr6uZIaSZa2BFZi_CAs8rGFV7cO9zg3xGD8MKwG6DmJbopYrtHHECxHbYCe1f-HS5eXCN_tJFIq7CHV9RSyv3KkT5Da9yOIeDP8YBATxTLNWqdkq3h-mXmkFvgL7-n49-aqcIgA' \ + -H 'baggage: sentry-environment=prod,sentry-release=rel-4c2ae3c,sentry-public_key=3779934420ee57f00d05e5fb1e57f79d,sentry-trace_id=f6a6fcf2cd474d488082c00a8f915ab6,sentry-org_id=4509005975388160,sentry-transaction=%2F(main)%2F_explore%2F,sentry-sampled=true,sentry-sample_rand=0.8715408597022593,sentry-sample_rate=1' \ + -H 'cache-control: no-cache' \ + -H 'content-type: application/json' \ + -H 'origin: https://marble.worldlabs.ai' \ + -H 'pragma: no-cache' \ + -H 'priority: u=1, i' \ + -H 'referer: https://marble.worldlabs.ai/' \ + -H 'sec-ch-ua: "Not_A Brand";v="99", "Chromium";v="142"' \ + -H 'sec-ch-ua-mobile: ?0' \ + -H 'sec-ch-ua-platform: "Linux"' \ + -H 'sec-fetch-dest: empty' \ + -H 'sec-fetch-mode: cors' \ + -H 'sec-fetch-site: cross-site' \ + -H 'sentry-trace: f6a6fcf2cd474d488082c00a8f915ab6-aae165f4896b6b44-1' \ + -H 'user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36' \ + --data-raw $'{"permission":{"public":true},"generation_input":{"model":"Marble 0.1-plus","prompt":{"type":"image","image_prompt":{"uri":"https://cdn.marble.worldlabs.ai/object/25ddd6ab-931c-480b-a817-cfbb562da980/asset.jpg"},"text_prompt":"The scene is a somber and gothic graveyard at night, captured in a realistic, almost cinematic style, evoking a mood of quiet contemplation and melancholy. Numerous headstones and crypts of varying sizes and designs emerge from the overgrown grass, their weathered surfaces suggesting a long history. Tall, dark trees with skeletal branches stand against the cloudy night sky, their leaves barely visible, enhancing the scene\'s desolate atmosphere. A full, luminous moon hangs high in the sky, casting soft, ethereal light over the entire graveyard, illuminating the intricate carvings on some of the older monuments and the subtle textures of the ground. The ground itself is a mix of patchy grass and fallen leaves, indicating a neglected or aged burial ground, with small, indistinct flora growing in scattered clusters. Pathways, possibly made of worn earth or gravel, wind between the graves, though they are largely obscured by the low light and foliage. A low, stone wall or barrier might enclose the graveyard on one side, separating it from an unseen, silent world beyond. The moon remains a singular, dominant light source, creating long, soft shadows that stretch across the uneven terrain of the cemetery. "}},"context":{"run_id":"10ad82a1-5f61-447f-b162-e3da0ef3e5b5"}}' \ No newline at end of file diff --git a/crates/api_clients/world_labs_client/src/requests/_metadata/r4_worlds_response.txt b/crates/api_clients/world_labs_client/src/requests/_metadata/r4_worlds_response.txt new file mode 100644 index 0000000000..ac90352713 --- /dev/null +++ b/crates/api_clients/world_labs_client/src/requests/_metadata/r4_worlds_response.txt @@ -0,0 +1,37 @@ +{ + "context": { + "run_id": "10ad82a1-5f61-447f-b162-e3da0ef3e5b5", + "project_id": null + }, + "id": "323bfcc0-086a-4822-acc5-b38b4ddc624d", + "display_name": null, + "status": "INITIALIZING", + "error": null, + "owner_id": "sVgAQDyH3BfYOBfF6epWTjLHygX2", + "created_at": 1765323290, + "updated_at": 1765323290, + "permission": { + "public": true, + "allowed_readers": [], + "allowed_writers": [] + }, + "stats": null, + "application_data": null, + "generation_input": { + "model": "Marble 0.1-plus", + "seed": null, + "prompt": { + "type": "image", + "text_prompt": "The scene is a somber and gothic graveyard at night, captured in a realistic, almost cinematic style, evoking a mood of quiet contemplation and melancholy. Numerous headstones and crypts of varying sizes and designs emerge from the overgrown grass, their weathered surfaces suggesting a long history. Tall, dark trees with skeletal branches stand against the cloudy night sky, their leaves barely visible, enhancing the scene's desolate atmosphere. A full, luminous moon hangs high in the sky, casting soft, ethereal light over the entire graveyard, illuminating the intricate carvings on some of the older monuments and the subtle textures of the ground. The ground itself is a mix of patchy grass and fallen leaves, indicating a neglected or aged burial ground, with small, indistinct flora growing in scattered clusters. Pathways, possibly made of worn earth or gravel, wind between the graves, though they are largely obscured by the low light and foliage. A low, stone wall or barrier might enclose the graveyard on one side, separating it from an unseen, silent world beyond. The moon remains a singular, dominant light source, creating long, soft shadows that stretch across the uneven terrain of the cemetery. ", + "image_prompt": { + "uri": "https://cdn.marble.worldlabs.ai/323bfcc0-086a-4822-acc5-b38b4ddc624d/307390d3_image_prompt_sanitized.png", + "data_base64": null, + "extension": "png" + }, + "is_pano": null + } + }, + "tags": null, + "hq_mesh_export_op_id": null, + "generation_output": null +} \ No newline at end of file diff --git a/crates/api_clients/world_labs_client/src/requests/_metadata/r5_world_request.txt b/crates/api_clients/world_labs_client/src/requests/_metadata/r5_world_request.txt new file mode 100644 index 0000000000..ed8eaeb0a3 --- /dev/null +++ b/crates/api_clients/world_labs_client/src/requests/_metadata/r5_world_request.txt @@ -0,0 +1,18 @@ +curl 'https://marble2-kgw-prod-iac1.wlt-ai.art/api/v1/worlds/323bfcc0-086a-4822-acc5-b38b4ddc624d' \ + -H 'accept: */*' \ + -H 'accept-language: en-US,en;q=0.9' \ + -H 'authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6Ijk1MTg5MTkxMTA3NjA1NDM0NGUxNWUyNTY0MjViYjQyNWVlYjNhNWMiLCJ0eXAiOiJKV1QifQ.eyJuYW1lIjoiVmljdG9yIFZvaWNlIiwicGljdHVyZSI6Imh0dHBzOi8vbGgzLmdvb2dsZXVzZXJjb250ZW50LmNvbS9hL0FDZzhvY0t3MGFhWEtZU3F5LVhra242OXlkSUpGR25KQTM3UzEzWHZqTlk0ZDl4Q3pVektVdz1zOTYtYyIsImlzcyI6Imh0dHBzOi8vc2VjdXJldG9rZW4uZ29vZ2xlLmNvbS93bHQtdHJhaW5pbmctZ3NjIiwiYXVkIjoid2x0LXRyYWluaW5nLWdzYyIsImF1dGhfdGltZSI6MTc2NTMyMDg0MiwidXNlcl9pZCI6InNWZ0FRRHlIM0JmWU9CZkY2ZXBXVGpMSHlnWDIiLCJzdWIiOiJzVmdBUUR5SDNCZllPQmZGNmVwV1RqTEh5Z1gyIiwiaWF0IjoxNzY1MzIwODQyLCJleHAiOjE3NjUzMjQ0NDIsImVtYWlsIjoidmljdG9ydm9pY2U4OUBnbWFpbC5jb20iLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwiZmlyZWJhc2UiOnsiaWRlbnRpdGllcyI6eyJnb29nbGUuY29tIjpbIjExNjQ1OTMwMDE5ODYxOTg4ODgzNiJdLCJlbWFpbCI6WyJ2aWN0b3J2b2ljZTg5QGdtYWlsLmNvbSJdfSwic2lnbl9pbl9wcm92aWRlciI6Imdvb2dsZS5jb20ifX0.SHy8_FpsekZ3LvRdwfDMqW1BDdBHVfJO78x0xtJuIhsKKrUCD88eb256MsAKFb_ak6mujk7GjzajUtkcV-JiZhxElzQ_lu1kQiOoSWcnmuXe8Pm1trx-NN1DUGLbVj2CopdmsRmX2Fs_hFgXd4KhGmcaiqKxEVKZGoq2vB4Bs2kvIjA7u3bqAdS75BsJ5kaxvvIrqY7WjmpVb2LWr6uZIaSZa2BFZi_CAs8rGFV7cO9zg3xGD8MKwG6DmJbopYrtHHECxHbYCe1f-HS5eXCN_tJFIq7CHV9RSyv3KkT5Da9yOIeDP8YBATxTLNWqdkq3h-mXmkFvgL7-n49-aqcIgA' \ + -H 'baggage: sentry-environment=prod,sentry-release=rel-4c2ae3c,sentry-public_key=3779934420ee57f00d05e5fb1e57f79d,sentry-trace_id=f6a6fcf2cd474d488082c00a8f915ab6,sentry-org_id=4509005975388160,sentry-transaction=%2F(main)%2F_explore%2F,sentry-sampled=true,sentry-sample_rand=0.8715408597022593,sentry-sample_rate=1' \ + -H 'cache-control: no-cache' \ + -H 'origin: https://marble.worldlabs.ai' \ + -H 'pragma: no-cache' \ + -H 'priority: u=1, i' \ + -H 'referer: https://marble.worldlabs.ai/' \ + -H 'sec-ch-ua: "Not_A Brand";v="99", "Chromium";v="142"' \ + -H 'sec-ch-ua-mobile: ?0' \ + -H 'sec-ch-ua-platform: "Linux"' \ + -H 'sec-fetch-dest: empty' \ + -H 'sec-fetch-mode: cors' \ + -H 'sec-fetch-site: cross-site' \ + -H 'sentry-trace: f6a6fcf2cd474d488082c00a8f915ab6-89ca6b5ba7e2d026-1' \ + -H 'user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36' \ No newline at end of file diff --git a/crates/api_clients/world_labs_client/src/requests/_metadata/r5_world_response.txt b/crates/api_clients/world_labs_client/src/requests/_metadata/r5_world_response.txt new file mode 100644 index 0000000000..3286057f3c --- /dev/null +++ b/crates/api_clients/world_labs_client/src/requests/_metadata/r5_world_response.txt @@ -0,0 +1,39 @@ +{ + "context": null, + "id": "323bfcc0-086a-4822-acc5-b38b4ddc624d", + "display_name": null, + "status": "INITIALIZING", + "error": null, + "owner_id": "sVgAQDyH3BfYOBfF6epWTjLHygX2", + "created_at": 1765323290, + "updated_at": 1765323290, + "permission": { + "public": true, + "allowed_readers": [], + "allowed_writers": [] + }, + "stats": null, + "application_data": { + "owner_username": "victorv", + "owner_display_name": "Victor Voice", + "reactions": null, + "pinned": false + }, + "generation_input": { + "model": "Marble 0.1-plus", + "seed": null, + "prompt": { + "type": "image", + "text_prompt": "The scene is a somber and gothic graveyard at night, captured in a realistic, almost cinematic style, evoking a mood of quiet contemplation and melancholy. Numerous headstones and crypts of varying sizes and designs emerge from the overgrown grass, their weathered surfaces suggesting a long history. Tall, dark trees with skeletal branches stand against the cloudy night sky, their leaves barely visible, enhancing the scene's desolate atmosphere. A full, luminous moon hangs high in the sky, casting soft, ethereal light over the entire graveyard, illuminating the intricate carvings on some of the older monuments and the subtle textures of the ground. The ground itself is a mix of patchy grass and fallen leaves, indicating a neglected or aged burial ground, with small, indistinct flora growing in scattered clusters. Pathways, possibly made of worn earth or gravel, wind between the graves, though they are largely obscured by the low light and foliage. A low, stone wall or barrier might enclose the graveyard on one side, separating it from an unseen, silent world beyond. The moon remains a singular, dominant light source, creating long, soft shadows that stretch across the uneven terrain of the cemetery. ", + "image_prompt": { + "uri": "https://cdn.marble.worldlabs.ai/323bfcc0-086a-4822-acc5-b38b4ddc624d/307390d3_image_prompt_sanitized.png", + "data_base64": null, + "extension": null + }, + "is_pano": false + } + }, + "tags": null, + "hq_mesh_export_op_id": null, + "generation_output": null +} \ No newline at end of file diff --git a/crates/api_clients/world_labs_client/src/requests/_metadata/r6_world_request.txt b/crates/api_clients/world_labs_client/src/requests/_metadata/r6_world_request.txt new file mode 100644 index 0000000000..e73774c0ab --- /dev/null +++ b/crates/api_clients/world_labs_client/src/requests/_metadata/r6_world_request.txt @@ -0,0 +1,18 @@ +curl 'https://marble2-kgw-prod-iac1.wlt-ai.art/api/v1/worlds/323bfcc0-086a-4822-acc5-b38b4ddc624d' \ + -H 'accept: */*' \ + -H 'accept-language: en-US,en;q=0.9' \ + -H 'authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6Ijk1MTg5MTkxMTA3NjA1NDM0NGUxNWUyNTY0MjViYjQyNWVlYjNhNWMiLCJ0eXAiOiJKV1QifQ.eyJuYW1lIjoiVmljdG9yIFZvaWNlIiwicGljdHVyZSI6Imh0dHBzOi8vbGgzLmdvb2dsZXVzZXJjb250ZW50LmNvbS9hL0FDZzhvY0t3MGFhWEtZU3F5LVhra242OXlkSUpGR25KQTM3UzEzWHZqTlk0ZDl4Q3pVektVdz1zOTYtYyIsImlzcyI6Imh0dHBzOi8vc2VjdXJldG9rZW4uZ29vZ2xlLmNvbS93bHQtdHJhaW5pbmctZ3NjIiwiYXVkIjoid2x0LXRyYWluaW5nLWdzYyIsImF1dGhfdGltZSI6MTc2NTMyMDg0MiwidXNlcl9pZCI6InNWZ0FRRHlIM0JmWU9CZkY2ZXBXVGpMSHlnWDIiLCJzdWIiOiJzVmdBUUR5SDNCZllPQmZGNmVwV1RqTEh5Z1gyIiwiaWF0IjoxNzY1MzIwODQyLCJleHAiOjE3NjUzMjQ0NDIsImVtYWlsIjoidmljdG9ydm9pY2U4OUBnbWFpbC5jb20iLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwiZmlyZWJhc2UiOnsiaWRlbnRpdGllcyI6eyJnb29nbGUuY29tIjpbIjExNjQ1OTMwMDE5ODYxOTg4ODgzNiJdLCJlbWFpbCI6WyJ2aWN0b3J2b2ljZTg5QGdtYWlsLmNvbSJdfSwic2lnbl9pbl9wcm92aWRlciI6Imdvb2dsZS5jb20ifX0.SHy8_FpsekZ3LvRdwfDMqW1BDdBHVfJO78x0xtJuIhsKKrUCD88eb256MsAKFb_ak6mujk7GjzajUtkcV-JiZhxElzQ_lu1kQiOoSWcnmuXe8Pm1trx-NN1DUGLbVj2CopdmsRmX2Fs_hFgXd4KhGmcaiqKxEVKZGoq2vB4Bs2kvIjA7u3bqAdS75BsJ5kaxvvIrqY7WjmpVb2LWr6uZIaSZa2BFZi_CAs8rGFV7cO9zg3xGD8MKwG6DmJbopYrtHHECxHbYCe1f-HS5eXCN_tJFIq7CHV9RSyv3KkT5Da9yOIeDP8YBATxTLNWqdkq3h-mXmkFvgL7-n49-aqcIgA' \ + -H 'baggage: sentry-environment=prod,sentry-release=rel-4c2ae3c,sentry-public_key=3779934420ee57f00d05e5fb1e57f79d,sentry-trace_id=f6a6fcf2cd474d488082c00a8f915ab6,sentry-org_id=4509005975388160,sentry-transaction=%2F(main)%2F_explore%2F,sentry-sampled=true,sentry-sample_rand=0.8715408597022593,sentry-sample_rate=1' \ + -H 'cache-control: no-cache' \ + -H 'origin: https://marble.worldlabs.ai' \ + -H 'pragma: no-cache' \ + -H 'priority: u=1, i' \ + -H 'referer: https://marble.worldlabs.ai/' \ + -H 'sec-ch-ua: "Not_A Brand";v="99", "Chromium";v="142"' \ + -H 'sec-ch-ua-mobile: ?0' \ + -H 'sec-ch-ua-platform: "Linux"' \ + -H 'sec-fetch-dest: empty' \ + -H 'sec-fetch-mode: cors' \ + -H 'sec-fetch-site: cross-site' \ + -H 'sentry-trace: f6a6fcf2cd474d488082c00a8f915ab6-85cd442793fc9124-1' \ + -H 'user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36' \ No newline at end of file diff --git a/crates/api_clients/world_labs_client/src/requests/_metadata/r6_world_response.txt b/crates/api_clients/world_labs_client/src/requests/_metadata/r6_world_response.txt new file mode 100644 index 0000000000..8ff01f74da --- /dev/null +++ b/crates/api_clients/world_labs_client/src/requests/_metadata/r6_world_response.txt @@ -0,0 +1,59 @@ +{ + "context": null, + "id": "323bfcc0-086a-4822-acc5-b38b4ddc624d", + "display_name": null, + "status": "SUCCEEDED", + "error": null, + "owner_id": "sVgAQDyH3BfYOBfF6epWTjLHygX2", + "created_at": 1765323290, + "updated_at": 1765323554, + "permission": { + "public": true, + "allowed_readers": [], + "allowed_writers": [] + }, + "stats": null, + "application_data": { + "owner_username": "victorv", + "owner_display_name": "Victor Voice", + "reactions": null, + "pinned": false + }, + "generation_input": { + "model": "Marble 0.1-plus", + "seed": null, + "prompt": { + "type": "image", + "text_prompt": "The scene is a somber and gothic graveyard at night, captured in a realistic, almost cinematic style, evoking a mood of quiet contemplation and melancholy. Numerous headstones and crypts of varying sizes and designs emerge from the overgrown grass, their weathered surfaces suggesting a long history. Tall, dark trees with skeletal branches stand against the cloudy night sky, their leaves barely visible, enhancing the scene's desolate atmosphere. A full, luminous moon hangs high in the sky, casting soft, ethereal light over the entire graveyard, illuminating the intricate carvings on some of the older monuments and the subtle textures of the ground. The ground itself is a mix of patchy grass and fallen leaves, indicating a neglected or aged burial ground, with small, indistinct flora growing in scattered clusters. Pathways, possibly made of worn earth or gravel, wind between the graves, though they are largely obscured by the low light and foliage. A low, stone wall or barrier might enclose the graveyard on one side, separating it from an unseen, silent world beyond. The moon remains a singular, dominant light source, creating long, soft shadows that stretch across the uneven terrain of the cemetery. ", + "image_prompt": { + "uri": "https://cdn.marble.worldlabs.ai/323bfcc0-086a-4822-acc5-b38b4ddc624d/307390d3_image_prompt_sanitized.png", + "data_base64": null, + "extension": null + }, + "is_pano": false + } + }, + "tags": null, + "hq_mesh_export_op_id": null, + "generation_output": { + "ply_url": null, + "wlg_url": null, + "cond_image_url": "https://cdn.marble.worldlabs.ai/323bfcc0-086a-4822-acc5-b38b4ddc624d/307390d3_image_prompt_sanitized.png", + "mpi_url": "https://cdn.marble.worldlabs.ai/323bfcc0-086a-4822-acc5-b38b4ddc624d/17b7b9f7-1448-4e03-a244-ac51b87bc1a2_dust_mpi", + "minimap_url": "https://cdn.marble.worldlabs.ai/323bfcc0-086a-4822-acc5-b38b4ddc624d/4e373e4c-b7c2-4122-aa7f-a27cf6377f8d_minimap.png", + "minimap_metadata": "[0.0, 1.486802339553833, 13.666599082946778]", + "spz_urls": { + "500k": "https://cdn.marble.worldlabs.ai/323bfcc0-086a-4822-acc5-b38b4ddc624d/514bcf69-1f9e-4fa1-ba82-5e3eacd3aa0e_ceramic_500k.spz", + "full_res": "https://cdn.marble.worldlabs.ai/323bfcc0-086a-4822-acc5-b38b4ddc624d/7a169623-8993-448d-b0c4-a9780287d0ce_ceramic.spz", + "100k": "https://cdn.marble.worldlabs.ai/323bfcc0-086a-4822-acc5-b38b4ddc624d/044f6002-c5d9-4064-a690-1ff1a6bb40e2_dust_100k.spz" + }, + "skypano_url": null, + "posed_cond_image": "https://cdn.marble.worldlabs.ai/323bfcc0-086a-4822-acc5-b38b4ddc624d/d42c648a-37a0-4b50-aa53-15210783dd23_cond_image", + "collider_mesh_url": "https://cdn.marble.worldlabs.ai/323bfcc0-086a-4822-acc5-b38b4ddc624d/bab46ac0.glb", + "hq_mesh_url": null, + "full_res_mesh_url": null, + "posed_cubemaps_url": "https://cdn.marble.worldlabs.ai/323bfcc0-086a-4822-acc5-b38b4ddc624d/84fb4783-e74f-4676-b825-84834a349437_cubemaps", + "posed_panos_url": "https://cdn.marble.worldlabs.ai/323bfcc0-086a-4822-acc5-b38b4ddc624d/d51d9ddd-bf33-4ce6-a1e0-b35bacde335b_panos", + "panos_metadata": null + } +} \ No newline at end of file diff --git a/crates/api_clients/world_labs_client/src/requests/_metadata/r7_object_request.txt b/crates/api_clients/world_labs_client/src/requests/_metadata/r7_object_request.txt new file mode 100644 index 0000000000..f0e473fb53 --- /dev/null +++ b/crates/api_clients/world_labs_client/src/requests/_metadata/r7_object_request.txt @@ -0,0 +1,21 @@ +curl 'https://marble2-kgw-prod-iac1.wlt-ai.art/api/v1/objects/10ad82a1-5f61-447f-b162-e3da0ef3e5b5' \ + -X 'PATCH' \ + -H 'accept: */*' \ + -H 'accept-language: en-US,en;q=0.9' \ + -H 'authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6Ijk1MTg5MTkxMTA3NjA1NDM0NGUxNWUyNTY0MjViYjQyNWVlYjNhNWMiLCJ0eXAiOiJKV1QifQ.eyJuYW1lIjoiVmljdG9yIFZvaWNlIiwicGljdHVyZSI6Imh0dHBzOi8vbGgzLmdvb2dsZXVzZXJjb250ZW50LmNvbS9hL0FDZzhvY0t3MGFhWEtZU3F5LVhra242OXlkSUpGR25KQTM3UzEzWHZqTlk0ZDl4Q3pVektVdz1zOTYtYyIsImlzcyI6Imh0dHBzOi8vc2VjdXJldG9rZW4uZ29vZ2xlLmNvbS93bHQtdHJhaW5pbmctZ3NjIiwiYXVkIjoid2x0LXRyYWluaW5nLWdzYyIsImF1dGhfdGltZSI6MTc2NTMyMDg0MiwidXNlcl9pZCI6InNWZ0FRRHlIM0JmWU9CZkY2ZXBXVGpMSHlnWDIiLCJzdWIiOiJzVmdBUUR5SDNCZllPQmZGNmVwV1RqTEh5Z1gyIiwiaWF0IjoxNzY1MzIwODQyLCJleHAiOjE3NjUzMjQ0NDIsImVtYWlsIjoidmljdG9ydm9pY2U4OUBnbWFpbC5jb20iLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwiZmlyZWJhc2UiOnsiaWRlbnRpdGllcyI6eyJnb29nbGUuY29tIjpbIjExNjQ1OTMwMDE5ODYxOTg4ODgzNiJdLCJlbWFpbCI6WyJ2aWN0b3J2b2ljZTg5QGdtYWlsLmNvbSJdfSwic2lnbl9pbl9wcm92aWRlciI6Imdvb2dsZS5jb20ifX0.SHy8_FpsekZ3LvRdwfDMqW1BDdBHVfJO78x0xtJuIhsKKrUCD88eb256MsAKFb_ak6mujk7GjzajUtkcV-JiZhxElzQ_lu1kQiOoSWcnmuXe8Pm1trx-NN1DUGLbVj2CopdmsRmX2Fs_hFgXd4KhGmcaiqKxEVKZGoq2vB4Bs2kvIjA7u3bqAdS75BsJ5kaxvvIrqY7WjmpVb2LWr6uZIaSZa2BFZi_CAs8rGFV7cO9zg3xGD8MKwG6DmJbopYrtHHECxHbYCe1f-HS5eXCN_tJFIq7CHV9RSyv3KkT5Da9yOIeDP8YBATxTLNWqdkq3h-mXmkFvgL7-n49-aqcIgA' \ + -H 'baggage: sentry-environment=prod,sentry-release=rel-4c2ae3c,sentry-public_key=3779934420ee57f00d05e5fb1e57f79d,sentry-trace_id=f6a6fcf2cd474d488082c00a8f915ab6,sentry-org_id=4509005975388160,sentry-transaction=%2F(main)%2F_explore%2F,sentry-sampled=true,sentry-sample_rand=0.8715408597022593,sentry-sample_rate=1' \ + -H 'cache-control: no-cache' \ + -H 'content-type: application/json' \ + -H 'origin: https://marble.worldlabs.ai' \ + -H 'pragma: no-cache' \ + -H 'priority: u=1, i' \ + -H 'referer: https://marble.worldlabs.ai/' \ + -H 'sec-ch-ua: "Not_A Brand";v="99", "Chromium";v="142"' \ + -H 'sec-ch-ua-mobile: ?0' \ + -H 'sec-ch-ua-platform: "Linux"' \ + -H 'sec-fetch-dest: empty' \ + -H 'sec-fetch-mode: cors' \ + -H 'sec-fetch-site: cross-site' \ + -H 'sentry-trace: f6a6fcf2cd474d488082c00a8f915ab6-b96d44935a8cf5a1-1' \ + -H 'user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36' \ + --data-raw $'{"object":{"metadata":{"version":"0.0.1","name":"Moonlit Graveyard Vigil","createdAt":1765323283075,"updatedAt":1765323555619,"useAdvancedEditing":false,"draftMode":false,"nodes":{"5046e0da-ce2c-428f-a5d8-3b99143d4ce3":{"id":"5046e0da-ce2c-428f-a5d8-3b99143d4ce3","type":"input","parentId":null,"source":{"type":"image","image_url":"https://cdn.marble.worldlabs.ai/object/25ddd6ab-931c-480b-a817-cfbb562da980/asset.jpg"},"createdAt":1765323289174,"title":"Moonlit Graveyard Vigil","caption":"The scene is a somber and gothic graveyard at night, captured in a realistic, almost cinematic style, evoking a mood of quiet contemplation and melancholy. Numerous headstones and crypts of varying sizes and designs emerge from the overgrown grass, their weathered surfaces suggesting a long history. Tall, dark trees with skeletal branches stand against the cloudy night sky, their leaves barely visible, enhancing the scene\'s desolate atmosphere. A full, luminous moon hangs high in the sky, casting soft, ethereal light over the entire graveyard, illuminating the intricate carvings on some of the older monuments and the subtle textures of the ground. The ground itself is a mix of patchy grass and fallen leaves, indicating a neglected or aged burial ground, with small, indistinct flora growing in scattered clusters. Pathways, possibly made of worn earth or gravel, wind between the graves, though they are largely obscured by the low light and foliage. A low, stone wall or barrier might enclose the graveyard on one side, separating it from an unseen, silent world beyond. The moon remains a singular, dominant light source, creating long, soft shadows that stretch across the uneven terrain of the cemetery. "},"e132bc85-ecf1-4126-b466-f8c281ebaabf":{"id":"e132bc85-ecf1-4126-b466-f8c281ebaabf","type":"pano","parentId":"5046e0da-ce2c-428f-a5d8-3b99143d4ce3","source":{"type":"generate_world","url":"https://cdn.marble.worldlabs.ai/323bfcc0-086a-4822-acc5-b38b4ddc624d/d51d9ddd-bf33-4ce6-a1e0-b35bacde335b_panos/rgb_0.png","world_id":"323bfcc0-086a-4822-acc5-b38b4ddc624d","status":"complete"},"createdAt":1765323290361},"5d90764a-7356-4c0c-b819-8c6fbdfa4300":{"id":"5d90764a-7356-4c0c-b819-8c6fbdfa4300","type":"world","parentId":"e132bc85-ecf1-4126-b466-f8c281ebaabf","source":{"type":"generate_world","world_id":"323bfcc0-086a-4822-acc5-b38b4ddc624d","spz_urls":{"500k":"https://cdn.marble.worldlabs.ai/323bfcc0-086a-4822-acc5-b38b4ddc624d/514bcf69-1f9e-4fa1-ba82-5e3eacd3aa0e_ceramic_500k.spz","full_res":"https://cdn.marble.worldlabs.ai/323bfcc0-086a-4822-acc5-b38b4ddc624d/7a169623-8993-448d-b0c4-a9780287d0ce_ceramic.spz","100k":"https://cdn.marble.worldlabs.ai/323bfcc0-086a-4822-acc5-b38b4ddc624d/044f6002-c5d9-4064-a690-1ff1a6bb40e2_dust_100k.spz"},"posed_cubemaps_url":"https://cdn.marble.worldlabs.ai/323bfcc0-086a-4822-acc5-b38b4ddc624d/84fb4783-e74f-4676-b825-84834a349437_cubemaps","minimap_url":"https://cdn.marble.worldlabs.ai/323bfcc0-086a-4822-acc5-b38b4ddc624d/4e373e4c-b7c2-4122-aa7f-a27cf6377f8d_minimap.png","minimap_metadata":"[0.0, 1.486802339553833, 13.666599082946778]","status":"complete","mpi_url":"https://cdn.marble.worldlabs.ai/323bfcc0-086a-4822-acc5-b38b4ddc624d/17b7b9f7-1448-4e03-a244-ac51b87bc1a2_dust_mpi","cond_image_url":"https://cdn.marble.worldlabs.ai/323bfcc0-086a-4822-acc5-b38b4ddc624d/307390d3_image_prompt_sanitized.png"},"createdAt":1765323290361}}}},"update_mask":["metadata"]}' \ No newline at end of file diff --git a/crates/api_clients/world_labs_client/src/requests/_metadata/r7_object_response.txt b/crates/api_clients/world_labs_client/src/requests/_metadata/r7_object_response.txt new file mode 100644 index 0000000000..0afae8af56 --- /dev/null +++ b/crates/api_clients/world_labs_client/src/requests/_metadata/r7_object_response.txt @@ -0,0 +1,66 @@ +{ + "context": null, + "id": "10ad82a1-5f61-447f-b162-e3da0ef3e5b5", + "display_name": null, + "owner_id": "sVgAQDyH3BfYOBfF6epWTjLHygX2", + "status": "CREATED", + "created_at": 1765323283, + "updated_at": 1765323555, + "object_uri": null, + "mime_type": "application/run+json", + "metadata": { + "version": "0.0.1", + "name": "Moonlit Graveyard Vigil", + "createdAt": 1765323283075, + "updatedAt": 1765323555619, + "useAdvancedEditing": false, + "draftMode": false, + "nodes": { + "5046e0da-ce2c-428f-a5d8-3b99143d4ce3": { + "id": "5046e0da-ce2c-428f-a5d8-3b99143d4ce3", + "type": "input", + "parentId": null, + "source": { + "type": "image", + "image_url": "https://cdn.marble.worldlabs.ai/object/25ddd6ab-931c-480b-a817-cfbb562da980/asset.jpg" + }, + "createdAt": 1765323289174, + "title": "Moonlit Graveyard Vigil", + "caption": "The scene is a somber and gothic graveyard at night, captured in a realistic, almost cinematic style, evoking a mood of quiet contemplation and melancholy. Numerous headstones and crypts of varying sizes and designs emerge from the overgrown grass, their weathered surfaces suggesting a long history. Tall, dark trees with skeletal branches stand against the cloudy night sky, their leaves barely visible, enhancing the scene's desolate atmosphere. A full, luminous moon hangs high in the sky, casting soft, ethereal light over the entire graveyard, illuminating the intricate carvings on some of the older monuments and the subtle textures of the ground. The ground itself is a mix of patchy grass and fallen leaves, indicating a neglected or aged burial ground, with small, indistinct flora growing in scattered clusters. Pathways, possibly made of worn earth or gravel, wind between the graves, though they are largely obscured by the low light and foliage. A low, stone wall or barrier might enclose the graveyard on one side, separating it from an unseen, silent world beyond. The moon remains a singular, dominant light source, creating long, soft shadows that stretch across the uneven terrain of the cemetery. " + }, + "e132bc85-ecf1-4126-b466-f8c281ebaabf": { + "id": "e132bc85-ecf1-4126-b466-f8c281ebaabf", + "type": "pano", + "parentId": "5046e0da-ce2c-428f-a5d8-3b99143d4ce3", + "source": { + "type": "generate_world", + "url": "https://cdn.marble.worldlabs.ai/323bfcc0-086a-4822-acc5-b38b4ddc624d/d51d9ddd-bf33-4ce6-a1e0-b35bacde335b_panos/rgb_0.png", + "world_id": "323bfcc0-086a-4822-acc5-b38b4ddc624d", + "status": "complete" + }, + "createdAt": 1765323290361 + }, + "5d90764a-7356-4c0c-b819-8c6fbdfa4300": { + "id": "5d90764a-7356-4c0c-b819-8c6fbdfa4300", + "type": "world", + "parentId": "e132bc85-ecf1-4126-b466-f8c281ebaabf", + "source": { + "type": "generate_world", + "world_id": "323bfcc0-086a-4822-acc5-b38b4ddc624d", + "spz_urls": { + "500k": "https://cdn.marble.worldlabs.ai/323bfcc0-086a-4822-acc5-b38b4ddc624d/514bcf69-1f9e-4fa1-ba82-5e3eacd3aa0e_ceramic_500k.spz", + "full_res": "https://cdn.marble.worldlabs.ai/323bfcc0-086a-4822-acc5-b38b4ddc624d/7a169623-8993-448d-b0c4-a9780287d0ce_ceramic.spz", + "100k": "https://cdn.marble.worldlabs.ai/323bfcc0-086a-4822-acc5-b38b4ddc624d/044f6002-c5d9-4064-a690-1ff1a6bb40e2_dust_100k.spz" + }, + "posed_cubemaps_url": "https://cdn.marble.worldlabs.ai/323bfcc0-086a-4822-acc5-b38b4ddc624d/84fb4783-e74f-4676-b825-84834a349437_cubemaps", + "minimap_url": "https://cdn.marble.worldlabs.ai/323bfcc0-086a-4822-acc5-b38b4ddc624d/4e373e4c-b7c2-4122-aa7f-a27cf6377f8d_minimap.png", + "minimap_metadata": "[0.0, 1.486802339553833, 13.666599082946778]", + "status": "complete", + "mpi_url": "https://cdn.marble.worldlabs.ai/323bfcc0-086a-4822-acc5-b38b4ddc624d/17b7b9f7-1448-4e03-a244-ac51b87bc1a2_dust_mpi", + "cond_image_url": "https://cdn.marble.worldlabs.ai/323bfcc0-086a-4822-acc5-b38b4ddc624d/307390d3_image_prompt_sanitized.png" + }, + "createdAt": 1765323290361 + } + } + } +} \ No newline at end of file diff --git a/crates/api_clients/world_labs_client/src/requests/mod.rs b/crates/api_clients/world_labs_client/src/requests/mod.rs new file mode 100644 index 0000000000..e69de29bb2 diff --git a/crates/api_clients/world_labs_client/src/test_utils/get_test_cookies.rs b/crates/api_clients/world_labs_client/src/test_utils/get_test_cookies.rs new file mode 100644 index 0000000000..6f3e512fec --- /dev/null +++ b/crates/api_clients/world_labs_client/src/test_utils/get_test_cookies.rs @@ -0,0 +1,15 @@ +use crate::credentials::world_labs_cookies::WorldLabsCookies; +use errors::AnyhowResult; +use std::fs::read_to_string; + +#[cfg(test)] +pub fn get_test_cookies() -> AnyhowResult { + let cookies = read_to_string("/home/bt/Artcraft/credentials/world_lab_cookies.txt")?; + let cookies = cookies.trim().to_string(); + Ok(cookies) +} + +pub fn get_typed_test_cookies() -> AnyhowResult { + let cookies = get_test_cookies()?; + Ok(WorldLabsCookies::new(cookies)) +} diff --git a/crates/api_clients/world_labs_client/src/test_utils/mod.rs b/crates/api_clients/world_labs_client/src/test_utils/mod.rs new file mode 100644 index 0000000000..695e9f34ac --- /dev/null +++ b/crates/api_clients/world_labs_client/src/test_utils/mod.rs @@ -0,0 +1 @@ +pub mod get_test_cookies; \ No newline at end of file