From e57713c3c674f200e35907868da39170224c97f3 Mon Sep 17 00:00:00 2001 From: Harisreedhar <46858047+harisreedhar@users.noreply.github.com> Date: Thu, 26 Feb 2026 15:21:19 +0530 Subject: [PATCH] Rename process to stream (#1053) * rename process to stream * remove /image and add webrtc_stream_video scaffolding * remove _image --- facefusion/apis/core.py | 5 +++-- facefusion/apis/endpoints/{process.py => stream.py} | 7 ++++++- tests/{test_api_process.py => test_api_stream.py} | 4 ++-- 3 files changed, 11 insertions(+), 5 deletions(-) rename facefusion/apis/endpoints/{process.py => stream.py} (86%) rename tests/{test_api_process.py => test_api_stream.py} (96%) diff --git a/facefusion/apis/core.py b/facefusion/apis/core.py index 46a2e946..5be40df6 100644 --- a/facefusion/apis/core.py +++ b/facefusion/apis/core.py @@ -7,9 +7,9 @@ from facefusion.apis.endpoints.assets import delete_assets, get_asset, get_asset from facefusion.apis.endpoints.capabilities import get_capabilities from facefusion.apis.endpoints.metrics import get_metrics, websocket_metrics from facefusion.apis.endpoints.ping import websocket_ping -from facefusion.apis.endpoints.process import websocket_process_image from facefusion.apis.endpoints.session import create_session, destroy_session, get_session, refresh_session from facefusion.apis.endpoints.state import get_state, set_state +from facefusion.apis.endpoints.stream import webrtc_stream, websocket_stream from facefusion.apis.middlewares.session import create_session_guard @@ -29,9 +29,10 @@ def create_api() -> Starlette: Route('/assets', delete_assets, methods = [ 'DELETE' ], middleware = [ session_guard ]), Route('/capabilities', get_capabilities, methods = [ 'GET' ]), Route('/metrics', get_metrics, methods = [ 'GET' ], middleware = [ session_guard ]), + Route('/stream', webrtc_stream, methods = ['POST'], middleware = [session_guard]), WebSocketRoute('/metrics', websocket_metrics, middleware = [ session_guard ]), WebSocketRoute('/ping', websocket_ping, middleware = [ session_guard ]), - WebSocketRoute('/process/image', websocket_process_image, middleware = [ session_guard ]) + WebSocketRoute('/stream', websocket_stream, middleware = [session_guard]) ] api = Starlette(routes = routes) diff --git a/facefusion/apis/endpoints/process.py b/facefusion/apis/endpoints/stream.py similarity index 86% rename from facefusion/apis/endpoints/process.py rename to facefusion/apis/endpoints/stream.py index d4e09e68..ab4999bc 100644 --- a/facefusion/apis/endpoints/process.py +++ b/facefusion/apis/endpoints/stream.py @@ -1,5 +1,6 @@ import cv2 import numpy +from starlette.requests import Request from starlette.websockets import WebSocket, WebSocketDisconnect from facefusion import session_context, session_manager, state_manager @@ -8,7 +9,7 @@ from facefusion.apis.endpoints.session import extract_access_token from facefusion.streamer import process_stream_frame -async def websocket_process_image(websocket : WebSocket) -> None: +async def websocket_stream(websocket : WebSocket) -> None: subprotocol = get_sec_websocket_protocol(websocket.scope) access_token = extract_access_token(websocket.scope) session_id = session_manager.find_session_id(access_token) @@ -35,3 +36,7 @@ async def websocket_process_image(websocket : WebSocket) -> None: return await websocket.close() + + +async def webrtc_stream(request : Request) -> None: # TODO: implement webrtc streaming + pass diff --git a/tests/test_api_process.py b/tests/test_api_stream.py similarity index 96% rename from tests/test_api_process.py rename to tests/test_api_stream.py index 59ea94f9..11f0165c 100644 --- a/tests/test_api_process.py +++ b/tests/test_api_stream.py @@ -58,7 +58,7 @@ def before_each() -> None: asset_store.clear() -def test_process_image(test_client : TestClient) -> None: +def test_stream_image(test_client : TestClient) -> None: create_session_response = test_client.post('/session', json = { 'client_version': metadata.get('version') @@ -88,7 +88,7 @@ def test_process_image(test_client : TestClient) -> None: assert select_response.status_code == 200 - with test_client.websocket_connect('/process/image', subprotocols = + with test_client.websocket_connect('/stream', subprotocols = [ 'access_token.' + access_token ]) as websocket: