fudan-generative-vision / champ

Champ: Controllable and Consistent Human Image Animation with 3D Parametric Guidance
https://fudan-generative-vision.github.io/champ/
MIT License
4.3k stars 534 forks source link

When will you release a hugging face demo ,THANK YOU IN ADVANCE ♡♡♡ #87

Closed Sarthak-999 closed 2 months ago

Inferencer commented 5 months ago

they have one on replicate while you wait https://replicate.com/camenduru/champ

zhou-linpeng commented 5 months ago

A preliminary Champ was implemented, including aligning the 3D pose with the input image. The entire forward process took about 6 minutes. https://c933b786ceedee6c17.gradio.live

https://github.com/fudan-generative-vision/champ/assets/147801386/a53d5a16-b304-4a3e-bef6-0d544ee53b33

nitinmukesh commented 5 months ago

@zhou-linpeng Awesome. How did you got smooth animation? Please post quick guide (steps).

sonodaatom commented 5 months ago

Great work! I would also like to know how you make the video smooth without flickering!

Leoooo333 commented 5 months ago

Hi @nitinmukesh @sonodaatom, the Blender smooth script is released. Update and Check the doc.

sonodaatom commented 5 months ago

@Leoooo333 Thank you for your great work and reply!

I would also appreciate an answer to the bug that is not generated when using figure_transfer. https://github.com/fudan-generative-vision/champ/issues/84

Also, like --view_transfer, I would like the balance of the body to be aligned with the reference image, but to be moved when the video is moved from back to front, do you have any idea how to handle such a request?

Leoooo333 commented 5 months ago

Hi @sonodaatom, so now cam_t, which is the global location of the SMPL, is fixed as Reference when using view-transfer. To transfer with moving locations, I recommend to edit this line. https://github.com/fudan-generative-vision/champ/blob/b205392e54160de2cdc2ebd7b9832970317704a0/scripts/data_processors/smpl/smpl_transfer.py#L111

For a very simple example, you can translate the mean of your motion sequence's cam_t to reference's. Here's the pseudo code.

motion_loc_mean = result_dict_list["camera"].mean()
ref_loc = reference_dict["cam_t"] 
smooth_factor = 1
rescale_loc_list = result_dict_list["camera"] - motion_loc_mean 
rescale_loc_list *= ref_loc / motion_loc_mean  # simple perspective transform
rescale_loc_list *= smooth_factor
rescale_loc_list += ref_loc # move motion's mean to ref_loc
for i in range() :
    result_dict["cam_t"] = rescale_loc_list [i]
sonodaatom commented 5 months ago

@Leoooo333 Thank you for the pseudo code. I will try it.

AricGamma commented 2 months ago

Closing this issue. If any questions, please open a new one.