| version: "3.9" |
|
|
| x-gpu: &gpu |
| deploy: |
| resources: |
| reservations: |
| devices: |
| - driver: nvidia |
| count: all |
| capabilities: [gpu] |
|
|
| x-shared-env: &shared-env |
| HF_TOKEN: ${HF_TOKEN} |
| HF_XET_HIGH_PERFORMANCE: "1" |
| HF_HUB_ENABLE_HF_TRANSFER: "1" |
| MODELS_DIR: /models |
| SHARED_DIR: /shared |
|
|
| services: |
| |
| gateway: |
| build: . |
| ports: |
| - "8000:8000" |
| environment: |
| <<: *shared-env |
| XAI_API_KEY: ${XAI_API_KEY} |
| ANTHROPIC_API_KEY: ${ANTHROPIC_API_KEY:-} |
| ROUTER_URL: http://router:8100 |
| WATCHDOG_URL: http://watchdog:8200 |
| volumes: |
| - frame-output:/shared/frames |
| - audio-queue:/shared/audio |
| - reference-images:/shared/reference |
| - memory:/shared/memory |
| depends_on: |
| router: |
| condition: service_started |
| command: > |
| uvicorn gateway.main:app |
| --host 0.0.0.0 --port 8000 --workers 1 |
| restart: unless-stopped |
|
|
| |
| router: |
| build: . |
| <<: *gpu |
| environment: |
| <<: *shared-env |
| P0_URL: http://pipeline0:8010 |
| P1_URL: http://pipeline1:8011 |
| P2_URL: http://pipeline2:8012 |
| P3_URL: http://pipeline3:8013 |
| P4_URL: http://pipeline4:8014 |
| XAI_API_KEY: ${XAI_API_KEY} |
| RUNPOD_API_KEY: ${RUNPOD_API_KEY:-} |
| RUNPOD_POD_ID: ${RUNPOD_POD_ID:-} |
| RUNPOD_IDLE_TIMEOUT_S: ${RUNPOD_IDLE_TIMEOUT_S:-300} |
| volumes: |
| - frame-output:/shared/frames |
| - audio-queue:/shared/audio |
| - reference-images:/shared/reference |
| depends_on: |
| - pipeline0 |
| - pipeline1 |
| - pipeline2 |
| command: > |
| uvicorn router.main:app |
| --host 0.0.0.0 --port 8100 --workers 1 |
| restart: unless-stopped |
|
|
| |
| pipeline0: |
| build: . |
| <<: *gpu |
| environment: |
| <<: *shared-env |
| PIPELINE_ID: "0" |
| PIPELINE_NAME: "musetalk" |
| volumes: |
| - models:/models |
| - frame-output:/shared/frames |
| - audio-queue:/shared/audio |
| - reference-images:/shared/reference |
| command: > |
| uvicorn pipelines.p0_musetalk.server:app |
| --host 0.0.0.0 --port 8010 --workers 1 |
| restart: unless-stopped |
|
|
| |
| pipeline1: |
| build: . |
| <<: *gpu |
| environment: |
| <<: *shared-env |
| PIPELINE_ID: "1" |
| PIPELINE_NAME: "infinitetalk" |
| volumes: |
| - models:/models |
| - frame-output:/shared/frames |
| - audio-queue:/shared/audio |
| - reference-images:/shared/reference |
| command: > |
| uvicorn pipelines.p1_infinitetalk.server:app |
| --host 0.0.0.0 --port 8011 --workers 1 |
| restart: unless-stopped |
|
|
| |
| pipeline2: |
| build: . |
| <<: *gpu |
| environment: |
| <<: *shared-env |
| PIPELINE_ID: "2" |
| PIPELINE_NAME: "ditto" |
| volumes: |
| - models:/models |
| - frame-output:/shared/frames |
| - audio-queue:/shared/audio |
| - reference-images:/shared/reference |
| command: > |
| uvicorn pipelines.p2_ditto.server:app |
| --host 0.0.0.0 --port 8012 --workers 1 |
| restart: unless-stopped |
|
|
| |
| pipeline3: |
| build: . |
| <<: *gpu |
| environment: |
| <<: *shared-env |
| PIPELINE_ID: "3" |
| PIPELINE_NAME: "stableavatar" |
| profiles: ["full"] |
| volumes: |
| - models:/models |
| - frame-output:/shared/frames |
| - audio-queue:/shared/audio |
| - reference-images:/shared/reference |
| command: > |
| uvicorn pipelines.p3_stableavatar.server:app |
| --host 0.0.0.0 --port 8013 --workers 1 |
| restart: unless-stopped |
|
|
| |
| pipeline4: |
| build: . |
| <<: *gpu |
| environment: |
| <<: *shared-env |
| PIPELINE_ID: "4" |
| PIPELINE_NAME: "liveavatar" |
| profiles: ["full"] |
| volumes: |
| - models:/models |
| - frame-output:/shared/frames |
| - audio-queue:/shared/audio |
| - reference-images:/shared/reference |
| command: > |
| uvicorn pipelines.p4_liveavatar.server:app |
| --host 0.0.0.0 --port 8014 --workers 1 |
| restart: unless-stopped |
|
|
| |
| watchdog: |
| build: . |
| environment: |
| <<: *shared-env |
| ROUTER_URL: http://router:8100 |
| volumes: |
| - frame-output:/shared/frames |
| command: > |
| uvicorn watchdog.main:app |
| --host 0.0.0.0 --port 8200 --workers 1 |
| depends_on: |
| - router |
| restart: unless-stopped |
|
|
| volumes: |
| models: |
| driver: local |
| driver_opts: |
| type: none |
| o: bind |
| device: ${MODELS_PATH:-./models} |
| frame-output: |
| audio-queue: |
| reference-images: |
| memory: |
|
|