Как создать приложение для преобразования текста в изображение с бесплатной моделью искусственного интеллекта за 30 строк кода

Создание удивительных изображений с помощью искусственного интеллекта – пошаговое руководство по созданию приложения для тестирования изображений

В нашем быстро меняющемся мире искусственный интеллект занимает центральное место. Неудивительно, что ИИ привлек наше внимание, ведь он способен повысить эффективность в различных отраслях. Возможно, вы уже экспериментировали с такими инструментами преобразования текста в изображение, как Midjourney и Dream Studio, но в этой статье я расскажу вам пошаговое руководство по созданию собственного приложения “midjourney” для генерации текста в изображение с нуля с помощью Stable diffusion. Это около 30 строк кода. Поскольку stable diffusion имеет открытый исходный код, модель бесплатна.

Как создать приложение для преобразования текста в изображение с бесплатной моделью искусственного интеллекта за 30 строк кода

Предварительные условия

Давайте убедимся, что у вас есть все необходимое, прежде чем приступить к созданию собственного приложения для генерации текста в изображение.

– Вам нужен ноутбук с графическим процессором. Не волнуйтесь, если на вашем компьютере нет GPU, вы можете использовать Google Colab для доступа к бесплатному GPU, но использование ноутбука с GPU более оптимально.
– Установите интегрированную среду разработки (IDE) с окружением python.

Соблюдая эти жизненно важные условия, вы готовы к работе.

Введение

Давайте вкратце познакомимся с миром диффузионных моделей, которые используются для генерации изображений из текста. Диффузионная модель использует марковскую цепь для постепенного внесения шума в данные, а затем обратного процесса и получения желаемой выборки данных из шума. Яркими примерами диффузионных моделей являются DALLE 2 от OpenAI, Imagen от Google и Stable diffusion, разработанная StabilityAI. В этой статье мы сосредоточимся на использовании Stable Diffusion от Stability AI для создания нашего APP. Несмотря на то, что генеративные модели, такие как Generative Adversarial Networks (GANs), Variational Autoencoders (VAEs) и Flow-based models, хорошо известны, диффузионные модели являются более современными, эффективными и дают лучшие результаты.

Настройка и установка

Мы можем получить доступ к модели стабильной диффузии через Hugging face. Hugging face – это сообщество и платформа, предоставляющая доступ к моделям машинного обучения с открытым исходным кодом и набору данных. Поскольку модели с открытым исходным кодом, доступ к Hugging Face бесплатный, хотя есть и платный уровень. Необходимо создать профиль на hugging face, если у вас его еще нет. После создания профиля вам понадобится “токен доступа”.

  • Нажмите на значок своего профиля
  • Нажмите на “Настройки”
  • Перейдите к разделу “Токены доступа” на левой вкладке.
  • Вы можете либо сгенерировать новый токен, либо использовать существующий.
  • Скопируйте токен

Токен, необходимый для доступа к модели стабильной диффузии, является бесплатным, что делает “Обнимая лицо” мощным ресурсом.

Как создать приложение для преобразования текста в изображение с бесплатной моделью искусственного интеллекта за 30 строк кода

Создайте файл “authtoken.py”. Этот файл будет содержать ваш токен доступа к обнимающемуся лицу

# authtoken.py

# How to get one: https://huggingface.co/docs/hub/security-tokens
auth_token = "{COPY ACCESS TOKEN FROM HUGGING FACE}"

Установите все требования

Создайте файл “requirements.txt”. Если вы знакомы с кодированием на python, вы уже должны знать, для чего используется этот файл. Файл “requirements.txt” содержит все необходимые библиотеки, которые должны быть установлены для проекта на python.

# requirements.txt

customtkinter==4.6.1
darkdetect==0.7.1
diffusers==0.3.0
filelock==3.8.0
huggingface-hub==0.9.1
idna==3.4
importlib-metadata==4.12.0
numpy==1.23.3
packaging==21.3
Pillow==9.2.0
pyparsing==3.0.9
PyYAML==6.0
regex==2022.9.13
requests==2.28.1
tk==0.1.0
tokenizers==0.12.1 
torch==1.12.1+cu113
torchaudio==0.12.1+cu113
torchvision==0.13.1+cu113
tqdm==4.64.1
transformers==4.22.1
typing_extensions==4.3.0
urllib3==1.26.12
zipp==3.8.1

Выполните приведенную ниже команду для установки библиотек, указанных в файле requirements.txt

pip install requirements.txt

Создание приложения

Чтобы обеспечить четкое понимание процесса, давайте изложим пошаговый подход, которому мы будем следовать при создании приложения.

  • Реализовать функцию “generate_image “Импортировать все необходимые библиотеки
  • Создайте пользовательский интерфейс с помощью Tkinter и Customtkinter
  • Загрузите модель стабильной диффузии с сайта Hugging Face
  • Реализуйте функцию “generate_image”
  • Создайте кнопку для запуска функции “generate_image”

Импорт всех необходимых библиотек – Мы начинаем с включения необходимых библиотек в наш код, это даст нашему приложению доступ ко всем необходимым функциям приложения.

# Libraries for building GUI 
import tkinter as tk
import customtkinter as ctk 

# Machine Learning libraries 
import torch
from torch import autocast
from diffusers import StableDiffusionPipeline

# Libraries for processing image 
from PIL import ImageTk

