1. Неправильный пакет CLIP
Код урока ожидает OpenAI CLIP: import clip, clip.load(...), clip.tokenize(...). Устанавливайте пакет из официального GitHub.
pip install git+https://github.com/openai/CLIP.git
2. Изображение не в RGB
Некоторые изображения открываются как RGBA, P или CMYK. Перед препроцессором безопасно привести к RGB:
image = Image.open(path).convert("RGB")
3. Забыли torch.no_grad() и model.eval()
На инференсе градиенты не нужны. Без no_grad() расходуется больше памяти, а eval() фиксирует режим модели.
4. Неверная интерпретация softmax
Вероятности CLIP зависят от набора вариантов. Если среди меток нет правильной, модель всё равно распределит вероятность между неправильными. Добавляйте «none of the above» не получится буквально, но можно расширить список альтернатив.
5. Токен Hugging Face в коде
Так делать нельзя:
token = "hf_..." # плохо: секрет попадёт в историю git
Правильно: .env + python-dotenv + .gitignore.
6. Не проверяете ошибку API
При raw HTTP ответ может быть не изображением, а JSON с ошибкой лимита/доступа. Проверяйте status_code и Content-Type, либо используйте InferenceClient.
7. Слишком общий промпт
A nice picture почти не управляет моделью. Добавляйте объект, сцену, стиль, свет, композицию и качество. Но не перегружайте промпт противоречивыми требованиями.
8. Игнорирование этики и прав
Не выдавайте сгенерированное изображение за реальную фотографию, не используйте чужие имена/стили без понимания рисков, не генерируйте вредный контент. В учебном отчёте честно указывайте, что изображение создано моделью.