Commit Graph
772 Commits
Author SHA1 Message Date
Henry Ruhs d96580b34c convert content store (#1236)
* convert content store

* add local_id variables

* add local_id variables

* fix misconcept of clear() in stores, pass session id to threads
2026-09-11 21:17:22 +02:00
Henry RuhsandClaude Fable 5.1 c358ba7cf6 Session aware stores (#1235)
* session aware process manager via store creator

* remove unused clear_session_id

* restore original scopes

* stateless test helpers

* more updates

* more updates

* more updates

* more updates

---------

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-11 16:48:23 +02:00
Henry Ruhs 5bc9c80c55 fix bug for sessions without assets (#1234) 2026-09-11 11:53:48 +02:00
Henry Ruhs 40c554b59d refactor to a single peer, refuse via 409 on handshake (#1233) 2026-09-11 11:49:11 +02:00
henryruhs cdb8513d11 revamp progress usage in ffmpeg 2026-09-11 11:32:11 +02:00
Henry Ruhs 41ee571fc0 handle garbage and empty buffer for websocket (#1232) 2026-09-11 11:06:04 +02:00
Henry Ruhs 743ebb8622 improve callbacks, prevent memory leak on close (#1231) 2026-09-11 10:32:06 +02:00
henryruhs d054cedf85 ensure unique job ids 2026-09-10 21:21:53 +02:00
henryruhsandClaude Fable 5.1 574965f65d add hrffa face aligner and alphaface_256 face swapper from 3.9.0
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RKsZJc4Fu2WgFd9R2Ayu25
2026-09-10 19:11:16 +02:00
henryruhs 62b2819504 this should have neven been registered 2026-09-04 09:39:35 +02:00
henryruhs 2dd3948893 better api key validation 2026-09-04 09:26:04 +02:00
Henry Ruhs 9a4c263390 asset record based deletion (#1228)
* asset record based deletion

* fix order

* delete assets on session destroy

* fix style

* guard delete via file system check

* guard delete via file system check

* adjust responses a bit
2026-09-03 10:57:33 +02:00
henryruhs 366153941a port 3.8.3 correct 2026-09-01 16:19:17 +02:00
henryruhs 8e6178269b Merge branch 'master' into v4
# Conflicts:
#	facefusion/metadata.py
#	facefusion/uis/assets/overrides.css
#	facefusion/vision.py
#	facefusion/workflows/core.py
#	facefusion/workflows/to_video.py
#	tests/test_cli_age_modifier.py
#	tests/test_cli_background_remover.py
#	tests/test_cli_expression_restorer.py
#	tests/test_cli_face_debugger.py
#	tests/test_cli_face_editor.py
#	tests/test_cli_face_enhancer.py
#	tests/test_cli_face_swapper.py
#	tests/test_cli_frame_colorizer.py
#	tests/test_cli_frame_enhancer.py
#	tests/test_cli_lip_syncer.py
#	tests/test_ffmpeg.py
#	tests/test_vision.py
2026-09-01 15:23:53 +02:00
Henry RuhsandHarisreedhar 435521dca8 Patch 3.8.3 (#1227)
* bump version

* test every workflow on every processor

* fix low fps bug (#1226)

* significant improve the test

* move partial logic to vision.py

* logic belongs to conditional_get_target_vision_frames

* use avg_frame_rate next to r_frame_rate for fps extraction

* update onnxruntime

* fix upload icon

* improve css

---------

Co-authored-by: Harisreedhar <46858047+harisreedhar@users.noreply.github.com>
3.8.3
2026-09-01 14:42:48 +02:00
Henry Ruhs 1362afa8b7 content store (#1225)
* introduce content store for content analyser

* introduce content store for content analyser part2

* guard content store as well

* minor changes

* minor changes

* minor changes
2026-08-27 11:23:18 +02:00
henryruhs b9d2ecd28a polish system.py 2026-08-26 20:46:20 +02:00
Henry Ruhs 4d3d2094ec expose the output via api (#1223)
* expose the output via api

* remove mocks from job testing
2026-08-24 13:46:22 +02:00
henryruhs 1bae62ad26 first piece for /jobs endpoint part7 2026-08-24 09:11:22 +02:00
henryruhs 830deb69c9 first piece for /jobs endpoint part6 2026-08-24 08:34:47 +02:00
henryruhs b28fe9d58f first piece for /jobs endpoint part5 2026-08-24 07:59:58 +02:00
henryruhs eb60333f19 first piece for /jobs endpoint part4 2026-08-24 02:34:20 +02:00
henryruhs 5a623a7215 first piece for /jobs endpoint part3 2026-08-24 02:23:12 +02:00
henryruhs 6b81f6728b first piece for /jobs endpoint part2 2026-08-24 00:17:51 +02:00
henryruhs 2e54b6d0dd first piece for /jobs endpoint 2026-08-23 23:43:59 +02:00
henryruhs 038802ae2b restructure config for processors 2026-08-23 23:24:55 +02:00
Henry Ruhs 161aec62d1 rename frame number to frame index everywhere (#1222) 2026-08-21 20:47:50 +02:00
Henry Ruhs 25bc9820f7 Goodbye tqdm (#1221)
* Goodbye tqdm

* Goodbye tqdm

* remove unused api

* show just file name

* support different mode

* support different mode

* minor polishing

* minor polishing

* switch to ProgressUnit to avoid confusion with ProcessMode

* improve naming
2026-08-21 17:40:35 +02:00
henryruhsandClaude Opus 4.8 0d20ce3e3a Merge branch 'master' into v4
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-10 11:40:29 +02:00
Henry Ruhs 4b1dedb853 Patch 3.8.2 (#1219)
* fix frame enhancer

* adjust output_xxx_scale according to frame_enhancer_model

* fix resolution issue

* fix black screens under ffmpeg 9
3.8.2
2026-08-10 10:12:19 +02:00
Henry Ruhs d82673332c Feat/asset tools part2 (#1218)
* add face tools to assets

* add face tools to assets

* is_vision_frames returns false on empty list
2026-08-08 13:28:54 +02:00
Henry Ruhs 1ca152b934 Asset Tools Part1 (#1217)
* fix import

* introduce collect vision frame from asset, add is_vision_frame everywhere, rename to vision_buffer

* fix lint

* fix lint

* fix lint
2026-08-07 15:23:09 +02:00
henryruhs a66609b388 rename capability stuff 2026-08-06 13:55:18 +02:00
Henry Ruhs 3ef7736999 Feat/capability groups part2 (#1216)
* add groups to capabilities

* update to recent groups
2026-08-06 13:42:01 +02:00
Henry Ruhs 1fae1282d1 rename face landmarker to face aligner (#1215) 2026-08-06 11:18:02 +02:00
henryruhs e02d5880d3 move workflow mode 2026-08-06 09:36:27 +02:00
henryruhs 510fd4e556 clean wording 2026-08-05 23:35:35 +02:00
henryruhs 33cc6b40a4 clean wording 2026-08-05 23:35:19 +02:00
henryruhs e11f4b8d55 clean wording 2026-08-05 23:26:44 +02:00
henryruhs 93ce2bfc5e clean wording 2026-08-05 23:01:09 +02:00
henryruhsandClaude Opus 4.8 5611932fda add master fix_audio/video_encoder tests (#1212)
Add master's test_fix_audio_encoder and test_fix_video_encoder; v4 has
both functions and matches master's expected mappings. Kept v4's
sanitize_* and spawn_frames tests and path-isolation signatures.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V7MdZEmd1GE8uSDTMyq34r
2026-08-05 22:45:17 +02:00
henryruhsandClaude Opus 4.8 6971e07605 add master ffmpeg_builder tests (#1212)
Add master's tests for the builders v4 gained via the ffmpeg reader swap
(seek_to, set_output_format, restrict_color_transfer, convert_color_space,
set_thread_count); kept v4's capture_video/enforce_pixel_format/
set_stream_quality tests for its stream builders.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V7MdZEmd1GE8uSDTMyq34r
2026-08-05 22:43:50 +02:00
henryruhsandClaude Opus 4.8 633b103e23 adopt master inference_manager tests (#1212)
Take master's rewritten test_get_inference_pool (arena-leak cli/api pool
sharing) and new test_resolve_static_inference_providers (override/adjust
hooks), adapted from 'ui' to v4's 'api' app context. Both pass on v4.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V7MdZEmd1GE8uSDTMyq34r
2026-08-05 22:42:11 +02:00
henryruhsandClaude Opus 4.8 3d502ff9f6 restore test_job_list from master (#1212)
v4 inherited an old-base skipped stub; master implemented the real
job-list test post-fork. v4 has the job-list command, so the real test
passes. Kept v4's assert_helper/get_test_output_path and --workflow-mode.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V7MdZEmd1GE8uSDTMyq34r
2026-08-05 22:40:52 +02:00
henryruhsandClaude Opus 4.8 be89f03b27 Merge branch 'master' into v4
Resolve 57 conflicts keeping v4's architecture (UI removal, api app
context, path isolation, streaming/codecs/rtc, workflow-mode superset,
args_helper) and taking master's post-fork features so none are dropped:
inference override/adjust provider hooks (+ face_swapper 3.8.1 coreml
fix), is_vision_frame validity guards, resolve_temp_frame_set frame
numbering with the source audio/voice trim offset, the ffmpeg color
pipeline (restrict_color_transfer / convert_color_space / temp_pixel_format),
ffprobe select_stream v:0 + format duration, pre_check ffprobe with
dependency_not_installed, onnxruntime arena-leak guard + version lru_cache,
installer cuda@12/@13 provider split, workflow_strategy disk/memory
(memory default), and the dependency version bumps. content_analyser hash
guard rehashed to 3c6ce25e.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V7MdZEmd1GE8uSDTMyq34r
2026-08-05 22:12:54 +02:00
Henry Ruhs 6f5e4b9d91 3.8.1 (#1214)
* fix image to image for coreml

* fix image to image for coreml

* Update metadata.py

* modernize onnxruntime

* introduce cuda@12 and cuda@13 for installer

* introduce cuda@12 and cuda@13 for installer

* temporary fix for inference pool disaster

* temporary fix for inference pool disaster

* use onnxruntime 1.24.4 for cuda@12

* fix test

* fix test

* fix test

* add test for job list

* switch to has_arena_leak guard

* remove directml hack for inference pool

* uninstall every onnxruntime first

* uninstall every onnxruntime first

* restore the directml fix

* restore the directml fix

* fix directml again

* simplify condition
3.8.1
2026-08-05 12:12:24 +02:00
Henry Ruhs 2dd10e0168 Hotfix memory leak (#1213)
* fix potential memory leak

* siwtch to queue

* fix lint

* spacing

* cosmetics
3.8.0
2026-07-31 15:34:34 +02:00
b60ea40d26 3.8.0 (#1212)
* mark as next

* unify the dependency checks in pre_check and add ffprobe (#1181)

* drop keep_temp and the common options component (#1180)

Claude-Session: https://claude.ai/code/session_01Tbcd6VWCiU4BQP1gywPr2a

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>

* introduce ffprobe and ffprobe_builder (#1182)

* introduce ffprobe and ffprobe_builder

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Tbcd6VWCiU4BQP1gywPr2a

* introduce ffprobe and ffprobe_builder

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Tbcd6VWCiU4BQP1gywPr2a

---------

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>

* probe video metadata via ffprobe in vision (#1184)

* probe video metadata via ffprobe in vision

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Tbcd6VWCiU4BQP1gywPr2a

* probe video metadata via ffprobe in vision

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Tbcd6VWCiU4BQP1gywPr2a

---------

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>

* adopt the workflow task vocabulary from next major (#1185)

Claude-Session: https://claude.ai/code/session_01Tbcd6VWCiU4BQP1gywPr2a

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>

* introduce workflow-mode and workflow-strategy like next major (#1187)

Claude-Session: https://claude.ai/code/session_01Tbcd6VWCiU4BQP1gywPr2a

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>

* restrict hdr color transfer and tag the merge output as bt709 (#1188)

* restrict hdr color transfer and tag the merge output as bt709

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Tbcd6VWCiU4BQP1gywPr2a

* restrict hdr color transfer and tag the merge output as bt709

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Tbcd6VWCiU4BQP1gywPr2a

* full video migration

* compose the hdr fixture via the builder chain

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Tbcd6VWCiU4BQP1gywPr2a

* compose the test fixtures via the builder and run_ffmpeg

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Tbcd6VWCiU4BQP1gywPr2a

---------

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>

* compose every test fixture via the builder and run_ffmpeg (#1189)

* compose every test fixture via the builder and run_ffmpeg

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Tbcd6VWCiU4BQP1gywPr2a

* use loops in tests for ffmpeg stuff

---------

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>

* New Video Manager (#1191)

* tiny adjustment for tests

* address the review on the video manager

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Tbcd6VWCiU4BQP1gywPr2a

* introduce the stream strategy for the video workflow (#1192)

* introduce the stream strategy for the video workflow

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Tbcd6VWCiU4BQP1gywPr2a

* address the review on the stream strategy

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Tbcd6VWCiU4BQP1gywPr2a

---------

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>

* annotate the changes for review

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Tbcd6VWCiU4BQP1gywPr2a

* annotate the new tests for review

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Tbcd6VWCiU4BQP1gywPr2a

* match the temp pixel format help to the locale style

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Tbcd6VWCiU4BQP1gywPr2a

* question the set_input_seek naming

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Tbcd6VWCiU4BQP1gywPr2a

* question the reader and writer keys

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Tbcd6VWCiU4BQP1gywPr2a

* drop the review annotations from the encoder mapping tests

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Tbcd6VWCiU4BQP1gywPr2a

* drop the review annotations from the thread count tests

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Tbcd6VWCiU4BQP1gywPr2a

* drop the review annotations from the ui files

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Tbcd6VWCiU4BQP1gywPr2a

* capture the open review questions as annotations

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Tbcd6VWCiU4BQP1gywPr2a

* drop the settled annotations from the types

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Tbcd6VWCiU4BQP1gywPr2a

---------

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>

* switch to ffmpeg.style for audio.py

* remove todos that were never needed

* fix for ffmpeg7

* Add frame_store module (#1194)

* add frame_store module

* rename and change tests

* rename and update tests

* route window read through frame_store (#1196)

* route window read through frame_store

* update proper id

* restore todos

* restore todos

* go v4 style for workflow (#1197)

* go v4 style for workflow

* remove some todos

* route chunk read through frame_store (#1198)

* vision integration

* Deleted read_video_chunk + read_static_video_chunk

* margin decouple (#1199)

* fix windows CI fail (#1200)

* Cleanup Part1 (#1201)

* remove some todos, improve video manager, simplify ffmpeg commands and more

* do more

* remove thread count for filters

* Cleanup Part 2 (#1202)

* tons of renaming

* tons of renaming

* multi reader approach

* bring tests to an okay-ish state

* bring drain back

* improve read_video_frame speed

* rename method

* move variables

* seek video reader only when trim frame start is larger 0

* make stream the default

* Cleanup/part 3 (#1203)

* remove todo

* sort out workflow, to match upcoming v4

* remove look ahead

* remove core namespace again

* Revamp execution provider overrides/adjustments (#1206)

* Split provider hooks into override/adjust with cached CoreML base

Replace the single resolve_inference_providers processor hook with two:
override_inference_providers (full replacement) and adjust_inference_providers
(merge options onto the base providers built by create_inference_providers).
This lets CoreML processors inherit ModelCacheDirectory + SpecializationStrategy
from the base while layering ModelFormat/MLComputeUnits on top.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HTQCZiYjJyUX11bDpbRSiB

* fix caching for execution provider by having override and adjust ways

* fix caching for execution provider by having override and adjust ways

* fix lint

* use proper pytest fixtures

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* fix update preview bug (#1205)

* fix update preview bug

* fix update preview bug

* remove guard

* add is_vision_frame

* Restrict the preview frame slider and the reader seek to the last frame index (#1207)

* fix index bug

* fix rounding bug

* avoid tobytes copy (#1208)

* beautify tests

* hide ffmpeg warnings

* simplify process_stream_frame

* Use is vision frame everywhere (#1210)

* use is_vision_frame everywhere

* fix hash

* fix lint

* fix hash creation in face store

* that model does not exist

* update workflow ffmpeg

* guard workflow (#1211)

* bump version and dependencies

* Update preview

* switch workflow strategy to disk|memory

* update preview

* update preview

* fix wording

* last minute change workflow position

* adjust wording

---------

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Co-authored-by: Harisreedhar <46858047+harisreedhar@users.noreply.github.com>
Co-authored-by: harisreedhar <h4harisreedhar.s.s@gmail.com>
2026-07-30 22:25:09 +02:00
Henry Ruhs 11bbc89a0e modernize ffmpeg in test suite (#1190) 2026-07-23 15:07:27 +02:00
Henry RuhsandClaude Opus 4.8 0ce48da740 rename workflow to workflow-mode ahead of workflow-strategy (#1186)
Claude-Session: https://claude.ai/code/session_01Tbcd6VWCiU4BQP1gywPr2a

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-23 13:12:20 +02:00