# private modules 
from authtoken import auth_token

Создание пользовательского интерфейса с помощью Tkinter и Customtkinter – Tkinter – это хорошо известная библиотека python, которая может быть использована для создания графического интерфейса пользователя (GUI) для приложения. У пользователя будет визуальный интерфейс для взаимодействия с моделью стабильной диффузии и просмотра результатов, полученных с помощью модели.

# Create app user interface
app = tk.Tk()
app.geometry("532x632")
app.title("Text to Image app")
app.configure(bg='black')
ctk.set_appearance_mode("dark") 

# Create input box on the user interface 
prompt = ctk.CTkEntry(height=40, width=512, text_font=("Arial", 15), text_color="white", fg_color="black") 
prompt.place(x=10, y=10)

# Create a placeholder to show the generated image
img_placeholder = ctk.CTkLabel(height=512, width=512, text="")
img_placeholder.place(x=10, y=110)

Скачайте модель стабильной диффузии с hugging face – используйте платформу hugging face для получения модели стабильной диффузии. Эта модель будет служить основой для генерации изображений на основе текста или подсказок.

# Download stable diffusion model from hugging face 
modelid = "CompVis/stable-diffusion-v1-4"
device = "cuda"
stable_diffusion_model = StableDiffusionPipeline.from_pretrained(modelid, revision="fp16", torch_dtype=torch.float16, use_auth_token=auth_token) 
stable_diffusion_model.to(device) 

Реализация функции “generate_image” – Разработайте функцию под названием “generate_image”, которая будет запускаться всякий раз, когда на пользовательском интерфейсе произойдет событие щелчка. Эта функция будет отправлять текст или подсказку в модель стабильной диффузии и получать в ответ изображение. Затем изображение будет отображаться в пользовательском интерфейсе.

# Generate image from text 
def generate_image(): 
    """ This function generate image from a text with stable diffusion"""
    with autocast(device): 
        image = stable_diffusion_model(prompt.get(),guidance_scale=8.5)["sample"][0]
    
    # Save the generated image
    image.save('generatedimage.png')
    
    # Display the generated image on the user interface
    img = ImageTk.PhotoImage(image)
    img_placeholder.configure(image=img) 

Создайте кнопку для запуска функции “generate_image” – внедрите в пользовательский интерфейс кнопку, нажав на которую пользователи смогут запустить функцию “generate_image”. С помощью кнопки пользователи смогут легко создавать изображения на основе введенного текста.

trigger = ctk.CTkButton(height=40, width=120, text_font=("Arial", 15), text_color="black", fg_color="white",
                         command=generate_image) 
trigger.configure(text="Generate")
trigger.place(x=206, y=60) 

app.mainloop()

Выполнить приложение

Чтобы выполнить код, давайте объединим весь необходимый код в скрипт python с именем “app.py”. Этот скрипт будет служить центральным хранилищем для нашего приложения. После того как мы завершили написание кода и сохранили его как “app.py”, вы можете запустить скрипт с помощью следующей команды в интерфейсе командной строки или терминале

python app.py

Выполнение этой команды инициирует выполнение скрипта python, запустит наше приложение и позволит пользователю взаимодействовать с нашим приложением.

# app.py 

# Libraries for building GUI 
import tkinter as tk
import customtkinter as ctk 

# Machine Learning libraries 
import torch
from torch import autocast
from diffusers import StableDiffusionPipeline

# Libraries for processing image 
from PIL import ImageTk

# private modules 
from authtoken import auth_token


# Create app user interface
app = tk.Tk()
app.geometry("532x632")
app.title("Text to Image app")
app.configure(bg='black')
ctk.set_appearance_mode("dark") 

# Create input box on the user interface 
prompt = ctk.CTkEntry(height=40, width=512, text_font=("Arial", 15), text_color="white", fg_color="black") 
prompt.place(x=10, y=10)

# Create a placeholder to show the generated image
img_placeholder = ctk.CTkLabel(height=512, width=512, text="")
img_placeholder.place(x=10, y=110)

# Download stable diffusion model from hugging face 
modelid = "CompVis/stable-diffusion-v1-4"
device = "cuda"
stable_diffusion_model = StableDiffusionPipeline.from_pretrained(modelid, revision="fp16", torch_dtype=torch.float16, use_auth_token=auth_token) 
stable_diffusion_model.to(device) 

# Generate image from text 
def generate_image(): 
    """ This function generate image from a text with stable diffusion"""
    with autocast(device): 
        image = stable_diffusion_model(prompt.get(),guidance_scale=8.5)["sample"][0]
    
    # Save the generated image
    image.save('generatedimage.png')
    
    # Display the generated image on the user interface
    img = ImageTk.PhotoImage(image)
    img_placeholder.configure(image=img) 


trigger = ctk.CTkButton(height=40, width=120, text_font=("Arial", 15), text_color="black", fg_color="white",
                         command=generate_image) 
trigger.configure(text="Generate")
trigger.place(x=206, y=60) 

app.mainloop()

Заключение

Мы изучили процесс создания приложения для преобразования текста в изображение с использованием Tkinter для пользовательского интерфейса и модели Stable Diffusion из стабильного AI с помощью Hugging Face за 30 строк кода. Теперь вы можете создать свой собственный инструмент генерации текста в изображение с помощью AI.

+1
0
+1
0
+1
0
+1
0
+1
0

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *