From 2862dc7a9bfceca1f8b35da4c53981bd09d431c6 Mon Sep 17 00:00:00 2001 From: Haro Date: Tue, 15 Sep 2026 07:21:07 +0000 Subject: [PATCH] [UPDATE][facefusionv3][1.1.15] Run the official OpenResty entrance as UID/GID 1000 with writable runtime paths. --- facefusionv3/Chart.yaml | 2 +- facefusionv3/OlaresManifest.yaml | 15 ++++- facefusionv3/i18n/de-DE/OlaresManifest.yaml | 64 +++++++++++++++++++++ facefusionv3/i18n/es-ES/OlaresManifest.yaml | 64 +++++++++++++++++++++ facefusionv3/i18n/fr-FR/OlaresManifest.yaml | 64 +++++++++++++++++++++ facefusionv3/i18n/it-IT/OlaresManifest.yaml | 64 +++++++++++++++++++++ facefusionv3/i18n/ja-JP/OlaresManifest.yaml | 61 ++++++++++++++++++++ facefusionv3/owners | 9 +-- facefusionv3/templates/clientproxy.yaml | 22 ++++++- facefusionv3/templates/facefusion.yaml | 2 +- 10 files changed, 354 insertions(+), 13 deletions(-) create mode 100644 facefusionv3/i18n/de-DE/OlaresManifest.yaml create mode 100644 facefusionv3/i18n/es-ES/OlaresManifest.yaml create mode 100644 facefusionv3/i18n/fr-FR/OlaresManifest.yaml create mode 100644 facefusionv3/i18n/it-IT/OlaresManifest.yaml create mode 100644 facefusionv3/i18n/ja-JP/OlaresManifest.yaml diff --git a/facefusionv3/Chart.yaml b/facefusionv3/Chart.yaml index ab24c32d0..98b41aee1 100644 --- a/facefusionv3/Chart.yaml +++ b/facefusionv3/Chart.yaml @@ -2,5 +2,5 @@ apiVersion: v2 name: facefusionv3 description: Industry leading face manipulation platform. type: application -version: 1.1.7 +version: 1.1.15 appVersion: "3.6.1" diff --git a/facefusionv3/OlaresManifest.yaml b/facefusionv3/OlaresManifest.yaml index 42ed767f6..39ec342b9 100644 --- a/facefusionv3/OlaresManifest.yaml +++ b/facefusionv3/OlaresManifest.yaml @@ -7,9 +7,14 @@ metadata: description: Industry leading face manipulation platform appid: facefusionv3 title: FaceFusion - version: '1.1.7' + version: '1.1.15' categories: - - Creativity + - Creativity + - workspace + - models + tags: + - workbench + - image-editing sharedEntrances: - name: facefusion @@ -85,6 +90,7 @@ spec: `/facefusion/.assets/models` view it expects as an ephemeral symlink farm over the cached snapshots. Model bytes are de-duplicated and reused across apps. upgradeDescription: | + Run the official OpenResty entrance as UID/GID 1000 with writable runtime paths. Switch the reverse-proxy image from Bitnami OpenResty (`beclab/aboveos-bitnami-openresty:1.25.3-2`) to the official OpenResty image `openresty/openresty:1.29.2.5-bookworm-fat`. Align nginx config mounts and log paths with the official image layout (`/etc/nginx/conf.d/default.conf`, `/usr/local/openresty/nginx/logs/...`), and drop Bitnami-specific `OPENRESTY_CONF_FILE` wiring. @@ -125,6 +131,11 @@ spec: locale: - en-US - zh-CN + - de-DE + - es-ES + - it-IT + - fr-FR + - ja-JP doc: https://docs.facefusion.io/ license: - text: MIT diff --git a/facefusionv3/i18n/de-DE/OlaresManifest.yaml b/facefusionv3/i18n/de-DE/OlaresManifest.yaml new file mode 100644 index 000000000..764b761e5 --- /dev/null +++ b/facefusionv3/i18n/de-DE/OlaresManifest.yaml @@ -0,0 +1,64 @@ +metadata: + title: FaceFusion + description: Führende Plattform für Gesichtsbearbeitung +spec: + fullDescription: | + FaceFusion ist eine führende Plattform für Gesichtsbearbeitung. Sie ermöglicht müheloses Face-Swapping und atemberaubende Foto-Manipulationen. + + **Key Features:** + Advanced Facical Image Generation and Editing + - Nutzt hochwertige Algorithmen für nahtloses und realistisches Blending von Gesichtsmerkmalen mit anpassbarer Intensität; bietet Facial Morphing, Blending mehrerer Gesichter, realistische Transformationen + + Multiple Face Swapping: + - Unterstützt das Austauschen mehrerer Gesichter in einem Projekt. + + Real-Time Processing: + - Sofortige Vorschauen und Ergebnisse für schnelle, interaktive Face Fusion. + + Age Modification: + - Scheinbares Alter eines Gesichts ändern + + Lip Sync: + - Stellt sicher, dass getauschte Gesichter in Videos perfekt mit dem Audio synchronisiert sind und natürliche Mundbewegungen erzeugen. + + Deep Swapper (DeepFaceLive Models): + - Dedizierter Face-Swap-Prozessor mit community-trainierten DeepFaceLive-`.dfm`-Modellen und einer integrierten Bibliothek von über 24 Celebrity-Gesichtern. + + **Model storage (App Common, shared)** + FaceFusion-Modellpakete (3.0.0 → 3.6.0) liegen im gemeinsamen Cross-App App-Common- + HF-Hub-Cache (`appCommon/huggingface`, fester Containerpfad `/cache/hf/hub`). + Ein `llm-init`-Download-only-Sidecar holt jedes Repo über den + `OLARES_USER_HUGGINGFACE_SERVICE` des Nutzers in diesen Store; die Engine mountet denselben Store und + wartet auf `download-svc:/readyz`, bevor sie die flache + `/facefusion/.assets/models`-Ansicht als ephemeren Symlink-Farm über + die gecachten Snapshots neu aufbaut. Modellbytes werden dedupliziert und appübergreifend wiederverwendet. + upgradeDescription: | + Reverse-Proxy-Image von Bitnami OpenResty (`beclab/aboveos-bitnami-openresty:1.25.3-2`) auf das offizielle OpenResty-Image `openresty/openresty:1.29.2.5-bookworm-fat` umgestellt. + + Nginx-Konfigurations-Mounts und Log-Pfade an das Layout des offiziellen Images angepasst (`/etc/nginx/conf.d/default.conf`, `/usr/local/openresty/nginx/logs/...`), Bitnami-spezifische `OPENRESTY_CONF_FILE`-Verdrahtung entfernt. + + llm-init-Image auf `beclab/llm-init:v1.3.1` aktualisiert. + + V3 Shared-App-Migration von FaceFusion (Engine 3.6.1). + + **What's Changed** + + - **Download architecture**: spezieller `harveyff-hf-downloader-only` + Job durch shared `llm-init` Download-only Deployment + (`facefusiondownloader`) ersetzt, analog speachesv3 / acestep15v3. Modellpakete landen nun + im gemeinsamen Cross-App-HF-Cache (App Common, `/cache/hf/hub`) im + Standardlayout `models--owner--repo/snapshots//...`; die Engine wartet + auf `download-svc:/readyz` statt per-Repo-`.done`-Sentinels und baut + das flache `/facefusion/.assets/models`-Layout beim Start als Symlink-Farm neu auf. + - **Entrance routing**: nginx an acestep15v3 angeglichen — llm-init-API- + Pfade an download-svc gepinnt; `/` wartet auf Modell-Download UND Gradio-Readiness + und lädt vom Download-Dashboard automatisch via `/__app_ready` in die App um. + - **Architecture**: Engine-Deployment heißt jetzt nach der App-ID + (`facefusionv3`); nginx-Entrance (`facefusionproxy`) und Downloader + (`facefusiondownloader`) sind unabhängige Workloads via + `workloadReplicas`. + - **HF env**: HF-Mirror / Token kommen vom System-HF-Konto des Nutzers + via `valueFrom` (lokal als `HF_ENDPOINT` / `HF_TOKEN` deklariert; Templates + referenzieren `OLARES_USER_*`-Namen nicht mehr direkt, wie von v3 verlangt). + - **Resources**: `limitedMemory` auf 21Gi erhöht, damit Engine (16Gi) + llm-init + (4Gi) + nginx (256Mi) Limits in die Envelope passen. diff --git a/facefusionv3/i18n/es-ES/OlaresManifest.yaml b/facefusionv3/i18n/es-ES/OlaresManifest.yaml new file mode 100644 index 000000000..331c3e0f5 --- /dev/null +++ b/facefusionv3/i18n/es-ES/OlaresManifest.yaml @@ -0,0 +1,64 @@ +metadata: + title: FaceFusion + description: Plataforma líder de manipulación facial +spec: + fullDescription: | + FaceFusion es una plataforma líder de manipulación facial. Te permite intercambiar rostros sin esfuerzo y crear impresionantes manipulaciones fotográficas. + + **Key Features:** + Advanced Facical Image Generation and Editing + - Utiliza algoritmos de alta calidad para una fusión fluida y realista de rasgos faciales con niveles de intensidad personalizables; ofrece morphing facial, fusión de múltiples rostros y transformaciones realistas + + Multiple Face Swapping: + - Admite el intercambio de múltiples rostros en un mismo proyecto. + + Real-Time Processing: + - Ofrece vistas previas y resultados instantáneos, mejorando la experiencia con fusión facial rápida e interactiva. + + Age Modification: + - Alterar la edad aparente de un rostro + + Lip Sync: + - garantiza que los rostros intercambiados en vídeos estén perfectamente sincronizados con el audio, creando movimientos de boca fluidos que coinciden con el habla. + + Deep Swapper (DeepFaceLive Models): + - Procesador dedicado de face-swap respaldado por modelos DeepFaceLive `.dfm` entrenados por la comunidad, con una biblioteca integrada de más de 24 rostros de celebridades listos para usar. + + **Model storage (App Common, shared)** + Los packs de modelos de FaceFusion (3.0.0 → 3.6.0) viven en la caché HF Hub + compartida entre apps App Common (`appCommon/huggingface`, ruta fija del contenedor `/cache/hf/hub`). + Un sidecar solo descarga `llm-init` obtiene cada repo en ese almacén vía el + `OLARES_USER_HUGGINGFACE_SERVICE` del usuario; el motor monta el mismo almacén y + espera a `download-svc:/readyz` antes de reconstruir la vista plana + `/facefusion/.assets/models` como una granja efímera de symlinks sobre + los snapshots en caché. Los bytes del modelo se deduplican y se reutilizan entre apps. + upgradeDescription: | + Cambio de la imagen del reverse-proxy de Bitnami OpenResty (`beclab/aboveos-bitnami-openresty:1.25.3-2`) a la imagen oficial OpenResty `openresty/openresty:1.29.2.5-bookworm-fat`. + + Alineación de montajes de configuración nginx y rutas de logs con el layout de la imagen oficial (`/etc/nginx/conf.d/default.conf`, `/usr/local/openresty/nginx/logs/...`), y eliminación del cableado Bitnami específico `OPENRESTY_CONF_FILE`. + + Actualización de la imagen llm-init a `beclab/llm-init:v1.3.1`. + + Migración V3 de app compartida de FaceFusion (motor 3.6.1). + + **What's Changed** + + - **Download architecture**: sustituido el Job a medida `harveyff-hf-downloader-only` + por el Deployment compartido solo descarga `llm-init` + (`facefusiondownloader`), alineado con speachesv3 / acestep15v3. Los packs de modelos ahora + aterrizan en la caché HF compartida entre apps (App Common, `/cache/hf/hub`) en el + layout estándar `models--owner--repo/snapshots//...`; el motor espera + a `download-svc:/readyz` en lugar de sentinels `.done` por repo y reconstruye + el layout plano `/facefusion/.assets/models` como granja de symlinks al arrancar. + - **Entrance routing**: nginx reescrito para coincidir con acestep15v3 — las rutas API de llm-init + se fijan a download-svc; `/` espera la descarga del modelo Y la readiness de Gradio + y recarga automáticamente del dashboard de descarga a la app vía `/__app_ready`. + - **Architecture**: el Deployment del motor ahora se nombra según el appid + (`facefusionv3`); la entrada nginx (`facefusionproxy`) y el downloader + (`facefusiondownloader`) son workloads independientes declarados vía + `workloadReplicas`. + - **HF env**: el mirror / token HF se obtienen de la cuenta HF del sistema del usuario + vía `valueFrom` (declarados localmente como `HF_ENDPOINT` / `HF_TOKEN`; las plantillas + ya no referencian nombres `OLARES_USER_*` directamente, como exige v3). + - **Resources**: `limitedMemory` subido a 21Gi para que los límites del motor (16Gi) + llm-init + (4Gi) + nginx (256Mi) quepan en el sobre. diff --git a/facefusionv3/i18n/fr-FR/OlaresManifest.yaml b/facefusionv3/i18n/fr-FR/OlaresManifest.yaml new file mode 100644 index 000000000..5447d4281 --- /dev/null +++ b/facefusionv3/i18n/fr-FR/OlaresManifest.yaml @@ -0,0 +1,64 @@ +metadata: + title: FaceFusion + description: Plateforme leader de manipulation de visages +spec: + fullDescription: | + FaceFusion est une plateforme leader de manipulation de visages. Elle vous permet d'échanger des visages sans effort et de créer des manipulations photo époustouflantes. + + **Key Features:** + Advanced Facical Image Generation and Editing + - Utilise des algorithmes de haute qualité pour un mélange fluide et réaliste des traits du visage avec des niveaux d'intensité personnalisables ; offre morphing facial, mélange de plusieurs visages et transformations réalistes + + Multiple Face Swapping: + - Prend en charge l'échange de plusieurs visages dans un même projet. + + Real-Time Processing: + - Fournit des aperçus et résultats instantanés, améliorant l'expérience avec une fusion faciale rapide et interactive. + + Age Modification: + - Modifier l'âge apparent d'un visage + + Lip Sync: + - garantit que les visages échangés dans les vidéos sont parfaitement synchronisés avec l'audio, créant des mouvements de bouche fluides correspondant à la parole. + + Deep Swapper (DeepFaceLive Models): + - Processeur dédié de face-swap basé sur des modèles DeepFaceLive `.dfm` entraînés par la communauté, avec une bibliothèque intégrée de plus de 24 visages de célébrités prêts à l'emploi. + + **Model storage (App Common, shared)** + Les packs de modèles FaceFusion (3.0.0 → 3.6.0) vivent dans le cache HF Hub + partagé cross-app App Common (`appCommon/huggingface`, chemin conteneur fixe `/cache/hf/hub`). + Un sidecar download-only `llm-init` récupère chaque repo dans ce store via le + `OLARES_USER_HUGGINGFACE_SERVICE` de l'utilisateur ; le moteur monte le même store et + attend `download-svc:/readyz` avant de reconstruire la vue plate + `/facefusion/.assets/models` comme une ferme de symlinks éphémères sur + les snapshots en cache. Les octets des modèles sont dédupliqués et réutilisés entre apps. + upgradeDescription: | + Remplacement de l'image reverse-proxy Bitnami OpenResty (`beclab/aboveos-bitnami-openresty:1.25.3-2`) par l'image officielle OpenResty `openresty/openresty:1.29.2.5-bookworm-fat`. + + Alignement des montages de configuration nginx et des chemins de logs sur la disposition de l'image officielle (`/etc/nginx/conf.d/default.conf`, `/usr/local/openresty/nginx/logs/...`), et suppression du câblage Bitnami spécifique `OPENRESTY_CONF_FILE`. + + Mise à jour de l'image llm-init vers `beclab/llm-init:v1.3.1`. + + Migration V3 d'app partagée de FaceFusion (moteur 3.6.1). + + **What's Changed** + + - **Download architecture** : remplacement du Job sur mesure `harveyff-hf-downloader-only` + par le Deployment partagé download-only `llm-init` + (`facefusiondownloader`), aligné sur speachesv3 / acestep15v3. Les packs de modèles + atterrissent désormais dans le cache HF partagé cross-app (App Common, `/cache/hf/hub`) au + layout standard `models--owner--repo/snapshots//...` ; le moteur attend + `download-svc:/readyz` au lieu de sentinelles `.done` par repo et reconstruit + le layout plat `/facefusion/.assets/models` comme ferme de symlinks au démarrage. + - **Entrance routing** : nginx réécrit pour correspondre à acestep15v3 — les chemins API llm-init + sont épinglés à download-svc ; `/` attend le téléchargement du modèle ET la readiness Gradio + et recharge automatiquement du dashboard de téléchargement vers l'app via `/__app_ready`. + - **Architecture** : le Deployment du moteur est maintenant nommé d'après l'appid + (`facefusionv3`) ; l'entrée nginx (`facefusionproxy`) et le downloader + (`facefusiondownloader`) sont des workloads indépendants déclarés via + `workloadReplicas`. + - **HF env** : le mirror / token HF proviennent du compte HF système de l'utilisateur + via `valueFrom` (déclarés localement comme `HF_ENDPOINT` / `HF_TOKEN` ; les templates + ne référencent plus directement les noms `OLARES_USER_*`, comme exigé par v3). + - **Resources** : `limitedMemory` porté à 21Gi pour que les limites moteur (16Gi) + llm-init + (4Gi) + nginx (256Mi) tiennent dans l'enveloppe. diff --git a/facefusionv3/i18n/it-IT/OlaresManifest.yaml b/facefusionv3/i18n/it-IT/OlaresManifest.yaml new file mode 100644 index 000000000..0f5347ad6 --- /dev/null +++ b/facefusionv3/i18n/it-IT/OlaresManifest.yaml @@ -0,0 +1,64 @@ +metadata: + title: FaceFusion + description: Piattaforma leader di manipolazione del volto +spec: + fullDescription: | + FaceFusion è una piattaforma leader di manipolazione del volto. Ti permette di scambiare volti senza sforzo e creare impressionanti manipolazioni fotografiche. + + **Key Features:** + Advanced Facical Image Generation and Editing + - Utilizza algoritmi di alta qualità per un blending fluido e realistico dei tratti facciali con livelli di intensità personalizzabili; offre morphing facciale, blending di più volti e trasformazioni realistiche + + Multiple Face Swapping: + - Supporta lo scambio di più volti in un singolo progetto. + + Real-Time Processing: + - Fornisce anteprime e risultati istantanei, migliorando l'esperienza con face fusion veloce e interattiva. + + Age Modification: + - Alterare l'età apparente di un volto + + Lip Sync: + - garantisce che i volti scambiati nei video siano perfettamente sincronizzati con l'audio, creando movimenti della bocca fluidi che corrispondono al parlato. + + Deep Swapper (DeepFaceLive Models): + - Processore dedicato di face-swap basato su modelli DeepFaceLive `.dfm` addestrati dalla community, con una libreria integrata di oltre 24 volti di celebrità pronti all'uso. + + **Model storage (App Common, shared)** + I pack di modelli FaceFusion (3.0.0 → 3.6.0) risiedono nella cache HF Hub + condivisa cross-app App Common (`appCommon/huggingface`, percorso container fisso `/cache/hf/hub`). + Un sidecar solo download `llm-init` recupera ogni repo in quel store tramite + `OLARES_USER_HUGGINGFACE_SERVICE` dell'utente; il motore monta lo stesso store e + attende `download-svc:/readyz` prima di ricostruire la vista piatta + `/facefusion/.assets/models` come farm di symlink effimeri sui + snapshot in cache. I byte dei modelli sono deduplicati e riutilizzati tra le app. + upgradeDescription: | + Passaggio dell'immagine reverse-proxy da Bitnami OpenResty (`beclab/aboveos-bitnami-openresty:1.25.3-2`) all'immagine ufficiale OpenResty `openresty/openresty:1.29.2.5-bookworm-fat`. + + Allineamento dei mount della config nginx e dei percorsi dei log al layout dell'immagine ufficiale (`/etc/nginx/conf.d/default.conf`, `/usr/local/openresty/nginx/logs/...`), e rimozione del wiring Bitnami specifico `OPENRESTY_CONF_FILE`. + + Aggiornamento dell'immagine llm-init a `beclab/llm-init:v1.3.1`. + + Migrazione V3 shared-app di FaceFusion (engine 3.6.1). + + **What's Changed** + + - **Download architecture**: sostituito il Job su misura `harveyff-hf-downloader-only` + con il Deployment condiviso solo download `llm-init` + (`facefusiondownloader`), allineato a speachesv3 / acestep15v3. I pack di modelli ora + atterrano nella cache HF condivisa cross-app (App Common, `/cache/hf/hub`) nel + layout standard `models--owner--repo/snapshots//...`; il motore attende + `download-svc:/readyz` invece di sentinel `.done` per repo e ricostruisce + il layout piatto `/facefusion/.assets/models` come farm di symlink all'avvio. + - **Entrance routing**: nginx riscritto per allinearsi ad acestep15v3 — i path API di llm-init + sono pinnati a download-svc; `/` attende il download del modello E la readiness di Gradio + e ricarica automaticamente dal dashboard di download nell'app via `/__app_ready`. + - **Architecture**: il Deployment del motore è ora nominato secondo l'appid + (`facefusionv3`); l'ingresso nginx (`facefusionproxy`) e il downloader + (`facefusiondownloader`) sono workload indipendenti dichiarati via + `workloadReplicas`. + - **HF env**: mirror / token HF provengono dall'account HF di sistema dell'utente + via `valueFrom` (dichiarati localmente come `HF_ENDPOINT` / `HF_TOKEN`; i template + non referenziano più direttamente i nomi `OLARES_USER_*`, come richiesto da v3). + - **Resources**: `limitedMemory` portato a 21Gi così i limiti di engine (16Gi) + llm-init + (4Gi) + nginx (256Mi) rientrano nell'envelope. diff --git a/facefusionv3/i18n/ja-JP/OlaresManifest.yaml b/facefusionv3/i18n/ja-JP/OlaresManifest.yaml new file mode 100644 index 000000000..8a4755ba4 --- /dev/null +++ b/facefusionv3/i18n/ja-JP/OlaresManifest.yaml @@ -0,0 +1,61 @@ +metadata: + title: FaceFusion + description: 業界をリードする顔操作プラットフォーム +spec: + fullDescription: | + FaceFusion は業界をリードする顔操作プラットフォームです。簡単に顔を入れ替え、息をのむような写真加工を作成できます。 + + **Key Features:** + Advanced Facical Image Generation and Editing + - 高品質アルゴリズムで顔の特徴をシームレスかつリアルにブレンド。強度調整、フェイシャルモーフィング、複数顔のブレンド、リアルな変換などに対応 + + Multiple Face Swapping: + - 1 つのプロジェクトで複数の顔の入れ替えに対応。 + + Real-Time Processing: + - 即時プレビューと結果を提供し、高速でインタラクティブな face fusion 体験を向上。 + + Age Modification: + - 顔の見た目の年齢を変更 + + Lip Sync: + - 動画で入れ替えた顔が音声と完璧に同期し、発話に合う自然な口の動きを実現。 + + Deep Swapper (DeepFaceLive Models): + - コミュニティ学習の DeepFaceLive `.dfm` モデルに裏打ちされた専用 face-swap プロセッサ。24 以上の有名人の顔の組み込みライブラリ付き。 + + **Model storage (App Common, shared)** + FaceFusion モデルパック(3.0.0 → 3.6.0)は共有クロスアプリ App Common + HF Hub キャッシュ(`appCommon/huggingface`、固定コンテナパス `/cache/hf/hub`)に格納。 + `llm-init` ダウンロード専用サイドカーがユーザーの + `OLARES_USER_HUGGINGFACE_SERVICE` 経由で各リポジトリをそのストアへ取得;エンジンは同じストアをマウントし、 + `download-svc:/readyz` を待ってから、キャッシュ済みスナップショット上の一時的なシンボリックリンクファームとして + フラットな `/facefusion/.assets/models` ビューを再構築。モデルバイトは重複排除されアプリ間で再利用されます。 + upgradeDescription: | + リバースプロキシイメージを Bitnami OpenResty(`beclab/aboveos-bitnami-openresty:1.25.3-2`)から公式 OpenResty イメージ `openresty/openresty:1.29.2.5-bookworm-fat` に切り替え。 + + nginx 設定マウントとログパスを公式イメージのレイアウト(`/etc/nginx/conf.d/default.conf`、`/usr/local/openresty/nginx/logs/...`)に合わせ、Bitnami 固有の `OPENRESTY_CONF_FILE` 配線を削除。 + + llm-init イメージを `beclab/llm-init:v1.3.1` に更新。 + + FaceFusion の V3 共有アプリ移行(エンジン 3.6.1)。 + + **What's Changed** + + - **Download architecture**: 専用の `harveyff-hf-downloader-only` + Job を共有 `llm-init` ダウンロード専用 Deployment + (`facefusiondownloader`)に置換、speachesv3 / acestep15v3 に合わせる。モデルパックは + 共有クロスアプリ HF キャッシュ(App Common、`/cache/hf/hub`)に標準の + `models--owner--repo/snapshots//...` レイアウトで配置;エンジンはリポジトリごとの `.done` センチネルではなく + `download-svc:/readyz` を待ち、起動時にフラットな `/facefusion/.assets/models` をシンボリックリンクファームとして再構築。 + - **Entrance routing**: nginx を acestep15v3 に合わせて書き換え — llm-init API + パスを download-svc に固定;`/` はモデルダウンロード AND Gradio readiness を待ち、 + `/__app_ready` 経由でダウンロードダッシュボードからアプリへ自動リロード。 + - **Architecture**: エンジン Deployment を appid 名(`facefusionv3`)に; + nginx 入口(`facefusionproxy`)とダウンローダー(`facefusiondownloader`)は + `workloadReplicas` で宣言された独立ワークロード。 + - **HF env**: HF ミラー/トークンはユーザーのシステム HF アカウントから + `valueFrom` 経由(ローカルでは `HF_ENDPOINT` / `HF_TOKEN`;テンプレートは v3 要件どおり + `OLARES_USER_*` 名を直接参照しない)。 + - **Resources**: エンジン(16Gi)+ llm-init(4Gi)+ nginx(256Mi)の上限が収まるよう + `limitedMemory` を 21Gi に引き上げ。 diff --git a/facefusionv3/owners b/facefusionv3/owners index af53146a5..54214d082 100644 --- a/facefusionv3/owners +++ b/facefusionv3/owners @@ -1,8 +1,3 @@ owners: -- 'LittleLollipop' -- 'TShentu' -- 'hysyeah' -- 'pengpeng' -- 'harveyff' -- 'zdf-org' -- 'kaki-admin' \ No newline at end of file + - username: '@beclab' + title: 'Olares' diff --git a/facefusionv3/templates/clientproxy.yaml b/facefusionv3/templates/clientproxy.yaml index 762cc7d5b..659af232e 100644 --- a/facefusionv3/templates/clientproxy.yaml +++ b/facefusionv3/templates/clientproxy.yaml @@ -12,9 +12,14 @@ data: # paths (/api/*, /healthz, /livez, /readyz, /static/*) are pinned to # download-svc so they never fall through to Gradio (404). server { + client_body_temp_path /tmp/client_body; + proxy_temp_path /tmp/proxy; + fastcgi_temp_path /tmp/fastcgi; + uwsgi_temp_path /tmp/uwsgi; + scgi_temp_path /tmp/scgi; listen 8080; - access_log /usr/local/openresty/nginx/logs/access.log; - error_log /usr/local/openresty/nginx/logs/error.log; + access_log /dev/stdout; + error_log /dev/stderr; client_max_body_size 500m; proxy_buffering off; @@ -171,9 +176,20 @@ spec: items: - key: nginx.conf path: nginx.conf + - name: nginx-runtime + emptyDir: {} containers: - name: nginx image: "docker.io/openresty/openresty:1.29.2.5-bookworm-fat" + command: + - /usr/local/openresty/bin/openresty + args: + - -g + - "daemon off; pid /tmp/nginx.pid;" + securityContext: + runAsUser: 1000 + runAsGroup: 1000 + ports: - containerPort: 8080 protocol: TCP @@ -201,6 +217,8 @@ spec: - name: nginx-config mountPath: /etc/nginx/conf.d/default.conf subPath: nginx.conf + - name: nginx-runtime + mountPath: /var/run/openresty --- apiVersion: v1 diff --git a/facefusionv3/templates/facefusion.yaml b/facefusionv3/templates/facefusion.yaml index a51bad5e9..dca5d675e 100644 --- a/facefusionv3/templates/facefusion.yaml +++ b/facefusionv3/templates/facefusion.yaml @@ -244,7 +244,7 @@ spec: - name: llm-init # v1.2.4: comma multi-source, nullengine download-only path, default # LFS transport (hf_xet off unless HF_ENABLE_XET=true). - image: docker.io/beclab/llm-init:v1.3.1 + image: docker.io/beclab/llm-init:v1.7.12 imagePullPolicy: IfNotPresent env: # Empty ENGINE_KIND selects download-only mode (nullengine).