Repository navigation
test(3d): Paint schedule, UniPC, Euler-ancestral and 2.1 guidance against diffusers - #793
Conversation
…inst diffusers and upstream (oracle script, reference tests)
|
@claude review PR |
|
Claude finished @kalebbroo's task in 1m 21s —— View job Review: PR #793 (Paint sampler and guidance parity)
Verdict: looks good to merge. I found no correctness bugs. The production change is a behaviour-preserving refactor. The oracle and the C# test model the same thing. The items below are tightening and doc nits. I did not run the tests: the fixture needs diffusers and the released What I checked
Suggestions (non-blocking)
Accuracy of the claimsThe PR body's "Not verified" list matches what the code exercises: a synthetic model, so no network, bake, DINO or GPU coverage. The parity doc entry stays at 🔧, which fits that. TL;DR: The math checks out against diffusers' trailing-schedule semantics, and the |
…gma lengths, current doc wording
What
Parity of Paint's scheduler and guidance against diffusers and upstream. Oracle
tests/python-reference/dump_paint_sampler.pybuildsUniPCMultistepScheduler(Paint 2.1, 15 steps, trailing) andEulerAncestralDiscreteScheduler(Paint 2.0, 30 steps) from the releasedscheduler_config.json, runs both from a fixed random sample with a fixed synthetic model (noise injected for the ancestral one), and transcribes upstream's guidance (cam_mappingview scale, the three-way combination).HunyuanPaintSamplerReferenceTestsreplays it in C# (envHARTSY_PAINT_SAMPLER_REF, no weights needed).HunyuanPaintPipeline.Guidegets a static overload that takes the per-view scales so it can be tested.Result (CPU, diffusers 0.42.1)
alphas_cumprodA synthetic model drives both sides, so this compares the scheduler arithmetic, not a network.
Not verified
The bake, the DINO encoder, a full run, the VAE on the GPU. Paint 2.0's UNet has no parity run. Both this PR and #788 edit the Paint 2.1 row of PARITY_VERIFICATION.md; the second to merge resolves the conflict.