Skip to main content

world-labs-multi-image

Multi-image input with direction control and auto layout for world generation

معلومات المصدر

المستودع
CloudAI-X/world-labs-skills
آخر نشاط في المصدر
٢٢ يناير ٢٠٢٦ في ١٨:٢٤
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
٤
التفرعات
٢

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
world-labs-multi-image
description
Multi-image input with direction control and auto layout for world generation
allowed-tools
["Bash","WebFetch"]
# World Labs Multi-Image Input Generate 3D worlds from multiple reference images with precise directional control or automatic layout. ## Quick Reference | Mode | Images | Overlap | Best For | | --------------------- | ------- | ------------------------- | ---------------------------------- | | **Direction Control** | Up to 4 | Non-overlapping preferred | Creative connections between views | | **Auto Layout** | Up to 8 | Required | Reconstructing existing spaces | ### Credits | Model | Credits | | --------------- | ------- | | Marble 0.1-plus | 1,600 | | Marble 0.1-mini | 250 | ## Direction Control Mode Use when you want explicit control over image placement. **Non-overlapping images** are preferred—the model creatively fills spaces between views. ### Azimuth Angles | Azimuth | Direction | Description | | ------- | --------- | ----------------------------------- | | `0` | Front | Primary view, camera facing forward | | `90` | Right | View from right side | | `180` | Back | Opposite of front view | | `270` | Left | View from left side | Any value 0-360 is supported for non-cardinal directions. ### Visual Reference ``` 0° (Front) ↑ | 270° (Left) ←─┼─→ 90° (Right) | ↓ 180° (Back) ``` ### API Usage (Direction Control) ```json { "model": "Marble 0.1-plus", "world_prompt": { "type": "multi-image", "multi_image_prompt": [ { "azimuth": 0, "content": { "source": "media_asset", "media_asset_id": "front_image_id" } }, { "azimuth": 90, "content": { "source": "media_asset", "media_asset_id": "right_image_id" } }, { "azimuth": 180, "content": { "source": "media_asset", "media_asset_id": "back_image_id" } }, { "azimuth": 270, "content": { "source": "media_asset", "media_asset_id": "left_image_id" } } ], "text_prompt": "A grand Victorian mansion interior" } } ``` ### Using Public URLs ```json { "model": "Marble 0.1-plus", "world_prompt": { "type": "multi-image", "multi_image_prompt": [ { "azimuth": 0, "content": { "source": "uri", "uri": "https://example.com/front.jpg" } }, { "azimuth": 180, "content": { "source": "uri", "uri": "https://example.com/back.jpg" } } ], "text_prompt": "A cozy living room" } } ``` ### Best Practices for Direction Control ✅ **Non-overlapping images**: Model creatively fills gaps between views ✅ **Consistent style**: All images should match aesthetically ✅ **Same lighting**: Consistent light direction across all images ✅ **Complementary angles**: Choose angles that tell a complete story ## Auto Layout Mode Use when you have multiple overlapping images from the same space. The model automatically positions images. ### Requirements for Auto Layout | Requirement | Details | | ------------ | ----------------------------------------------- | | Aspect ratio | **All images MUST have identical aspect ratio** | | Resolution | **All images MUST have identical resolution** | | Location | All images from the same space | | Overlap | Visual overlap between images required | | Lighting | Consistent lighting and color temperature | ### API Usage (Auto Layout) Auto Layout is primarily a UI feature. In API, omit azimuth values: ```json { "model": "Marble 0.1-plus", "world_prompt": { "type": "multi-image", "multi_image_prompt": [ { "content": { "source": "media_asset", "media_asset_id": "image_1_id" } }, { "content": { "source": "media_asset", "media_asset_id": "image_2_id" } }, { "content": { "source": "media_asset", "media_asset_id": "image_3_id" } } ], "text_prompt": "A mystical forest clearing" } } ``` ## Python Example ```python import requests def generate_world_multi_image( api_key: str, images: list[dict], # [{"path": "...", "azimuth": 0}, ...] or [{"path": "..."}] prompt: str = None ): base_url = "https://api.worldlabs.ai/marble/v1" headers = {"WLT-Api-Key": api_key, "Content-Type": "application/json"} multi_image_prompt = [] for img in images: # Get extension ext = img["path"].lower().split('.')[-1] if ext == "jpeg": ext = "jpg" # Prepare upload prep = requests.post( f"{base_url}/media-assets:prepare_upload", headers=headers, json={"file_name": img["path"].split('/')[-1], "kind": "image", "extension": ext} ).json() media_asset_id = prep["media_asset"]["media_asset_id"] upload_url = prep["upload_info"]["upload_url"] # Upload file content_types = {"jpg": "image/jpeg", "png": "image/png", "webp": "image/webp"} with open(img["path"], 'rb') as f: requests.put(upload_url, headers={"Content-Type": content_types.get(ext, "image/jpeg")}, data=f.read()) # Build image reference image_entry = { "content": { "source": "media_asset", "media_asset_id": media_asset_id } } if "azimuth" in img: image_entry["azimuth"] = img["azimuth"] multi_image_prompt.append(image_entry) # Build world_prompt world_prompt = { "type": "multi-image", "multi_image_prompt": multi_image_prompt } if prompt: world_prompt["text_prompt"] = prompt # Generate response = requests.post( f"{base_url}/worlds:generate", headers=headers, json={"model": "Marble 0.1-plus", "world_prompt": world_prompt} ) return response.json()["operation_id"] # Usage with direction control operation_id = generate_world_multi_image( "your_api_key", [ {"path": "front_view.jpg", "azimuth": 0}, {"path": "right_view.jpg", "azimuth": 90}, {"path": "back_view.jpg", "azimuth": 180}, {"path": "left_view.jpg", "azimuth": 270}, ], prompt="A cozy cabin interior" ) # Usage with auto layout (no azimuth) operation_id = generate_world_multi_image( "your_api_key", [{"path": f"ref_{i}.jpg"} for i in range(6)], prompt="An enchanted garden" ) ``` ## Common Use Cases ### Interior Room (4 corners) ```json { "world_prompt": { "type": "multi-image", "multi_image_prompt": [ { "azimuth": 45, "content": { "source": "media_asset", "media_asset_id": "corner_1" } }, { "azimuth": 135, "content": { "source": "media_asset", "media_asset_id": "corner_2" } }, { "azimuth": 225, "content": { "source": "media_asset", "media_asset_id": "corner_3" } }, { "azimuth": 315, "content": { "source": "media_asset", "media_asset_id": "corner_4" } } ] } } ``` ### Street Scene (looking both ways) ```json { "world_prompt": { "type": "multi-image", "multi_image_prompt": [ { "azimuth": 0, "content": { "source": "media_asset", "media_asset_id": "street_north" } }, { "azimuth": 180, "content": { "source": "media_asset", "media_asset_id": "street_south" } } ] } } ``` ## Comparison: Direction Control vs Auto Layout | Aspect | Direction Control | Auto Layout | | ------------ | ------------------------- | -------------------- | | Max images | 4 | 8 | | Overlap | Non-overlapping preferred | Required | | Aspect ratio | Can vary | Must be identical | | Resolution | Can vary | Must be identical | | Same space | Recommended | Required | | Use case | Creative connections | Space reconstruction | ## Troubleshooting | Issue | Cause | Solution | | ------------------- | ----------------------- | ------------------------------------------- | | Seams between views | Inconsistent lighting | Match exposure and white balance |
عرض على GitHub
ملف SKILL.md هذا كبير جدا، لذلك يعرض SkillsMP القسم الاول فقط هنا. عرض على GitHub