设计与多媒体

lux3d

试用

基于 Lux3D 全球接口,从图像或文本生成 3D 模型,或为已有网格重绘材质。

它能做什么

提供三条异步工作流:图像转 3D、文本转 3D、对已有模型进行材质重绘。提交任务后轮询状态,再下载结果文件,支持 zip、glb、usdz、obj、fbx 等格式(G1 还支持 ply 3DGS)。模型版本包括 v1.0-pro、v2.0-preview、默认的 v3.0-standard,以及支持 1-32 张多视图输入的快速 Beta 模型 G1。文本生成支持 photorealistic、cartoon、anime、hand_painted、cyberpunk、fantasy、glass 七种风格。需在 labs.aholo3d.com 申请 LUX3D_API_KEY 并配置环境变量。

什么时候用它

  • 把单张商品图转为 GLB 或 USDZ 模型
  • 由文字描述生成 3D 资产
  • 用文字 + 参考图生成 3D 模型
  • 为已有 GLB 网格重绘材质

技能文档

What This Skill Does

Lux3D generates 3D assets through three documented asynchronous workflows:

  • Image to 3D: submit an input image, poll the task, then download the ZIP result.
  • Text to 3D: submit a prompt plus style, optionally with a reference image, poll the task, then download the ZIP result.
  • Material Repaint: submit a reference image and a model URL, poll the task, then download the regenerated model result.

All workflows require LUX3D_API_KEY, which is the API key obtained from https://labs.aholo3d.com/api-keys.

API Endpoint

  • Global Endpoint: https://api.aholo3d.com/global

Concurrency Limits

Lux3D limits the number of generation tasks that can be in progress at the same time based on the account plan. Image-to-3D, text-to-3D, and material repaint tasks share the same account-level concurrency quota.

Account TypeMaximum Concurrent In-progress Tasks
Free account1
Pro account2

If a task creation endpoint returns GENERATION_CONCURRENCY_LIMIT_EXCEEDED, the account has reached its concurrency limit. No new task is created and no credits are consumed. Wait for an existing task to finish before retrying, or upgrade the account for higher concurrency.

Setup

Apply for an API Key

Set Environment Variables

Required:

export LUX3D_API_KEY="your_api_key"

Optional - Override Base URL:

export LUX3D_BASE_URL="https://api.aholo3d.com/global"

Optional - Specify Region:

export LUX3D_REGION="international"

Python Usage

G1 Image-to-3D

G1 accepts one local image through image_path and additional views through imagePaths, for a total of 1-32 images. The client encodes local images as complete Base64 Data URLs. Multiple views are sent in imgs; one view uses img.

from skill.lux3d_client import generate_3d_model

result = generate_3d_model(
    "path/to/view-1.png",
    imagePaths=["path/to/view-2.png"],
    version="G1",
    outputFormat=["zip"],
    faceCount=200000,
    enablePbr=True,
    textureSize=1000,
)

G1 supports outputFormat=["zip"], ["glb"], and ["ply"]. glb returns tex_mesh.glb when PBR is enabled and mesh.glb when enablePbr=False; ply returns gaussian.ply; zip or an empty or omitted list returns results.zip; a combined request returns and downloads multiple artifacts in format order. faceCount affects Mesh only and does not affect PLY 3DGS. G1 defaults are faceCount=200000, enablePbr=True, and textureSize=1000.

Image to 3D

from skill.lux3d_client import generate_3d_model

result = generate_3d_model("path/to/input.jpg", version="v2.0-preview")
print(result)

Specify the target face count (optional; affects Mesh outputs only and does not affect 3DGS outputs; supported by v2.0-preview, v3.0-standard, and G1 in the range [10000, 500000]; when omitted, v2.0-preview and v3.0-standard use 60000, while G1 uses 200000; v1.0-pro ignores this parameter):

result = generate_3d_model("path/to/input.jpg", version="v3.0-standard", faceCount=100000)
print(result)

Or explicitly select the Global endpoint with the international region value:

result = generate_3d_model("path/to/input.jpg", region="international", version="v2.0-preview")
print(result)

Text to 3D

from skill.lux3d_client import generate_text_to_3d

result = generate_text_to_3d(
    "Generate a high-quality 3D wooden chair",
    style="photorealistic",
    version="v2.0-preview",
)
print(result)

Specify target face count (affects Mesh only, not 3DGS; effective for v2.0-preview / v3.0-standard / G1):

result = generate_text_to_3d(
    "Generate a high-quality 3D wooden chair",
    style="photorealistic",
    version="v3.0-standard",
    faceCount=100000,
)
print(result)

Text plus Reference Image

G1 text-to-3D uses the same outputFormat, faceCount, enablePbr, and textureSize options:

