国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【OpenMMLab AI實(shí)戰(zhàn)營(yíng)二期筆記】第十一天 玩轉(zhuǎn)AIGC神器MMagic代碼教程

這篇具有很好參考價(jià)值的文章主要介紹了【OpenMMLab AI實(shí)戰(zhàn)營(yíng)二期筆記】第十一天 玩轉(zhuǎn)AIGC神器MMagic代碼教程。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

1. 安裝配置MMagic

1.1 安裝Pytorch

# 安裝Pytorch
!pip3 install install torch==1.10.1+cu113 torchvision==0.11.2+cu113 torchaudio==0.10.1+cu113 -f https://download.pytorch.org/whl/cu113/torch_stable.html

1.2 安裝MMCV、MMEngine環(huán)境

!pip3 install openmim
!mim install 'mmcv>=2.0.0'
!mim install 'mmengine'

1.3 安裝MMagic

方式一:

!mim install 'mmagic'

方式二:源碼安裝文章來源地址http://www.zghlxwxcb.cn/news/detail-499166.html

!rm -rf mmagic # 刪除原有的 mmagic 文件夾(如有)
!git clone https://github.com/open-mmlab/mmagic.git # 下載 mmagic 源代碼
import os
os.chdir('mmagic')
!pip3 install -e .

1.4檢查安裝成功

# 檢查 Pytorch
import torch, torchvision
print('Pytorch 版本', torch.__version__)
print('CUDA 是否可用',torch.cuda.is_available())
# 檢查 mmcv
import mmcv
from mmcv.ops import get_compiling_cuda_version, get_compiler_version
print('MMCV版本', mmcv.__version__)
print('CUDA版本', get_compiling_cuda_version())
print('編譯器版本', get_compiler_version())
# 檢查 mmagic
import mmagic
print('MMagic版本', mmagic.__version__)

1.5 安裝其他工具包

!pip install opencv-python pillow matplotlib seaborn tqdm -i https://pypi.tuna.tsinghua.edu.cn/simple
!pip install clip transformers gradio 'httpx[socks]' diffusers==0.14.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
!mim install 'mmdet>=3.0.0'

2.應(yīng)用:黑白照片上色

2.1 進(jìn)入 MMagic 主目錄

import os
os.chdir('mmagic')

2.2下載樣例圖片

!wget https://zihao-openmmlab.obs.cn-east-3.myhuaweicloud.com/20230613-MMagic/data/test_colorization.jpg -O test_colorization.jpg

2.3 運(yùn)行預(yù)測(cè)

!python demo/mmagic_inference_demo.py \
        --model-name inst_colorization \
        --img test_colorization.jpg \
        --result-out-dir out_colorization.png

3.應(yīng)用:文生圖 Stable Diffusion

3.1 導(dǎo)入工具包

from mmagic.apis import MMagicInferencer

3.2 載入模型

sd_inferencer = MMagicInferencer(model_name='stable_diffusion')

3.3 指定Prompt文本

text_prompts = 'A panda is having dinner at KFC'
text_prompts = 'A Persian cat walking in the streets of New York'

3.4 預(yù)測(cè)

sd_inferencer.infer(text=text_prompts, result_out_dir='output/sd_res.png')

4.應(yīng)用:文生圖 Dreambooth

4.1 進(jìn)入 MMagic 主目錄

import os
os.chdir('mmagic')

4.2 在數(shù)據(jù)集上訓(xùn)練Dreambooth

!bash tools/dist_train.sh configs/dreambooth/dreambooth-lora.py 1

4.3 用訓(xùn)練好的模型做預(yù)測(cè)

from mmengine import Config

from mmagic.registry import MODELS
from mmagic.utils import register_all_modules

register_all_modules()
cfg = Config.fromfile('./mmagic/configs/dreambooth/dreambooth-lora.py')
dreambooth_lora = MODELS.build(cfg.model)
state = torch.load('mmagic/work_dirs/dreambooth-lora/iter_1000.pth')['state_dict']
def convert_state_dict(state):
    state_dict_new = {}
    for k, v in state.items():
        if '.module' in k:
            k_new = k.replace('.module', '')
        else:
            k_new = k
        if 'vae' in k:
            if 'to_q' in k:
                k_new = k.replace('to_q', 'query')
            elif 'to_k' in k:
                k_new = k.replace('to_k', 'key')
            elif 'to_v' in k:
                k_new = k.replace('to_v', 'value')
            elif 'to_out' in k:
                k_new = k.replace('to_out.0', 'proj_attn')
        state_dict_new[k_new] = v
    return state_dict_new
