modelslab-model-discovery
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseModelsLab Model Discovery & Usage
ModelsLab模型发现与使用
Search 50,000+ AI models, check usage analytics, and monitor generation history via the Agent Control Plane API.
通过Agent Control Plane API搜索50000+个AI模型,查看使用分析数据并监控生成历史。
When to Use This Skill
何时使用该Skill
- Search for models by name, feature, provider, or tags
- Find the best model for a specific task (image, video, audio, LLM)
- Get model details (capabilities, parameters, pricing)
- Check API usage summary and credit consumption
- View generation history with date filters
- Browse available model filters, tags, and providers
- 按名称、功能、提供商或标签搜索模型
- 为特定任务(图像、视频、音频、LLM)找到最合适的模型
- 获取模型详情(功能、参数、定价)
- 查看API使用汇总和积分消耗情况
- 按日期筛选查看生成历史
- 浏览可用的模型筛选条件、标签和提供商
Authentication
身份验证
All endpoints require a bearer token.
Base URL: https://modelslab.com/api/agents/v1
Authorization: Bearer <agent_access_token>Get a token via the skill or .
modelslab-account-managementPOST /auth/login所有接口都需要Bearer令牌。
Base URL: https://modelslab.com/api/agents/v1
Authorization: Bearer <agent_access_token>可通过 Skill或获取令牌。
modelslab-account-managementPOST /auth/loginHelper
辅助代码
python
import requests
BASE = "https://modelslab.com/api/agents/v1"
def headers(token):
return {"Authorization": f"Bearer {token}"}python
import requests
BASE = "https://modelslab.com/api/agents/v1"
def headers(token):
return {"Authorization": f"Bearer {token}"}Model Search
模型搜索
Search Models
搜索模型
python
def search_models(token, search=None, feature=None, provider=None,
model_type=None, base_model=None, tags=None,
sort="recommended", per_page=20):
"""Search the ModelsLab model library.
Args:
search: Free text search query
feature: Filter by feature — "imagen", "video_fusion", "audio_gen",
"llmaster", "threed", "interior", "deepfake"
provider: Filter by provider name
model_type: Filter by model type
base_model: Filter by base model (e.g., "SDXL", "Flux")
tags: Comma-separated tags
sort: "recommended" (default), "newest", "popular"
per_page: Results per page (default 20)
"""
params = {"sort": sort, "per_page": per_page}
if search: params["search"] = search
if feature: params["feature"] = feature
if provider: params["provider"] = provider
if model_type: params["model_type"] = model_type
if base_model: params["base_model"] = base_model
if tags: params["tags"] = tags
resp = requests.get(
f"{BASE}/models",
headers=headers(token),
params=params
)
return resp.json()["data"]python
def search_models(token, search=None, feature=None, provider=None,
model_type=None, base_model=None, tags=None,
sort="recommended", per_page=20):
"""搜索ModelsLab模型库。
参数:
search: 自由文本搜索关键词
feature: 按功能筛选 — "imagen", "video_fusion", "audio_gen",
"llmaster", "threed", "interior", "deepfake"
provider: 按提供商名称筛选
model_type: 按模型类型筛选
base_model: 按基础模型筛选(例如:"SDXL", "Flux")
tags: 逗号分隔的标签
sort: 排序方式,"recommended"(默认), "newest", "popular"
per_page: 每页结果数量(默认20)
"""
params = {"sort": sort, "per_page": per_page}
if search: params["search"] = search
if feature: params["feature"] = feature
if provider: params["provider"] = provider
if model_type: params["model_type"] = model_type
if base_model: params["base_model"] = base_model
if tags: params["tags"] = tags
resp = requests.get(
f"{BASE}/models",
headers=headers(token),
params=params
)
return resp.json()["data"]Search for Flux image models
搜索Flux图像模型
models = search_models(token, search="flux", feature="imagen", sort="popular")
for m in models:
print(f"{m['model_id']}: {m['name']}")
undefinedmodels = search_models(token, search="flux", feature="imagen", sort="popular")
for m in models:
print(f"{m['model_id']}: {m['name']}")
undefinedSearch by Feature
按功能搜索
python
undefinedpython
undefinedImage generation models
图像生成模型
image_models = search_models(token, feature="imagen", per_page=10)
image_models = search_models(token, feature="imagen", per_page=10)
Video generation models
视频生成模型
video_models = search_models(token, feature="video_fusion", per_page=10)
video_models = search_models(token, feature="video_fusion", per_page=10)
Audio generation models
音频生成模型
audio_models = search_models(token, feature="audio_gen", per_page=10)
audio_models = search_models(token, feature="audio_gen", per_page=10)
LLM / Chat models
LLM / 对话模型
llm_models = search_models(token, feature="llmaster", per_page=10)
llm_models = search_models(token, feature="llmaster", per_page=10)
3D generation models
3D生成模型
threed_models = search_models(token, feature="threed", per_page=10)
threed_models = search_models(token, feature="threed", per_page=10)
Interior design models
室内设计模型
interior_models = search_models(token, feature="interior", per_page=10)
undefinedinterior_models = search_models(token, feature="interior", per_page=10)
undefinedGet Model Details
获取模型详情
python
def get_model_detail(token, model_id):
"""Get full details for a specific model.
Returns: capabilities, endpoint configurations with agent-friendly
`parameters` JSON Schema (types, constraints, defaults), pricing, etc.
"""
resp = requests.get(
f"{BASE}/models/{model_id}",
headers=headers(token)
)
return resp.json()["data"]python
def get_model_detail(token, model_id):
"""获取特定模型的完整详情。
返回内容包括:功能、端点配置(含Agent友好的
`parameters` JSON Schema,包括类型、约束、默认值)、定价等。
"""
resp = requests.get(
f"{BASE}/models/{model_id}",
headers=headers(token)
)
return resp.json()["data"]Usage
使用示例
model = get_model_detail(token, "flux-dev")
print(f"Name: {model['name']}")
print(f"Type: {model.get('model_type')}")
print(f"Provider: {model.get('provider')}")
model = get_model_detail(token, "flux-dev")
print(f"名称: {model['name']}")
print(f"类型: {model.get('model_type')}")
print(f"提供商: {model.get('provider')}")
Access agent-friendly parameters for each endpoint
访问每个端点的Agent友好型参数
for ep in model.get("endpoint_configurations", []):
params = ep.get("parameters")
if params:
print(f"\nEndpoint: {ep['name']}")
for name, schema in params["properties"].items():
print(f" {name}: {schema['type']}", end="")
if "enum" in schema:
print(f" (options: {schema['enum']})", end="")
if "default" in schema:
print(f" [default: {schema['default']}]", end="")
print()
undefinedfor ep in model.get("endpoint_configurations", []):
params = ep.get("parameters")
if params:
print(f"\n端点: {ep['name']}")
for name, schema in params["properties"].items():
print(f" {name}: {schema['type']}", end="")
if "enum" in schema:
print(f" (可选值: {schema['enum']})", end="")
if "default" in schema:
print(f" [默认值: {schema['default']}]", end="")
print()
undefinedBrowse Filters, Tags, Providers
浏览筛选条件、标签、提供商
python
def get_model_filters(token):
"""Get all available filter options (features, types, categories)."""
resp = requests.get(f"{BASE}/models/filters", headers=headers(token))
return resp.json()["data"]
def get_model_tags(token):
"""Get all available model tags."""
resp = requests.get(f"{BASE}/models/tags", headers=headers(token))
return resp.json()["data"]
def get_model_providers(token):
"""Get all model providers."""
resp = requests.get(f"{BASE}/models/providers", headers=headers(token))
return resp.json()["data"]python
def get_model_filters(token):
"""获取所有可用的筛选选项(功能、类型、分类)。"""
resp = requests.get(f"{BASE}/models/filters", headers=headers(token))
return resp.json()["data"]
def get_model_tags(token):
"""获取所有可用的模型标签。"""
resp = requests.get(f"{BASE}/models/tags", headers=headers(token))
return resp.json()["data"]
def get_model_providers(token):
"""获取所有模型提供商。"""
resp = requests.get(f"{BASE}/models/providers", headers=headers(token))
return resp.json()["data"]Usage
使用示例
filters = get_model_filters(token)
tags = get_model_tags(token)
providers = get_model_providers(token)
print(f"Available features: {[f['name'] for f in filters.get('features', [])]}")
print(f"Top tags: {tags[:10]}")
print(f"Providers: {[p['name'] for p in providers]}")
undefinedfilters = get_model_filters(token)
tags = get_model_tags(token)
providers = get_model_providers(token)
print(f"可用功能: {[f['name'] for f in filters.get('features', [])]}")
print(f"热门标签: {tags[:10]}")
print(f"提供商: {[p['name'] for p in providers]}")
undefinedUsage Analytics
使用分析
Usage Summary
使用汇总
python
def get_usage_summary(token):
"""Get overall API usage summary — total calls, credits used, etc."""
resp = requests.get(f"{BASE}/usage/summary", headers=headers(token))
return resp.json()["data"]python
def get_usage_summary(token):
"""获取整体API使用汇总 — 总调用次数、消耗的积分等。"""
resp = requests.get(f"{BASE}/usage/summary", headers=headers(token))
return resp.json()["data"]Usage
使用示例
summary = get_usage_summary(token)
print(f"Total API calls: {summary.get('total_calls', 0)}")
print(f"Credits used: {summary.get('credits_used', 0)}")
undefinedsummary = get_usage_summary(token)
print(f"API总调用次数: {summary.get('total_calls', 0)}")
print(f"消耗的积分: {summary.get('credits_used', 0)}")
undefinedUsage by Product
按产品维度的使用情况
python
def get_usage_by_product(token):
"""Get usage breakdown by product (image, video, audio, etc.)."""
resp = requests.get(f"{BASE}/usage/products", headers=headers(token))
return resp.json()["data"]python
def get_usage_by_product(token):
"""按产品(图像、视频、音频等)获取使用情况细分。"""
resp = requests.get(f"{BASE}/usage/products", headers=headers(token))
return resp.json()["data"]Usage
使用示例
products = get_usage_by_product(token)
for product in products:
print(f"{product['name']}: {product.get('calls', 0)} calls")
undefinedproducts = get_usage_by_product(token)
for product in products:
print(f"{product['name']}: {product.get('calls', 0)} 次调用")
undefinedGeneration History
生成历史
python
def get_usage_history(token, from_date=None, to_date=None, limit=100):
"""Get detailed generation history with optional date filters.
Args:
from_date: Start date (YYYY-MM-DD)
to_date: End date (YYYY-MM-DD)
limit: Max items (1-200, default 100)
"""
params = {"limit": limit}
if from_date: params["from"] = from_date
if to_date: params["to"] = to_date
resp = requests.get(
f"{BASE}/usage/history",
headers=headers(token),
params=params
)
return resp.json()["data"]python
def get_usage_history(token, from_date=None, to_date=None, limit=100):
"""获取详细的生成历史,支持按日期筛选。
参数:
from_date: 开始日期(格式YYYY-MM-DD)
to_date: 结束日期(格式YYYY-MM-DD)
limit: 最大条目数(1-200,默认100)
"""
params = {"limit": limit}
if from_date: params["from"] = from_date
if to_date: params["to"] = to_date
resp = requests.get(
f"{BASE}/usage/history",
headers=headers(token),
params=params
)
return resp.json()["data"]Get last 7 days of history
获取最近7天的历史记录
history = get_usage_history(token, from_date="2025-01-01", to_date="2025-01-07")
for item in history:
print(f"{item['created_at']}: {item.get('endpoint')} - {item.get('status')}")
undefinedhistory = get_usage_history(token, from_date="2025-01-01", to_date="2025-01-07")
for item in history:
print(f"{item['created_at']}: {item.get('endpoint')} - {item.get('status')}")
undefinedCommon Workflows
常见工作流
Find Best Model for a Task
为任务找到最佳模型
python
def find_best_model(token, task_description, feature):
"""Search for the best model for a given task."""
models = search_models(
token,
search=task_description,
feature=feature,
sort="recommended",
per_page=5
)
if not models:
print("No models found. Try broader search terms.")
return None
best = models[0]
print(f"Recommended: {best['model_id']} — {best['name']}")
return best["model_id"]python
def find_best_model(token, task_description, feature):
"""搜索适用于指定任务的最佳模型。"""
models = search_models(
token,
search=task_description,
feature=feature,
sort="recommended",
per_page=5
)
if not models:
print("未找到匹配模型,请尝试更宽泛的搜索关键词。")
return None
best = models[0]
print(f"推荐模型: {best['model_id']} — {best['name']}")
return best["model_id"]Find best model for realistic portraits
寻找生成逼真肖像的最佳模型
model_id = find_best_model(token, "realistic portrait photography", "imagen")
model_id = find_best_model(token, "逼真肖像摄影", "imagen")
Find best video model
寻找最佳视频生成模型
model_id = find_best_model(token, "text to video cinematic", "video_fusion")
undefinedmodel_id = find_best_model(token, "文本转视频电影级效果", "video_fusion")
undefinedMonitor Usage and Alerts
监控使用情况与告警
python
def check_usage_health(token, max_daily_spend=100):
"""Monitor usage and alert if spending too fast."""
from datetime import date
today = date.today().isoformat()
history = get_usage_history(token, from_date=today, to_date=today)
daily_cost = sum(item.get("cost", 0) for item in history)
daily_calls = len(history)
print(f"Today: {daily_calls} API calls, ${daily_cost:.2f} spent")
if daily_cost > max_daily_spend:
print(f"WARNING: Daily spend ${daily_cost:.2f} exceeds ${max_daily_spend}")
return False
return Truepython
def check_usage_health(token, max_daily_spend=100):
"""监控使用情况,当消耗过快时触发告警。"""
from datetime import date
today = date.today().isoformat()
history = get_usage_history(token, from_date=today, to_date=today)
daily_cost = sum(item.get("cost", 0) for item in history)
daily_calls = len(history)
print(f"今日: {daily_calls} 次API调用,花费 ${daily_cost:.2f}")
if daily_cost > max_daily_spend:
print(f"警告: 今日花费 ${daily_cost:.2f} 超过上限 ${max_daily_spend}")
return False
return TrueComplete Model Selection Pipeline
完整的模型选择流程
python
def select_model_for_generation(token, prompt, media_type="image"):
"""Full pipeline: search models, check usage, select best model."""
# Map media type to feature
feature_map = {
"image": "imagen",
"video": "video_fusion",
"audio": "audio_gen",
"3d": "threed",
"chat": "llmaster"
}
feature = feature_map.get(media_type, "imagen")
# Search models
models = search_models(token, search=prompt, feature=feature, per_page=5)
if not models:
# Fallback: search without prompt
models = search_models(token, feature=feature, sort="popular", per_page=5)
# Check usage
summary = get_usage_summary(token)
print(f"Credits remaining: {summary.get('credits_remaining', 'N/A')}")
# Return top model
if models:
model = models[0]
print(f"Selected: {model['model_id']} ({model['name']})")
return model["model_id"]
return Nonepython
def select_model_for_generation(token, prompt, media_type="image"):
"""完整流程:搜索模型、检查使用情况、选择最佳模型。"""
# 媒体类型与功能的映射
feature_map = {
"image": "imagen",
"video": "video_fusion",
"audio": "audio_gen",
"3d": "threed",
"chat": "llmaster"
}
feature = feature_map.get(media_type, "imagen")
# 搜索模型
models = search_models(token, search=prompt, feature=feature, per_page=5)
if not models:
# 备选方案:不带关键词搜索
models = search_models(token, feature=feature, sort="popular", per_page=5)
# 检查使用情况
summary = get_usage_summary(token)
print(f"剩余积分: {summary.get('credits_remaining', '未知')}")
# 返回最优模型
if models:
model = models[0]
print(f"已选择: {model['model_id']} ({model['name']})")
return model["model_id"]
return NoneUsage
使用示例
model_id = select_model_for_generation(token, "anime character", "image")
undefinedmodel_id = select_model_for_generation(token, "动漫角色", "image")
undefinedMCP Server Access
MCP服务器访问
These same capabilities are available via the Agent Control Plane MCP server:
- URL:
https://modelslab.com/mcp/agents - Tools: ,
agent-modelsagent-usage
上述所有功能也可通过Agent Control Plane MCP服务器访问:
- URL:
https://modelslab.com/mcp/agents - 工具: ,
agent-modelsagent-usage
API Endpoints Reference
API端点参考
| Method | Endpoint | Description |
|---|---|---|
| GET | | Search models |
| GET | | Available filter options |
| GET | | Available tags |
| GET | | Available providers |
| GET | | Model details |
| GET | | Usage summary |
| GET | | Usage by product |
| GET | | Generation history |
| 方法 | 端点 | 描述 |
|---|---|---|
| GET | | 搜索模型 |
| GET | | 获取可用筛选选项 |
| GET | | 获取可用标签 |
| GET | | 获取可用提供商 |
| GET | | 获取模型详情 |
| GET | | 获取使用汇总 |
| GET | | 获取按产品维度的使用情况 |
| GET | | 获取生成历史 |
Feature Values
功能值说明
Use these feature values when filtering models:
| Feature | Description |
|---|---|
| Image generation (text-to-image, img-to-img) |
| Video generation (text-to-video, img-to-video) |
| Audio generation (TTS, music, SFX, voice cloning) |
| LLM / Chat completions |
| 3D model generation |
| Interior design |
| Face swap / Deepfake |
筛选模型时可使用以下功能值:
| 功能 | 描述 |
|---|---|
| 图像生成(文本转图像、图像转图像) |
| 视频生成(文本转视频、图像转视频) |
| 音频生成(文本转语音、音乐、音效、声音克隆) |
| LLM / 对话补全 |
| 3D模型生成 |
| 室内设计 |
| 人脸替换 / 深度伪造 |
Best Practices
最佳实践
1. Use Feature Filters
1. 使用功能筛选
python
undefinedpython
undefinedMore efficient than broad text search
比宽泛的文本搜索更高效
models = search_models(token, feature="imagen", sort="popular")
undefinedmodels = search_models(token, feature="imagen", sort="popular")
undefined2. Cache Model Lists
2. 缓存模型列表
python
undefinedpython
undefinedModel lists don't change frequently
模型列表不会频繁变更
import functools
@functools.lru_cache(maxsize=32)
def cached_search(feature, sort="recommended"):
return search_models(token, feature=feature, sort=sort)
undefinedimport functools
@functools.lru_cache(maxsize=32)
def cached_search(feature, sort="recommended"):
return search_models(token, feature=feature, sort=sort)
undefined3. Check Model Details Before Using
3. 使用前检查模型详情
python
detail = get_model_detail(token, model_id)python
detail = get_model_detail(token, model_id)Verify model supports your use case, check pricing, etc.
验证模型是否支持你的使用场景,查看定价等信息
undefinedundefined4. Monitor Usage Regularly
4. 定期监控使用情况
python
undefinedpython
undefinedSet up daily usage checks
设置每日使用情况检查
summary = get_usage_summary(token)
if summary.get("credits_remaining", 0) < 100:
print("Low credits — consider topping up wallet")
undefinedsummary = get_usage_summary(token)
if summary.get("credits_remaining", 0) < 100:
print("积分不足 — 请考虑充值")
undefinedResources
相关资源
- API Documentation: https://docs.modelslab.com/agents-api/usage-and-models
- Model Library: https://modelslab.com/models
- MCP Server: https://docs.modelslab.com/mcp-web-api/agent-control-plane
- Dashboard: https://modelslab.com/dashboard
Related Skills
相关Skill
- - Account setup, API keys, teams
modelslab-account-management - - Wallet funding and subscriptions
modelslab-billing-subscriptions - - Use discovered models for image generation
modelslab-image-generation - - Use discovered models for video generation
modelslab-video-generation
- - 账户设置、API密钥、团队管理
modelslab-account-management - - 钱包充值与订阅
modelslab-billing-subscriptions - - 使用发现的模型进行图像生成
modelslab-image-generation - - 使用发现的模型进行视频生成
modelslab-video-generation