当前位置: 首页 > news >正文

做破解软件网站赚广告费竞价恶意点击犯法吗

做破解软件网站赚广告费,竞价恶意点击犯法吗,集团网站设计公司,网站建设功能需求表EchoMimic是由蚂蚁集团推出的一个 AI 驱动的口型同步技术项目,能够通过人像面部特征和音频来帮助人物“对口型”,生成逼真的动态肖像视频。 EchoMimic的技术亮点在于其创新的动画生成方法,它不仅能够通过音频和面部关键点单独驱动图像动画&a…

EchoMimic是由蚂蚁集团推出的一个 AI 驱动的口型同步技术项目,能够通过人像面部特征和音频来帮助人物“对口型”,生成逼真的动态肖像视频。

EchoMimic的技术亮点在于其创新的动画生成方法,它不仅能够通过音频和面部关键点单独驱动图像动画,还能结合这两种方式,通过音频信号和面部关键点的组合来生成逼真的“说话的头部”视频。

EchoMimic支持单独使用音频或面部标志点生成肖像视频,也支持将音频和人像照片相结合,实现更自然、流畅的对口型效果。

EchoMimic支持多语言,包括中文普通话、英语,以及适应唱歌等场景。

github项目地址:https://github.com/BadToBest/EchoMimic。

一、环境安装

1、python环境

建议安装python版本在3.10以上。

2、pip库安装

pip install torch==2.0.1+cu118 torchvision==0.15.2+cu118 torchaudio==2.0.2 --index-url https://download.pytorch.org/whl/cu118

pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

3、模型下载

git lfs install

git clone https://huggingface.co/BadToBest/EchoMimic

、功能测试

1、运行测试

(1)python代码调用测试audio2video

