Говорящий аватар
Загрузите фотографию и аудио с речью — нейросеть синхронизирует губы с голосом. На выходе видео, где человек со снимка говорит вашим текстом: для аватара канала, приветствия на сайте или поздравления.
Сделать говорящее видеоОживление фото, говорящий аватар, редактирование картинок, звуки и озвучка — те же инструменты, что и на сайте, только вызываются из вашего кода. Один ключ, один формат запроса, оплата с общего баланса аккаунта.
Ключ выдаётся в аккаунте: он привязан к балансу, с которого списывается оплата.
Войти и получить ключ
Все запросы идут на https://genius-bot.ru/wp-json/genius/v1, ключ передаётся
заголовком Authorization: Bearer <ключ>. Ответы — JSON в UTF-8.
Схема одна для всех операций: поставили задачу, получили task_id,
забрали результат по нему.
curl -X POST https://genius-bot.ru/wp-json/genius/v1/generate \
-H 'Authorization: Bearer ВАШ_КЛЮЧ' \
-H 'Content-Type: application/json' \
-d '{
"service": "photo-video",
"image_url": "https://example.com/photo.jpg",
"prompt": "лёгкая улыбка, поворот головы"
}'
import time, requests
API = 'https://genius-bot.ru/wp-json/genius/v1'
HEAD = {'Authorization': 'Bearer ВАШ_КЛЮЧ'}
task = requests.post(f'{API}/generate', headers=HEAD, json={
'service': 'photo-video',
'image_url': 'https://example.com/photo.jpg',
'prompt': 'лёгкая улыбка, поворот головы',
}).json()
while True:
state = requests.get(f"{API}/tasks/{task['task_id']}", headers=HEAD).json()
if state['status'] != 'pending':
break
time.sleep(6)
print(state['files'][0]['url'])
const API = 'https://genius-bot.ru/wp-json/genius/v1';
const head = { Authorization: 'Bearer ВАШ_КЛЮЧ', 'Content-Type': 'application/json' };
const task = await fetch(`${API}/generate`, {
method: 'POST',
headers: head,
body: JSON.stringify({
service: 'photo-video',
image_url: 'https://example.com/photo.jpg',
prompt: 'лёгкая улыбка, поворот головы',
}),
}).then((r) => r.json());
const state = await fetch(`${API}/tasks/${task.task_id}`, { headers: head })
.then((r) => r.json());
$api = 'https://genius-bot.ru/wp-json/genius/v1';
$head = ['Authorization: Bearer ВАШ_КЛЮЧ', 'Content-Type: application/json'];
$ch = curl_init($api . '/generate');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => $head,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POSTFIELDS => json_encode([
'service' => 'photo-video',
'image_url' => 'https://example.com/photo.jpg',
'prompt' => 'лёгкая улыбка, поворот головы',
], JSON_UNESCAPED_UNICODE),
]);
$task = json_decode(curl_exec($ch), true);
В ответе — task_id, списанная сумма и остаток баланса.
Статус запрашивайте раз в 5–10 секунд: картинка обычно готова за 10–40 секунд,
видео и аватар — за 1–5 минут.
// ответ на POST /generate
{
"task_id": "a1b2c3d4",
"service": "photo-video",
"status": "pending",
"cost": 25,
"balance": 475
}
// GET /tasks/a1b2c3d4 после готовности
{
"task_id": "a1b2c3d4",
"status": "completed",
"files": [
{ "label": "Результат", "kind": "video", "url": "https://…/result.mp4" }
]
}
| service | Что делает | Обязательные поля | Цена |
|---|---|---|---|
photo-video |
Оживить фото Из фотографии получается короткое видео: движение головы, мимика, лёгкая камера. |
image_url |
25 ₽ за запуск |
image-edit |
Изменить фото по описанию Замена фона и одежды, удаление объектов, реставрация — словами, без редактора. |
image_url, prompt |
35 ₽ за запуск |
image |
Картинка по описанию Изображение из текста — для карточек товара, обложек и иллюстраций. |
prompt |
9 ₽ за запуск |
upscale |
Увеличить качество фото Апскейл вдвое с восстановлением деталей: для старых снимков и мелких картинок. |
image_url |
50 ₽ за запуск |
avatar |
Говорящий аватар Фотография плюс запись голоса — видео, где человек со снимка говорит. |
image_url, audio_url |
12 ₽ за секунду видео, минимум 120 ₽ |
vocal |
Убрать вокал Две дорожки из песни: минусовка и отдельно голос. |
audio_url |
15 ₽ за минуту записи, минимум 45 ₽ |
denoise |
Убрать шум Чистый голос без фонового гула, эха и шума улицы. |
audio_url |
12 ₽ за минуту записи, минимум 36 ₽ |
sfx |
Звук по описанию Звуковой эффект или фон из текстового описания, MP3. |
prompt |
9 ₽ за запуск |
tts |
Озвучка текста Речь из текста живым голосом, больше тридцати языков. |
text |
12 ₽ за 1000 знаков |
Необязательные поля: prompt уточняет результат,
callback_url включает вебхук, voice выбирает голос озвучки,
mode и seconds управляют генерацией звука
(sfx, ambient, loop).
Эти операции живут на отдельном адресе https://genius-bot.ru/wp-json/tts/v1/api
и используют собственный ключ — он выпускается в личном кабинете озвучки,
раздел «API». Передаётся заголовком X-API-Key или
Authorization: Bearer.
| Запрос | Что делает |
|---|---|
POST /generate | Озвучить текст: модель, голос, формат вывода |
GET /status/{task_id} | Состояние озвучки и ссылка на файл |
POST /transcribe | Расшифровать запись: audio_url или youtube_url |
GET /transcribe-status/{task_id} | Текст, сегменты и тайминги |
POST /youtube-audio | Достать звуковую дорожку из ролика |
POST /parse-text-file | Достать текст из загруженного документа |
GET /balance | Остаток на балансе |
GET /generations | История озвучек |
GET /free-voices | Список бесплатных голосов |
# Озвучить текст
curl -X POST https://genius-bot.ru/wp-json/tts/v1/api/generate \
-H 'X-API-Key: КЛЮЧ_ОЗВУЧКИ' \
-H 'Content-Type: application/json' \
-d '{
"model": "elevenlabs/text-to-speech-multilingual-v2",
"text": "Привет! Это тест.",
"voice": "Rachel",
"output_format": "mp3_44100_128"
}'
# Расшифровать запись
curl -X POST https://genius-bot.ru/wp-json/tts/v1/api/transcribe \
-H 'X-API-Key: КЛЮЧ_ОЗВУЧКИ' \
-H 'Content-Type: application/json' \
-d '{"audio_url": "https://example.com/audio.mp3", "language_code": "ru", "diarize": true}'
import requests, time
TTS = 'https://genius-bot.ru/wp-json/tts/v1/api'
HEAD = {'X-API-Key': 'КЛЮЧ_ОЗВУЧКИ'}
# озвучка
task = requests.post(f'{TTS}/generate', headers=HEAD, json={
'model': 'elevenlabs/text-to-speech-multilingual-v2',
'text': 'Привет! Это тест.',
'voice': 'Rachel',
}).json()
while True:
state = requests.get(f"{TTS}/status/{task['task_id']}", headers=HEAD).json()
if state.get('status') != 'pending':
break
time.sleep(5)
print(state.get('audio_url'))
// POST /transcribe → ответ
{ "success": true, "task_id": "a1b2c3d4" }
// GET /transcribe-status/a1b2c3d4 после готовности
{
"status": "completed",
"text": "Полный текст записи…",
"segments": [
{ "start": 0.0, "end": 3.4, "speaker": "Спикер 1", "text": "Первая фраза" }
]
}
Ключи не взаимозаменяемы: gb_… работает на genius/v1,
ключ озвучки — на tts/v1. Баланс у них общий, списания видны
в одной истории.
Ссылки в image_url и audio_url должны открываться из интернета.
Если файла в открытом доступе нет, загрузите его к нам — ссылка вернётся в ответе.
Фото до 10 МБ, аудио до 20 МБ.
curl -X POST https://genius-bot.ru/wp-json/genius/v1/uploads \ -H 'Authorization: Bearer ВАШ_КЛЮЧ' \ -F 'file=@photo.jpg' \ -F 'kind=image'
up = requests.post(f'{API}/uploads', headers=HEAD,
files={'file': open('photo.jpg', 'rb')},
data={'kind': 'image'}).json()
print(up['url']) # эту ссылку и передавайте в image_url
Передайте callback_url — и мы сами постучимся POST-запросом,
когда задача будет готова или сорвётся. В заголовке X-Genius-Signature
придёт HMAC-SHA256 от тела запроса на секрете ключа: так вы убедитесь, что запрос наш.
Секрет показывается один раз вместе с ключом.
import hmac, hashlib
def valid(body: bytes, signature: str, secret: str) -> bool:
mine = hmac.new(secret.encode(), body, hashlib.sha256).hexdigest()
return hmac.compare_digest(mine, signature)
$body = file_get_contents('php://input');
$mine = hash_hmac('sha256', $body, $secret);
$ok = hash_equals($mine, $_SERVER['HTTP_X_GENIUS_SIGNATURE'] ?? '');
if ($ok) {
$event = json_decode($body, true);
// $event['status'] === 'completed' → забираем $event['files']
}
| Код | Когда | Что делать |
|---|---|---|
401 | Ключ не передан или отозван | Проверьте заголовок Authorization |
402 | Не хватает денег на балансе | Пополните баланс в личном кабинете |
400 | Нет обязательного поля или файл слишком длинный | Смотрите message в ответе |
429 | Больше 60 запросов в минуту на ключ | Опрашивайте статус реже или включите вебхук |
502 | Модель не приняла задачу | Повторите запрос; деньги не списываются |
503 | Операция временно отключена | Проверяйте /services |
Если задача сорвалась уже после запуска, статус придёт как failed,
а списанные деньги вернутся на баланс автоматически. Результаты хранятся у нас
и доступны по прямой ссылке — скачайте их к себе, если нужны надолго.
Все инструменты работают на одном балансе — переключайтесь между ними без отдельной оплаты.
Загрузите фотографию и аудио с речью — нейросеть синхронизирует губы с голосом. На выходе видео, где человек со снимка говорит вашим текстом: для аватара канала, приветствия на сайте или поздравления.
Сделать говорящее видеоЗагрузите трек — нейросеть отделит вокал от музыки и вернёт две дорожки: чистый инструментал для караоке и отдельно голос. Ничего устанавливать не нужно.
Убрать вокалЗагрузите запись — нейросеть уберёт фоновый гул, шум улицы, шипение микрофона и оставит чистый голос. Подходит для интервью, созвонов, голосовых и звука из видео.
Очистить записьОпишите звук словами — нейросеть соберёт готовый эффект в MP3: взрывы, шаги, интерфейсные сигналы, атмосфера и бесшовные лупы.
Создать звукБольше 12 000 готовых звуков в 945 категориях — слушайте онлайн и скачивайте бесплатно в MP3.
Открыть каталогТе же инструменты из вашего кода: оживление фото, аватар, картинки, звуки и озвучка по HTTP-запросу. Ключ, JSON, оплата за запуск.
Смотреть документациюАбонентской платы нет: вы платите только за выполненные задачи по тем же ценам, что и на сайте. Деньги списываются с баланса аккаунта, пополнить его можно в личном кабинете.
Статус задачи станет failed, а списанная сумма вернётся на баланс автоматически. Если модель не приняла задачу, деньги вообще не списываются — ответ придёт с кодом 502.
Файлы лежат у нас и доступны по прямой ссылке. Мы рекомендуем сразу перекладывать их в своё хранилище: так вы не зависите от чужих сроков хранения.
Да. Права на созданные файлы остаются у вас, ограничений на коммерческое применение нет. Единственное требование — не выдавать сам API за собственный и не перепродавать доступ к нему как к своему сервису.
Отдельной песочницы нет, но самые дешёвые операции — генерация звука и картинки — стоят единицы рублей, этого достаточно, чтобы проверить интеграцию целиком.
До шестидесяти. Если нужно больше, включите вебхук: тогда статус не придётся опрашивать вовсе, и лимит перестанет мешать.