feat(photo-ai): официальный CodeFormer вендорен, веса на этапе сборки
CodeFormer был написан по API сторонней обёртки с PyPI (rohitkhatri): CodeFormer(..., device=..., fp16=False) и net.device официальный класс не принимает — вызов падал бы с TypeError. В photo-ai/vendor/codeformer вендорен официальный sczhou/CodeFormer (codeformer_arch.py + vqgan_arch.py, b33cc7d, лицензия S-Lab 1.0), устройство передаётся через net.to(device), чекпоинт читается из params_ema. Веса больше не качаются лениво при первом запросе: fetch-weights.py на сборке образа кладёт их в /opt/photo-ai-seed (build-arg PHOTO_AI_PREFETCH, дефолт codeformer), при старте seed_weights() переносит их в том photo-ai-models:/models/weights. Том переживает пересборку образа, BuildKit-кэш не даёт качать повторно, недоступная сеть на сборке не роняет образ.
This commit is contained in:
+5
-1
@@ -69,8 +69,12 @@ PHOTO_AI_DEVICE=auto
|
||||
# На GPU с 4 ГБ VRAM держите 256: при нехватке сервис сам пройдёт лестницу тайлов и уйдёт на CPU.
|
||||
PHOTO_AI_TILE=256
|
||||
# Модель восстановления лиц: gfpgan (по умолчанию) или codeformer.
|
||||
# codeformer доступен только если модуль вендорен в photo-ai/vendor.
|
||||
# Официальный модуль codeformer вендорен в photo-ai/vendor, доступен сразу.
|
||||
PHOTO_AI_FACE_MODEL=gfpgan
|
||||
# Какие веса photo-ai скачивает на этапе сборки образа (build-arg, не переменная контейнера):
|
||||
# codeformer (по умолчанию) | face (codeformer + gfpgan) | all | none.
|
||||
# Веса попадают в слой образа, при старте переносятся в том photo-ai-models и живут там.
|
||||
PHOTO_AI_PREFETCH=codeformer
|
||||
# Предзагрузка всех моделей при старте (1) или ленивая загрузка по требованию (0).
|
||||
PHOTO_AI_LOAD_ALL=0
|
||||
# Качество JPEG результата (70..100).
|
||||
|
||||
Reference in New Issue
Block a user