result = generate_text_to_3d(
    "Generate a modern wooden dining chair",
    version="G1",
    outputFormat=["glb"],
    enablePbr=False,
)
from skill.lux3d_client import generate_text_to_3d

result = generate_text_to_3d(
    "Generate a premium ceramic vase with a glossy glaze",
    style="glass",
    image_path="path/to/reference.png",
    version="v2.0-preview",
)
print(result)

Low-level Task APIs

from skill.lux3d_client import (
    create_task,
    create_text_to_3d_task,
    create_material_transfer_task,
    query_task_status,
    download_model,
)

image_task_id = create_task("path/to/input.jpg")
text_task_id = create_text_to_3d_task(
    "Generate a stylized toy robot",
    style="cartoon",
    image_path="path/to/reference.png",
)
material_task_id = create_material_transfer_task(
    "path/to/reference.png",
    meshUrl="https://qhstaticssl.kujiale.com/application/octetstream/1784776896628/material_transfer_model.glb",
)

image_model_url = query_task_status(image_task_id)
text_model_url = query_task_status(text_task_id)
material_model_url = query_task_status(material_task_id)

download_model(image_model_url, "image_to_3d.zip")
download_model(text_model_url, "text_to_3d.zip")
download_model(material_model_url, "material_transfer.zip")

Material Repaint

from skill.lux3d_client import generate_material_transfer

result = generate_material_transfer(
    "path/to/reference.png",
    meshUrl="https://qhstaticssl.kujiale.com/application/octetstream/1784776896628/material_transfer_model.glb",
    version="v2.0-preview",
)
print(result)

Command Line Usage

Region Selection

Use --region or -r to select the Global endpoint with the international region value (default):

python lux3d_client.py --region international image input.jpg output.zip

Or omit the region flag; Global is the default endpoint (international region value):

python lux3d_client.py image input.jpg output.zip

Image to 3D

# Historical form (default region)
python lux3d_client.py input.jpg output.zip --version v3.0-standard

# Explicit command
python lux3d_client.py image input.jpg output.zip --version v3.0-standard

Text to 3D

python lux3d_client.py text "Generate a high-quality 3D wooden chair" output.zip --style photorealistic --version v3.0-standard

Text to 3D with Reference Image

python lux3d_client.py text "Generate a futuristic desk lamp" output.zip --style cyberpunk --image ref.png --version v3.0-standard

Material Repaint

python lux3d_client.py material reference.png output.zip --mesh-url https://qhstaticssl.kujiale.com/application/octetstream/1784776896628/material_transfer_model.glb --version v3.0-standard

Text-to-3D Styles

Supported styles:

StyleDescription
photorealisticPhotorealistic quality
cartoonCartoon style
animeAnime style
hand_paintedHand-painted style
cyberpunkCyberpunk theme
fantasyFantasy style
glassGlass material

Output Format

Pass outputFormat as a string for backward compatibility or as a list for the unified API field outputFormat. v2.0-preview and v3.0-standard support zip, glb, usdz, obj_zip, and fbx_zip. G1 supports only zip, glb, and ply. When a result contains multiple URLs, downloading without a selected format defaults to zip.

Lux3D Version

You can specify the Lux3D version via the version parameter:

VersionDescriptionOutput Format
v3.0-standardDefault version, adds colored transparent material support, reduces color deviation in generated models, improves material quality, preserves text and texture details, and adds custom face count support; supports five-format output.zip + .glb + .usdz + _obj.zip + _fbx.zip
v2.0-preview2.0 model architecture with enhanced text and texture detail preservation, no transparent material support.zip + .glb + .usdz + _obj.zip + _fbx.zip
v1.0-proFirst-generation model with complete PBR material properties, supports transparent material generationZIP result
G1Fast beta model with single-view or multi-view input, optional PBR mesh, and 3DGS output; excels at generating plush-material 3DGS assetsresults.zip, tex_mesh.glb/mesh.glb, or gaussian.ply

Important: If the version parameter is not provided in the request, the system will default to v3.0-standard. Custom face count: faceCount is optional and specifies the target face count for image-to-3D / text-to-3D Mesh generation. It affects Mesh outputs only and does not affect 3DGS outputs. v2.0-preview, v3.0-standard, and G1 support custom face counts in the range [10000, 500000]. When omitted, v2.0-preview and v3.0-standard use 60000, while G1 uses 200000; v1.0-pro ignores this parameter.

All generation APIs (image-to-3D, text-to-3D, material repaint) support the version parameter.

Specify Version in Python

# Image to 3D with version
result = generate_3d_model("path/to/input.jpg", version="v3.0-standard")

# Text to 3D with version
result = generate_text_to_3d(
    "Generate a high-quality 3D wooden chair",
    style="photorealistic",
    version="v3.0-standard",
)

