🖼️

Generowanie zdjęć z własną twarzą przy użyciu modelu FLUX (1)

Jak wspomniałem w e-mailu, naszym celem jest osiągnięcie takiego efektu przy użyciu modelu FLUX.

image

Do tego celu wykorzystamy platformę https://fal.ai. Jest to chmura umożliwiająca korzystanie z modeli, udostępnianie własnych oraz ich trenowanie (fine-tuning) metodą LoRA. Zachęcam do przejrzenia dostępnych modeli na tej platformie: https://fal.ai/models. Znajdziesz tam wiele modeli przydatnych w SEO, np. poprawiające jakość zdjęć czy zmieniające tło.

Krok 1. Twoje selfie

Do wytrenowania modelu potrzebnych będzie około 5 Twoich autentycznych selfie. Jeśli ich nie masz, zrób kilka zdjęć telefonem, umieszczając swoją twarz w różnych pozycjach. Pamiętaj — im więcej zdjęć dostarczysz, tym dokładniejszy będzie model.

Krok 2. Fine-tuning i konfiguracja

Na platformie odnajdujemy model, który chcemy wytrenować. W naszym przypadku jest to model dostępny pod adresem: https://fal.ai/models/fal-ai/flux-general. Klikamy w "Training".

image

Następnie wstawiamy wcześniej przygotowane selfie i robimy ustawienia dodatkowe.

image

W ustawieniach dodatkowych konfigurujemy:

  • Steps – im więcej kroków ustawisz (tyle będzie ich w treningu), tym lepsze efekty uzyskasz, ale też więcej taki trening będzie kosztował
  • Trigger Word – może to być Twoje imię. Po wytrenowaniu modelu, dodanie tego słowa do prompta spowoduje, że model będzie generował zdjęcie z Twoją twarzą

Krok 3. Trening

Po konfiguracji klikamy "Start". Trenowany model pojawi się na liście.

image

Ma on status "queue". Sam trening potrwa około 30 minut. Po tym czasie model zmieni swój status na "completed". W tym momencie model będzie gotowy do wykorzystania.

Krok 4. Generowanie zdjęć

Po zmianie statusu modelu na "completed" klikamy "Run Inference". Przycisk ten przeniesie nas do interfejsu generowania zdjęć.

image

Następnie możemy przejść do generowania zdjęć. Musimy tu skorzystać z kilku ustawień.

image
  1. Prompt - tu wpisujemy co chcemy aby przedstawiał obraz (do tworzenia promptów przejdę jeszcze dalej). Jeśli chcemy zdjęcie z naszą twarzą musimy w prompcie umieścić trigger word (w moim przypadku jest to Damian). Miejsce umieszczenia tego słowa w prompcie nie ma znaczenia.
  2. Image size - rozmiar w jakim będzie generowane zdjęcie
image
  1. Seed – jeśli chcemy, aby model generował obraz na podstawie konkretnego zdjęcia, podajemy tu jego ID.
  2. Guidance scale – metryka określająca, jak ściśle model ma trzymać się instrukcji w prompcie.
  3. Num Images – określamy, ile zdjęć ma wygenerować model (z mojego doświadczenia wynika, że 3 to optymalna liczba).

Pozostałe ustawienia nie są istotne w kontekście generowania portretów. Po skonfigurowaniu wszystkich opcji klikamy "Run". Nasze zdjęcie powinno się pojawić po około 45 sekundach.

Oto efekt:

image

Efekt nie jest oszałamiający, ale nie przywiązywałem wagi do prompta, czym zajmiemy się za chwilę.

Dostęp do tego modelu masz również przez API: https://fal.ai/models/fal-ai/flux-general/api — umożliwia to wdrożenie procesu generowania takich zdjęć do własnych projektów.

Przeprowadziłem trening na podstawie własnych zdjęć, ale nic nie stoi na przeszkodzie, aby dostroić model do generowania obrazów w konkretnym stylu (możesz na przykład użyć grafik ze swojej strony internetowej).

Tworzenie promptów

