1. Установка CLIP
Рискованный вариант
pip install clip
Так можно установить не тот пакет, и import clip / clip.load() не будет работать как в коде урока.
Современный вариант для кода урока
pip install ftfy regex tqdm
pip install git+https://github.com/openai/CLIP.git
Это установка из официального репозитория OpenAI CLIP.
2. Hugging Face: raw requests → InferenceClient
Как в исходном коде урока
# source_style_generate.py
import io
import requests
from PIL import Image
API_URL = "https://api-inference.huggingface.co/models/CompVis/stable-diffusion-v1-4"
headers = {"Authorization": f"Bearer {token}", "Content-Type": "application/json"}
payload = {
"inputs": prompt,
"parameters": {
"negative_prompt": "blurry, bad quality, distorted",
"num_inference_steps": 25,
},
}
response = requests.post(API_URL, headers=headers, json=payload)
response.raise_for_status()
image = Image.open(io.BytesIO(response.content))
Этот способ помогает понять HTTP-механику, но вам нужно вручную проверять статус, content-type, ошибки очереди/лимитов и доступность модели.
Современный вариант
# modern_generate.py
import os
from huggingface_hub import InferenceClient
client = InferenceClient(
provider="fal-ai",
api_key=os.environ["HF_TOKEN"],
)
image = client.text_to_image(
"Astronaut riding a horse, cinematic lighting",
model="black-forest-labs/FLUX.1-dev",
)
image.save("generated.png")
InferenceClient берёт на себя часть клиентской логики и соответствует текущей документации Hugging Face Inference Providers.
⚠️ Модель и provider в примере — не догма. В учебной теме мы разбираем Stable Diffusion, но провайдеры Hugging Face могут рекомендовать новые text-to-image модели. Для проекта фиксируйте модель, провайдера, лицензию, стоимость и лимиты.
3. Интерпретация вероятностей CLIP
Наивная интерпретация
«CLIP показал 92%, значит на картинке точно собака».
Корректная интерпретация
CLIP выбрал наиболее релевантный вариант из заданных кандидатов. Чтобы результат был полезен, нужны хорошие альтернативы, тестовые примеры и ручная проверка крайних случаев.