Python Рисование с помощью ИИ

В этой статье мы расскажем, как создать собственный инструмент генерации изображений с помощью ИИ на основе некоторых API для разработки или библиотек с открытым исходным кодом.


API преобразования текста в изображение

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

Alibaba Cloud Bailian предоставляет две основные серии моделей:

  • Tongyi Qianwen (Qwen-Image): хорошо справляется с отрисовкой сложного китайского и английского текста. В этой главе он используется в качестве примера.
  • Tongyi Wanxiang (серия Wan): используется для генерации реалистичных изображений и визуальных эффектов фотографического уровня.

Установите DashScope Python SDK, выполнив следующую команду:

# 如果运行失败,您可以将pip替换成pip3再运行
pip install -U requests dashscope

Нам нужно активировать сервис моделей Alibaba Cloud Bailian и получить API-KEY.

Сначала можно использовать основную учётную запись Alibaba Cloud для доступа к платформе сервиса моделей Bailian:https://bailian.console.aliyun.com/, затем нажмите «Войти» в правом верхнем углу. После входа нажмите значок шестерёнки ⚙️ в правом верхнем углу, выберите API-ключ, затем скопируйте API-ключ. Если у вас его нет, вы также можете создать API-ключ:

Активация Alibaba Cloud Bailian не влечёт за собой плату. Только вызов модели (после превышения бесплатной квоты), развёртывание модели и тонкая настройка модели влекут соответствующие расходы.

Теперь, чтобы использовать API, нужна оплата по токенам. К счастью, это недорого. Мы можем сначала приобрести самый дешёвый пакет:Платформа сервиса больших моделей Alibaba Cloud Bailian。

Далее мы генерируем изображения, задавая промпты:

Пример

from http import HTTPStatus
from urllib.parse import urlparse, unquote
from pathlib import PurePosixPath
import requests
from dashscope import ImageSynthesis
import os

prompt = "В зале висит изящная и торжественная парная надпись. Комната — это тихий классический китайский интерьер, на столе стоит сине-белый фарфор. Слева от надписи написано: 'Праведность врождена, люди и машины идут одним путём и умеют мыслить по-новому'; справа написано: 'Облака передают мудрость, небо и земля порождают числа, а высокие устремления ведут далеко'; на горизонтальном свитке написано: 'Мудрость просвещает Tongyi'. Каллиграфия плавная и изящная. В центре висит картина в китайском стиле, содержание которой — Башня Юэян."

# Пожалуйста, используйте API-ключ Bailian
api_key = "sk-xxx"

print('---- Синхронный вызов, пожалуйста, дождитесь выполнения задачи ----')
rsp = ImageSynthesis.call(api_key=api_key,
                          model="qwen-image",
                          prompt=prompt,
                          n=1,
                          size='1328*1328',
                          prompt_extend=True,
                          watermark=True)
print('ответ: %s' % rsp)
if rsp.status_code == HTTPStatus.OK:
    # Сохранить изображение в текущем каталоге
    for result in rsp.output.results:
        file_name = PurePosixPath(unquote(urlparse(result.url).path)).parts[-1]
        with open('./%s' % file_name, 'wb+') as f:
            f.write(requests.get(result.url).content)
else:
    print('Синхронный вызов не удался, status_code: %s, code: %s, message: %s' %
          (rsp.status_code, rsp.code, rsp.message))

Результат вывода похож на следующий. Вы увидите параметр url. Мы можем обратиться к нему, чтобы скачать изображение, описанное в промпте:

----同步调用,请等待任务执行----
response: {"status_code": 200, "request_id": "1968746e-f434-4f77-9f8c-9b1adb80e8d7", "code": null, "message": "", "output": {"task_id": "d85c65d9-c4ff-4d66-a895-7c7746620b0c", "task_status": "SUCCEEDED", "results": [{"url": "https://dashscope-result-sh.oss-cn-shanghai.aliyuncs.com/7d/05/20250916/8d68e658/d85c65d9-c4ff-4d66-a895-7c7746620b0c-1.png?xxxxxxxxx", 
...

Изображение, сгенерированное приведённым выше примером, выглядит так:

Для получения дополнительной информации обратитесь к официальной документации:https://help.aliyun.com/zh/model-studio/text-to-image


Stable Diffusion

Используемая библиотека с открытым исходным кодом — Stable Diffusion web UI, это браузерный интерфейс Stable Diffusion на основе библиотеки Gradio.

Адрес Stable Diffusion web UI на GitHub:https://github.com/AUTOMATIC1111/stable-diffusion-webui

Для запуска Stable Diffusion требуются довольно высокие требования к оборудованию, и во время работы он потребляет значительные ресурсы, особенно видеокарту.

Установка в среде Windows

Локальная среда требует установки Python 3.10.6 или более поздней версии, и его следует добавить в переменные среды машины.

Скачайте исходный код Stable Diffusion web UI с GitHubhttps://github.com/AUTOMATIC1111/stable-diffusion-webui。

git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git

Если Git не установлен, вы можете скачать zip-архив в правом верхнем углу.

Распакуйте stable-diffusion-webui и перейдите в каталог stable-diffusion-webui.

Далее нам нужно скачать модель. Адрес для скачивания:https://huggingface.co/CompVis/stable-diffusion-v-1-4-original

Переместите скачанную модель вstable-diffusion-webui/models/Stable-diffusionкаталог.

Перейдите в каталог stable-diffusion-webui:

Windows: запустите без прав администратора:

webui-user.bat

Для сред Linux и Mac OS выполните следующую команду:

./webui.sh

Далее программа автоматически установится и запустится. После успешного запуска вы увидите доступный URL-адрес.http://127.0.0.1:7860:

Откройтеhttp://127.0.0.1:7860, интерфейс выглядит следующим образом:

Примечание:Если установка зависает, вероятно, проблема в скачивании исходного кода GitHub. Можно использовать некоторые зеркала GitHub, чтобы решить это. В настоящее время нет очень стабильного зеркала, поэтому рекомендуется поискать в Google. 6 апреля 2023 года я использовал следующий адрес зеркалаhttps://hub.fgit.ml, откройте файл launch.py в каталоге stable-diffusion-webui и замените адрес GitHub в следующей части кода (код примерно между строками 230 и 240):

Введение в Civitai

В Civitai есть много кастомизированных моделей, и их можно скачать бесплатно. Мы используем модельGuofeng 3для тестирования. Адрес скачивания:https://civitai.com/models/10415/3-guofeng3?modelVersionId=36644

После скачивания мы перемещаем модель вstable-diffusion-webui/models/Stable-diffusionкаталог и перезапускаем stable-diffusion-webui:

./webui.sh

Таким образом, мы можем выбрать модельGuofeng 3в списке моделей:

После выбора мы можем перейти на страницу с описанием модели, чтобы скопировать некоторые промпты и тестовые параметры:

Чтобы генерировать быстрее, я уменьшил и высоту, и ширину вдвое, затем нажмите кнопку «Сгенерировать»:

Чтобы посмотреть полный процесс генерации, вы можете подписаться на наш видеоканал WeChat:

Другие расширения