Media và jobs
Khuyến nghị: Gommo public API — https://v2.api.gommo.net cho models, jobs, upload.
Mọi job media là async: create → poll → xong (hoặc lỗi / timeout). Chi tiết: Vòng đời request. Lỗi: Lỗi thường gặp. Tier A không webhook job — Webhooks.
flowchart LR
A[POST /ai/models] --> B[POST /ai/jobs/...]
B --> C{Poll POST /ai/jobs/id?media=...}
C -->|result_url| D[Xong]
C -->|đang chờ| C
C -->|lỗi hoặc 80 lần| E[Kết thúc]Poll interval: 3500 ms, tối đa 80 lần. Gửi domain trong mọi form body (domain đăng ký — không copy từ docs). Auth: Authorization: Bearer <access_token>.
Bản đồ endpoint
| Thao tác | URL |
|---|---|
| List models | POST https://v2.api.gommo.net/ai/models?type={type} |
| Create job | POST https://v2.api.gommo.net/ai/jobs/{type}/{model_id} |
| Poll job | POST https://v2.api.gommo.net/ai/jobs/{id}?media={media} |
Job types: image, video, tts, music, avatar-lipsync, image-upscale, remove-bg, video-upscale, video-vfx, video-subtitle, video-cut
Poll media: image | video | music
List models
curl.exe -X POST "https://v2.api.gommo.net/ai/models?type=image" ^
-H "Authorization: Bearer %TOKEN%" ^
-H "Content-Type: application/x-www-form-urlencoded" ^
-d "type=image&domain=%REGISTRATION_DOMAIN%"$d = $env:GOMMO_API_DOMAIN; if (-not $d) { throw 'Set GOMMO_API_DOMAIN to the user registration domain (dealer)' }
$h = @{ Authorization = "Bearer $env:TOKEN" }
Invoke-RestMethod -Method POST `
-Uri "https://v2.api.gommo.net/ai/models?type=image" `
-Headers $h `
-ContentType "application/x-www-form-urlencoded" `
-Body "type=image&domain=$d"Chọn model / slug và ratio, mode, resolution cho phép từ response — không đoán.
Create job
ratio, mode, resolution, và duration phải khớp catalog model.
curl.exe -X POST "https://v2.api.gommo.net/ai/jobs/image/MODEL_ID" ^
-H "Authorization: Bearer %TOKEN%" ^
-H "Content-Type: application/x-www-form-urlencoded" ^
-d "domain=%REGISTRATION_DOMAIN%&project_id=default&prompt=Hello&ratio=RATIO_FROM_CATALOG"$d = $env:GOMMO_API_DOMAIN; if (-not $d) { throw 'Set GOMMO_API_DOMAIN to the user registration domain (dealer)' }
$form = "domain=$d&project_id=default&prompt=Hello&ratio=$ratio"
Invoke-RestMethod -Method POST `
-Uri "https://v2.api.gommo.net/ai/jobs/image/$slug" `
-Headers @{ Authorization = "Bearer $env:TOKEN" } `
-ContentType "application/x-www-form-urlencoded" -Body $formPoll job
Lặp mỗi 3500 ms, tối đa 80 lần:
curl.exe -X POST "https://v2.api.gommo.net/ai/jobs/JOB_ID?media=image" ^
-H "Authorization: Bearer %TOKEN%" ^
-H "Content-Type: application/x-www-form-urlencoded" ^
-d "domain=%REGISTRATION_DOMAIN%&project_id=default"$d = $env:GOMMO_API_DOMAIN; if (-not $d) { throw 'Set GOMMO_API_DOMAIN to the user registration domain (dealer)' }
Invoke-RestMethod -Method POST `
-Uri "https://v2.api.gommo.net/ai/jobs/$jobId?media=image" `
-Headers @{ Authorization = "Bearer $env:TOKEN" } `
-ContentType "application/x-www-form-urlencoded" `
-Body "domain=$d&project_id=default"Khi thành công: tìm result_url / file_url trong imageInfo, videoInfo, hoặc tương đương trong response.
Self-host (chỉ operator)
REST tùy chọn khi deploy repo — Deploy → Self-host nâng cao.
Response shape
Gommo trả JSON native (success, data, imageInfo / videoInfo, …).
