- genimages – generowanie obrazów za pomocą Google Gemini przy użyciu API
- Do czego służy genimages?
- Jak to działa – mechanizm wewnętrzny
- Wymagania
- Instalacja
- Wymagane biblioteki
- Konfiguracja klucza API
- Użycie
- Podstawowe użycie
- Formaty plików wejściowych
- Opcje wiersza poleceń – szczegółowy opis
- Rozdzielczość – opcja –res
- Listowanie dostępnych modeli
- Szacowanie kosztów
- Przykłady użycia
- 1. Domyślne uruchomienie
- 2. Generowanie z pliku tekstowego do własnego katalogu
- 3. Własny wzór nazewnictwa i opóźnienie
- 4. Rozdzielczość 2K z wymuszonym nadpisywaniem
- 5. Wybór modelu
- 6. Tryb wsadowy
- 7. Szacowanie kosztów
- Podsumowanie
genimages – generowanie obrazów za pomocą Google Gemini przy użyciu API
genimages to skrypt w Pythonie, który automatyzuje generowanie obrazów za pomocą modeli AI Google Gemini. Wystarczy przygotować plik z opisami (promptami), a program sam wysyła zapytania do API Google i zapisuje gotowe obrazy na dysku.
GitHub: github.com/IgorBrzezek/genimages
Do czego służy genimages?
Genimages rozwiązuje problem ręcznego generowania większej liczby obrazów za pomocą AI. Zamiast każdorazowo wchodzić na stronę Gemini i wpisywać opisy, przygotowujesz plik z promptami, a skrypt robi resztę. Przydaje się w wielu scenariuszach:
- Tworzenie treści – szybkie generowanie grafik do artykułów, prezentacji lub mediów społecznościowych.
- Prototypowanie – tworzenie różnych koncepcji wizualnych dla projektów graficznych.
- Badania i rozwój – eksperymentowanie z różnymi promptami i modelami, aby poznać możliwości generowania obrazów przez AI.
- Przetwarzanie wsadowe – generowanie dużej liczby obrazów bez ręcznej interwencji.
Jak to działa – mechanizm wewnętrzny
Skrypt wczytuje plik wejściowy w formacie TXT lub JSON, wyodrębnia z niego opisy (prompty) i dla każdego z nich wywołuje API Google Gemini. Obrazy są pobierane z odpowiedzi API i zapisywane na dysku we wskazanym formacie (PNG lub JPG) oraz w wybranej rozdzielczości. Program obsługuje:
- mechanizm ponawiania nieudanych generacji (domyślnie 3 próby),
- opóźnienie między zadaniami, aby uniknąć limitów API,
- tryb wsadowy (cichy) z wymuszonym nadpisywaniem plików,
- szczegółowe podsumowanie na końcu działania (liczba sukcesów, błędów, czas, średni rozmiar pliku).
Wymagania
- Python 3.8 lub nowszy
- Projekt w Google Cloud z włączonym API Gemini
- Klucz API do Google Gemini
Instalacja
Wymagane biblioteki
Skrypt wymaga bibliotek google-genai, python-dotenv oraz Pillow.
Instalacja na Linux/macOS:
pip install google-genai python-dotenv Pillow
Instalacja na Windows:
pip install google-genai python-dotenv Pillow
Konfiguracja klucza API
Skrypt wymaga klucza API do uwierzytelnienia w usługach Google AI. Można go skonfigurować na dwa sposoby:
1. Zmienna środowiskowa (zalecane):
Linux/macOS:
export GEMINI_API_KEY="TWOJ_KLUCZ_API"
Windows (Command Prompt):
set GEMINI_API_KEY="TWOJ_KLUCZ_API"
2. Własna nazwa zmiennej środowiskowej:
export MOJA_NAZWA="TWOJ_KLUCZ_API"
python genimages.py -i prompty.txt --keyenv MOJA_NAZWA
Użycie
Podstawowe użycie
Należy podać plik wejściowy z promptami:
python genimages.py -i prompty.json
To polecenie wczyta prompty z pliku prompty.json, wygeneruje obrazy przy użyciu domyślnego modelu (gemini-3-pro-image-preview) i zapisze je w nowym katalogu prompty/ w formacie JPG.
Formaty plików wejściowych
Użyj opcji -t lub --type, aby określić format pliku. Domyślnie jest to json.
Plik tekstowy (.txt) – każdy prompt w osobnej linii. Puste linie są pomijane. Nazwa pliku może być wyodrębniona z frazy Nazwa pliku: XXX. Jeśli fraza nie występuje, używane są domyślne nazwy image_001, image_002 itd.
Przykład prompty.txt:
Lew o wschodzie słońca na sawannie. Luźna akwarela. Nazwa pliku: lew_sawanna
Astronauta na koniu na Marsie. Nazwa pliku: mars_horse
Futurystyczne miasto nocne z latającymi samochodami. Nazwa pliku: future_city
Plik JSON (.json) – słownik, w którym klucze to nazwy plików (bez rozszerzenia), a wartości to prompty.
Przykład prompty.json:
{
"lew_sawanna": "Lew o wschodzie słońca na sawannie. Luźna akwarela.",
"mars_horse": "Astronauta na koniu na Marsie.",
"future_city": "Futurystyczne miasto nocne z latającymi samochodami."
}
Opcje wiersza poleceń – szczegółowy opis
| Opcja | Opis | Domyślnie |
|---|---|---|
-i / --input |
Ścieżka do pliku wejściowego z promptami | – |
-t / --type |
Format pliku wejściowego: txt lub json |
json |
-o / --output-dir |
Katalog docelowy dla wygenerowanych obrazów | Nazwa pliku wejściowego bez rozszerzenia |
--imgpat |
Wzór nazwy pliku z numeracją sekwencyjną (np. obraz_001.jpg) |
Nazwa oryginalna |
--fmt |
Format pliku wyjściowego: png lub jpg |
jpg |
--delay |
Opóźnienie (w sekundach) między kolejnymi generacjami | 1 |
--model |
Model AI używany do generowania obrazów | gemini-3-pro-image-preview |
--list |
Wyświetla dostępne modele do generowania obrazów | – |
--keyenv |
Nazwa zmiennej środowiskowej z kluczem API | GEMINI_API_KEY |
--color |
Kolorowe wyjście (czerwony – błędy, zielony – sukces, żółty – ostrzeżenia) | wyłączone |
--overwrite |
Wymusza nadpisywanie istniejących plików bez pytania | pyta |
--stat |
Podsumowanie na końcu działania; opcjonalnie --stat err wyświetla listę nieudanych |
wyłączone |
--ret |
Liczba prób ponowienia nieudanych generacji | 3 |
--res |
Rozdzielczość: preset 1k/2k/4k lub WYSOKOŚĆ SZEROKOŚĆ | 1408 768 |
--genkeyenv |
Ustawia zmienną środowiskową GEMINI_API_KEY z podaną wartością | – |
-b / --batch |
Tryb wsadowy – cichy, z wymuszonym nadpisywaniem | wyłączone |
--testprice |
Szacuje koszt generowania obrazów bez faktycznego uruchamiania | wyłączone |
--debug |
Szczegółowe informacje debugowania | wyłączone |
Rozdzielczość – opcja –res
Opcja --res pozwala wybrać rozdzielczość generowanych obrazów:
| Wartość | Rozdzielczość |
|---|---|
1k |
1024 x 1024 |
2k |
2048 x 2048 |
4k |
4096 x 4096 |
SZEROKOŚĆ WYSOKOŚĆ |
Dowolna, np. 1920 1080 |
Listowanie dostępnych modeli
Aby wyświetlić listę modeli obsługujących generowanie obrazów:
Szacowanie kosztów
Przed faktycznym uruchomieniem można oszacować koszt generowania:
python genimages.py -i prompty.json --testprice
Przykłady użycia
1. Domyślne uruchomienie
python genimages.py -i prompty.json
Generuje obrazy w formacie JPG, domyślna rozdzielczość 1408×768, w katalogu prompty/.
2. Generowanie z pliku tekstowego do własnego katalogu
python genimages.py -i moje_prompty.txt -t txt -o moje_obrazy --fmt png --stat
Wczytuje prompty z pliku tekstowego, zapisuje jako PNG w katalogu moje_obrazy/, na końcu wyświetla podsumowanie.
3. Własny wzór nazewnictwa i opóźnienie
python genimages.py -i prompty.json --imgpat "projekt" --delay 3 --color
Generuje pliki projekt_001.jpg, projekt_002.jpg itd. z 3-sekundowym opóźnieniem i kolorowym wyjściem.
4. Rozdzielczość 2K z wymuszonym nadpisywaniem
python genimages.py -i prompty.json --res 2k --overwrite
5. Wybór modelu
python genimages.py --list
python genimages.py -i pojedynczy_prompt.txt -t txt --model gemini-1.5-flash-latest
6. Tryb wsadowy
python genimages.py --genkeyenv TWOJ_KLUCZ -i prompty.json --batch
7. Szacowanie kosztów
python genimages.py -i prompty.json --testprice --model gemini-1.5-pro-latest
Podsumowanie
Genimages to praktyczne narzędzie dla każdego, kto regularnie korzysta z AI do generowania obrazów i chce zautomatyzować ten proces. Dzięki obsłudze dwóch formatów plików wejściowych (TXT i JSON), elastycznym opcjom nazewnictwa, regulacji rozdzielczości, mechanizmowi ponawiania oraz szczegółowemu podsumowaniu, skrypt sprawdzi się zarówno w codziennej pracy, jak i w zautomatyzowanych pipeline’ach.
Wbudowana obsługa klucza API przez zmienną środowiskową oraz opcjonalny tryb wsadowy czynią go łatwym do zintegrowania z istniejącymi procesami. Funkcja szacowania kosztów pozwala kontrolować wydatki przed faktycznym uruchomieniem generacji.
Źródła: github.com/IgorBrzezek/genimages