dreambooth_lora.load_state_dict(convert_state_dict(state))
dreambooth_lora = dreambooth_lora.cuda()
samples = dreambooth_lora.infer('side view of sks dog', guidance_scale=5)
samples['samples'][0]
samples = dreambooth_lora.infer('ear close-up of sks dog', guidance_scale=5)
samples['samples'][0]

5.應(yīng)用:圖生圖-ControlNet-Canny

5.1 進(jìn)入 MMagic 主目錄

import os
os.chdir('mmagic')

5.2 導(dǎo)入工具包

import cv2
import numpy as np
import mmcv
from mmengine import Config
from PIL import Image

from mmagic.registry import MODELS
from mmagic.utils import register_all_modules

register_all_modules()

5.3 載入ControlNet模型

cfg = Config.fromfile('configs/controlnet/controlnet-canny.py')
controlnet = MODELS.build(cfg.model).cuda()

5.4 輸入Canny邊緣圖

control_url = 'https://user-images.githubusercontent.com/28132635/230288866-99603172-04cb-47b3-8adb-d1aa532d1d2c.jpg'
control_img = mmcv.imread(control_url)
control = cv2.Canny(control_img, 100, 200)
control = control[:, :, None]
control = np.concatenate([control] * 3, axis=2)
control = Image.fromarray(control)

5.5 Prompt

prompt = 'Room with blue walls and a yellow ceiling.'

5.6 執(zhí)行預(yù)測(cè)

output_dict = controlnet.infer(prompt, control=control)
samples = output_dict['samples']
for idx, sample in enumerate(samples):
    sample.save(f'sample_{idx}.png')
controls = output_dict['controls']
for idx, control in enumerate(controls):
    control.save(f'control_{idx}.png')

6.應(yīng)用:圖生圖-ControlNet-Pose

6.1 進(jìn)入 MMagic 主目錄

import os
os.chdir('mmagic')

6.2 導(dǎo)入工具包

import mmcv
from mmengine import Config
from PIL import Image

from mmagic.registry import MODELS
from mmagic.utils import register_all_modules

register_all_modules()

6.3 載入ControlNet模型

cfg = Config.fromfile('configs/controlnet/controlnet-pose.py')
# convert ControlNet's weight from SD-v1.5 to Counterfeit-v2.5
cfg.model.unet.from_pretrained = 'gsdf/Counterfeit-V2.5'
cfg.model.vae.from_pretrained = 'gsdf/Counterfeit-V2.5'
cfg.model.init_cfg['type'] = 'convert_from_unet'
controlnet = MODELS.build(cfg.model).cuda()
# call init_weights manually to convert weight
controlnet.init_weights()

6.4 Prompt

prompt = 'masterpiece, best quality, sky, black hair, skirt, sailor collar, looking at viewer, short hair, building, bangs, neckerchief, long sleeves, cloudy sky, power lines, shirt, cityscape, pleated skirt, scenery, blunt bangs, city, night, black sailor collar, closed mouth'

6.5 輸入Pose圖

control_url = 'https://user-images.githubusercontent.com/28132635/230380893-2eae68af-d610-4f7f-aa68-c2f22c2abf7e.png'
control_img = mmcv.imread(control_url)
control = Image.fromarray(control_img)
control.save('control.png')

6.6 執(zhí)行預(yù)測(cè)

output_dict = controlnet.infer(prompt, control=control, width=512, height=512, guidance_scale=7.5)
samples = output_dict['samples']
for idx, sample in enumerate(samples):
    sample.save(f'sample_{idx}.png')
controls = output_dict['controls']
for idx, control in enumerate(controls):
    control.save(f'control_{idx}.png')

7. 圖生圖-ControlNet Animation

7.1方式一:Gradio命令行

!python demo/gradio_controlnet_animation.py

7.2 方式二:MMagic API

# 導(dǎo)入工具包
from mmagic.apis import MMagicInferencer

# Create a MMEdit instance and infer
editor = MMagicInferencer(model_name='controlnet_animation')
# 指定 prompt 咒語
prompt = 'a girl, black hair, T-shirt, smoking, best quality, extremely detailed'
negative_prompt = 'longbody, lowres, bad anatomy, bad hands, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality'
# 待測(cè)視頻
# https://user-images.githubusercontent.com/12782558/227418400-80ad9123-7f8e-4c1a-8e19-0892ebad2a4f.mp4
video = '../run_forrest_frames_rename_resized.mp4'
save_path = '../output_video.mp4'
# 執(zhí)行預(yù)測(cè)
editor.infer(video=video, prompt=prompt, image_width=512, image_height=512, negative_prompt=negative_prompt, save_path=save_path)

到了這里,關(guān)于【OpenMMLab AI實(shí)戰(zhàn)營(yíng)二期筆記】第十一天 玩轉(zhuǎn)AIGC神器MMagic代碼教程的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【OpenMMLab AI實(shí)戰(zhàn)營(yíng)第二期】目標(biāo)檢測(cè)與MMDetection

    【OpenMMLab AI實(shí)戰(zhàn)營(yíng)第二期】目標(biāo)檢測(cè)與MMDetection

    目標(biāo)檢測(cè)的基本范式 劃窗 使用卷積實(shí)現(xiàn)密集預(yù)測(cè) 錨框 多尺度檢測(cè)與FPN 單階段無錨框檢測(cè)器選講 RPN YOLO、SSD Focal Loss與RetinaNet FCOS YOLO系列選講 什么是目標(biāo)檢測(cè) 目標(biāo)檢測(cè):給定一張圖片,用矩形框框出所有感興趣物體同時(shí)預(yù)測(cè)物體類別 目標(biāo)檢測(cè)與圖像分類區(qū)別 圖像分類通常

    2024年02月08日
    瀏覽(26)
  • 【OpenMMLab】AI實(shí)戰(zhàn)營(yíng)第二期Day10:底層視覺與MMEditing

    【OpenMMLab】AI實(shí)戰(zhàn)營(yíng)第二期Day10:底層視覺與MMEditing

    本課程包含底層視覺和MMEditing兩個(gè)部分。第一部分介紹圖像超分、深度學(xué)習(xí)和網(wǎng)絡(luò)訓(xùn)練的相關(guān)算法,第二部分介紹超像素卷積、無監(jiān)督學(xué)習(xí)、卷積網(wǎng)絡(luò)和空間注意機(jī)制,以及這些算法在視覺框架中的實(shí)踐應(yīng)用。 ??介紹計(jì)算機(jī)視覺里面一個(gè)重要的問題:圖像超分辨率以及相關(guān)

    2024年02月09日
    瀏覽(21)
  • OpenMMLab-AI實(shí)戰(zhàn)營(yíng)第二期——5-1.語義分割與MMSegmentation

    OpenMMLab-AI實(shí)戰(zhàn)營(yíng)第二期——5-1.語義分割與MMSegmentation

    視頻鏈接:語義分割與MMSegmentation 好的教程:超詳細(xì)!手把手帶你輕松用 MMSegmentation 跑語義分割數(shù)據(jù)集 以及:超詳細(xì)!帶你輕松掌握 MMSegmentation 整體構(gòu)建流程 案例代碼:https://github.com/TommyZihao/MMSegmentation_Tutorials 2.1.1 按顏色 最簡(jiǎn)單的思路:按照顏色聚類,基于同一物體顏色

    2024年02月09日
    瀏覽(26)
  • 第五十一天打卡

    中等 1.5K company 微軟 Microsoft 給定一個(gè)整數(shù)數(shù)組prices,其中第 prices[i] 表示第 i 天的股票價(jià)格 。? 設(shè)計(jì)一個(gè)算法計(jì)算出最大利潤(rùn)。在滿足以下約束條件下,你可以盡可能地完成更多的交易(多次買賣一支股票): 賣出股票后,你無法在第二天買入股票 (即冷凍期為 1 天)。 注意

    2023年04月09日
    瀏覽(26)
  • 學(xué)習(xí)Android的第十一天

    目錄 Android ProgressBar 進(jìn)度條 ProgressBar ProgressBar 外觀 ProgressBar 屬性 ProgressBar 方法 Android ProgressBar 動(dòng)圖替代圓形進(jìn)度條 范例 Android ProgressBar 自定義圓環(huán)進(jìn)度條 例子: 參考文檔 在Android中,ProgressBar(進(jìn)度條)是用于顯示任務(wù)進(jìn)度的UI組件,通常用于耗時(shí)操作的過程中以及需要顯

    2024年02月19日
    瀏覽(28)
  • C語言(第三十一天)

    C語言(第三十一天)

    6. 調(diào)試舉例1 求1!+2!+3!+4!+...10!的和,請(qǐng)看下面的代碼: 調(diào)試找一下問題。 7. 調(diào)試舉例2 在VS2019、X86、Debug 的環(huán)境下,編譯器不做任何優(yōu)化的話,下面代碼執(zhí)行的結(jié)果是啥? 程序運(yùn)行,死循環(huán)了,調(diào)試看看為什么? 調(diào)試可以上面程序的內(nèi)存布局如下: ?1. 棧區(qū)內(nèi)存的使用習(xí)慣

    2024年02月11日
    瀏覽(25)
  • OpenMMLab-AI實(shí)戰(zhàn)營(yíng)第二期——2-1.人體關(guān)鍵點(diǎn)檢測(cè)與MMPose

    OpenMMLab-AI實(shí)戰(zhàn)營(yíng)第二期——2-1.人體關(guān)鍵點(diǎn)檢測(cè)與MMPose

    視頻鏈接:B站-人體關(guān)鍵點(diǎn)檢測(cè)與MMPose 關(guān)鍵點(diǎn)提取,屬于模式識(shí)別 人體姿態(tài)估計(jì)的下游任務(wù):行為識(shí)別(比如:擁抱。。) 下游任務(wù):CG和動(dòng)畫,這個(gè)是最常見的應(yīng)用 下游任務(wù):人機(jī)交互(手勢(shì)識(shí)別,依據(jù)收拾做出不同的響應(yīng),比如:HoloLens會(huì)對(duì)五指手勢(shì)(3D)做出不同的反

    2024年02月11日
    瀏覽(18)
  • 代碼隨想錄第二十一天

    題目鏈接 : 二叉搜索樹的最小絕對(duì)差 自己的思路 :和驗(yàn)證二叉搜索樹一樣的思路!可以求每個(gè)相鄰節(jié)點(diǎn)的差值的絕對(duì)值,然后和之前的差值的絕對(duì)值進(jìn)行比較,取最小的為新的res;遞歸三部曲:1、傳入?yún)?shù):當(dāng)前節(jié)點(diǎn);2、終止條件:如果當(dāng)前節(jié)點(diǎn)為空,直接返回;3、單層遞

    2024年02月16日
    瀏覽(25)
  • node 第二十一天 webpack 初見

    為什么需要學(xué)習(xí)(了解)webpack webpack是前端工程化的基石,webpack又是基于node進(jìn)行文件打包bundle,所以作為前端起手學(xué)習(xí)node服務(wù)端開發(fā),同時(shí)學(xué)習(xí)webpack是很有必要的。 隨著vite的出現(xiàn),vue這一脈可能也許不再需要學(xué)習(xí)webpack了,但是需要知道的是, 打包一定是前端工程化繞不

    2024年01月16日
    瀏覽(26)
  • 學(xué)C的第三十一天【通訊錄的實(shí)現(xiàn)】

    學(xué)C的第三十一天【通訊錄的實(shí)現(xiàn)】

    ========================================================================= 相關(guān)代碼gitee自取 :C語言學(xué)習(xí)日記: 加油努力 (gitee.com) ?========================================================================= 接上期 : 學(xué)C的第三十天【自定義類型:結(jié)構(gòu)體、枚舉、聯(lián)合】_高高的胖子的博客-CSDN博客 ?==============

    2024年02月15日
    瀏覽(30)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包