# Material repaint with version
result = generate_material_transfer(
    "path/to/reference.png",
    meshUrl="https://qhstaticssl.kujiale.com/application/octetstream/1784776896628/material_transfer_model.glb",
    version="v3.0-standard",
)

Specify Version in Command Line

# Image to 3D with version
python lux3d_client.py image input.jpg output.zip --version v3.0-standard

# Text to 3D with version
python lux3d_client.py text "Generate a high-quality 3D wooden chair" output.zip --style photorealistic --version v3.0-standard

# Material repaint with version
python lux3d_client.py material reference.png output.zip --mesh-url https://qhstaticssl.kujiale.com/application/octetstream/1784776896628/material_transfer_model.glb --version v3.0-standard

Output

v3.0-standard Multi-format Output

The v3.0-standard version supports five model format outputs. You can choose the appropriate format based on your use case:

FormatDescriptionUse Case
.zipPackaged result containing GLB model and separate PBR texture assetsMaterial editing or custom rendering pipelines
.glbGLB model with embedded materialsWeb rendering, Unity/Unreal engine import, most 3D software
.usdzApple AR native formatiOS/macOS AR Quick Look, ARKit applications
_obj.zipOBJ + MTL + BaseColor textures packed in a ZIPCommon 3D software and DCC tools
_fbx.zipFBX model and .fbm texture directory packed in a ZIPMaya, 3ds Max, Blender, and other mainstream DCC tools

Download Different Formats

Choose formats at task creation time through list-form outputFormat. Do not append ?format= to a result URL:

result = generate_3d_model(
    "path/to/input.jpg",
    version="v3.0-standard",
    outputFormat=["glb"],
)

v2.0-preview and v3.0-standard support zip, glb, usdz, obj_zip, and fbx_zip. Classic optional slots that were not requested may return NOT_REQUESTED; a multi-format request downloads ZIP by default.

v2.0-preview Multi-format Output

The v2.0-preview version supports five model format outputs:

FormatDescriptionUse Case
.zipPackaged result containing GLB model and separate PBR texture assetsMaterial editing or custom rendering pipelines
.glbGLB model with embedded materialsWeb rendering, Unity/Unreal engine import, most 3D software
.usdzApple AR native formatiOS/macOS AR Quick Look, ARKit applications
_obj.zipOBJ + MTL + BaseColor textures packed in a ZIPCommon 3D software and DCC tools
_fbx.zipFBX model and .fbm texture directory packed in a ZIPMaya, 3ds Max, Blender, and other DCC tools

v1.0-pro Output

The v1.0-pro version returns a single ZIP result containing:

  • A GLB model file
  • Complete PBR texture assets (with transparent material support)

Result Validity

All format download links are valid for 2 hours, please download promptly.

Notes

  • Authentication uses Authorization header: Authorization:
  • Image-to-3D, text-to-3D, and material repaint use different create endpoints
  • All three workflows share the same task query endpoint
  • prompt and style are required for text-to-3D
  • img is optional for text-to-3D and should be a full data URL after encoding
  • Material repaint requires img (reference image) and meshUrl (model GLB file URL) parameters

Requirements

pip install Pillow requests

References

常见问题

需要什么 API Key?
需要在 https://labs.aholo3d.com/api-keys 申请 LUX3D_API_KEY,并通过 LUX3D_API_KEY 环境变量提供。
默认使用哪个模型版本?
默认 v3.0-standard,支持 zip、glb、usdz、obj_zip、fbx_zip 五种输出格式,自定义面数范围为 10000-500000。
G1 模型有什么特点?
快速 Beta 模型,支持 1-32 张单/多视图输入,可选 PBR 网格,可通过 gaussian.ply 输出 3DGS。
并发任务数有上限吗?
免费账户 1 个、Pro 账户 2 个并发任务,图像、文本、材质重绘共用同一配额。超出时返回 GENERATION_CONCURRENCY_LIMIT_EXCEEDED 且不消耗额度。

相关技能

从文字、草图、照片或清单生成可用的 GLB 3D 模型,单件或批量皆可,覆盖游戏、商品展示和 AR/VR 场景。

98 次安装3 星标

Generate images from text with a free-quota-first multi-provider workflow. Use this skill when a user asks for text-to-image generation that needs provider r...

33 次安装

Use when the user wants to generate or edit images with Google's Nanobanana/Gemini image models using the official Gemini API shape, or when they need public...

33 次安装

Generate images with Alibaba Cloud Model Studio Z-Image Turbo (z-image-turbo) via DashScope multimodal-generation API. Use when creating text-to-image output...

62 次安装

通过文本或参考图生成与编辑图像,支持多模型路由、角色一致性以及电商产品图拍摄。

536 次安装10 星标

Generate AI images and videos using top-tier models including Sora 2, Kling 2.6, Seedance 2.0, Nano Banana Pro, Veo 3.1 and more. Supports text-to-image, tex...

31 次安装