生成扩散模型高效调优-Swift-Prompt

我要开发同款
匿名用户2024年07月31日
119阅读

技术信息

开源地址
https://modelscope.cn/models/iic/multi-modal_efficient-diffusion-tuning-swift-prompt
授权协议
Apache License 2.0

作品详情

生成扩散模型高效调优-Prompt

基于Swift库对Stable Diffusio模型进行高效调优。通过Prompt-Tuer模块,在训练时只需训练少规模的参数,即可高效地定制专属于你的场景的"Stable Diffusio"模型!

模型描述

本模型基础的Diffusio Model采用Stable-Diffusio-v1-5预训练模型,Tuer训练模块的参数量小于总模型的0.1%。

期望模型使用方式以及适用范围

如何使用

基于 ModelScope 框架,通过调用预定义的 Pipelie 可实现快速调用。

代码范例

# Note: 需要 diffusers==0.28.0

from modelscope.pipelies import pipelie
sd_pipelie = pipelie('efficiet-diffusio-tuig', 
                            'damo/multi-modal_efficiet-diffusio-tuig-swift-prompt')
iputs = {'prompt': 'a street scee with a cafe ad a restaurat sig i aime style'}
result = sd_pipelie(iputs)
prit(f'Output: {result}.')

训练数据介绍

模型训练及验证

以下过程基于上述数据集,实现了SD-Tuer模型的训练及验证过程。

import os
import tempfile
import cv2
from modelscope.pipelies import pipelie
from modelscope.utils.costat import Tasks
from modelscope.models import Model
from modelscope.msdatasets import MsDataset
from modelscope.traiers import build_traier
from modelscope.utils.costat import DowloadMode

model_id = 'damo/multi-modal_efficiet-diffusio-tuig-swift-prompt'

# 数据准备
trai_dataset = MsDataset.load('style_custom_dataset',
                                amespace='damo',
                                split='trai',
                                subset_ame='Aime').remap_colums({"Image:FILE": "target:FILE"})

tmp_dir = tempfile.TemporaryDirectory().ame
max_epochs = 1
lr = 0.0001

def cfg_modify_f(cfg):
    cfg.trai.max_epochs = max_epochs
    cfg.trai.lr_scheduler.T_max = max_epochs
    cfg.trai.optimizer.lr = lr
    cfg.model.iferece = False
    cfg.model.pretraied_tuer = Noe
    retur cfg

kwargs = dict(
    model=model_id,
    work_dir=tmp_dir,
    trai_dataset=trai_dataset,
    cfg_modify_f=cfg_modify_f)

# 模型训练
traier = build_traier(ame="traier", default_args=kwargs)
traier.trai()
prit(f'Efficiet-diffusio-tuig-swift-prompt trai.')

# 训练后推理过程
work_dir = os.path.joi(tmp_dir, 'output')
iputs = {'prompt': 'a street scee with a cafe ad a restaurat sig i aime style'}
pipe = pipelie(task=Tasks.efficiet_diffusio_tuig, model=work_dir)
outputs = pipe(iputs)
cv2.imwrite('result.pg', outputs['output_imgs'][0])

相关论文以及引用信息

如果该模型对您有所帮助,请引用下面的相关的论文:

@iproceedigs{jia2022vpt,
  title={Visual Prompt Tuig},
  author={Jia, Megli ad Tag, Lumig ad Che, Bor-Chu ad Cardie, Claire ad Belogie, Serge ad Harihara, Bharath ad Lim, Ser-Nam},
  booktitle=ECCV,
  year={2022}
}
@misc{rombach2021highresolutio,
  title={High-Resolutio Image Sythesis with Latet Diffusio Models}, 
  author={Robi Rombach ad Adreas Blattma ad Domiik Lorez ad Patrick Esser ad Björ Ommer},
  year={2021}
}

功能介绍

生成扩散模型高效调优-Prompt 基于Swift库对Stable Diffusion模型进行高效调优。通过Prompt-Tuner模块,在训练时只需训练少规模的参数,即可高效地定制专属于你的场景的"

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论