Jak zrobić film w FLUX 3 Video przez API: poradnik z gotowym skryptem
Trzy drogi do FLUX 3 Video, sprawdzony skrypt do pobrania, parametry, koszty i zasady pisania poleceń, żeby model mówił po polsku.

👁 123 przeczytań
FLUX 3 Video nie ma aplikacji z cennikiem dla zwykłego użytkownika - Black Forest Labs sprzedaje go przez API. Brzmi groźnie, ale wystarczy klucz, kilka dolarów na koncie i jeden skrypt. Poniżej pokazuję trzy drogi (fal.ai, OpenRouter, API BFL), gotowy skrypt w Pythonie, który sprawdziłem na czystym folderze, i zasady pisania poleceń, dzięki którym FLUX 3 mówi po polsku i pisze polskie litery. Ranking, ceny i moje testy są w przewodniku FLUX 3 Video.
Co będzie potrzebne
- Konto na fal.ai (albo OpenRouterze lub w API BFL) i klucz API.
- Saldo: na pierwsze próby wystarczy 5 USD. Szkic 5 s kosztuje na fal.ai 0,15 USD, pełny klip 5 s w 720p 0,425 USD.
- Python 3.9+ z biblioteką
requests. - Czas: 5-sekundowy klip liczył się u mnie od 37 do 98 sekund.
Która droga: fal.ai, OpenRouter czy BFL
| Dostawca | 5 s w 720p | Szkic | Tryby | Dla kogo |
|---|---|---|---|---|
| fal.ai | 0,425 USD | tak, 0,03 USD/s | tekst, obraz, klatki kluczowe, pierwsza i ostatnia klatka, przedłużanie, edycja | najtaniej, najwięcej trybów |
| OpenRouter | 0,85 USD | nie | tekst, pierwsza i ostatnia klatka | jeden klucz do LLM i wideo |
| API BFL | 0,85 USD | tak, 0,06 USD/s | wszystkie, także QHD i 4K | źródło, pełne możliwości |
Stawki z 11 października 2026. Ja zrobiłem 6 klipów przez OpenRouter i 3 przez fal.ai - wyniki są w tekście Co potrafi FLUX 3 Video. Skrypt poniżej korzysta z fal.ai, bo tam jest najtaniej i jest tryb szkicu.
Krok po kroku
- Załóż konto na fal.ai, w panelu „Billing” doładuj saldo, a w „Keys” utwórz klucz.
- Zainstaluj bibliotekę:
pip install requests. - Pobierz skrypt flux3_wideo.py (pełny kod niżej).
- Ustaw klucz w zmiennej środowiskowej. W PowerShell:
$env:FAL_KEY="twój_klucz", w terminalu macOS/Linux:export FAL_KEY="twój_klucz". - Zrób szkic:
python flux3_wideo.py "opis sceny" --szkic. Skrypt pokaże szacunkowy koszt i zapyta o zgodę. - Gdy szkic jest dobry, uruchom to samo polecenie bez
--szkic- dostaniesz pełną jakość w 720p albo, z--rozdz 1080p, w 1080p. - Żeby ożywić zdjęcie, dodaj
--obraz https://adres/zdjecia.jpg. Obraz musi być dostępny pod publicznym adresem.
Mój test skryptu
Skrypt uruchomiłem 11 października w pustym folderze, w trybie szkicu, z tym poleceniem:
python flux3_wideo.py "A red and cream tram passes along a rainy Krakow street at dusk, reflections of shop lights on the wet cobblestones, people with umbrellas wait at the stop. A sign on the tram stop reads \"PLAC WOLNICA\". Static camera, realistic. Sound: rain, tram bell, wheels on rails." --szkic --plik tramwaj_szkic.mp4 --tak
Wynik: plik 4,8 MB, 5 sekund, 1280×704, z dźwiękiem, po 37 sekundach. Tramwaj w czerwono-kremowych barwach przejeżdża przez kadr, ludzie z parasolami czekają na przystanku, światła sklepów odbijają się w mokrym bruku. Napisu „PLAC WOLNICA” w szkicu nie da się przeczytać - tabliczka jest za mała. Gdy napis ma być czytelny, opisz go jako duży element kadru, jak w moim teście z tablicą szkolną.
Gotowy skrypt
Pobierz: flux3_wideo.py (91 linii). Klucz czyta tylko ze zmiennej środowiskowej, przed wysłaniem pokazuje koszt, przy chwilowym braku sieci ponawia zapytania, a wynik zapisuje jako MP4.
"""flux3_wideo.py - film z FLUX 3 Video przez fal.ai (promptowy.com, 11.10.2026)
Wymaga: Python 3.9+ i biblioteki requests (pip install requests).
Klucz: zmienna środowiskowa FAL_KEY (fal.ai -> Dashboard -> Keys). Klucza nie wpisuj w kod.
Przykłady:
python flux3_wideo.py "A red tram passes through a rainy Krakow street at dusk" --szkic
python flux3_wideo.py "The camera slowly dollies forward..." --obraz https://adres/obraz.jpg --czas 6
python flux3_wideo.py "..." --czas 10 --rozdz 1080p --proporcje 9:16 --bez-dzwieku
Koszt (cennik fal.ai z 11.10.2026): 0,085 USD za sekundę pełnej jakości, 0,03 USD za sekundę szkicu.
Skrypt przed wysłaniem pokazuje szacunek i pyta o zgodę (pomiń pytanie flagą --tak).
"""
import argparse, os, sys, time, pathlib
import requests
STAWKA = {'pelna': 0.085, 'szkic': 0.03} # USD za sekundę, fal.ai, 11.10.2026
def main():
a = argparse.ArgumentParser(description='FLUX 3 Video przez fal.ai')
a.add_argument('prompt', help='polecenie po angielsku; kwestie po polsku w cudzysłowie')
a.add_argument('--obraz', help='adres URL obrazu startowego (obraz na wideo)')
a.add_argument('--czas', type=int, default=5, help='długość w sekundach, 5-20 (domyślnie 5)')
a.add_argument('--rozdz', default='720p', choices=['720p', '1080p'])
a.add_argument('--proporcje', default='16:9', help='16:9, 9:16, 1:1, 4:3, 3:4, 21:9, 2:1 albo auto')
a.add_argument('--szkic', action='store_true', help='tryb szkicu: szybciej i taniej, do przeglądania pomysłów')
a.add_argument('--bez-dzwieku', action='store_true')
a.add_argument('--plik', default='', help='nazwa pliku wynikowego (domyślnie flux3_<czas>.mp4)')
a.add_argument('--tak', action='store_true', help='nie pytaj o potwierdzenie kosztu')
x = a.parse_args()
klucz = os.environ.get('FAL_KEY')
if not klucz:
sys.exit('Brak zmiennej FAL_KEY. Ustaw ją, np. w PowerShell: $env:FAL_KEY="..."')
if not 5 <= x.czas <= 20:
sys.exit('Długość musi mieć od 5 do 20 sekund.')
tryb = 'image-to-video' if x.obraz else 'text-to-video'
endpoint = f'blackforestlabs/flux-3/{tryb}' + ('/draft' if x.szkic else '')
body = {'prompt': x.prompt, 'duration': x.czas, 'aspect_ratio': x.proporcje, 'generate_audio': not x.bez_dzwieku}
if x.obraz:
body['image_url'] = x.obraz
if not x.szkic:
body['resolution'] = x.rozdz # szkic jest zawsze w 720p
koszt = x.czas * STAWKA['szkic' if x.szkic else 'pelna']
print(f'Model: {endpoint}\nDługość: {x.czas} s, szacunkowy koszt: {koszt:.3f} USD')
if not x.tak and input('Wysłać? [t/N] ').strip().lower() != 't':
sys.exit('Przerwane.')
H = {'Authorization': 'Key ' + klucz, 'Content-Type': 'application/json'}
r = requests.post('https://queue.fal.run/' + endpoint, headers=H, json=body, timeout=120)
if r.status_code >= 300:
sys.exit(f'Błąd {r.status_code}: {r.text[:400]}')
zad = r.json()
print('Zadanie przyjęte, czekam na wynik...')
t0 = time.time()
while True:
time.sleep(8)
try:
s = requests.get(zad['status_url'], headers=H, timeout=60).json()
except requests.RequestException:
continue # chwilowy problem z siecią - pytamy dalej
stan = s.get('status')
print(f' {int(time.time() - t0)} s: {stan}')
if stan == 'COMPLETED':
break
if stan not in ('IN_QUEUE', 'IN_PROGRESS'):
sys.exit(f'Zadanie się nie udało: {s}')
if time.time() - t0 > 1800:
sys.exit('Brak wyniku po 30 minutach. Adres do ręcznego sprawdzenia: ' + zad['response_url'])
for _ in range(6):
try:
wynik = requests.get(zad['response_url'], headers=H, timeout=90).json()
break
except requests.RequestException:
time.sleep(10)
else:
sys.exit('Nie udało się pobrać wyniku. Adres: ' + zad['response_url'])
url = wynik['video']['url']
plik = pathlib.Path(x.plik or f'flux3_{int(time.time())}.mp4')
plik.write_bytes(requests.get(url, timeout=300).content)
print(f'Gotowe w {int(time.time() - t0)} s: {plik.resolve()} ({plik.stat().st_size // 1024} KB)')
if __name__ == '__main__':
main()
Jak pisać polecenia do FLUX 3 Video
Mam to spisane w całości
Zebrałem te rzeczy w ebookach, które możesz pobrać za darmo - bez zapisu na listę, bez haczyka.
- Pisz po angielsku, a po polsku tylko to, co ma paść z ust albo pojawić się w napisie. Wzór:
She says clearly in Polish: "...". Tak powstały oba moje klipy z bezbłędną polską mową. - Opisz dźwięk osobno po słowie „Sound:”. Uwaga: w moim packshocie ekspresu model dał tylko ptaki w tle, bez syku urządzenia. Dźwięk produktu bywa bezpieczniej dołożyć w montażu.
- Napis rób dużym elementem kadru („the chalkboard clearly shows exactly two lines of text”). Mała tabliczka w tle wyszła nieczytelna.
- Kamera jednym zdaniem: „The camera slowly dollies forward”, „180-degree orbit at a constant speed”, „static camera”. Orbitę FLUX 3 zrobił mi bez deformacji obiektu.
- Kilka ujęć rozdzielaj słowami „Hard cut. Shot 2:” i powtarzaj wygląd postaci w każdym ujęciu.
- Na końcu zakazy: „no subtitles, no on-screen text, no music”, jeśli ich nie chcesz.
- Proporcje ustaw ręcznie przy obrazie startowym. Przy „auto” model przyciął mi zdjęcie kawiarni.
Parametry skryptu
| Parametr | Co robi | Domyślnie |
|---|---|---|
prompt | opis sceny (wymagany) | - |
--obraz URL | obraz startowy - tryb obraz na wideo | brak (tekst na wideo) |
--czas | długość 5-20 s | 5 |
--rozdz | 720p albo 1080p (w szkicu zawsze 720p) | 720p |
--proporcje | 16:9, 9:16, 1:1, 4:3, 3:4, 21:9, 2:1, auto | 16:9 |
--szkic | szybki i tani podgląd (0,03 USD/s) | wyłączony |
--bez-dzwieku | klip bez ścieżki dźwiękowej | dźwięk włączony |
--plik | nazwa pliku MP4 | flux3_<czas>.mp4 |
--tak | pomija pytanie o koszt | pyta |
Ile zapłacisz
| Klip | fal.ai | OpenRouter / BFL |
|---|---|---|
| Szkic 5 s | 0,15 USD | BFL 0,30 USD, OpenRouter brak szkicu |
| 5 s, 720p | 0,425 USD | 0,85 USD |
| 10 s, 720p | 0,85 USD | 1,70 USD |
| 20 s, 720p | 1,70 USD | 3,40 USD |
| 20 s, 1080p | bez danych | 5,80 USD |
Dźwięk nie kosztuje dodatkowo. Moje wydatki na wszystkie klipy FLUX 3 do tego klastra: 6,10 USD (9 klipów).
Najczęstsze błędy
- „Brak zmiennej FAL_KEY” - zmienna ustawiona w innym oknie terminala. Ustaw ją w tym samym oknie, w którym uruchamiasz skrypt.
- Błąd 401 lub 403 - zły klucz albo klucz bez uprawnień. Utwórz nowy w panelu fal.ai.
- Błąd o saldzie - konto bez środków; doładuj saldo w zakładce Billing.
- Obraz startowy się nie wczytuje - adres musi być publiczny (bez logowania) i prowadzić do pliku PNG, JPEG albo WebP.
- Zerwane połączenie przy pobieraniu - zdarzyło mi się raz; skrypt ponawia pobranie, a w ostateczności wypisuje adres wyniku do ręcznego sprawdzenia, więc nie płacisz drugi raz.
Najczęstsze pytania
Czy da się użyć FLUX 3 Video bez programowania?
Tak, w piaskownicach dostawców: na stronie modelu w fal.ai i w czacie OpenRoutera wpisujesz polecenie w formularzu. Skrypt przydaje się, gdy robisz wiele klipów albo chcesz je zapisywać automatycznie.
Jak zrobić dłuższy film niż 20 sekund?
Przedłużaniem: na fal.ai jest tryb extend-video, który bierze koniec poprzedniego klipu i dokłada kolejne 5-15 sekund. W BFL kosztuje to 0,41 USD/s w 720p.
Czy mogę używać klipów komercyjnie?
Zasady określają regulaminy BFL i dostawcy, przez którego generujesz. Przed użyciem w reklamie przeczytaj warunki API, z którego korzystasz.
Więcej przykładów z poleceniami: Co potrafi FLUX 3 Video. Porównanie z rywalami: FLUX 3 vs Wan 3.0 vs Seedance 2.5. Inne generatory: generatory wideo AI.
Źródła i data sprawdzenia
- fal.ai: FLUX 3 text-to-video (schemat wejścia i cennik)
- OpenRouter: FLUX.3 Video
- cennik API BFL
- BFL: FLUX 3 Video (4.08.2026). Skrypt przetestowany 11 października 2026 w pustym folderze (Windows 11
- Python 3.13
- tryb szkicu
- 0,15 USD)
Cały tydzień w AI, w jednym mailu
Wybrane premiery, narzędzia i analizy. Raz w tygodniu, prosto do skrzynki.
Zapisz się za darmo →