W pracy z modelami językowymi prompty odgrywają kluczową rolę. Do tworzenia promptów dla generowania zdjęć najczęściej używam modelu Claude (Sonnet 3.5) (https://claude.ai/new), ale możesz skorzystać również z innych rozwiązań.

Przygotowałem dla Ciebie prompt, który pomoże Ci tworzyć prompty do generowania grafik.

Act as an expert prompt engineer for AI image generation models, specializing in creating prompts for realistic portrait photography. Your task is to generate detailed, comprehensive prompts that will result in high-quality, lifelike portrait images.

When a user provides this prompt to you, follow these steps:

1. Ask the user for the following details about the portrait they want to create:
   - Subject description (e.g., age, gender, ethnicity, notable features)
   - Facial expression and emotion
   - Pose and body language
   - Clothing and accessories
   - Background or setting
   - Lighting conditions (e.g., natural light, studio lighting, time of day)
   - Any specific mood or atmosphere they want to convey

2. Inquire about the preferred style or artistic technique, if any (e.g., photorealistic, cinematic, editorial, fine art)

3. Ask if they want to include any specific compositional elements (e.g., close-up, full body, rule of thirds)

4. Once you have gathered all the necessary information, construct a detailed prompt using the following structure:

   "Generate a highly detailed, realistic portrait photograph of [subject description]. The subject should have [facial expression] and convey [emotion]. They are posed [describe pose and body language], wearing [describe clothing and accessories]. The background features [describe setting]. The lighting is [describe lighting conditions], creating [describe mood/atmosphere]. Style: [mention preferred style if specified]. Composition: [describe compositional elements if specified]."

5. Add specific details to enhance realism, such as:
   - Skin texture and complexion details
   - Hair style and texture
   - Eye color and expression
   - Any unique features or characteristics

6. Include relevant photography terms to guide the image generation, such as:
   - Focal length (e.g., 85mm for portraits)
   - Aperture (e.g., f/2.8 for a shallow depth of field)
   - ISO and shutter speed for specific lighting conditions

7. End the prompt with: "Ensure high detail, photorealistic quality, and natural-looking features."

8. After generating the prompt, ask the user if they would like to make any adjustments or add any specific details.

Remember to create prompts that are clear, specific, and tailored to the user's requirements while maintaining a focus on generating realistic portrait photographs.

Wklej ten prompt do ulubionego narzędzia, powinno zadać Ci dodatkowe pytania.

image

Ostatecznie mój prompt wygląda tak.

Generate a highly detailed, realistic portrait photograph of a Jedi Knight named Damian. The subject should have a serene yet determined expression, conveying wisdom and inner strength. He is posed in a confident stance, one hand resting on the hilt of an ignited lightsaber. Damian is wearing traditional Jedi robes in earth tones, with a brown cloak draped over his shoulders. The background features a futuristic sci-fi setting, with sleek metallic surfaces and distant stars visible through a large viewport. The lighting is a mix of cool blue tones from the starship interior and the warm glow of the lightsaber, creating a dramatic and otherworldly atmosphere. Style: Cinematic and photorealistic with strong sci-fi elements. Composition: Three-quarter body shot, emphasizing the character's presence and the sci-fi environment.
Add specific details to enhance realism:

Subtle facial hair and a few small scars to suggest experience
Windswept hair with natural-looking texture
Piercing, focused eyes with a hint of otherworldly glow
Fabric textures of the Jedi robes, showing wear and movement

Include relevant photography and sci-fi terms:

Shot with a 50mm lens at f/4 to balance subject focus with environmental detail
High-contrast lighting to emphasize the sci-fi mood
Subtle lens flares from the lightsaber and starship lights

Ensure high detail, photorealistic quality, and natural-looking features while maintaining the iconic Star Wars Jedi aesthetic with a strong sci-fi emphasis.

A ostateczny efekt wygląda tak:

image

Jak widać, dobry prompt to podstawa dobrego zdjęcia :).

Ile to kosztuje?

Wszystko zależy od rozmiaru wygenerowanych zdjęć i modelu jaki wybierzemy. Te 3 zdjęcia, które wygenerowałem wyżej kosztowały 22 centy. Sam trening modelu kosztował ok. 12$ (jest to koszt jednorazowy).

Dotarliśmy do końca 🙂. Życzę Ci pięknie wygenerowanych zdjęć. Jeśli doceniasz naszą pracę udostępnić informację o naszym newsletterze: https://lp.sensai.academy/.

Dzięki, Damian.