🎬 Polza Media
One node for images, video and TTS — the pack's actual workhorse
- image
- video
- images
- video
- audio
- media_url
- media_id
- text_response
- cost_rub
Polza Chat and Polza Vision are the flashy half of ComfyUI-Polza, but Polza Media is the node the pack is really built around - the README says so outright. It's a single node that generates images, video, and audio through Polza.ai's /v1/media API. Want a Seedream image, a Veo 3.1 clip, or an ElevenLabs TTS read of your prompt? Same node, different model value. This is the "closed frontier is one login away" pattern from the Comfy ecosystem: you're calling models that have no open weights and never will - Nano Banana, Veo, Kling, Sora, Seedream. Local isn't an option for these, so the API node is the only door.
How it works
The interesting part is model-type detection. The node sniffs the model ID you pick and builds a payload shaped for that family - kling, wan, veo, sora, seedance, audio, or generic image. Kling gets a mode (std/pro) and a numeric duration string; Wan gets a resolution and a multi_shots flag; TTS models get voice, speed, language_code instead of image params. You don't have to think about any of this - the dropdown does it for you.
Generation is asynchronous under the hood: POST a job, get a task id, then poll every 4 seconds for up to 10 minutes until it's completed, and finally download the result. Images come back as an IMAGE tensor; video and audio are streamed to ComfyUI's temp folder, classified by URL extension (.mp4/.webm → video, .mp3/.wav → audio), and handed back as native VIDEO and AUDIO outputs.
The inputs that matter
You'll touch a handful of these regularly:
- model - the dropdown. Click Load models first (it needs your API key), then pick a family:
seedream-3/gpt-image-1for images,veo-3-1/kling-3-0/wan-2-6for video,elevenlabs-tts-turbofor speech. - prompt - your text description. Required.
- image - plug in an IMAGE to get img2img / image-to-video / editing. A batch means each frame goes in as a separate element, so you can feed several at once.
- video - native VIDEO input for video-to-video. Wire any video node's output here.
- aspect_ratio, quality, image_resolution (1K/2K/4K), duration (5s/10s/15s), video_resolution (480p→1080p) - the media-specific knobs;
autois a safe default for all of them. - extra_params_json - the escape hatch. Any API parameter the node doesn't expose goes here as a JSON object, and it merges over everything else.
Outputs
Seven: images (IMAGE), video (native VIDEO → wire into SaveVideo / GetVideoComponents), audio (AUDIO → wire into PreviewAudio / SaveAudio), media_url (raw URL, useful if you skip the native outputs), media_id (the task ID), text_response, and cost_rub. The node's widget reports what came back, the task ID, elapsed time, and the ruble cost.
Installing it
Same story as the rest of the pack. ComfyUI Manager → search ComfyUI-Polza → install → restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/PioneerMNDR/ComfyUI-Polza
cd ComfyUI-Polza
pip install -r requirements.txt
Then restart. Get a key at polza.ai and set it via the node's api_key field, POLZA_API_KEY, or a config.json in the node folder. No models to download - everything lives upstream.
Common issues
The README is blunt about the big one: some models may have parameter glitches; if the result isn't right, check the ComfyUI console first, then file an issue. Translation: per-model quirks are real, and the console log is where the pack logs its model-type detection and API payloads - that's your debugging window.
Two output gotchas are worth flagging up front. Audio only materializes as an AUDIO output if torchaudio is importable - it's not in the pack's requirements, so on a bare install you'll get media_url instead and the node logs a warning. Either install torchaudio or just use the URL. Video wants a recent ComfyUI: the native VIDEO output needs comfy_api.latest (ComfyUI ≥ 0.3). On an older build you still get the file saved to temp, but the output slot won't be usable - update ComfyUI.
And the economics. Video is where API metering bites hardest - Veo seconds add up fast, and the community's standard objection to these nodes ("small number of videos per year for 20–30 bucks a month") applies in full here. Your prompts and images also leave your machine, and whatever the vendor filters, the node filters. Polza is a Russian-market aggregator, so the cost reads out in rubles and the docs are mostly Russian; the code is MIT-licensed and readable if you want to see exactly what leaves your box before you wire it into your workflow.
Inputs (24)
| Name | Type | Default | Description |
|---|---|---|---|
| model | COMBO | Click Load models | ID модели Polza.ai. Изображения: seedream-3, gpt-image-1, flux-1-1-ultra … Видео: veo-3-1, wan-2-6, kling-3-0, sora … Аудио/TTS: elevenlabs-tts-turbo, openai/gpt-audio … |
| prompt | STRING | — | |
| api_keyopt | STRING | API‑ключ Polza.ai (пусто → env POLZA_API_KEY / config.json) | |
| imageopt | IMAGE | Входное изображение для img2img / img2vid / editing. Batch: каждый фрейм [B,H,W,3] → отдельный элемент images[]. | |
| videoopt | VIDEO | Видео для video-to-video генерации (нативный VIDEO вход). Подключите выход VIDEO любого нода (LoadVideo, etc.). | |
| aspect_ratioopt | COMBO | auto | 11 options: auto, 1:1, 16:9, 9:16, 4:3, 3:4, +5 |
| seedopt | INT | 00–2147483647 | — |
| qualityopt | COMBO | auto | 4 options: auto, high, medium, basic |
| image_resolutionopt | COMBO | auto | 4 options: auto, 1K, 2K, 4K |
| output_formatopt | COMBO | png | 3 options: png, jpeg, webp |
| max_imagesopt | INT | 11–6 | — |
| guidance_scaleopt | FLOAT | 0.00–30 | — |
| strengthopt | FLOAT | 0.800–1 | — |
| is_enhanceopt | BOOLEAN | false | — |
| enable_safetyopt | BOOLEAN | true | — |
| durationopt | COMBO | auto | 4 options: auto, 5s, 10s, 15s |
| video_resolutionopt | COMBO | auto | 5 options: auto, 480p, 580p, 720p, 1080p |
| kling_modeopt | COMBO | std | Режим Kling 3.0: std (быстрее) или pro (качественнее) |
| multi_shotsopt | BOOLEAN | false | Мульти-шоты для Wan 2.6 (несколько сцен в одном видео) |
| soundopt | BOOLEAN | false | — |
| voiceopt | STRING | — | |
| speedopt | FLOAT | 1.000.7–1.2 | — |
| language_codeopt | STRING | — | |
| extra_params_jsonopt | STRING | — |
Outputs (7)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |
| video | VIDEO | — |
| audio | AUDIO | — |
| media_url | STRING | — |
| media_id | STRING | — |
| text_response | STRING | — |
| cost_rub | FLOAT | — |