Генеруем выявы праз ШІ на уласным камп'ютары
Вітанкі, спадарства! Сёння мы з вамі паспрабуем стварыць уласны інструмент для генерацыі малюнкаў пры дапамозе ШІ-мадэлі FLUX. І крыху крынжу на прыканцы Мадэль - black-forest-labs/FLUX.1-dev
Рэгістрацыя на Hugging Face і стварэнне токена
Для таго каб мадэль была для нас дасяжнай, неабходна мець акаунт на Hugging Face (Рэгіструемся).
Далей пераходзім да пункту Access Tokens
Ціснем кнопку Create token
І выбіраем наступныя чэкбоксы:
У выніку атрымаем ключ для доступу да мадэляў. Ён будзе выглядаць неяк так : hf_JaHyiMViSsScVvsvedjdjrwrXLqziMBdZSklpFg
. Захавайце яго,бо калі згубіце - то прыйдзецца генераваць новы.
Запускаем скрыпт.
Наступным крокам будзе непасрэдна запуск нашай мадэлі. Запусціць наш код мы можам лакальна на нашым камп'ютары ці праз Google Collab. Ніжэй разгледзім абодва падыходы.
Для запуску на ўласным камп'ютары неабходна каб быў усталяваны Python ды pip. Як іх усталёўваць мы разглядаць сення не будзем.
Далей ствараем файл скрыпту flux.py
.
І запісваем у яго наступны код:
import os from diffusers import FluxPipeline import torch from datetime import datetime # Ваш токен Hugging Face os.environ["HF_TOKEN"] = "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" pipe = FluxPipeline.from_pretrained("black-forest-labs/FLUX.1-dev", torch_dtype=torch.bfloat16) pipe.enable_sequential_cpu_offload() # Уключыць паслядоўную выгрузку на CPU pipe.vae.enable_slicing() pipe.vae.enable_tiling() prompt = "Knights are marching in formation with swords and shields, dressed in various dark armors with closed helmets, in winter. Two soldiers are mounted on horses. They wear white cloaks with red crosses. They are returning to a nearby castle as snow falls. The atmosphere is gloomy, with ravens circling in the sky." print(f"Prompt: {len(prompt)} characters") # Друк даўжыні запыту out = pipe( prompt=prompt, # Запыт height=512, # Вышыня выявы width=512*2, # Шырыня выявы guidance_scale=3.5, # Павялічыць, каб зрабіць кіраванне больш прыкметным num_inference_steps=30, # Колькасць крокаў інферэнцыі max_sequence_length=512, # Максімальная даўжыня запыту generator=torch.Generator(device='cuda').manual_seed(0), # Генератар з фіксаваным seed для паўтаральнасці ).images[0] # Генерацыя унікальнага імя файла з часовым штампам timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") output_filename = f"knights_white_horses_{timestamp}.png" out.save(output_filename) # Захаваць выяву print(f"Image saved as {output_filename}") # Друк імя захаванага файла
Дапісваем захаваны раней ключ з Hugging Face. Дадаем неабходны нам промпт з тэкстам, дэталева апісваючым што неабходна намаляваць.
Усталёўваем неабходную нам шырыню праз параметры height
ды weight
.
Вызначаем колькасць апрацовак малюнкаў праз num_inference_steps
(чым больш тым лепш, але вельмі шмат - будзе вельмі доўга апрацоўвацца, таму можна браць 15-30. па змаўчанню - 50). Меньш - якасць выяў будзе дрэннай.
Параметр guidance_scale
задае наколькі мадэль будзе "свавольнічаць":
guidance_scale=3.5
: Мадэль будзе арыентавацца на ваш запыт, але з некаторымі крэатыўнымі адхіленнямі.guidance_scale=7.5
: Вынік будзе больш дакладна адпавядаць апісанню.guidance_scale=15.0
: Мадэль можа "перашчыраваць" і стварыць менш натуральны вынік. Далей адчыняем камандную страку і выклікаем каманду
pip install diffusers torch
Пасля таго як неабходныя нам пакеты будуць спампаваныя - запускаем наш скрыпт камандай python flux.py
.
Пры выкананні скрыпту пачнецца спампоўванне мадэлі (толькі першы раз), затым вы пабачыце лодэры якія пакажуць прагрэс стварэння выявы.
Увесь гэты працэс можа заняць першы раз шмат часу. Наступныя разы будзе значна хутчэй. Але ўсе ж улічвайце што стварэнне робіцца праз працэссар а не праз GPU таму час усе адно будзе вялікі.
Запуск праз Google Collab.
Пераходзім на сайт Google Collab У вакне выбіраем Github і дадаем спасылку на ўжо створаны notebook файл - генерацыя_выяў.ipynb
https://github.com/bel-frontend/notebooks/blob/main/%D0%B3%D0%B5%D0%BD%D0%B5%D1%80%D0%B0%D1%86%D1%8B%D1%8F_%D0%B2%D1%8B%D1%8F%D1%9E.ipynb
І націскаем на назву файла. У блакноце проста націскаем паслядоўна націскаем на кнопкі выканання коду.
Трэба адзначыць што праз Google Collab спатрэбіцца значна больш часу на генерацыю выявы. Але гэта ўсе так жа бязплатна і проста цікава.
Пасля таго як скрыпты адпрацуюць - у дрэве файлаў вы знойдзеце згенераваны малюнак, вы яго можаце спампаваць і "насалоджвацца" вынікам.
Вынікі
Давайце проста паглядзім на гэтыя шыкоўныя выявы:
Самыя крынжовыя з іх (Увага на коней):
-Хуткую выклікалі?
-Так! Для вунь тых вунь двух, што задам наперад на конях едуць
-А чаму ў нас шлемы як у фрыцаў у першую сусветную?
-Ты мо яшчэ спытай у якім напрамку мы едзем!?
-Хлопцы, глядзіця у мяне не конь а Аднарог!
-Ён у цябе і Аднавух і Аднавок! І ўвогуле што ты бачаш з вядром на галаве?
Але былі і прыгожыя:
Дзякуй усім хто дачытаў да канца. Спадзяюся Што артыкул быў для вас цікавы ды пазнавальны. Вельмі ўсім удзячны хто дачытаў да канца.
ЗЫ:
Спадарства, Запрашаем вас таксама ствараць цікавыя артыкулы, дзяліцца сваім досведам, пашыраць беларускамоўную прастору.
Каментары
(Каб даслаць каментар залагуйцеся ў свой уліковы запіс)