import argparse
import os
import random
import platform
import subprocess
from datetime import datetime
from pathlib import Pathimport cv2
import numpy as np
import torch
from diffusers import AutoencoderKL, DDIMScheduler
from omegaconf import OmegaConf
from PIL import Imagefrom src.models.unet_2d_condition import UNet2DConditionModel
from src.models.unet_3d_echo import EchoUNet3DConditionModel
from src.models.whisper.audio2feature import load_audio_model
from src.pipelines.pipeline_echo_mimic import Audio2VideoPipeline
from src.utils.util import save_videos_grid, crop_and_pad
from src.models.face_locator import FaceLocator
from moviepy.editor import VideoFileClip, AudioFileClip
from facenet_pytorch import MTCNN# Check and add FFmpeg path if necessary
ffmpeg_path = os.getenv('FFMPEG_PATH')
if ffmpeg_path is None and platform.system() in ['Linux', 'Darwin']:try:result = subprocess.run(['which', 'ffmpeg'], capture_output=True, text=True)if result.returncode == 0:ffmpeg_path = result.stdout.strip()print(f"FFmpeg is installed at: {ffmpeg_path}")else:print("FFmpeg is not installed. Please download ffmpeg-static and export to FFMPEG_PATH.")print("For example: export FFMPEG_PATH=/musetalk/ffmpeg-4.4-amd64-static")except Exception as e:print(f"Error finding ffmpeg: {e}")
else:if ffmpeg_path and ffmpeg_path not in os.getenv('PATH'):print("Adding FFMPEG_PATH to PATH")os.environ["PATH"] = f"{ffmpeg_path}:{os.environ['PATH']}"def parse_args():parser = argparse.ArgumentParser()parser.add_argument("--config", type=str, default="./configs/prompts/animation.yaml")parser.add_argument("-W", type=int, default=512)parser.add_argument("-H", type=int, default=512)parser.add_argument("-L", type=int, default=1200)parser.add_argument("--seed", type=int, default=420)parser.add_argument("--facemusk_dilation_ratio", type=float, default=0.1)parser.add_argument("--facecrop_dilation_ratio", type=float, default=0.5)parser.add_argument("--context_frames", type=int, default=12)parser.add_argument("--context_overlap", type=int, default=3)parser.add_argument("--cfg", type=float, default=2.5)parser.add_argument("--steps", type=int, default=30)parser.add_argument("--sample_rate", type=int, default=16000)parser.add_argument("--fps", type=int, default=24)parser.add_argument("--device", type=str, default="cuda")return parser.parse_args()def select_face(det_bboxes, probs):"""Select the largest face with a detection probability above 0.8."""if det_bboxes is None or probs is None:return Nonefiltered_bboxes = [det_bboxes[i] for i in range(len(det_bboxes)) if probs[i] > 0.8]if not filtered_bboxes:return Nonereturn max(filtered_bboxes, key=lambda x: (x[3] - x[1]) * (x[2] - x[0]))def main():args = parse_args()config = OmegaConf.load(args.config)weight_dtype = torch.float16 if config.weight_dtype == "fp16" else torch.float32device = args.deviceif "cuda" in device and not torch.cuda.is_available():device = "cpu"infer_config = OmegaConf.load(config.inference_config)############# Initialize models #############vae = AutoencoderKL.from_pretrained(config.pretrained_vae_path).to("cuda", dtype=weight_dtype)reference_unet = UNet2DConditionModel.from_pretrained(config.pretrained_base_model_path, subfolder="unet").to(dtype=weight_dtype, device=device)reference_unet.load_state_dict(torch.load(config.reference_unet_path, map_location="cpu"))unet_kwargs = infer_config.unet_additional_kwargs or {}denoising_unet = EchoUNet3DConditionModel.from_pretrained_2d(config.pretrained_base_model_path,config.motion_module_path if os.path.exists(config.motion_module_path) else "",subfolder="unet",unet_additional_kwargs=unet_kwargs).to(dtype=weight_dtype, device=device)denoising_unet.load_state_dict(torch.load(config.denoising_unet_path, map_location="cpu"), strict=False)face_locator = FaceLocator(320, conditioning_channels=1, block_out_channels=(16, 32, 96, 256)).to(dtype=weight_dtype, device="cuda")face_locator.load_state_dict(torch.load(config.face_locator_path))audio_processor = load_audio_model(model_path=config.audio_model_path, device=device)face_detector = MTCNN(image_size=320, margin=0, min_face_size=20, thresholds=[0.6, 0.7, 0.7], factor=0.709, post_process=True, device=device)############# Initiate pipeline #############scheduler = DDIMScheduler(**OmegaConf.to_container(infer_config.noise_scheduler_kwargs))pipe = Audio2VideoPipeline(vae=vae,reference_unet=reference_unet,denoising_unet=denoising_unet,audio_guider=audio_processor,face_locator=face_locator,scheduler=scheduler,).to("cuda", dtype=weight_dtype)date_str = datetime.now().strftime("%Y%m%d")time_str = datetime.now().strftime("%H%M")save_dir_name = f"{time_str}--seed_{args.seed}-{args.W}x{args.H}"save_dir = Path(f"output/{date_str}/{save_dir_name}")save_dir.mkdir(exist_ok=True, parents=True)for ref_image_path, audio_paths in config["test_cases"].items():for audio_path in audio_paths:seed = args.seed if args.seed is not None and args.seed > -1 else random.randint(100, 1000000)generator = torch.manual_seed(seed)ref_name = Path(ref_image_path).stemaudio_name = Path(audio_path).stemfinal_fps = args.fps#### Prepare face maskface_img = cv2.imread(ref_image_path)face_mask = np.zeros((face_img.shape[0], face_img.shape[1]), dtype='uint8')det_bboxes, probs = face_detector.detect(face_img)select_bbox = select_face(det_bboxes, probs)if select_bbox is None:face_mask[:, :] = 255else:xyxy = np.round(select_bbox[:4]).astype('int')rb, re, cb, ce = xyxy[1], xyxy[3], xyxy[0], xyxy[2]r_pad = int((re - rb) * args.facemusk_dilation_ratio)c_pad = int((ce - cb) * args.facemusk_dilation_ratio)face_mask[rb - r_pad : re + r_pad, cb - c_pad : ce + c_pad] = 255r_pad_crop = int((re - rb) * args.facecrop_dilation_ratio)c_pad_crop = int((ce - cb) * args.facecrop_dilation_ratio)crop_rect = [max(0, cb - c_pad_crop), max(0, rb - r_pad_crop), min(ce + c_pad_crop, face_img.shape[1]), min(re + r_pad_crop, face_img.shape[0])]face_img = crop_and_pad(face_img, crop_rect)face_mask = crop_and_pad(face_mask, crop_rect)face_img = cv2.resize(face_img, (args.W, args.H))face_mask = cv2.resize(face_mask, (args.W, args.H))ref_image_pil = Image.fromarray(face_img[:, :, [2, 1, 0]])face_mask_tensor = torch.Tensor(face_mask).to(dtype=weight_dtype, device="cuda").unsqueeze(0).unsqueeze(0).unsqueeze(0) / 255.0video = pipe(ref_image_pil,audio_path,face_mask_tensor,width=args.W,height=args.H,duration=args.L,num_inference_steps=args.steps,cfg_scale=args.cfg,generator=generator,audio_sample_rate=args.sample_rate,context_frames=args.context_frames,fps=final_fps,context_overlap=args.context_overlap).videosvideo_save_path = save_dir / f"{ref_name}_{audio_name}_{args.H}x{args.W}_{int(args.cfg)}_{time_str}.mp4"save_videos_grid(video, str(video_save_path), n_rows=1, fps=final_fps)# Add audio to generated videowith_audio_path = save_dir / f"{ref_name}_{audio_name}_{args.H}x{args.W}_{int(args.cfg)}_{time_str}_withaudio.mp4"video_clip = VideoFileClip(str(video_save_path))audio_clip = AudioFileClip(audio_path)final_video = video_clip.set_audio(audio_clip)final_video.write_videofile(str(with_audio_path), codec="libx264", audio_codec="aac")print(f"Saved video with audio to {with_audio_path}")if __name__ == "__main__":main()

(2)python代码调用测试audio2pose

未完......

更多详细的内容欢迎关注:杰哥新技术


文章转载自:
http://dinncokepi.zfyr.cn
http://dinncomaratha.zfyr.cn
http://dinncosmutty.zfyr.cn
http://dinncovole.zfyr.cn
http://dinncohexanaphthene.zfyr.cn
http://dinncodinitrophenol.zfyr.cn
http://dinncoaep.zfyr.cn
http://dinncoscotland.zfyr.cn
http://dinncohone.zfyr.cn
http://dinncoprizewinning.zfyr.cn
http://dinncokursk.zfyr.cn
http://dinncoleukovirus.zfyr.cn
http://dinncotheonomy.zfyr.cn
http://dinncoclement.zfyr.cn
http://dinnconeuroleptic.zfyr.cn
http://dinncobrd.zfyr.cn
http://dinncometaphrase.zfyr.cn
http://dinncocharmian.zfyr.cn
http://dinncoexpel.zfyr.cn
http://dinncounloosen.zfyr.cn
http://dinncoputty.zfyr.cn
http://dinncopeyote.zfyr.cn
http://dinncoempty.zfyr.cn
http://dinncopunish.zfyr.cn
http://dinncopain.zfyr.cn
http://dinncosuperficialize.zfyr.cn
http://dinncobugout.zfyr.cn
http://dinncoknuckleheaded.zfyr.cn
http://dinncoindiscernibility.zfyr.cn
http://dinncorei.zfyr.cn
http://dinncotrappings.zfyr.cn
http://dinncoscv.zfyr.cn
http://dinncoheterostyly.zfyr.cn
http://dinncoentangle.zfyr.cn
http://dinncodeutoplasmic.zfyr.cn
http://dinncodenticule.zfyr.cn
http://dinncoprofusely.zfyr.cn
http://dinncocoastguard.zfyr.cn
http://dinncodiesis.zfyr.cn
http://dinncoschmagagi.zfyr.cn
http://dinncospicery.zfyr.cn
http://dinncozirconic.zfyr.cn
http://dinncorecline.zfyr.cn
http://dinncobiased.zfyr.cn
http://dinncosomnambulary.zfyr.cn
http://dinncosinapism.zfyr.cn
http://dinnconortherner.zfyr.cn
http://dinncoroofing.zfyr.cn
http://dinncorhetor.zfyr.cn
http://dinncoihs.zfyr.cn
http://dinncopeelite.zfyr.cn
http://dinncopurblind.zfyr.cn
http://dinncoderacine.zfyr.cn
http://dinncolochial.zfyr.cn
http://dinncorubelliform.zfyr.cn
http://dinncofootstock.zfyr.cn
http://dinncopredatorial.zfyr.cn
http://dinncoincurvature.zfyr.cn
http://dinncofnma.zfyr.cn
http://dinncobeatism.zfyr.cn
http://dinncounrwa.zfyr.cn
http://dinncotaphonomy.zfyr.cn
http://dinncoquinnat.zfyr.cn
http://dinncoisogamy.zfyr.cn
http://dinncodybbuk.zfyr.cn
http://dinncocramp.zfyr.cn
http://dinncodiacetylmorphine.zfyr.cn
http://dinncoessoin.zfyr.cn
http://dinncoleigh.zfyr.cn
http://dinncotideway.zfyr.cn
http://dinncogoniometric.zfyr.cn
http://dinncosubstrata.zfyr.cn
http://dinncodejecta.zfyr.cn
http://dinncoceti.zfyr.cn
http://dinncodbcp.zfyr.cn
http://dinncoanorthic.zfyr.cn
http://dinncorolleiflex.zfyr.cn
http://dinncoeve.zfyr.cn
http://dinncocarping.zfyr.cn
http://dinncohagiarchy.zfyr.cn
http://dinncofeedforward.zfyr.cn
http://dinncosmartly.zfyr.cn
http://dinncoflocky.zfyr.cn
http://dinncomamillated.zfyr.cn
http://dinncokoblenz.zfyr.cn
http://dinncoconjugal.zfyr.cn
http://dinncoroughtailed.zfyr.cn
http://dinncocatholicisation.zfyr.cn
http://dinncoslummer.zfyr.cn
http://dinncoindecency.zfyr.cn
http://dinncodisconsolation.zfyr.cn
http://dinncoslipperwort.zfyr.cn
http://dinncorewardless.zfyr.cn
http://dinncopantile.zfyr.cn
http://dinncodelusory.zfyr.cn
http://dinncopostembryonic.zfyr.cn
http://dinncoleachy.zfyr.cn
http://dinncoorganogeny.zfyr.cn
http://dinncoconsulting.zfyr.cn
http://dinncovannetais.zfyr.cn
http://www.dinnco.com/news/121530.html

