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 Ruhs and Claude 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
henryruhs and Claude 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 Ruhs and Harisreedhar
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
henryruhs and Claude 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
henryruhs and Claude 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
henryruhs and Claude 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
henryruhs and Claude 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
henryruhs and Claude 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
henryruhs and Claude 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 Ruhs and Claude 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