🏠 Домашнее задание

← К оглавлению урока

⚡ Что сдать

  • Минимум 3 Stable Diffusion/text-to-image промпта разной сложности.
  • Сгенерированные изображения или скриншоты результатов.
  • Короткий отчёт: какие prompt-engineering техники применили и что улучшилось.

Оригинальное ДЗ из LMS

Поэкспериментируйте самостоятельно со Stable Diffusion: создайте минимум 3 текстовых запроса (промптов) разной сложности и тематики и сгенерируйте изображения для каждого запроса. Прикрепите запросы с изображениями в LMS.

Найдите в интернете примеры «промпт-инжиниринга» для Stable Diffusion. Попробуйте применить эти техники для улучшения результатов генерации. Поделитесь самыми интересными или забавными изображениями, которые вам удалось сгенерировать, в общем чате.

Подготовка окружения

# Терминал (Windows PowerShell)
python -m venv venv
venv\Scripts\Activate.ps1
pip install huggingface_hub python-dotenv pillow
pip freeze > requirements.txt
# .env
HF_TOKEN=hf_ваш_токен

Добавьте .env и venv/ в .gitignore. Если используете web-интерфейс вместо Python API, всё равно сдайте промпты, изображения и выводы.

Рекомендуемая структура сдачи

ai-lesson-07/
├── .env                 # не сдавать публично
├── .gitignore
├── generate_image.py
├── prompts.md           # промпты, изменения, выводы
├── generated_image_1.png
├── generated_image_2.png
└── generated_image_3.png

Что написать в prompts.md

  1. Исходный промпт: что хотели получить.
  2. Результат: что получилось хорошо, что не совпало.
  3. Улучшение: какие слова добавили: стиль, свет, композиция, negative prompt.
  4. Итоговый вывод: какие техники сработали лучше всего.

Каркас генератора

# generate_image.py
import os

from dotenv import load_dotenv
from huggingface_hub import InferenceClient

load_dotenv()
token = os.getenv("HF_TOKEN")
if not token:
    raise RuntimeError("Set HF_TOKEN in .env")

client = InferenceClient(provider="fal-ai", api_key=token)

prompts = [
    "A calm mountain lake at sunset, realistic photo, soft light",
    "A futuristic city with flying cars, neon lights, cinematic concept art",
    "A robot teaching Python in a cozy classroom, watercolor illustration",
]

for index, prompt in enumerate(prompts, start=1):
    image = client.text_to_image(prompt, model="black-forest-labs/FLUX.1-dev")
    filename = f"generated_image_{index}.png"
    image.save(filename)
    print(filename, prompt)

Проверка в VS Code

  • Терминал: python generate_image.py.
  • Проверьте, что PNG-файлы появились в папке проекта.
  • Если API вернул ошибку доступа/лимита, замените модель или провайдера по документации Hugging Face.
  • В отчёте укажите, какая модель/сервис использовались.

Критерии самопроверки

  • Есть минимум 3 промпта разной сложности и тематики.
  • Для каждого промпта есть изображение или скриншот результата.
  • Есть хотя бы одна итерация улучшения промпта.
  • Выводы не только «понравилось/не понравилось», а про соответствие промпту, стиль, артефакты и ограничения.