mirror of
https://github.com/facefusion/facefusion.git
synced 2026-08-18 14:57:13 +02:00
Rename process to stream (#1053)
* rename process to stream * remove /image and add webrtc_stream_video scaffolding * remove _image
This commit is contained in:
@@ -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.capabilities import get_capabilities
|
||||||
from facefusion.apis.endpoints.metrics import get_metrics, websocket_metrics
|
from facefusion.apis.endpoints.metrics import get_metrics, websocket_metrics
|
||||||
from facefusion.apis.endpoints.ping import websocket_ping
|
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.session import create_session, destroy_session, get_session, refresh_session
|
||||||
from facefusion.apis.endpoints.state import get_state, set_state
|
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
|
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('/assets', delete_assets, methods = [ 'DELETE' ], middleware = [ session_guard ]),
|
||||||
Route('/capabilities', get_capabilities, methods = [ 'GET' ]),
|
Route('/capabilities', get_capabilities, methods = [ 'GET' ]),
|
||||||
Route('/metrics', get_metrics, methods = [ 'GET' ], middleware = [ session_guard ]),
|
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('/metrics', websocket_metrics, middleware = [ session_guard ]),
|
||||||
WebSocketRoute('/ping', websocket_ping, 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)
|
api = Starlette(routes = routes)
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import cv2
|
import cv2
|
||||||
import numpy
|
import numpy
|
||||||
|
from starlette.requests import Request
|
||||||
from starlette.websockets import WebSocket, WebSocketDisconnect
|
from starlette.websockets import WebSocket, WebSocketDisconnect
|
||||||
|
|
||||||
from facefusion import session_context, session_manager, state_manager
|
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
|
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)
|
subprotocol = get_sec_websocket_protocol(websocket.scope)
|
||||||
access_token = extract_access_token(websocket.scope)
|
access_token = extract_access_token(websocket.scope)
|
||||||
session_id = session_manager.find_session_id(access_token)
|
session_id = session_manager.find_session_id(access_token)
|
||||||
@@ -35,3 +36,7 @@ async def websocket_process_image(websocket : WebSocket) -> None:
|
|||||||
return
|
return
|
||||||
|
|
||||||
await websocket.close()
|
await websocket.close()
|
||||||
|
|
||||||
|
|
||||||
|
async def webrtc_stream(request : Request) -> None: # TODO: implement webrtc streaming
|
||||||
|
pass
|
||||||
@@ -58,7 +58,7 @@ def before_each() -> None:
|
|||||||
asset_store.clear()
|
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 =
|
create_session_response = test_client.post('/session', json =
|
||||||
{
|
{
|
||||||
'client_version': metadata.get('version')
|
'client_version': metadata.get('version')
|
||||||
@@ -88,7 +88,7 @@ def test_process_image(test_client : TestClient) -> None:
|
|||||||
|
|
||||||
assert select_response.status_code == 200
|
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
|
'access_token.' + access_token
|
||||||
]) as websocket:
|
]) as websocket:
|
||||||
Reference in New Issue
Block a user