Skip to main content

Meitu OpenAPI command-line tool.

Project description

Meitu CLI

meitu is now a Python CLI for Meitu OpenAPI image tasks. It is the main runtime used by the skills in this repository.

It supports:

  • local or environment-based credential loading
  • auth verify
  • generate for image effect calls
  • automatic task polling
  • result download with --download-dir
  • local file upload through the strategy service

Install

Recommended for external CLI users:

pipx install meitu-ai

For local repository usage before the package is published:

cd /Users/lichao/openapi-cli/cli
pipx install .

Alternative for virtual environments or advanced users:

cd /Users/lichao/openapi-cli/cli
pip install .

For local development:

cd /Users/lichao/openapi-cli/cli
make develop

That installs the package in editable mode and makes the meitu command available in the current Python environment.

Configure

You can save credentials locally:

meitu config set-ak --value your_access_key
meitu config set-sk --value your_secret_key

Or provide them through environment variables:

export OPENAPI_ACCESS_KEY=your_access_key
export OPENAPI_SECRET_KEY=your_secret_key
export OPENAPI_BASE_URL=openapi.meitu.com

Environment variables take priority over the local credentials file.

The local credentials file is stored at ~/.meitu/credentials.json.

Built-in defaults:

  • verify endpoint: /demo/authorization
  • image generate endpoint: /api/v1/sdk/push
  • task status endpoint: /api/v1/sdk/status

OPENAPI_BASE_URL can be written as openapi.meitu.com; the CLI normalizes it to https://openapi.meitu.com.

Advanced Overrides

For normal external usage, you usually only need:

  • OPENAPI_ACCESS_KEY
  • OPENAPI_SECRET_KEY
  • OPENAPI_BASE_URL if you want to override the default API domain

The strategy service used for local file upload is built in and does not need to be configured in normal usage.

If you are testing against a private environment or a non-default deployment, the CLI also supports these advanced overrides:

  • OPENAPI_STRATEGY_BASE_URL

The strategy path and strategy type use built-in defaults and normally do not need to be configured:

  • strategy path: /ai/token_policy
  • strategy type: mtai

Example:

export OPENAPI_STRATEGY_BASE_URL=https://strategy.example.com

Usage

Verify credentials:

OPENAPI_BASE_URL=openapi.meitu.com meitu auth verify --json

Run intelligent cutout with a local file:

meitu generate \
  --task /v1/photo_scissors/sod \
  --image-file ./test.jpg \
  --params-json '{"parameter":{"nMask":false,"model_type":0}}' \
  --download-dir ./outputs \
  --json

Run a task with an explicit init_images array:

meitu generate \
  --task /v1/photo_scissors/sod \
  --task-type mtlab \
  --init-images-json '[{"media_data":"./test.jpg","resource_type":"file","profile":{"media_profiles":{"media_data_type":"url"},"version":"v1"}}]' \
  --params-json '{"parameter":{"nMask":false,"model_type":0}}' \
  --download-dir ./outputs \
  --json

Run a task with a remote image URL:

meitu generate \
  --task /v1/photo_scissors/sod \
  --image-url https://example.com/test.jpg \
  --params-json '{"parameter":{"nMask":false,"model_type":0}}' \
  --json

Wait for an existing task manually:

meitu task wait t_xxx --download-dir ./outputs --json

Task Behavior

  • meitu generate automatically polls /api/v1/sdk/status when the create call returns a task_id
  • default polling interval: 1s
  • status = 0, 1, or 9 means the task is still running
  • status = 10 means the task succeeded
  • status = 2 means the task failed
  • any other non-success status is treated as a failure state

When --download-dir is used, the CLI downloads every result image URL it receives and returns downloaded_files in JSON output.

Development

cd /Users/lichao/openapi-cli/cli
make test
make package

make test runs a syntax smoke test and a basic CLI help check.

make package builds a Python source distribution and wheel. If python -m build is not installed yet, install it first with python3 -m pip install build.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

meitu_ai-0.1.1.tar.gz (11.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

meitu_ai-0.1.1-py3-none-any.whl (14.1 kB view details)

Uploaded Python 3

File details

Details for the file meitu_ai-0.1.1.tar.gz.

File metadata

  • Download URL: meitu_ai-0.1.1.tar.gz
  • Upload date:
  • Size: 11.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.6

File hashes

Hashes for meitu_ai-0.1.1.tar.gz
Algorithm Hash digest
SHA256 3627b009f68ac6a08bfaffcbd071cf77e5726b3875d428432a5faf4e3639abb7
MD5 2d1245397a17ef8a21b63ca8f0731fa7
BLAKE2b-256 d6e7f035b0be51aa0c8cf90d26b28eb78b15889e2c194fcbf67fc940d3d3744e

See more details on using hashes here.

File details

Details for the file meitu_ai-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: meitu_ai-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 14.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.6

File hashes

Hashes for meitu_ai-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9dc2c36b035a7ce3bad317d0ea578eecab40aedb1d520298991af88d4cf3ec8d
MD5 4961b5ede1bb6a0eb7b6df98d7021c2d
BLAKE2b-256 851bf0971888fc17eacb721ff8a09068697a3bfd90cc166e0ae8f92b6570c2c7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page