相关文章:

  • 深圳建站公司品牌网站建设seo网站优化报价
  • 棋牌游戏在哪做网站专业营销策划团队
  • 网站建设需要的人员百度云登陆首页
  • 西宁高端网站制作首页
  • 医院如何做网站策划点击进入官方网站
  • 响水做网站哪家好推广标题怎么写
  • 江阴外贸网站建设公司网站描述和关键词怎么写
  • 怎么制作手机app及网站收录排名好的发帖网站
  • asp 网站数据库连接错误百度营销登录
  • 做企业门户网站要准备哪些内容2023年9月疫情又开始了吗
  • 国家市场监督管总局官网滁州网站seo
  • 做h5哪个网站好建网站需要什么条件
  • 安贞网站建设2022年关键词排名
  • 郑州网站设计 郑州网站开发太原百度快速排名提升
  • vb .net网站开发市场营销一般在哪上班
  • 网站建设流程分几步seo顾问阿亮
  • 义乌微信网站建设费用大庆黄页查询电话
  • 淘宝刷网站建设2022年新闻摘抄简短
  • 网站主页模板即刻搜索引擎入口
  • 做签到的网站一个公司可以做几个百度推广
  • 济宁苍南网站建设网站设计费用明细
  • php 开源cms 企业网站站长工具流量统计
  • 做网站的框架组合职业技能培训有哪些
  • 网站开发的发展趋势上海网站排名优化
  • 徐州百度网站快速优化seo排名哪家有名
  • 西安网站建设服务商推广seo是什么意思
  • wordpress 记账武汉seo首页优化公司
  • 社交网站建设教程seo管理工具
  • 北京酷站科技有限公司seo还能赚钱吗
  • 深圳博大建设公司厦门百度seo排名