Compare commits

...
8 Commits
Author SHA1 Message Date
jiangzeyinzi ef82a32944 Update process_watcher.py 2024-06-03 17:47:55 +08:00
hanzhn aa7e959330 v1.0.0 update 2024-05-31 14:05:54 +08:00
hanzhn edff6352d5 v1.0.0 update 2024-05-29 13:17:03 +08:00
hanzhn aa8250e5d2 v1.0.0 update 2024-05-29 10:30:04 +08:00
hanzhn e7255aac25 v1.0.0 update 2024-05-27 17:12:57 +08:00
Zhen Han b752ff1cbc Update readme.md 2024-05-27 14:01:28 +08:00
Zhen Han 8b08629bd0 Update readme.md 2024-05-27 13:28:27 +08:00
hanzhn c70ef0fc47 v1.0.0 update 2024-05-27 13:15:48 +08:00
193 changed files with 7636 additions and 3149 deletions
+1 -1
View File
@@ -15,6 +15,6 @@ dev
scepter.egg-info scepter.egg-info
.readthedocs.yml .readthedocs.yml
1.9 1.9
MANIFEST.in #MANIFEST.in
*resources *resources
*.ipynb_checkpoints* *.ipynb_checkpoints*
Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

+1
View File
@@ -1,4 +1,5 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Copyright (c) Alibaba, Inc. and its affiliates.
# Configuration file for the Sphinx documentation builder. # Configuration file for the Sphinx documentation builder.
# #
# This file only contains a selection of the most common options. For a full # This file only contains a selection of the most common options. For a full
+15 -2
View File
@@ -29,8 +29,21 @@ Given an original image, image editing aims to generate an image that align with
<td><img src="../../../asset/images/stylebooth/retrogame.jpeg" width="240"></td> <td><img src="../../../asset/images/stylebooth/retrogame.jpeg" width="240"></td>
<td><img src="../../../asset/images/stylebooth/vangogh.jpeg" width="240"></td> <td><img src="../../../asset/images/stylebooth/vangogh.jpeg" width="240"></td>
</tr> </tr>
<tr>
<td><strong>Origin Image</strong></td>
<td><strong>Lowpoly</strong></td>
<td><strong>Colored Pencil Art</strong></td>
<td><strong>Watercolor</strong></td>
<td><strong>misc-disco</strong></td>
</tr>
<tr>
<td><img src="../../../asset/images/stylebooth/mountain.jpg" width="240"></td>
<td><img src="../../../asset/images/stylebooth/lowpoly.jpg" width="240"></td>
<td><img src="../../../asset/images/stylebooth/colorpencil.jpeg" width="240"></td>
<td><img src="../../../asset/images/stylebooth/watercolor.jpeg" width="240"></td>
<td><img src="../../../asset/images/stylebooth/disco.jpeg" width="240"></td>
</tr>
</table> </table>
## Features ## Features
| **Text-Based** | **Exemplar-Based** | | **Text-Based** | **Exemplar-Based** |
@@ -92,7 +105,7 @@ class DiffusionInferenceTest(unittest.TestCase):
output = diff_infer({'prompt': 'Let this image be in the style of sai-lowpoly'}, output = diff_infer({'prompt': 'Let this image be in the style of sai-lowpoly'},
style_edit_image=Image.open('asset/images/inpainting_text_ref/ex4_scene_im.jpg'), style_edit_image=Image.open('asset/images/inpainting_text_ref/ex4_scene_im.jpg'),
style_guide_scale_text=7.5, style_guide_scale_text=7.5,
style_guide_scale_image=0.5) style_guide_scale_image=1.5)
save_path = os.path.join(self.tmp_dir, save_path = os.path.join(self.tmp_dir,
'stylebooth_test_lowpoly_cute_dog.png') 'stylebooth_test_lowpoly_cute_dog.png')
save_image(output['images'], save_path) save_image(output['images'], save_path)
+7 -2
View File
@@ -5,7 +5,7 @@ Below are examples for each format, illustrating their details and basic usage.
## Modelscope Format ## Modelscope Format
We use a [custom-stylized dataset](https://modelscope.cn/datasets/damo/style_custom_dataset/summary), which included classes 3D, anime, flat illustration, oil painting, sketch, and watercolor, each with 30 image-text pairs. We use a [custom-stylized dataset](https://modelscope.cn/datasets/iic/style_custom_dataset/summary), which included classes 3D, anime, flat illustration, oil painting, sketch, and watercolor, each with 30 image-text pairs.
```python ```python
# pip install modelscope # pip install modelscope
@@ -16,7 +16,11 @@ print(next(iter(ms_train_dataset)))
## CSV Format ## CSV Format
For the data format used by SCEPTER Studio, please refer to [3D_example_csv.zip](https://www.modelscope.cn/api/v1/models/iic/scepter/repo?Revision=master&FilePath=datasets/3D_example_csv.zip). For the data format used by SCEPTER Studio, please refer to [3D_example_csv.zip](https://www.modelscope.cn/api/v1/models/iic/scepter/repo?Revision=master&FilePath=datasets/3D_example_csv.zip) and [hed_pair.zip](https://www.modelscope.cn/api/v1/models/iic/scepter/repo?Revision=master&FilePath=datasets%2Fhed_pair.zip).
```shell
mkdir -p cache/datasets/ && wget 'https://www.modelscope.cn/api/v1/models/iic/scepter/repo?Revision=master&FilePath=datasets/3D_example_csv.zip' -O cache/datasets/3D_example_csv.zip && unzip cache/datasets/3D_example_csv.zip -d cache/datasets/ && rm cache/datasets/3D_example_csv.zip
mkdir -p cache/datasets/ && wget 'https://www.modelscope.cn/api/v1/models/iic/scepter/repo?Revision=master&FilePath=datasets/hed_pair.zip' -O cache/datasets/hed_pair.zip && unzip cache/datasets/hed_pair.zip -d cache/datasets/ && rm cache/datasets/hed_pair.zip
```
## TXT Format ## TXT Format
@@ -24,3 +28,4 @@ To facilitate starting training in command-line mode, you can use a dataset in t
```shell ```shell
mkdir -p cache/datasets/ && wget 'https://www.modelscope.cn/api/v1/models/iic/scepter/repo?Revision=master&FilePath=datasets/3D_example_txt.zip' -O cache/datasets/3D_example_txt.zip && unzip cache/datasets/3D_example_txt.zip -d cache/datasets/ && rm cache/datasets/3D_example_txt.zip mkdir -p cache/datasets/ && wget 'https://www.modelscope.cn/api/v1/models/iic/scepter/repo?Revision=master&FilePath=datasets/3D_example_txt.zip' -O cache/datasets/3D_example_txt.zip && unzip cache/datasets/3D_example_txt.zip -d cache/datasets/ && rm cache/datasets/3D_example_txt.zip
```
+2 -2
View File
@@ -40,6 +40,6 @@ python scepter/tools/run_inference.py --cfg scepter/methods/scedit/t2i/sd15_512_
- SCEdit - SCEdit
```shell ```shell
python scepter/tools/run_inference.py --cfg scepter/methods/scedit/ctr/sd21_768_sce_ctr_canny.yaml --num_samples 1 --prompt 'a single flower is shown in front of a tree' --save_folder 'test_flower_canny' --image_size 768 --task control --image 'asset/images/flower.jpg' --control_mode canny --pretrained_model ms://damo/scepter_scedit@controllable_model/SD2.1/canny_control/0_SwiftSCETuning/pytorch_model.bin # canny python scepter/tools/run_inference.py --cfg scepter/methods/scedit/ctr/sd21_768_sce_ctr_canny.yaml --num_samples 1 --prompt 'a single flower is shown in front of a tree' --save_folder 'test_flower_canny' --image_size 768 --task control --image 'asset/images/flower.jpg' --control_mode canny --pretrained_model ms://iic/scepter_scedit@controllable_model/SD2.1/canny_control/0_SwiftSCETuning/pytorch_model.bin # canny
python scepter/tools/run_inference.py --cfg scepter/methods/scedit/ctr/sd21_768_sce_ctr_pose.yaml --num_samples 1 --prompt 'super mario' --save_folder 'test_mario_pose' --image_size 768 --task control --image 'asset/images/pose_source.png' --control_mode source --pretrained_model ms://damo/scepter_scedit@controllable_model/SD2.1/pose_control/0_SwiftSCETuning/pytorch_model.bin # pose python scepter/tools/run_inference.py --cfg scepter/methods/scedit/ctr/sd21_768_sce_ctr_pose.yaml --num_samples 1 --prompt 'super mario' --save_folder 'test_mario_pose' --image_size 768 --task control --image 'asset/images/pose_source.png' --control_mode source --pretrained_model ms://iic/scepter_scedit@controllable_model/SD2.1/pose_control/0_SwiftSCETuning/pytorch_model.bin # pose
``` ```
+1
View File
@@ -1,4 +1,5 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Copyright (c) Alibaba, Inc. and its affiliates.
# Configuration file for the Sphinx documentation builder. # Configuration file for the Sphinx documentation builder.
# #
# This file only contains a selection of the most common options. For a full # This file only contains a selection of the most common options. For a full
+1
View File
@@ -6,4 +6,5 @@ dependencies:
- pip>=20.3 - pip>=20.3
- numpy>=1.23.1 - numpy>=1.23.1
- pip: - pip:
- -r requirements/recommended.txt
- -r requirements.txt - -r requirements.txt
-1
View File
@@ -2,7 +2,6 @@
# Copyright (c) Alibaba, Inc. and its affiliates. # Copyright (c) Alibaba, Inc. and its affiliates.
import numpy as np import numpy as np
import torchvision import torchvision
from scepter.modules.data.dataset.base_dataset import BaseDataset from scepter.modules.data.dataset.base_dataset import BaseDataset
from scepter.modules.data.dataset.registry import DATASETS from scepter.modules.data.dataset.registry import DATASETS
from scepter.modules.utils.config import dict_to_yaml from scepter.modules.utils.config import dict_to_yaml
+43 -43
View File
@@ -18,6 +18,7 @@ SCEPTER offers 3 core components:
## 🎉 News ## 🎉 News
- [2024.05]: Introducing SCEPTER v1, supporting customized image edit tasks! Simply provide 10 image pairs, SCEPTER will tune an edit tuner for your own Image-to-Image tasks, like `Clay Style`, `De-Text`, `Segmentation`, etc.
- [2024.04]: New [StyleBooth](https://ali-vilab.github.io/stylebooth-page/) demo on SCEPTER Studio for`Text-Based Style Editing`. - [2024.04]: New [StyleBooth](https://ali-vilab.github.io/stylebooth-page/) demo on SCEPTER Studio for`Text-Based Style Editing`.
- [2024.03]: We optimize the training UI and checkpoint management. New [LAR-Gen](https://arxiv.org/abs/2403.19534) model has been added on SCEPTER Studio, supporting `zoom-out`, `virtual try on`, `inpainting`. - [2024.03]: We optimize the training UI and checkpoint management. New [LAR-Gen](https://arxiv.org/abs/2403.19534) model has been added on SCEPTER Studio, supporting `zoom-out`, `virtual try on`, `inpainting`.
- [2024.02]: We release new SCEdit controllable image synthesis models for SD v2.1 and SD XL. Multiple strategies applied to accelerate inference time for SCEPTER Studio. - [2024.02]: We release new SCEdit controllable image synthesis models for SD v2.1 and SD XL. Multiple strategies applied to accelerate inference time for SCEPTER Studio.
@@ -29,59 +30,60 @@ SCEPTER offers 3 core components:
## 🖼 Gallery for Recent Works ## 🖼 Gallery for Recent Works
### StyleBooth ### Edit Tuners
<table>
<tr>
<td><strong>Origin Image</strong><br>Gold Dragon Tuner</td>
<td><strong>Graffiti Art</strong></td>
<td><strong>Adorable Kawaii</strong></td>
<td><strong>game-retro game</strong></td>
<td><strong>Vincent van Gogh</strong></td>
</tr>
<tr>
<td><img src="asset/images/scedit/tuner_gold_dragon.jpeg" width="240"></td>
<td><img src="asset/images/stylebooth/graffiti.jpeg" width="240"></td>
<td><img src="asset/images/stylebooth/kawaii.jpeg" width="240"></td>
<td><img src="asset/images/stylebooth/retrogame.jpeg" width="240"></td>
<td><img src="asset/images/stylebooth/vangogh.jpeg" width="240"></td>
</tr>
</table>
<table> Simply provide 10 image pairs, SCEPTER will tune an edit tuner for your own Image-to-Image tasks, like `Clay Style`, `De-Text`, `Segmentation`, etc.
<tr> Try our official few-shot datasets: [De-Text](https://www.modelscope.cn/api/v1/models/iic/scepter/repo?Revision=master&FilePath=datasets%2Fdetext.zip), [Image2Hed](https://www.modelscope.cn/api/v1/models/iic/scepter/repo?Revision=master&FilePath=datasets%2Fhed_pair.zip), [Image2Depth](https://www.modelscope.cn/api/v1/models/iic/scepter/repo?Revision=master&FilePath=datasets%2Fimage2depth.zip), [Depth2Image](https://www.modelscope.cn/api/v1/models/iic/scepter/repo?Revision=master&FilePath=datasets%2Fdepth2image.zip).
<td><strong>Origin Image</strong></td>
<td><strong>Lowpoly</strong></td>
<td><strong>Colored Pencil Art</strong></td>
<td><strong>Watercolor</strong></td>
<td><strong>misc-disco</strong></td>
</tr>
<tr>
<td><img src="asset/images/stylebooth/mountain.jpg" width="240"></td>
<td><img src="asset/images/stylebooth/lowpoly.jpg" width="240"></td>
<td><img src="asset/images/stylebooth/colorpencil.jpeg" width="240"></td>
<td><img src="asset/images/stylebooth/watercolor.jpeg" width="240"></td>
<td><img src="asset/images/stylebooth/disco.jpeg" width="240"></td>
</tr>
</table>
<table><tbody>
<tr>
<th align="center" colspan="4">Clay Style<br>Prompt: "Convert this image into clay style"</th>
</tr>
<tr>
<td><img src="asset/images/edit_tuner/vermeer.jpeg" width="300"></td>
<td><img src="asset/images/edit_tuner/clay_vermeer.jpeg" width="300"></td>
<td><img src="asset/images/edit_tuner/cat_512.jpg" width="300"></td>
<td><img src="asset/images/edit_tuner/clay_cat.jpeg" width="300"></td>
</tr>
<tr>
<th align="center" colspan="2">De-Text<br>Prompt: "Remove the texts"</th>
<th align="center" colspan="2">Image2Hed<br>Prompt: "Convert to an edge map"</th>
</tr>
<tr>
<td><img src="asset/images/edit_tuner/text.jpg" width="300"></td>
<td><img src="asset/images/edit_tuner/detext.jpeg" width="300"></td>
<td><img src="asset/images/edit_tuner/cat_512.jpg" width="300"></td>
<td><img src="asset/images/edit_tuner/hed.jpeg" width="300"></td>
</tr>
<tr>
<th align="center" colspan="2">Image2Depth<br>Prompt: "Calculate the depth map"</th>
<th align="center" colspan="2">Depth2Image<br>Prompt: "Convert depth map into color image"</th>
</tr>
<tr>
<td><img src="asset/images/edit_tuner/house.jpg" width="300"></td>
<td><img src="asset/images/edit_tuner/image2depth.jpeg" width="300"></td>
<td><img src="asset/images/edit_tuner/depth.jpg" width="300"></td>
<td><img src="asset/images/edit_tuner/depth2image.jpeg" width="300"></td>
</tr>
</tbody>
</table>
Note: Left image is input and right image is output.
## 🛠️ Installation ## 🛠️ Installation
- Create new environment - Create new environment with `conda` command:
```shell ```shell
conda env create -f environment.yaml conda env create -f environment.yaml
conda activate scepter conda activate scepter
``` ```
- We recommend installing the specific version of PyTorch and accelerate toolbox [xFormers](https://pypi.org/project/xformers/). You can install these recommended version by pip:
- Install with `pip` command:
We recommend installing the specific version of PyTorch and accelerate toolbox [xFormers](https://pypi.org/project/xformers/). You can install these recommended version by pip:
```shell ```shell
pip install -r requirements/recommended.txt pip install -r requirements/recommended.txt
```
- Install SCEPTER by the `pip` command:
```shell
pip install scepter pip install scepter
``` ```
@@ -132,8 +134,6 @@ The startup of **SCEPTER Studio** eliminates the need for manual downloading and
Depending on the network and hardware situation, the initial startup usually requires 15-60 minutes, primarily involving the download and processing of SDv1.5, SDv2.1, and SDXL models. Depending on the network and hardware situation, the initial startup usually requires 15-60 minutes, primarily involving the download and processing of SDv1.5, SDv2.1, and SDXL models.
Therefore, subsequent startups will become much faster (about one minute) as downloading is no longer required. Therefore, subsequent startups will become much faster (about one minute) as downloading is no longer required.
To support the sharing and downloading of models,
please make sure that you have installed **zip** and Git Large File Storage (**git lfs**).
### Usage Demo ### Usage Demo
| [Image Editing](https://www.modelscope.cn/api/v1/models/iic/scepter/repo?Revision=master&FilePath=assets%2Fscepter_studio%2Fimage_editing_20240419.webm) | [Training](https://www.modelscope.cn/api/v1/models/iic/scepter/repo?Revision=master&FilePath=assets%2Fscepter_studio%2Ftraining_20240419.webm) | [Model Sharing](https://www.modelscope.cn/api/v1/models/iic/scepter/repo?Revision=master&FilePath=assets%2Fscepter_studio%2Fmodel_sharing_20240419.webm) | [Model Inference](https://www.modelscope.cn/api/v1/models/iic/scepter/repo?Revision=master&FilePath=assets%2Fscepter_studio%2Fmodel_inference_20240419.webm) | [Data Management](https://www.modelscope.cn/api/v1/models/iic/scepter/repo?Revision=master&FilePath=assets%2Fscepter_studio%2Fdata_management_20240419.webm) | | [Image Editing](https://www.modelscope.cn/api/v1/models/iic/scepter/repo?Revision=master&FilePath=assets%2Fscepter_studio%2Fimage_editing_20240419.webm) | [Training](https://www.modelscope.cn/api/v1/models/iic/scepter/repo?Revision=master&FilePath=assets%2Fscepter_studio%2Ftraining_20240419.webm) | [Model Sharing](https://www.modelscope.cn/api/v1/models/iic/scepter/repo?Revision=master&FilePath=assets%2Fscepter_studio%2Fmodel_sharing_20240419.webm) | [Model Inference](https://www.modelscope.cn/api/v1/models/iic/scepter/repo?Revision=master&FilePath=assets%2Fscepter_studio%2Fmodel_inference_20240419.webm) | [Data Management](https://www.modelscope.cn/api/v1/models/iic/scepter/repo?Revision=master&FilePath=assets%2Fscepter_studio%2Fdata_management_20240419.webm) |
@@ -142,7 +142,7 @@ please make sure that you have installed **zip** and Git Large File Storage (**g
### Modelscope Studio & Huggingface Space ### Modelscope Studio & Huggingface Space
We deploy a work studio on Modelscope that includes only the inference tab, please refer to [ms_scepter_studio](https://www.modelscope.cn/studios/damo/scepter_studio/summary) and [hf_scepter_studio](https://huggingface.co/spaces/modelscope/scepter_studio) We deploy a work studio on Modelscope that includes only the inference tab, please refer to [ms_scepter_studio](https://www.modelscope.cn/studios/iic/scepter_studio/summary) and [hf_scepter_studio](https://huggingface.co/spaces/modelscope/scepter_studio)
## 🔍 Learn More ## 🔍 Learn More
+250
View File
@@ -0,0 +1,250 @@
ENV:
BACKEND: nccl
SOLVER:
NAME: LatentDiffusionSolver
RESUME_FROM:
LOAD_MODEL_ONLY: True
USE_FSDP: False
SHARDING_STRATEGY:
USE_AMP: True
DTYPE: float16
CHANNELS_LAST: True
MAX_STEPS: 2000
MAX_EPOCHS: -1
NUM_FOLDS: 1
ACCU_STEP: 1
EVAL_INTERVAL: 100
#
WORK_DIR: ./cache/save_data/edit_512_lora
LOG_FILE: std_log.txt
#
FILE_SYSTEM:
NAME: "ModelscopeFs"
TEMP_DIR: "./cache/data"
#
TUNER:
-
NAME: SwiftLoRA
R: 64
LORA_ALPHA: 64
LORA_DROPOUT: 0.0
BIAS: "none"
TARGET_MODULES: model.*(to_q|to_k|to_v|to_out.0|net.0.proj|net.2)$
#
MODEL:
NAME: LatentDiffusionEdit
PARAMETERIZATION: eps
TIMESTEPS: 1000
MIN_SNR_GAMMA:
ZERO_TERMINAL_SNR: False
PRETRAINED_MODEL: ms://iic/stylebooth@models/stylebooth-tb-5000-0.bin
IGNORE_KEYS: [ ]
CONCAT_NO_SCALE_FACTOR: True
SCALE_FACTOR: 0.18215
SIZE_FACTOR: 8
# DEFAULT_N_PROMPT: 'lowres, error, worst quality, low quality, jpeg artifacts, ugly, duplicate, morbid, mutilated, out of frame, extra fingers, mutated hands, poorly drawn hands, poorly drawn face, mutation, deformed, blurry, dehydrated, bad anatomy, bad proportions, extra limbs, cloned face, disfigured, gross proportions, malformed limbs, missing arms, missing legs, extra arms, extra legs, fused fingers, too many fingers, long neck, username, watermark, signature'
DEFAULT_N_PROMPT:
SCHEDULE_ARGS:
"NAME": "scaled_linear"
"BETA_MIN": 0.00085
"BETA_MAX": 0.012
USE_EMA: False
#
DIFFUSION_MODEL:
NAME: DiffusionUNet
IN_CHANNELS: 8
OUT_CHANNELS: 4
MODEL_CHANNELS: 320
NUM_HEADS: 8
NUM_RES_BLOCKS: 2
ATTENTION_RESOLUTIONS: [ 4, 2, 1 ]
CHANNEL_MULT: [ 1, 2, 4, 4 ]
CONV_RESAMPLE: True
DIMS: 2
USE_CHECKPOINT: False
USE_SCALE_SHIFT_NORM: False
RESBLOCK_UPDOWN: False
USE_SPATIAL_TRANSFORMER: True
TRANSFORMER_DEPTH: 1
CONTEXT_DIM: 768
DISABLE_MIDDLE_SELF_ATTN: False
USE_LINEAR_IN_TRANSFORMER: False
PRETRAINED_MODEL:
IGNORE_KEYS: []
#
FIRST_STAGE_MODEL:
NAME: AutoencoderKL
EMBED_DIM: 4
PRETRAINED_MODEL:
IGNORE_KEYS: []
BATCH_SIZE: 4
#
ENCODER:
NAME: Encoder
CH: 128
OUT_CH: 3
NUM_RES_BLOCKS: 2
IN_CHANNELS: 3
ATTN_RESOLUTIONS: [ ]
CH_MULT: [ 1, 2, 4, 4 ]
Z_CHANNELS: 4
DOUBLE_Z: True
DROPOUT: 0.0
RESAMP_WITH_CONV: True
#
DECODER:
NAME: Decoder
CH: 128
OUT_CH: 3
NUM_RES_BLOCKS: 2
IN_CHANNELS: 3
ATTN_RESOLUTIONS: [ ]
CH_MULT: [ 1, 2, 4, 4 ]
Z_CHANNELS: 4
DROPOUT: 0.0
RESAMP_WITH_CONV: True
GIVE_PRE_END: False
TANH_OUT: False
#
TOKENIZER:
NAME: ClipTokenizer
PRETRAINED_PATH: ms://AI-ModelScope/clip-vit-large-patch14
LENGTH: 77
CLEAN: True
#
COND_STAGE_MODEL:
NAME: FrozenCLIPEmbedder
FREEZE: True
LAYER: last
PRETRAINED_MODEL: ms://AI-ModelScope/clip-vit-large-patch14
#
LOSS:
NAME: ReconstructLoss
LOSS_TYPE: l2
#
SAMPLE_ARGS:
SAMPLER: ddim
SAMPLE_STEPS: 50
SEED: 2023
GUIDE_SCALE: #7.5
image: 1.5
text: 7.5
GUIDE_RESCALE: 0.5
DISCRETIZATION: trailing
IMAGE_SIZE: [512, 512]
RUN_TRAIN_N: False
#
OPTIMIZER:
NAME: AdamW
LEARNING_RATE: 0.064
BETAS: [ 0.9, 0.999 ]
EPS: 1e-8
WEIGHT_DECAY: 1e-2
AMSGRAD: False
#
TRAIN_DATA:
NAME: ImageTextPairMSDataset
MODE: train
MS_DATASET_NAME: cache/datasets/hed_pair
MS_DATASET_NAMESPACE: ""
MS_DATASET_SPLIT: "train"
MS_DATASET_SUBNAME: ""
PROMPT_PREFIX: ""
REPLACE_STYLE: False
PIN_MEMORY: True
BATCH_SIZE: 1
NUM_WORKERS: 4
SAMPLER:
NAME: LoopSampler
TRANSFORMS:
- NAME: LoadImageFromFileList
FILE_KEYS: ['img_path', 'src_path']
RGB_ORDER: RGB
BACKEND: pillow
- NAME: FlexibleResize
INTERPOLATION: bilinear
SIZE: [ 512, 512 ]
INPUT_KEY: [ 'img', 'src' ]
OUTPUT_KEY: [ 'img', 'src' ]
BACKEND: pillow
- NAME: FlexibleCenterCrop
SIZE: [ 512, 512 ]
INPUT_KEY: [ 'img', 'src' ]
OUTPUT_KEY: [ 'img', 'src' ]
BACKEND: pillow
- NAME: ImageToTensor
INPUT_KEY: [ 'img', 'src' ]
OUTPUT_KEY: [ 'img', 'src' ]
BACKEND: pillow
- NAME: Normalize
MEAN: [ 0.5, 0.5, 0.5 ]
STD: [ 0.5, 0.5, 0.5 ]
INPUT_KEY: [ 'img', 'src' ]
OUTPUT_KEY: [ 'image', 'condition_cat' ]
BACKEND: torchvision
- NAME: Select
KEYS: [ 'image', 'condition_cat', 'prompt' ]
META_KEYS: [ 'data_key' ]
#
TRAIN_HOOKS:
-
NAME: BackwardHook
PRIORITY: 0
-
NAME: LogHook
LOG_INTERVAL: 50
-
NAME: CheckpointHook
INTERVAL: 1000
-
NAME: ProbeDataHook
PROB_INTERVAL: 100
EVAL_DATA:
NAME: Text2ImageDataset
MODE: eval
PROMPT_FILE:
PROMPT_DATA: [ "Convert to an edge map#;#cache/datasets/hed_pair/images/src_001.jpeg" ]
IMAGE_SIZE: [ 512, 512 ]
FIELDS: [ "prompt", "src_path" ]
DELIMITER: '#;#'
PROMPT_PREFIX: ''
PIN_MEMORY: True
BATCH_SIZE: 1
NUM_WORKERS: 4
TRANSFORMS:
- NAME: LoadImageFromFileList
FILE_KEYS: [ 'src_path' ]
RGB_ORDER: RGB
BACKEND: pillow
- NAME: FlexibleResize
INTERPOLATION: bilinear
SIZE: [ 512, 512 ]
INPUT_KEY: [ 'src' ]
OUTPUT_KEY: [ 'src' ]
BACKEND: pillow
- NAME: FlexibleCenterCrop
SIZE: [ 512, 512 ]
INPUT_KEY: [ 'src' ]
OUTPUT_KEY: [ 'src' ]
BACKEND: pillow
- NAME: ImageToTensor
INPUT_KEY: [ 'src' ]
OUTPUT_KEY: [ 'src' ]
BACKEND: pillow
- NAME: Normalize
MEAN: [ 0.5, 0.5, 0.5 ]
STD: [ 0.5, 0.5, 0.5 ]
INPUT_KEY: [ 'src' ]
OUTPUT_KEY: [ 'condition_cat' ]
BACKEND: torchvision
- NAME: Select
KEYS: [ 'condition_cat', 'prompt' ]
META_KEYS: [ 'image_size' ]
EVAL_HOOKS:
-
NAME: ProbeDataHook
PROB_INTERVAL: 100
SAVE_LAST: True
SAVE_NAME_PREFIX: 'step'
SAVE_PROBE_PREFIX: 'image'
@@ -127,7 +127,7 @@ SOLVER:
DOWN_RATIO: 1.0 DOWN_RATIO: 1.0
CONTROL_ANNO: CONTROL_ANNO:
NAME: HedAnnotator NAME: HedAnnotator
PRETRAINED_MODEL: ms://damo/scepter_scedit@annotator/ckpts/ControlNetHED.pth PRETRAINED_MODEL: ms://iic/scepter_scedit@annotator/ckpts/ControlNetHED.pth
# #
SAMPLE_ARGS: SAMPLE_ARGS:
SAMPLER: ddim SAMPLER: ddim
@@ -125,8 +125,8 @@ SOLVER:
DOWN_RATIO: 1.0 DOWN_RATIO: 1.0
CONTROL_ANNO: CONTROL_ANNO:
NAME: OpenposeAnnotator NAME: OpenposeAnnotator
BODY_MODEL_PATH: ms://damo/scepter_scedit@annotator/ckpts/body_pose_model.pth BODY_MODEL_PATH: ms://iic/scepter_scedit@annotator/ckpts/body_pose_model.pth
HAND_MODEL_PATH: ms://damo/scepter_scedit@annotator/ckpts/hand_pose_model.pth HAND_MODEL_PATH: ms://iic/scepter_scedit@annotator/ckpts/hand_pose_model.pth
# #
SAMPLE_ARGS: SAMPLE_ARGS:
SAMPLER: ddim SAMPLER: ddim
@@ -241,7 +241,7 @@ SOLVER:
DOWN_RATIO: 1.0 DOWN_RATIO: 1.0
CONTROL_ANNO: CONTROL_ANNO:
NAME: MidasDetector NAME: MidasDetector
PRETRAINED_MODEL: ms://damo/scepter_scedit@annotator/ckpts/dpt_hybrid-midas-501f0c75.pt PRETRAINED_MODEL: ms://iic/scepter_scedit@annotator/ckpts/dpt_hybrid-midas-501f0c75.pt
# #
SAMPLE_ARGS: SAMPLE_ARGS:
SAMPLER: ddim SAMPLER: ddim
@@ -5,59 +5,59 @@ CONTROLLERS:
DESCRIPTION: DESCRIPTION:
BASE_MODEL: SD2.1 BASE_MODEL: SD2.1
TYPE: Canny TYPE: Canny
MODEL_PATH: ms://damo/scepter_scedit@controllable_model/SD2.1/canny_control/ MODEL_PATH: ms://iic/scepter_scedit@controllable_model/SD2.1/canny_control/
- NAME: openpose - NAME: openpose
NAME_ZH: NAME_ZH:
DESCRIPTION: DESCRIPTION:
BASE_MODEL: SD2.1 BASE_MODEL: SD2.1
TYPE: Openpose TYPE: Openpose
MODEL_PATH: ms://damo/scepter_scedit@controllable_model/SD2.1/pose_control/ MODEL_PATH: ms://iic/scepter_scedit@controllable_model/SD2.1/pose_control/
- NAME: color - NAME: color
NAME_ZH: NAME_ZH:
DESCRIPTION: DESCRIPTION:
BASE_MODEL: SD2.1 BASE_MODEL: SD2.1
TYPE: Color TYPE: Color
MODEL_PATH: ms://damo/scepter_scedit@controllable_model/SD2.1/color_control/ MODEL_PATH: ms://iic/scepter_scedit@controllable_model/SD2.1/color_control/
- NAME: hed - NAME: hed
NAME_ZH: NAME_ZH:
DESCRIPTION: DESCRIPTION:
BASE_MODEL: SD2.1 BASE_MODEL: SD2.1
TYPE: Hed TYPE: Hed
MODEL_PATH: ms://damo/scepter_scedit@controllable_model/SD2.1/hed_control MODEL_PATH: ms://iic/scepter_scedit@controllable_model/SD2.1/hed_control
- NAME: depth - NAME: depth
NAME_ZH: NAME_ZH:
DESCRIPTION: DESCRIPTION:
BASE_MODEL: SD2.1 BASE_MODEL: SD2.1
TYPE: Midas TYPE: Midas
MODEL_PATH: ms://damo/scepter_scedit@controllable_model/SD2.1/depth_control MODEL_PATH: ms://iic/scepter_scedit@controllable_model/SD2.1/depth_control
# SD_XL1.0 # SD_XL1.0
- NAME: canny - NAME: canny
NAME_ZH: NAME_ZH:
DESCRIPTION: DESCRIPTION:
BASE_MODEL: SD_XL1.0 BASE_MODEL: SD_XL1.0
TYPE: Canny TYPE: Canny
MODEL_PATH: ms://damo/scepter_scedit@controllable_model/SD_XL1.0/canny_control MODEL_PATH: ms://iic/scepter_scedit@controllable_model/SD_XL1.0/canny_control
- NAME: color - NAME: color
NAME_ZH: NAME_ZH:
DESCRIPTION: DESCRIPTION:
BASE_MODEL: SD_XL1.0 BASE_MODEL: SD_XL1.0
TYPE: Color TYPE: Color
MODEL_PATH: ms://damo/scepter_scedit@controllable_model/SD_XL1.0/color_control MODEL_PATH: ms://iic/scepter_scedit@controllable_model/SD_XL1.0/color_control
- NAME: depth - NAME: depth
NAME_ZH: NAME_ZH:
DESCRIPTION: DESCRIPTION:
BASE_MODEL: SD_XL1.0 BASE_MODEL: SD_XL1.0
TYPE: Midas TYPE: Midas
MODEL_PATH: ms://damo/scepter_scedit@controllable_model/SD_XL1.0/depth_control MODEL_PATH: ms://iic/scepter_scedit@controllable_model/SD_XL1.0/depth_control
- NAME: hed - NAME: hed
NAME_ZH: NAME_ZH:
DESCRIPTION: DESCRIPTION:
BASE_MODEL: SD_XL1.0 BASE_MODEL: SD_XL1.0
TYPE: Hed TYPE: Hed
MODEL_PATH: ms://damo/scepter_scedit@controllable_model/SD_XL1.0/hed_control MODEL_PATH: ms://iic/scepter_scedit@controllable_model/SD_XL1.0/hed_control
- NAME: openpose - NAME: openpose
NAME_ZH: NAME_ZH:
DESCRIPTION: DESCRIPTION:
BASE_MODEL: SD_XL1.0 BASE_MODEL: SD_XL1.0
TYPE: Openpose TYPE: Openpose
MODEL_PATH: ms://damo/scepter_scedit@controllable_model/SD_XL1.0/pose_control MODEL_PATH: ms://iic/scepter_scedit@controllable_model/SD_XL1.0/pose_control
File diff suppressed because it is too large Load Diff
@@ -1,11 +1,20 @@
TUNERS: TUNERS:
- NAME: Clay-Style-Editing
NAME_ZH: 黏土风
SOURCE: scepter
DESCRIPTION: None
BASE_MODEL: EDIT
MODEL_PATH: ms://iic/stylebooth@tuners/clay_style_edit/
IMAGE_PATH: ms://iic/stylebooth@tuners/clay_style_edit/image.jpg
TUNER_TYPE: LORA
PROMPT_EXAMPLE: Convert this image into clay style
- NAME: Azure-Dragon - NAME: Azure-Dragon
NAME_ZH: 青龙 NAME_ZH: 青龙
SOURCE: scepter SOURCE: scepter
DESCRIPTION: None DESCRIPTION: None
BASE_MODEL: SD_XL1.0 BASE_MODEL: SD_XL1.0
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD_XL1.0/azure_dragon/ MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD_XL1.0/azure_dragon/
IMAGE_PATH: ms://damo/scepter_scedit@tuners_model/SD_XL1.0/azure_dragon/xl_azure_dragon.png IMAGE_PATH: ms://iic/scepter_scedit@tuners_model/SD_XL1.0/azure_dragon/xl_azure_dragon.png
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: Azure Dragon, 8K, high quality,Ultra High Detail.One of the Four Divine Creatures in Charge of Water. PROMPT_EXAMPLE: Azure Dragon, 8K, high quality,Ultra High Detail.One of the Four Divine Creatures in Charge of Water.
- NAME: Gold-Dragon - NAME: Gold-Dragon
@@ -13,8 +22,8 @@ TUNERS:
SOURCE: scepter SOURCE: scepter
DESCRIPTION: None DESCRIPTION: None
BASE_MODEL: SD_XL1.0 BASE_MODEL: SD_XL1.0
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD_XL1.0/gold_dragon/ MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD_XL1.0/gold_dragon/
IMAGE_PATH: ms://damo/scepter_scedit@tuners_model/SD_XL1.0/gold_dragon/xl_gold_dragon.png IMAGE_PATH: ms://iic/scepter_scedit@tuners_model/SD_XL1.0/gold_dragon/xl_gold_dragon.png
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: Chinese Gold Dragon in the clouds. Translucent Texture. Zbrush. Fuzzy Art. Exquisite Craftsmanship. 3D. 8K. Ultra High Detail PROMPT_EXAMPLE: Chinese Gold Dragon in the clouds. Translucent Texture. Zbrush. Fuzzy Art. Exquisite Craftsmanship. 3D. 8K. Ultra High Detail
- NAME: SpringFestival-Dragon - NAME: SpringFestival-Dragon
@@ -22,8 +31,8 @@ TUNERS:
SOURCE: scepter SOURCE: scepter
DESCRIPTION: None DESCRIPTION: None
BASE_MODEL: SD_XL1.0 BASE_MODEL: SD_XL1.0
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD_XL1.0/spring_festival_dragon/ MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD_XL1.0/spring_festival_dragon/
IMAGE_PATH: ms://damo/scepter_scedit@tuners_model/SD_XL1.0/spring_festival_dragon/xl_spring_festival_dragon.png IMAGE_PATH: ms://iic/scepter_scedit@tuners_model/SD_XL1.0/spring_festival_dragon/xl_spring_festival_dragon.png
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: Chinese dragon. Spring Festival.Festive.Street.Lanterns.32K.High quality.expressive, dramatic, dreamlike and mysterious, Surrealism PROMPT_EXAMPLE: Chinese dragon. Spring Festival.Festive.Street.Lanterns.32K.High quality.expressive, dramatic, dreamlike and mysterious, Surrealism
- NAME: Red-Dragon - NAME: Red-Dragon
@@ -31,8 +40,8 @@ TUNERS:
SOURCE: scepter SOURCE: scepter
DESCRIPTION: None DESCRIPTION: None
BASE_MODEL: SD_XL1.0 BASE_MODEL: SD_XL1.0
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD_XL1.0/red_dragon/ MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD_XL1.0/red_dragon/
IMAGE_PATH: ms://damo/scepter_scedit@tuners_model/SD_XL1.0/red_dragon/xl_red_dragon.png IMAGE_PATH: ms://iic/scepter_scedit@tuners_model/SD_XL1.0/red_dragon/xl_red_dragon.png
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: Traditional Red Dragon of China. Low Water Level. Studio Ghibli Style. Mural Illustration. White Background. High Detail PROMPT_EXAMPLE: Traditional Red Dragon of China. Low Water Level. Studio Ghibli Style. Mural Illustration. White Background. High Detail
- NAME: ChinesePunk-Dragon - NAME: ChinesePunk-Dragon
@@ -40,8 +49,8 @@ TUNERS:
SOURCE: scepter SOURCE: scepter
DESCRIPTION: None DESCRIPTION: None
BASE_MODEL: SD_XL1.0 BASE_MODEL: SD_XL1.0
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD_XL1.0/chinese_punk_dragon/ MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD_XL1.0/chinese_punk_dragon/
IMAGE_PATH: ms://damo/scepter_scedit@tuners_model/SD_XL1.0/chinese_punk_dragon/xl_chinese_punk_dragon.png IMAGE_PATH: ms://iic/scepter_scedit@tuners_model/SD_XL1.0/chinese_punk_dragon/xl_chinese_punk_dragon.png
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: uhd Image,Dragon,Chinese Dragon, Dunhuang Mural Style, Traditional Maritime Art Style PROMPT_EXAMPLE: uhd Image,Dragon,Chinese Dragon, Dunhuang Mural Style, Traditional Maritime Art Style
- NAME: Cute-Dragon - NAME: Cute-Dragon
@@ -49,8 +58,8 @@ TUNERS:
SOURCE: scepter SOURCE: scepter
DESCRIPTION: None DESCRIPTION: None
BASE_MODEL: SD_XL1.0 BASE_MODEL: SD_XL1.0
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD_XL1.0/cute_dragon/ MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD_XL1.0/cute_dragon/
IMAGE_PATH: ms://damo/scepter_scedit@tuners_model/SD_XL1.0/cute_dragon/xl_kawaii_dragon.png IMAGE_PATH: ms://iic/scepter_scedit@tuners_model/SD_XL1.0/cute_dragon/xl_kawaii_dragon.png
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: China Kawaii Dragon. Contest Winner. Minimalist Illustration. White Background. Flat Style. Digital Painting Style. Red. 32k uhd. Fun Comics. Fuzzy Art. Bold. Comic-Inspired Characters PROMPT_EXAMPLE: China Kawaii Dragon. Contest Winner. Minimalist Illustration. White Background. Flat Style. Digital Painting Style. Red. 32k uhd. Fun Comics. Fuzzy Art. Bold. Comic-Inspired Characters
- NAME: Dragon-Baby - NAME: Dragon-Baby
@@ -58,8 +67,8 @@ TUNERS:
SOURCE: scepter SOURCE: scepter
DESCRIPTION: None DESCRIPTION: None
BASE_MODEL: SD_XL1.0 BASE_MODEL: SD_XL1.0
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD_XL1.0/baby_dragon/ MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD_XL1.0/baby_dragon/
IMAGE_PATH: ms://damo/scepter_scedit@tuners_model/SD_XL1.0/baby_dragon/xl_baby_dragon.png IMAGE_PATH: ms://iic/scepter_scedit@tuners_model/SD_XL1.0/baby_dragon/xl_baby_dragon.png
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: Warm Colors, Soft,Chinese Dragon Baby, Felt Style,Dragon Baby, Best Quality, 3D Doll, Macaron Tones, Glittering Big Eyes, Winter,Dragon PROMPT_EXAMPLE: Warm Colors, Soft,Chinese Dragon Baby, Felt Style,Dragon Baby, Best Quality, 3D Doll, Macaron Tones, Glittering Big Eyes, Winter,Dragon
- NAME: Sloppy-Dragon - NAME: Sloppy-Dragon
@@ -67,8 +76,8 @@ TUNERS:
SOURCE: scepter SOURCE: scepter
DESCRIPTION: None DESCRIPTION: None
BASE_MODEL: SD_XL1.0 BASE_MODEL: SD_XL1.0
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD_XL1.0/sloppy_dragon/ MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD_XL1.0/sloppy_dragon/
IMAGE_PATH: ms://damo/scepter_scedit@tuners_model/SD_XL1.0/sloppy_dragon/xl_sloppy_dragon.png IMAGE_PATH: ms://iic/scepter_scedit@tuners_model/SD_XL1.0/sloppy_dragon/xl_sloppy_dragon.png
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: Messy Chinese Dragon,Cute, Wu Guanzhong, Rough PROMPT_EXAMPLE: Messy Chinese Dragon,Cute, Wu Guanzhong, Rough
- -
@@ -77,8 +86,8 @@ TUNERS:
DESCRIPTION: DESCRIPTION:
SOURCE: diva SOURCE: diva
BASE_MODEL: SD_XL1.0 BASE_MODEL: SD_XL1.0
IMAGE_PATH: ms://damo/scepter@mantra_images/SD_XL1.0/894f40ed44b37c3372e6a22b8ae577a4.png IMAGE_PATH: ms://iic/scepter@mantra_images_jpg/SD_XL1.0/894f40ed44b37c3372e6a22b8ae577a4.jpg
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD_XL1.0/Caricature MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD_XL1.0/Caricature
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: a boy wearing green jacket PROMPT_EXAMPLE: a boy wearing green jacket
- -
@@ -87,8 +96,8 @@ TUNERS:
DESCRIPTION: DESCRIPTION:
SOURCE: diva SOURCE: diva
BASE_MODEL: SD2.1 BASE_MODEL: SD2.1
IMAGE_PATH: ms://damo/scepter@mantra_images/SD2.1/894f40ed44b37c3372e6a22b8ae577a4.png IMAGE_PATH: ms://iic/scepter@mantra_images_jpg/SD2.1/894f40ed44b37c3372e6a22b8ae577a4.jpg
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD2.1/Caricature MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD2.1/Caricature
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: a boy wearing green jacket PROMPT_EXAMPLE: a boy wearing green jacket
- -
@@ -97,8 +106,8 @@ TUNERS:
DESCRIPTION: DESCRIPTION:
SOURCE: diva SOURCE: diva
BASE_MODEL: SD1.5 BASE_MODEL: SD1.5
IMAGE_PATH: ms://damo/scepter@mantra_images/SD1.5/894f40ed44b37c3372e6a22b8ae577a4.png IMAGE_PATH: ms://iic/scepter@mantra_images_jpg/SD1.5/894f40ed44b37c3372e6a22b8ae577a4.jpg
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD1.5/Caricature MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD1.5/Caricature
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: a boy wearing green jacket PROMPT_EXAMPLE: a boy wearing green jacket
- -
@@ -107,8 +116,8 @@ TUNERS:
DESCRIPTION: DESCRIPTION:
SOURCE: diva SOURCE: diva
BASE_MODEL: SD_XL1.0 BASE_MODEL: SD_XL1.0
IMAGE_PATH: ms://damo/scepter@mantra_images/SD_XL1.0/80e5b4075c572c04cbb4e48c37b8366b.png IMAGE_PATH: ms://iic/scepter@mantra_images_jpg/SD_XL1.0/80e5b4075c572c04cbb4e48c37b8366b.jpg
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD_XL1.0/ColorFieldPainting MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD_XL1.0/ColorFieldPainting
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: a boy wearing green jacket PROMPT_EXAMPLE: a boy wearing green jacket
- -
@@ -117,8 +126,8 @@ TUNERS:
DESCRIPTION: DESCRIPTION:
SOURCE: diva SOURCE: diva
BASE_MODEL: SD2.1 BASE_MODEL: SD2.1
IMAGE_PATH: ms://damo/scepter@mantra_images/SD2.1/80e5b4075c572c04cbb4e48c37b8366b.png IMAGE_PATH: ms://iic/scepter@mantra_images_jpg/SD2.1/80e5b4075c572c04cbb4e48c37b8366b.jpg
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD2.1/ColorFieldPainting MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD2.1/ColorFieldPainting
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: a boy wearing green jacket PROMPT_EXAMPLE: a boy wearing green jacket
- -
@@ -127,8 +136,8 @@ TUNERS:
DESCRIPTION: DESCRIPTION:
SOURCE: diva SOURCE: diva
BASE_MODEL: SD1.5 BASE_MODEL: SD1.5
IMAGE_PATH: ms://damo/scepter@mantra_images/SD1.5/80e5b4075c572c04cbb4e48c37b8366b.png IMAGE_PATH: ms://iic/scepter@mantra_images_jpg/SD1.5/80e5b4075c572c04cbb4e48c37b8366b.jpg
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD1.5/ColorFieldPainting MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD1.5/ColorFieldPainting
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: a boy wearing green jacket PROMPT_EXAMPLE: a boy wearing green jacket
- -
@@ -137,8 +146,8 @@ TUNERS:
DESCRIPTION: DESCRIPTION:
SOURCE: diva SOURCE: diva
BASE_MODEL: SD_XL1.0 BASE_MODEL: SD_XL1.0
IMAGE_PATH: ms://damo/scepter@mantra_images/SD_XL1.0/9ae235d7f1a7c2a4edab52a5e9f9cbae.png IMAGE_PATH: ms://iic/scepter@mantra_images_jpg/SD_XL1.0/9ae235d7f1a7c2a4edab52a5e9f9cbae.jpg
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD_XL1.0/ColoredPencilArt MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD_XL1.0/ColoredPencilArt
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: a boy wearing green jacket PROMPT_EXAMPLE: a boy wearing green jacket
- -
@@ -147,8 +156,8 @@ TUNERS:
DESCRIPTION: DESCRIPTION:
SOURCE: diva SOURCE: diva
BASE_MODEL: SD2.1 BASE_MODEL: SD2.1
IMAGE_PATH: ms://damo/scepter@mantra_images/SD2.1/9ae235d7f1a7c2a4edab52a5e9f9cbae.png IMAGE_PATH: ms://iic/scepter@mantra_images_jpg/SD2.1/9ae235d7f1a7c2a4edab52a5e9f9cbae.jpg
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD2.1/ColoredPencilArt MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD2.1/ColoredPencilArt
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: a boy wearing green jacket PROMPT_EXAMPLE: a boy wearing green jacket
- -
@@ -157,8 +166,8 @@ TUNERS:
DESCRIPTION: DESCRIPTION:
SOURCE: diva SOURCE: diva
BASE_MODEL: SD1.5 BASE_MODEL: SD1.5
IMAGE_PATH: ms://damo/scepter@mantra_images/SD1.5/9ae235d7f1a7c2a4edab52a5e9f9cbae.png IMAGE_PATH: ms://iic/scepter@mantra_images_jpg/SD1.5/9ae235d7f1a7c2a4edab52a5e9f9cbae.jpg
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD1.5/ColoredPencilArt MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD1.5/ColoredPencilArt
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: a boy wearing green jacket PROMPT_EXAMPLE: a boy wearing green jacket
- -
@@ -167,8 +176,8 @@ TUNERS:
DESCRIPTION: DESCRIPTION:
SOURCE: diva SOURCE: diva
BASE_MODEL: SD_XL1.0 BASE_MODEL: SD_XL1.0
IMAGE_PATH: ms://damo/scepter@mantra_images/SD_XL1.0/3da915da2f5cedaf243e57e08163f35b.png IMAGE_PATH: ms://iic/scepter@mantra_images_jpg/SD_XL1.0/3da915da2f5cedaf243e57e08163f35b.jpg
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD_XL1.0/DarkMoodyAtmosphere MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD_XL1.0/DarkMoodyAtmosphere
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: a boy wearing green jacket PROMPT_EXAMPLE: a boy wearing green jacket
- -
@@ -177,8 +186,8 @@ TUNERS:
DESCRIPTION: DESCRIPTION:
SOURCE: diva SOURCE: diva
BASE_MODEL: SD2.1 BASE_MODEL: SD2.1
IMAGE_PATH: ms://damo/scepter@mantra_images/SD2.1/3da915da2f5cedaf243e57e08163f35b.png IMAGE_PATH: ms://iic/scepter@mantra_images_jpg/SD2.1/3da915da2f5cedaf243e57e08163f35b.jpg
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD2.1/DarkMoodyAtmosphere MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD2.1/DarkMoodyAtmosphere
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: a boy wearing green jacket PROMPT_EXAMPLE: a boy wearing green jacket
- -
@@ -187,8 +196,8 @@ TUNERS:
DESCRIPTION: DESCRIPTION:
SOURCE: diva SOURCE: diva
BASE_MODEL: SD1.5 BASE_MODEL: SD1.5
IMAGE_PATH: ms://damo/scepter@mantra_images/SD1.5/3da915da2f5cedaf243e57e08163f35b.png IMAGE_PATH: ms://iic/scepter@mantra_images_jpg/SD1.5/3da915da2f5cedaf243e57e08163f35b.jpg
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD1.5/DarkMoodyAtmosphere MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD1.5/DarkMoodyAtmosphere
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: a boy wearing green jacket PROMPT_EXAMPLE: a boy wearing green jacket
- -
@@ -197,8 +206,8 @@ TUNERS:
DESCRIPTION: DESCRIPTION:
SOURCE: diva SOURCE: diva
BASE_MODEL: SD_XL1.0 BASE_MODEL: SD_XL1.0
IMAGE_PATH: ms://damo/scepter@mantra_images/SD_XL1.0/69fd81f5983107acc3d334af62915851.png IMAGE_PATH: ms://iic/scepter@mantra_images_jpg/SD_XL1.0/69fd81f5983107acc3d334af62915851.jpg
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD_XL1.0/DrippingPaintSplatterArt MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD_XL1.0/DrippingPaintSplatterArt
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: a boy wearing green jacket PROMPT_EXAMPLE: a boy wearing green jacket
- -
@@ -207,8 +216,8 @@ TUNERS:
DESCRIPTION: DESCRIPTION:
SOURCE: diva SOURCE: diva
BASE_MODEL: SD2.1 BASE_MODEL: SD2.1
IMAGE_PATH: ms://damo/scepter@mantra_images/SD2.1/69fd81f5983107acc3d334af62915851.png IMAGE_PATH: ms://iic/scepter@mantra_images_jpg/SD2.1/69fd81f5983107acc3d334af62915851.jpg
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD2.1/DrippingPaintSplatterArt MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD2.1/DrippingPaintSplatterArt
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: a boy wearing green jacket PROMPT_EXAMPLE: a boy wearing green jacket
- -
@@ -217,8 +226,8 @@ TUNERS:
DESCRIPTION: DESCRIPTION:
SOURCE: diva SOURCE: diva
BASE_MODEL: SD1.5 BASE_MODEL: SD1.5
IMAGE_PATH: ms://damo/scepter@mantra_images/SD1.5/69fd81f5983107acc3d334af62915851.png IMAGE_PATH: ms://iic/scepter@mantra_images_jpg/SD1.5/69fd81f5983107acc3d334af62915851.jpg
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD1.5/DrippingPaintSplatterArt MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD1.5/DrippingPaintSplatterArt
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: a boy wearing green jacket PROMPT_EXAMPLE: a boy wearing green jacket
- -
@@ -227,8 +236,8 @@ TUNERS:
DESCRIPTION: DESCRIPTION:
SOURCE: diva SOURCE: diva
BASE_MODEL: SD_XL1.0 BASE_MODEL: SD_XL1.0
IMAGE_PATH: ms://damo/scepter@mantra_images/SD_XL1.0/f152edb4b3ca6248758b48115258ddfa.png IMAGE_PATH: ms://iic/scepter@mantra_images_jpg/SD_XL1.0/f152edb4b3ca6248758b48115258ddfa.jpg
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD_XL1.0/FadedPolaroidPhoto MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD_XL1.0/FadedPolaroidPhoto
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: a boy wearing green jacket PROMPT_EXAMPLE: a boy wearing green jacket
- -
@@ -237,8 +246,8 @@ TUNERS:
DESCRIPTION: DESCRIPTION:
SOURCE: diva SOURCE: diva
BASE_MODEL: SD2.1 BASE_MODEL: SD2.1
IMAGE_PATH: ms://damo/scepter@mantra_images/SD2.1/f152edb4b3ca6248758b48115258ddfa.png IMAGE_PATH: ms://iic/scepter@mantra_images_jpg/SD2.1/f152edb4b3ca6248758b48115258ddfa.jpg
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD2.1/FadedPolaroidPhoto MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD2.1/FadedPolaroidPhoto
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: a boy wearing green jacket PROMPT_EXAMPLE: a boy wearing green jacket
- -
@@ -247,8 +256,8 @@ TUNERS:
DESCRIPTION: DESCRIPTION:
SOURCE: diva SOURCE: diva
BASE_MODEL: SD1.5 BASE_MODEL: SD1.5
IMAGE_PATH: ms://damo/scepter@mantra_images/SD1.5/f152edb4b3ca6248758b48115258ddfa.png IMAGE_PATH: ms://iic/scepter@mantra_images_jpg/SD1.5/f152edb4b3ca6248758b48115258ddfa.jpg
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD1.5/FadedPolaroidPhoto MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD1.5/FadedPolaroidPhoto
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: a boy wearing green jacket PROMPT_EXAMPLE: a boy wearing green jacket
- -
@@ -257,8 +266,8 @@ TUNERS:
DESCRIPTION: DESCRIPTION:
SOURCE: diva SOURCE: diva
BASE_MODEL: SD_XL1.0 BASE_MODEL: SD_XL1.0
IMAGE_PATH: ms://damo/scepter@mantra_images/SD_XL1.0/940cfd34155634cf051e1b2942cca426.png IMAGE_PATH: ms://iic/scepter@mantra_images_jpg/SD_XL1.0/940cfd34155634cf051e1b2942cca426.jpg
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD_XL1.0/Flat2DArt MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD_XL1.0/Flat2DArt
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: a boy wearing green jacket PROMPT_EXAMPLE: a boy wearing green jacket
- -
@@ -267,8 +276,8 @@ TUNERS:
DESCRIPTION: DESCRIPTION:
SOURCE: diva SOURCE: diva
BASE_MODEL: SD2.1 BASE_MODEL: SD2.1
IMAGE_PATH: ms://damo/scepter@mantra_images/SD2.1/940cfd34155634cf051e1b2942cca426.png IMAGE_PATH: ms://iic/scepter@mantra_images_jpg/SD2.1/940cfd34155634cf051e1b2942cca426.jpg
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD2.1/Flat2DArt MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD2.1/Flat2DArt
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: a boy wearing green jacket PROMPT_EXAMPLE: a boy wearing green jacket
- -
@@ -277,8 +286,8 @@ TUNERS:
DESCRIPTION: DESCRIPTION:
SOURCE: diva SOURCE: diva
BASE_MODEL: SD1.5 BASE_MODEL: SD1.5
IMAGE_PATH: ms://damo/scepter@mantra_images/SD1.5/940cfd34155634cf051e1b2942cca426.png IMAGE_PATH: ms://iic/scepter@mantra_images_jpg/SD1.5/940cfd34155634cf051e1b2942cca426.jpg
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD1.5/Flat2DArt MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD1.5/Flat2DArt
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: a boy wearing green jacket PROMPT_EXAMPLE: a boy wearing green jacket
- -
@@ -287,8 +296,8 @@ TUNERS:
DESCRIPTION: DESCRIPTION:
SOURCE: diva SOURCE: diva
BASE_MODEL: SD_XL1.0 BASE_MODEL: SD_XL1.0
IMAGE_PATH: ms://damo/scepter@mantra_images/SD_XL1.0/57b751b11564cb22cd49ef21f2004a5f.png IMAGE_PATH: ms://iic/scepter@mantra_images_jpg/SD_XL1.0/57b751b11564cb22cd49ef21f2004a5f.jpg
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD_XL1.0/GraffitiArt MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD_XL1.0/GraffitiArt
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: a boy wearing green jacket PROMPT_EXAMPLE: a boy wearing green jacket
- -
@@ -297,8 +306,8 @@ TUNERS:
DESCRIPTION: DESCRIPTION:
SOURCE: diva SOURCE: diva
BASE_MODEL: SD2.1 BASE_MODEL: SD2.1
IMAGE_PATH: ms://damo/scepter@mantra_images/SD2.1/57b751b11564cb22cd49ef21f2004a5f.png IMAGE_PATH: ms://iic/scepter@mantra_images_jpg/SD2.1/57b751b11564cb22cd49ef21f2004a5f.jpg
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD2.1/GraffitiArt MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD2.1/GraffitiArt
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: a boy wearing green jacket PROMPT_EXAMPLE: a boy wearing green jacket
- -
@@ -307,8 +316,8 @@ TUNERS:
DESCRIPTION: DESCRIPTION:
SOURCE: diva SOURCE: diva
BASE_MODEL: SD1.5 BASE_MODEL: SD1.5
IMAGE_PATH: ms://damo/scepter@mantra_images/SD1.5/57b751b11564cb22cd49ef21f2004a5f.png IMAGE_PATH: ms://iic/scepter@mantra_images_jpg/SD1.5/57b751b11564cb22cd49ef21f2004a5f.jpg
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD1.5/GraffitiArt MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD1.5/GraffitiArt
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: a boy wearing green jacket PROMPT_EXAMPLE: a boy wearing green jacket
- -
@@ -317,8 +326,8 @@ TUNERS:
DESCRIPTION: DESCRIPTION:
SOURCE: diva SOURCE: diva
BASE_MODEL: SD_XL1.0 BASE_MODEL: SD_XL1.0
IMAGE_PATH: ms://damo/scepter@mantra_images/SD_XL1.0/0312b673dc6858a9864d7f45f0c5c1fc.png IMAGE_PATH: ms://iic/scepter@mantra_images_jpg/SD_XL1.0/0312b673dc6858a9864d7f45f0c5c1fc.jpg
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD_XL1.0/Impressionism MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD_XL1.0/Impressionism
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: a boy wearing green jacket PROMPT_EXAMPLE: a boy wearing green jacket
- -
@@ -327,8 +336,8 @@ TUNERS:
DESCRIPTION: DESCRIPTION:
SOURCE: diva SOURCE: diva
BASE_MODEL: SD2.1 BASE_MODEL: SD2.1
IMAGE_PATH: ms://damo/scepter@mantra_images/SD2.1/0312b673dc6858a9864d7f45f0c5c1fc.png IMAGE_PATH: ms://iic/scepter@mantra_images_jpg/SD2.1/0312b673dc6858a9864d7f45f0c5c1fc.jpg
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD2.1/Impressionism MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD2.1/Impressionism
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: a boy wearing green jacket PROMPT_EXAMPLE: a boy wearing green jacket
- -
@@ -337,8 +346,8 @@ TUNERS:
DESCRIPTION: DESCRIPTION:
SOURCE: diva SOURCE: diva
BASE_MODEL: SD1.5 BASE_MODEL: SD1.5
IMAGE_PATH: ms://damo/scepter@mantra_images/SD1.5/0312b673dc6858a9864d7f45f0c5c1fc.png IMAGE_PATH: ms://iic/scepter@mantra_images_jpg/SD1.5/0312b673dc6858a9864d7f45f0c5c1fc.jpg
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD1.5/Impressionism MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD1.5/Impressionism
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: a boy wearing green jacket PROMPT_EXAMPLE: a boy wearing green jacket
- -
@@ -347,8 +356,8 @@ TUNERS:
DESCRIPTION: DESCRIPTION:
SOURCE: diva SOURCE: diva
BASE_MODEL: SD_XL1.0 BASE_MODEL: SD_XL1.0
IMAGE_PATH: ms://damo/scepter@mantra_images/SD_XL1.0/9aa040b0c60d289da9610c91ad9b7c7e.png IMAGE_PATH: ms://iic/scepter@mantra_images_jpg/SD_XL1.0/9aa040b0c60d289da9610c91ad9b7c7e.jpg
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD_XL1.0/LogoDesign MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD_XL1.0/LogoDesign
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: a boy wearing green jacket PROMPT_EXAMPLE: a boy wearing green jacket
- -
@@ -357,8 +366,8 @@ TUNERS:
DESCRIPTION: DESCRIPTION:
SOURCE: diva SOURCE: diva
BASE_MODEL: SD2.1 BASE_MODEL: SD2.1
IMAGE_PATH: ms://damo/scepter@mantra_images/SD2.1/9aa040b0c60d289da9610c91ad9b7c7e.png IMAGE_PATH: ms://iic/scepter@mantra_images_jpg/SD2.1/9aa040b0c60d289da9610c91ad9b7c7e.jpg
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD2.1/LogoDesign MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD2.1/LogoDesign
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: a boy wearing green jacket PROMPT_EXAMPLE: a boy wearing green jacket
- -
@@ -367,8 +376,8 @@ TUNERS:
DESCRIPTION: DESCRIPTION:
SOURCE: diva SOURCE: diva
BASE_MODEL: SD1.5 BASE_MODEL: SD1.5
IMAGE_PATH: ms://damo/scepter@mantra_images/SD1.5/9aa040b0c60d289da9610c91ad9b7c7e.png IMAGE_PATH: ms://iic/scepter@mantra_images_jpg/SD1.5/9aa040b0c60d289da9610c91ad9b7c7e.jpg
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD1.5/LogoDesign MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD1.5/LogoDesign
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: a boy wearing green jacket PROMPT_EXAMPLE: a boy wearing green jacket
- -
@@ -377,8 +386,8 @@ TUNERS:
DESCRIPTION: DESCRIPTION:
SOURCE: diva SOURCE: diva
BASE_MODEL: SD_XL1.0 BASE_MODEL: SD_XL1.0
IMAGE_PATH: ms://damo/scepter@mantra_images/SD_XL1.0/a9056e1eac85e5e4fe96a93917d4cce4.png IMAGE_PATH: ms://iic/scepter@mantra_images_jpg/SD_XL1.0/a9056e1eac85e5e4fe96a93917d4cce4.jpg
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD_XL1.0/PencilSketchDrawing MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD_XL1.0/PencilSketchDrawing
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: a boy wearing green jacket PROMPT_EXAMPLE: a boy wearing green jacket
- -
@@ -387,8 +396,8 @@ TUNERS:
DESCRIPTION: DESCRIPTION:
SOURCE: diva SOURCE: diva
BASE_MODEL: SD2.1 BASE_MODEL: SD2.1
IMAGE_PATH: ms://damo/scepter@mantra_images/SD2.1/a9056e1eac85e5e4fe96a93917d4cce4.png IMAGE_PATH: ms://iic/scepter@mantra_images_jpg/SD2.1/a9056e1eac85e5e4fe96a93917d4cce4.jpg
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD2.1/PencilSketchDrawing MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD2.1/PencilSketchDrawing
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: a boy wearing green jacket PROMPT_EXAMPLE: a boy wearing green jacket
- -
@@ -397,8 +406,8 @@ TUNERS:
DESCRIPTION: DESCRIPTION:
SOURCE: diva SOURCE: diva
BASE_MODEL: SD1.5 BASE_MODEL: SD1.5
IMAGE_PATH: ms://damo/scepter@mantra_images/SD1.5/a9056e1eac85e5e4fe96a93917d4cce4.png IMAGE_PATH: ms://iic/scepter@mantra_images_jpg/SD1.5/a9056e1eac85e5e4fe96a93917d4cce4.jpg
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD1.5/PencilSketchDrawing MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD1.5/PencilSketchDrawing
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: a boy wearing green jacket PROMPT_EXAMPLE: a boy wearing green jacket
- -
@@ -407,8 +416,8 @@ TUNERS:
DESCRIPTION: DESCRIPTION:
SOURCE: diva SOURCE: diva
BASE_MODEL: SD_XL1.0 BASE_MODEL: SD_XL1.0
IMAGE_PATH: ms://damo/scepter@mantra_images/SD_XL1.0/568777f447fc02510b618152726d5002.png IMAGE_PATH: ms://iic/scepter@mantra_images_jpg/SD_XL1.0/568777f447fc02510b618152726d5002.jpg
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD_XL1.0/SilhouetteArt MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD_XL1.0/SilhouetteArt
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: a boy wearing green jacket PROMPT_EXAMPLE: a boy wearing green jacket
- -
@@ -417,8 +426,8 @@ TUNERS:
DESCRIPTION: DESCRIPTION:
SOURCE: diva SOURCE: diva
BASE_MODEL: SD2.1 BASE_MODEL: SD2.1
IMAGE_PATH: ms://damo/scepter@mantra_images/SD2.1/568777f447fc02510b618152726d5002.png IMAGE_PATH: ms://iic/scepter@mantra_images_jpg/SD2.1/568777f447fc02510b618152726d5002.jpg
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD2.1/SilhouetteArt MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD2.1/SilhouetteArt
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: a boy wearing green jacket PROMPT_EXAMPLE: a boy wearing green jacket
- -
@@ -427,8 +436,8 @@ TUNERS:
DESCRIPTION: DESCRIPTION:
SOURCE: diva SOURCE: diva
BASE_MODEL: SD1.5 BASE_MODEL: SD1.5
IMAGE_PATH: ms://damo/scepter@mantra_images/SD1.5/568777f447fc02510b618152726d5002.png IMAGE_PATH: ms://iic/scepter@mantra_images_jpg/SD1.5/568777f447fc02510b618152726d5002.jpg
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD1.5/SilhouetteArt MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD1.5/SilhouetteArt
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: a boy wearing green jacket PROMPT_EXAMPLE: a boy wearing green jacket
- -
@@ -437,8 +446,8 @@ TUNERS:
DESCRIPTION: DESCRIPTION:
SOURCE: diva SOURCE: diva
BASE_MODEL: SD_XL1.0 BASE_MODEL: SD_XL1.0
IMAGE_PATH: ms://damo/scepter@mantra_images/SD_XL1.0/07d7b27cd73f2d43684003563511c15b.png IMAGE_PATH: ms://iic/scepter@mantra_images_jpg/SD_XL1.0/07d7b27cd73f2d43684003563511c15b.jpg
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD_XL1.0/Steampunk2 MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD_XL1.0/Steampunk2
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: a boy wearing green jacket PROMPT_EXAMPLE: a boy wearing green jacket
- -
@@ -447,8 +456,8 @@ TUNERS:
DESCRIPTION: DESCRIPTION:
SOURCE: diva SOURCE: diva
BASE_MODEL: SD2.1 BASE_MODEL: SD2.1
IMAGE_PATH: ms://damo/scepter@mantra_images/SD2.1/07d7b27cd73f2d43684003563511c15b.png IMAGE_PATH: ms://iic/scepter@mantra_images_jpg/SD2.1/07d7b27cd73f2d43684003563511c15b.jpg
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD2.1/Steampunk2 MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD2.1/Steampunk2
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: a boy wearing green jacket PROMPT_EXAMPLE: a boy wearing green jacket
- -
@@ -457,8 +466,8 @@ TUNERS:
DESCRIPTION: DESCRIPTION:
SOURCE: diva SOURCE: diva
BASE_MODEL: SD1.5 BASE_MODEL: SD1.5
IMAGE_PATH: ms://damo/scepter@mantra_images/SD1.5/07d7b27cd73f2d43684003563511c15b.png IMAGE_PATH: ms://iic/scepter@mantra_images_jpg/SD1.5/07d7b27cd73f2d43684003563511c15b.jpg
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD1.5/Steampunk2 MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD1.5/Steampunk2
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: a boy wearing green jacket PROMPT_EXAMPLE: a boy wearing green jacket
- -
@@ -467,8 +476,8 @@ TUNERS:
DESCRIPTION: DESCRIPTION:
SOURCE: diva SOURCE: diva
BASE_MODEL: SD_XL1.0 BASE_MODEL: SD_XL1.0
IMAGE_PATH: ms://damo/scepter@mantra_images/SD_XL1.0/2d1e9867058db2c57f2fe47530de3243.png IMAGE_PATH: ms://iic/scepter@mantra_images_jpg/SD_XL1.0/2d1e9867058db2c57f2fe47530de3243.jpg
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD_XL1.0/StickerDesigns MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD_XL1.0/StickerDesigns
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: a boy wearing green jacket PROMPT_EXAMPLE: a boy wearing green jacket
- -
@@ -477,8 +486,8 @@ TUNERS:
DESCRIPTION: DESCRIPTION:
SOURCE: diva SOURCE: diva
BASE_MODEL: SD2.1 BASE_MODEL: SD2.1
IMAGE_PATH: ms://damo/scepter@mantra_images/SD2.1/2d1e9867058db2c57f2fe47530de3243.png IMAGE_PATH: ms://iic/scepter@mantra_images_jpg/SD2.1/2d1e9867058db2c57f2fe47530de3243.jpg
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD2.1/StickerDesigns MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD2.1/StickerDesigns
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: a boy wearing green jacket PROMPT_EXAMPLE: a boy wearing green jacket
- -
@@ -487,8 +496,8 @@ TUNERS:
DESCRIPTION: DESCRIPTION:
SOURCE: diva SOURCE: diva
BASE_MODEL: SD1.5 BASE_MODEL: SD1.5
IMAGE_PATH: ms://damo/scepter@mantra_images/SD1.5/2d1e9867058db2c57f2fe47530de3243.png IMAGE_PATH: ms://iic/scepter@mantra_images_jpg/SD1.5/2d1e9867058db2c57f2fe47530de3243.jpg
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD1.5/StickerDesigns MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD1.5/StickerDesigns
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: a boy wearing green jacket PROMPT_EXAMPLE: a boy wearing green jacket
- -
@@ -497,8 +506,8 @@ TUNERS:
DESCRIPTION: DESCRIPTION:
SOURCE: diva SOURCE: diva
BASE_MODEL: SD_XL1.0 BASE_MODEL: SD_XL1.0
IMAGE_PATH: ms://damo/scepter@mantra_images/SD_XL1.0/8859d532ae5901cc8457d6118fb9b7da.png IMAGE_PATH: ms://iic/scepter@mantra_images_jpg/SD_XL1.0/8859d532ae5901cc8457d6118fb9b7da.jpg
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD_XL1.0/Watercolor2 MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD_XL1.0/Watercolor2
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: a boy wearing green jacket PROMPT_EXAMPLE: a boy wearing green jacket
- -
@@ -507,8 +516,8 @@ TUNERS:
DESCRIPTION: DESCRIPTION:
SOURCE: diva SOURCE: diva
BASE_MODEL: SD2.1 BASE_MODEL: SD2.1
IMAGE_PATH: ms://damo/scepter@mantra_images/SD2.1/8859d532ae5901cc8457d6118fb9b7da.png IMAGE_PATH: ms://iic/scepter@mantra_images_jpg/SD2.1/8859d532ae5901cc8457d6118fb9b7da.jpg
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD2.1/Watercolor2 MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD2.1/Watercolor2
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: a boy wearing green jacket PROMPT_EXAMPLE: a boy wearing green jacket
- -
@@ -517,8 +526,8 @@ TUNERS:
DESCRIPTION: DESCRIPTION:
SOURCE: diva SOURCE: diva
BASE_MODEL: SD1.5 BASE_MODEL: SD1.5
IMAGE_PATH: ms://damo/scepter@mantra_images/SD1.5/8859d532ae5901cc8457d6118fb9b7da.png IMAGE_PATH: ms://iic/scepter@mantra_images_jpg/SD1.5/8859d532ae5901cc8457d6118fb9b7da.jpg
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD1.5/Watercolor2 MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD1.5/Watercolor2
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: a boy wearing green jacket PROMPT_EXAMPLE: a boy wearing green jacket
- -
@@ -527,8 +536,8 @@ TUNERS:
DESCRIPTION: DESCRIPTION:
SOURCE: mre SOURCE: mre
BASE_MODEL: SD_XL1.0 BASE_MODEL: SD_XL1.0
IMAGE_PATH: ms://damo/scepter@mantra_images/SD_XL1.0/5895d78cf58c1ca05178991f37cc48ff.png IMAGE_PATH: ms://iic/scepter@mantra_images_jpg/SD_XL1.0/5895d78cf58c1ca05178991f37cc48ff.jpg
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD_XL1.0/mre-elemental-art MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD_XL1.0/mre-elemental-art
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: a boy wearing green jacket PROMPT_EXAMPLE: a boy wearing green jacket
- -
@@ -537,8 +546,8 @@ TUNERS:
DESCRIPTION: DESCRIPTION:
SOURCE: mre SOURCE: mre
BASE_MODEL: SD2.1 BASE_MODEL: SD2.1
IMAGE_PATH: ms://damo/scepter@mantra_images/SD2.1/5895d78cf58c1ca05178991f37cc48ff.png IMAGE_PATH: ms://iic/scepter@mantra_images_jpg/SD2.1/5895d78cf58c1ca05178991f37cc48ff.jpg
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD2.1/mre-elemental-art MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD2.1/mre-elemental-art
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: a boy wearing green jacket PROMPT_EXAMPLE: a boy wearing green jacket
- -
@@ -547,8 +556,8 @@ TUNERS:
DESCRIPTION: DESCRIPTION:
SOURCE: mre SOURCE: mre
BASE_MODEL: SD1.5 BASE_MODEL: SD1.5
IMAGE_PATH: ms://damo/scepter@mantra_images/SD1.5/5895d78cf58c1ca05178991f37cc48ff.png IMAGE_PATH: ms://iic/scepter@mantra_images_jpg/SD1.5/5895d78cf58c1ca05178991f37cc48ff.jpg
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD1.5/mre-elemental-art MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD1.5/mre-elemental-art
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: a boy wearing green jacket PROMPT_EXAMPLE: a boy wearing green jacket
- -
@@ -557,8 +566,8 @@ TUNERS:
DESCRIPTION: DESCRIPTION:
SOURCE: mre SOURCE: mre
BASE_MODEL: SD_XL1.0 BASE_MODEL: SD_XL1.0
IMAGE_PATH: ms://damo/scepter@mantra_images/SD_XL1.0/a08149bc8e50f6bc65c0010d4cd416f8.png IMAGE_PATH: ms://iic/scepter@mantra_images_jpg/SD_XL1.0/a08149bc8e50f6bc65c0010d4cd416f8.jpg
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD_XL1.0/mre-anime MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD_XL1.0/mre-anime
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: a boy wearing green jacket PROMPT_EXAMPLE: a boy wearing green jacket
- -
@@ -567,8 +576,8 @@ TUNERS:
DESCRIPTION: DESCRIPTION:
SOURCE: mre SOURCE: mre
BASE_MODEL: SD2.1 BASE_MODEL: SD2.1
IMAGE_PATH: ms://damo/scepter@mantra_images/SD2.1/a08149bc8e50f6bc65c0010d4cd416f8.png IMAGE_PATH: ms://iic/scepter@mantra_images_jpg/SD2.1/a08149bc8e50f6bc65c0010d4cd416f8.jpg
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD2.1/mre-anime MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD2.1/mre-anime
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: a boy wearing green jacket PROMPT_EXAMPLE: a boy wearing green jacket
- -
@@ -577,8 +586,8 @@ TUNERS:
DESCRIPTION: DESCRIPTION:
SOURCE: mre SOURCE: mre
BASE_MODEL: SD1.5 BASE_MODEL: SD1.5
IMAGE_PATH: ms://damo/scepter@mantra_images/SD1.5/a08149bc8e50f6bc65c0010d4cd416f8.png IMAGE_PATH: ms://iic/scepter@mantra_images_jpg/SD1.5/a08149bc8e50f6bc65c0010d4cd416f8.jpg
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD1.5/mre-anime MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD1.5/mre-anime
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: a boy wearing green jacket PROMPT_EXAMPLE: a boy wearing green jacket
- -
@@ -587,8 +596,8 @@ TUNERS:
DESCRIPTION: DESCRIPTION:
SOURCE: mre SOURCE: mre
BASE_MODEL: SD_XL1.0 BASE_MODEL: SD_XL1.0
IMAGE_PATH: ms://damo/scepter@mantra_images/SD_XL1.0/48c65cebf1fa4284d7b8feb619412e65.png IMAGE_PATH: ms://iic/scepter@mantra_images_jpg/SD_XL1.0/48c65cebf1fa4284d7b8feb619412e65.jpg
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD_XL1.0/mre-comic MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD_XL1.0/mre-comic
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: a boy wearing green jacket PROMPT_EXAMPLE: a boy wearing green jacket
- -
@@ -597,8 +606,8 @@ TUNERS:
DESCRIPTION: DESCRIPTION:
SOURCE: mre SOURCE: mre
BASE_MODEL: SD2.1 BASE_MODEL: SD2.1
IMAGE_PATH: ms://damo/scepter@mantra_images/SD2.1/48c65cebf1fa4284d7b8feb619412e65.png IMAGE_PATH: ms://iic/scepter@mantra_images_jpg/SD2.1/48c65cebf1fa4284d7b8feb619412e65.jpg
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD2.1/mre-comic MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD2.1/mre-comic
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: a boy wearing green jacket PROMPT_EXAMPLE: a boy wearing green jacket
- -
@@ -607,8 +616,8 @@ TUNERS:
DESCRIPTION: DESCRIPTION:
SOURCE: mre SOURCE: mre
BASE_MODEL: SD1.5 BASE_MODEL: SD1.5
IMAGE_PATH: ms://damo/scepter@mantra_images/SD1.5/48c65cebf1fa4284d7b8feb619412e65.png IMAGE_PATH: ms://iic/scepter@mantra_images_jpg/SD1.5/48c65cebf1fa4284d7b8feb619412e65.jpg
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD1.5/mre-comic MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD1.5/mre-comic
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: a boy wearing green jacket PROMPT_EXAMPLE: a boy wearing green jacket
- -
@@ -617,8 +626,8 @@ TUNERS:
DESCRIPTION: DESCRIPTION:
SOURCE: sai SOURCE: sai
BASE_MODEL: SD_XL1.0 BASE_MODEL: SD_XL1.0
IMAGE_PATH: ms://damo/scepter@mantra_images/SD_XL1.0/8fc51113f725f27326c4398a7457cd6d.png IMAGE_PATH: ms://iic/scepter@mantra_images_jpg/SD_XL1.0/8fc51113f725f27326c4398a7457cd6d.jpg
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD_XL1.0/sai-craftclay MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD_XL1.0/sai-craftclay
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: a boy wearing green jacket PROMPT_EXAMPLE: a boy wearing green jacket
- -
@@ -627,8 +636,8 @@ TUNERS:
DESCRIPTION: DESCRIPTION:
SOURCE: sai SOURCE: sai
BASE_MODEL: SD2.1 BASE_MODEL: SD2.1
IMAGE_PATH: ms://damo/scepter@mantra_images/SD2.1/8fc51113f725f27326c4398a7457cd6d.png IMAGE_PATH: ms://iic/scepter@mantra_images_jpg/SD2.1/8fc51113f725f27326c4398a7457cd6d.jpg
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD2.1/sai-craftclay MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD2.1/sai-craftclay
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: a boy wearing green jacket PROMPT_EXAMPLE: a boy wearing green jacket
- -
@@ -637,8 +646,8 @@ TUNERS:
DESCRIPTION: DESCRIPTION:
SOURCE: sai SOURCE: sai
BASE_MODEL: SD1.5 BASE_MODEL: SD1.5
IMAGE_PATH: ms://damo/scepter@mantra_images/SD1.5/8fc51113f725f27326c4398a7457cd6d.png IMAGE_PATH: ms://iic/scepter@mantra_images_jpg/SD1.5/8fc51113f725f27326c4398a7457cd6d.jpg
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD1.5/sai-craftclay MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD1.5/sai-craftclay
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: a boy wearing green jacket PROMPT_EXAMPLE: a boy wearing green jacket
- -
@@ -647,8 +656,8 @@ TUNERS:
DESCRIPTION: DESCRIPTION:
SOURCE: sai SOURCE: sai
BASE_MODEL: SD_XL1.0 BASE_MODEL: SD_XL1.0
IMAGE_PATH: ms://damo/scepter@mantra_images/SD_XL1.0/a6f8d92afcd5803dfb2ebecbc92091b6.png IMAGE_PATH: ms://iic/scepter@mantra_images_jpg/SD_XL1.0/a6f8d92afcd5803dfb2ebecbc92091b6.jpg
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD_XL1.0/sai-fantasyart MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD_XL1.0/sai-fantasyart
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: a boy wearing green jacket PROMPT_EXAMPLE: a boy wearing green jacket
- -
@@ -657,8 +666,8 @@ TUNERS:
DESCRIPTION: DESCRIPTION:
SOURCE: sai SOURCE: sai
BASE_MODEL: SD2.1 BASE_MODEL: SD2.1
IMAGE_PATH: ms://damo/scepter@mantra_images/SD2.1/a6f8d92afcd5803dfb2ebecbc92091b6.png IMAGE_PATH: ms://iic/scepter@mantra_images_jpg/SD2.1/a6f8d92afcd5803dfb2ebecbc92091b6.jpg
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD2.1/sai-fantasyart MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD2.1/sai-fantasyart
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: a boy wearing green jacket PROMPT_EXAMPLE: a boy wearing green jacket
- -
@@ -667,8 +676,8 @@ TUNERS:
DESCRIPTION: DESCRIPTION:
SOURCE: sai SOURCE: sai
BASE_MODEL: SD1.5 BASE_MODEL: SD1.5
IMAGE_PATH: ms://damo/scepter@mantra_images/SD1.5/a6f8d92afcd5803dfb2ebecbc92091b6.png IMAGE_PATH: ms://iic/scepter@mantra_images_jpg/SD1.5/a6f8d92afcd5803dfb2ebecbc92091b6.jpg
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD1.5/sai-fantasyart MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD1.5/sai-fantasyart
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: a boy wearing green jacket PROMPT_EXAMPLE: a boy wearing green jacket
- -
@@ -677,8 +686,8 @@ TUNERS:
DESCRIPTION: DESCRIPTION:
SOURCE: sai SOURCE: sai
BASE_MODEL: SD_XL1.0 BASE_MODEL: SD_XL1.0
IMAGE_PATH: ms://damo/scepter@mantra_images/SD_XL1.0/034a51b0dd34b018be8859bf45b4f7ed.png IMAGE_PATH: ms://iic/scepter@mantra_images_jpg/SD_XL1.0/034a51b0dd34b018be8859bf45b4f7ed.jpg
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD_XL1.0/sai-lineart MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD_XL1.0/sai-lineart
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: a boy wearing green jacket PROMPT_EXAMPLE: a boy wearing green jacket
- -
@@ -687,8 +696,8 @@ TUNERS:
DESCRIPTION: DESCRIPTION:
SOURCE: sai SOURCE: sai
BASE_MODEL: SD2.1 BASE_MODEL: SD2.1
IMAGE_PATH: ms://damo/scepter@mantra_images/SD2.1/034a51b0dd34b018be8859bf45b4f7ed.png IMAGE_PATH: ms://iic/scepter@mantra_images_jpg/SD2.1/034a51b0dd34b018be8859bf45b4f7ed.jpg
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD2.1/sai-lineart MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD2.1/sai-lineart
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: a boy wearing green jacket PROMPT_EXAMPLE: a boy wearing green jacket
- -
@@ -697,8 +706,8 @@ TUNERS:
DESCRIPTION: DESCRIPTION:
SOURCE: sai SOURCE: sai
BASE_MODEL: SD1.5 BASE_MODEL: SD1.5
IMAGE_PATH: ms://damo/scepter@mantra_images/SD1.5/034a51b0dd34b018be8859bf45b4f7ed.png IMAGE_PATH: ms://iic/scepter@mantra_images_jpg/SD1.5/034a51b0dd34b018be8859bf45b4f7ed.jpg
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD1.5/sai-lineart MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD1.5/sai-lineart
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: a boy wearing green jacket PROMPT_EXAMPLE: a boy wearing green jacket
- -
@@ -707,8 +716,8 @@ TUNERS:
DESCRIPTION: DESCRIPTION:
SOURCE: sai SOURCE: sai
BASE_MODEL: SD_XL1.0 BASE_MODEL: SD_XL1.0
IMAGE_PATH: ms://damo/scepter@mantra_images/SD_XL1.0/7e9ed25bb34008beb5f417df63c4b2fe.png IMAGE_PATH: ms://iic/scepter@mantra_images_jpg/SD_XL1.0/7e9ed25bb34008beb5f417df63c4b2fe.jpg
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD_XL1.0/sai-neonpunk MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD_XL1.0/sai-neonpunk
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: a boy wearing green jacket PROMPT_EXAMPLE: a boy wearing green jacket
- -
@@ -717,8 +726,8 @@ TUNERS:
DESCRIPTION: DESCRIPTION:
SOURCE: sai SOURCE: sai
BASE_MODEL: SD2.1 BASE_MODEL: SD2.1
IMAGE_PATH: ms://damo/scepter@mantra_images/SD2.1/7e9ed25bb34008beb5f417df63c4b2fe.png IMAGE_PATH: ms://iic/scepter@mantra_images_jpg/SD2.1/7e9ed25bb34008beb5f417df63c4b2fe.jpg
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD2.1/sai-neonpunk MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD2.1/sai-neonpunk
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: a boy wearing green jacket PROMPT_EXAMPLE: a boy wearing green jacket
- -
@@ -727,8 +736,8 @@ TUNERS:
DESCRIPTION: DESCRIPTION:
SOURCE: sai SOURCE: sai
BASE_MODEL: SD1.5 BASE_MODEL: SD1.5
IMAGE_PATH: ms://damo/scepter@mantra_images/SD1.5/7e9ed25bb34008beb5f417df63c4b2fe.png IMAGE_PATH: ms://iic/scepter@mantra_images_jpg/SD1.5/7e9ed25bb34008beb5f417df63c4b2fe.jpg
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD1.5/sai-neonpunk MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD1.5/sai-neonpunk
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: a boy wearing green jacket PROMPT_EXAMPLE: a boy wearing green jacket
- -
@@ -737,8 +746,8 @@ TUNERS:
DESCRIPTION: DESCRIPTION:
SOURCE: sai SOURCE: sai
BASE_MODEL: SD_XL1.0 BASE_MODEL: SD_XL1.0
IMAGE_PATH: ms://damo/scepter@mantra_images/SD_XL1.0/924f46a8f276011a0953d7988e90ee25.png IMAGE_PATH: ms://iic/scepter@mantra_images_jpg/SD_XL1.0/924f46a8f276011a0953d7988e90ee25.jpg
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD_XL1.0/sai-origami MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD_XL1.0/sai-origami
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: a boy wearing green jacket PROMPT_EXAMPLE: a boy wearing green jacket
- -
@@ -747,8 +756,8 @@ TUNERS:
DESCRIPTION: DESCRIPTION:
SOURCE: sai SOURCE: sai
BASE_MODEL: SD2.1 BASE_MODEL: SD2.1
IMAGE_PATH: ms://damo/scepter@mantra_images/SD2.1/924f46a8f276011a0953d7988e90ee25.png IMAGE_PATH: ms://iic/scepter@mantra_images_jpg/SD2.1/924f46a8f276011a0953d7988e90ee25.jpg
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD2.1/sai-origami MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD2.1/sai-origami
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: a boy wearing green jacket PROMPT_EXAMPLE: a boy wearing green jacket
- -
@@ -757,8 +766,8 @@ TUNERS:
DESCRIPTION: DESCRIPTION:
SOURCE: sai SOURCE: sai
BASE_MODEL: SD1.5 BASE_MODEL: SD1.5
IMAGE_PATH: ms://damo/scepter@mantra_images/SD1.5/924f46a8f276011a0953d7988e90ee25.png IMAGE_PATH: ms://iic/scepter@mantra_images_jpg/SD1.5/924f46a8f276011a0953d7988e90ee25.jpg
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD1.5/sai-origami MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD1.5/sai-origami
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: a boy wearing green jacket PROMPT_EXAMPLE: a boy wearing green jacket
- -
@@ -767,8 +776,8 @@ TUNERS:
DESCRIPTION: DESCRIPTION:
SOURCE: sai SOURCE: sai
BASE_MODEL: SD_XL1.0 BASE_MODEL: SD_XL1.0
IMAGE_PATH: ms://damo/scepter@mantra_images/SD_XL1.0/a5ab89c0960be8c1216e65c98d92ae4a.png IMAGE_PATH: ms://iic/scepter@mantra_images_jpg/SD_XL1.0/a5ab89c0960be8c1216e65c98d92ae4a.jpg
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD_XL1.0/sai-pixelart MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD_XL1.0/sai-pixelart
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: a boy wearing green jacket PROMPT_EXAMPLE: a boy wearing green jacket
- -
@@ -777,8 +786,8 @@ TUNERS:
DESCRIPTION: DESCRIPTION:
SOURCE: sai SOURCE: sai
BASE_MODEL: SD2.1 BASE_MODEL: SD2.1
IMAGE_PATH: ms://damo/scepter@mantra_images/SD2.1/a5ab89c0960be8c1216e65c98d92ae4a.png IMAGE_PATH: ms://iic/scepter@mantra_images_jpg/SD2.1/a5ab89c0960be8c1216e65c98d92ae4a.jpg
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD2.1/sai-pixelart MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD2.1/sai-pixelart
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: a boy wearing green jacket PROMPT_EXAMPLE: a boy wearing green jacket
- -
@@ -787,7 +796,7 @@ TUNERS:
DESCRIPTION: DESCRIPTION:
SOURCE: sai SOURCE: sai
BASE_MODEL: SD1.5 BASE_MODEL: SD1.5
IMAGE_PATH: ms://damo/scepter@mantra_images/SD1.5/a5ab89c0960be8c1216e65c98d92ae4a.png IMAGE_PATH: ms://iic/scepter@mantra_images_jpg/SD1.5/a5ab89c0960be8c1216e65c98d92ae4a.jpg
MODEL_PATH: ms://damo/scepter_scedit@tuners_model/SD1.5/sai-pixelart MODEL_PATH: ms://iic/scepter_scedit@tuners_model/SD1.5/sai-pixelart
TUNER_TYPE: SwiftSCE TUNER_TYPE: SwiftSCE
PROMPT_EXAMPLE: a boy wearing green jacket PROMPT_EXAMPLE: a boy wearing green jacket
+2 -2
View File
@@ -10,7 +10,7 @@ DESC_INFO:
<table align="center"> <table align="center">
<tr> <tr>
<td> <td>
<img src="https://modelscope.cn/api/v1/models/damo/scepter/repo?Revision=master&FilePath=assets/scepter_studio/scepter_studio_banner.jpg"> <img src="https://modelscope.cn/api/v1/models/iic/scepter/repo?Revision=master&FilePath=assets/scepter_studio/scepter_studio_banner.jpg">
<h3><center>SCEPTER Studio是基于开源基模型和自研微调编辑算法构建的生成定制和编辑工具箱,提供围绕生成、微调、编辑、数据处理等一系列的工具和插件。</center><h3> <h3><center>SCEPTER Studio是基于开源基模型和自研微调编辑算法构建的生成定制和编辑工具箱,提供围绕生成、微调、编辑、数据处理等一系列的工具和插件。</center><h3>
</td> </td>
</tr> </tr>
@@ -22,7 +22,7 @@ DESC_INFO:
<table align="center"> <table align="center">
<tr> <tr>
<td> <td>
<img src="https://modelscope.cn/api/v1/models/damo/scepter/repo?Revision=master&FilePath=assets/scepter_studio/scepter_studio_banner.jpg"> <img src="https://modelscope.cn/api/v1/models/iic/scepter/repo?Revision=master&FilePath=assets/scepter_studio/scepter_studio_banner.jpg">
<h3><center>SCEPTER Studio is a customized generation and editing toolkit built on the open-source base models and proprietary fine-tuning editing algorithms, offering a range of tools and plugins centered around generation, fine-tuning, editing, and data processing.</center><h3> <h3><center>SCEPTER Studio is a customized generation and editing toolkit built on the open-source base models and proprietary fine-tuning editing algorithms, offering a range of tools and plugins centered around generation, fine-tuning, editing, and data processing.</center><h3>
</td> </td>
</tr> </tr>
@@ -2,7 +2,7 @@ NAME: EDIT
IS_DEFAULT: False IS_DEFAULT: False
DEFAULT_PARAS: DEFAULT_PARAS:
PARAS: PARAS:
RESOLUTIONS: [[1024, 1024]] RESOLUTIONS: [[512, 512], [1024, 1024]]
INPUT: INPUT:
IMAGE: IMAGE:
PROMPT: "" PROMPT: ""
@@ -49,7 +49,7 @@ DEFAULT_PARAS:
INPUT: ["PROMPT", "NEGATIVE_PROMPT"] INPUT: ["PROMPT", "NEGATIVE_PROMPT"]
MODEL: MODEL:
PRETRAINED_MODEL: ms://damo/stylebooth@models/stylebooth-tb-5000-0.bin PRETRAINED_MODEL: ms://iic/stylebooth@models/stylebooth-tb-5000-0.bin
SCHEDULE: SCHEDULE:
PARAMETERIZATION: "eps" PARAMETERIZATION: "eps"
TIMESTEPS: 1000 TIMESTEPS: 1000
@@ -63,7 +63,8 @@ DIFFUSION_PARAS:
MAX: 1.0 MAX: 1.0
DEFAULT: 0.15 DEFAULT: 0.15
RESOLUTIONS: RESOLUTIONS:
VALUES: [[704, 1408], [704, 1344], [768, 1344], VALUES: [ [512, 512], [768, 768],
[704, 1408], [704, 1344], [768, 1344],
[720, 1280], [720, 1280],
[768, 1280], [832, 1216], [832, 1152], [768, 1280], [832, 1216], [832, 1152],
[896, 1152], [896, 1088], [960, 1088], [896, 1152], [896, 1088], [960, 1088],
@@ -87,18 +88,18 @@ CONTROLABLE_ANNOTATORS:
IS_DEFAULT: True IS_DEFAULT: True
- -
NAME: "HedAnnotator" NAME: "HedAnnotator"
PRETRAINED_MODEL: "ms://damo/scepter_scedit@annotator/ckpts/ControlNetHED.pth" PRETRAINED_MODEL: "ms://iic/scepter_scedit@annotator/ckpts/ControlNetHED.pth"
TYPE: Hed TYPE: Hed
IS_DEFAULT: False IS_DEFAULT: False
- -
NAME: "OpenposeAnnotator" NAME: "OpenposeAnnotator"
BODY_MODEL_PATH: "ms://damo/scepter_scedit@annotator/ckpts/body_pose_model.pth" BODY_MODEL_PATH: "ms://iic/scepter_scedit@annotator/ckpts/body_pose_model.pth"
HAND_MODEL_PATH: "ms://damo/scepter_scedit@annotator/ckpts/hand_pose_model.pth" HAND_MODEL_PATH: "ms://iic/scepter_scedit@annotator/ckpts/hand_pose_model.pth"
TYPE: Openpose TYPE: Openpose
IS_DEFAULT: False IS_DEFAULT: False
- -
NAME: "MidasDetector" NAME: "MidasDetector"
PRETRAINED_MODEL: "ms://damo/scepter_scedit@annotator/ckpts/dpt_hybrid-midas-501f0c75.pt" PRETRAINED_MODEL: "ms://iic/scepter_scedit@annotator/ckpts/dpt_hybrid-midas-501f0c75.pt"
TYPE: Midas TYPE: Midas
IS_DEFAULT: False IS_DEFAULT: False
- -
@@ -68,7 +68,7 @@ DEFAULT_PARAS:
INPUT: ["ORIGINAL_SIZE_AS_TUPLE", "AESTHETIC_SCORE", "NEGATIVE_AESTHETIC_SCORE", "CROP_COORDS_TOP_LEFT", "PROMPT", "NEGATIVE_PROMPT"] INPUT: ["ORIGINAL_SIZE_AS_TUPLE", "AESTHETIC_SCORE", "NEGATIVE_AESTHETIC_SCORE", "CROP_COORDS_TOP_LEFT", "PROMPT", "NEGATIVE_PROMPT"]
MODEL: MODEL:
PRETRAINED_MODEL: ms://damo/LARGEN@models/largen_ckpt_s22k.pth PRETRAINED_MODEL: ms://iic/LARGEN@models/largen_ckpt_s22k.pth
# SCHEDULE_ARGS DESCRIPTION: TYPE: default: '' # SCHEDULE_ARGS DESCRIPTION: TYPE: default: ''
SCHEDULE: SCHEDULE:
PARAMETERIZATION: "eps" PARAMETERIZATION: "eps"
@@ -245,8 +245,8 @@ MODEL:
LEGACY_UCG_VALUE: LEGACY_UCG_VALUE:
- -
NAME: IPAdapterPlusEmbedder NAME: IPAdapterPlusEmbedder
CLIP_DIR: ms://damo/LARGEN@models/clip_encoder/ CLIP_DIR: ms://iic/LARGEN@models/clip_encoder/
PRETRAINED_MODEL: ms://damo/LARGEN@models/ip-adapter-plus_sdxl_vit-h.bin PRETRAINED_MODEL: ms://iic/LARGEN@models/ip-adapter-plus_sdxl_vit-h.bin
INPUT_KEYS: [ "ref_ip", "ref_detail" ] INPUT_KEYS: [ "ref_ip", "ref_detail" ]
IN_DIM: 1280 IN_DIM: 1280
HEADS: 20 HEADS: 20
+2 -2
View File
@@ -48,11 +48,11 @@ BANNER: |
</div> </div>
<div class="qr-codes"> <div class="qr-codes">
<div class="qr-code-container"> <div class="qr-code-container">
<img src="https://modelscope.cn/api/v1/models/damo/scepter/repo?Revision=master&FilePath=assets/scepter_studio/ms_scepter_studio_qr.png" alt="ms_scepter_studio_qr"> <img src="https://modelscope.cn/api/v1/models/iic/scepter/repo?Revision=master&FilePath=assets/scepter_studio/ms_scepter_studio_qr.png" alt="ms_scepter_studio_qr">
<div class="caption"><a href="https://www.modelscope.cn/studios/iic/scepter_studio">Modelscope Studio</a></div> <div class="caption"><a href="https://www.modelscope.cn/studios/iic/scepter_studio">Modelscope Studio</a></div>
</div> </div>
<div class="qr-code-container"> <div class="qr-code-container">
<img src="https://modelscope.cn/api/v1/models/damo/scepter/repo?Revision=master&FilePath=assets/scepter_studio/scepter_github_qr.png" alt="scepter_github_qr"> <img src="https://modelscope.cn/api/v1/models/iic/scepter/repo?Revision=master&FilePath=assets/scepter_studio/scepter_github_qr.png" alt="scepter_github_qr">
<div class="caption"><a href="https://github.com/modelscope/scepter">Github</a></div> <div class="caption"><a href="https://github.com/modelscope/scepter">Github</a></div>
</div> </div>
</div> </div>
@@ -0,0 +1,376 @@
ENV:
BACKEND: nccl
META:
VERSION: 'EDIT'
DESCRIPTION: "EDIT"
IS_DEFAULT: False
IS_SHARE: True
INFERENCE_PARAS:
INFERENCE_BATCH_SIZE: 1
INFERENCE_PREFIX: ""
DEFAULT_SAMPLER: "ddim"
DEFAULT_SAMPLE_STEPS: 40
INFERENCE_N_PROMPT: ""
RESOLUTION: [512, 512]
PARAS:
-
TASK: 'Image Editing'
TRAIN_BATCH_SIZE: 1
TRAIN_PREFIX: ""
TRAIN_N_PROMPT: ""
RESOLUTION: [512, 512]
MEMORY: 29000
EPOCHS: 50
SAVE_INTERVAL: 25
EPSEC: 0.818
LEARNING_RATE: 0.0001
IS_DEFAULT: False
TUNER: FULL
-
TASK: 'Image Editing'
TRAIN_BATCH_SIZE: 1
TRAIN_PREFIX: ""
TRAIN_N_PROMPT: ""
RESOLUTION: [512, 512]
MEMORY: 29000
EPOCHS: 50
SAVE_INTERVAL: 25
EPSEC: 0.818
LEARNING_RATE: 0.0001
IS_DEFAULT: True
TUNER: LORA
-
TASK: 'Image Editing'
TRAIN_BATCH_SIZE: 1
TRAIN_PREFIX: ""
TRAIN_N_PROMPT: ""
RESOLUTION: [512, 512]
MEMORY: 29000
EPOCHS: 50
SAVE_INTERVAL: 25
EPSEC: 0.818
LEARNING_RATE: 0.0001
IS_DEFAULT: False
TUNER: SCE
-
TASK: 'Image Editing'
TRAIN_BATCH_SIZE: 1
TRAIN_PREFIX: ""
TRAIN_N_PROMPT: ""
RESOLUTION: [512, 512]
MEMORY: 29000
EPOCHS: 50
SAVE_INTERVAL: 25
EPSEC: 0.818
LEARNING_RATE: 0.0001
IS_DEFAULT: False
TUNER: TEXT_SCE
-
TASK: 'Image Editing'
TRAIN_BATCH_SIZE: 4
TRAIN_PREFIX: ""
TRAIN_N_PROMPT: ""
RESOLUTION: [512, 512]
MEMORY: 29000
EPOCHS: 50
SAVE_INTERVAL: 25
EPSEC: 0.818
LEARNING_RATE: 0.0001
IS_DEFAULT: False
TUNER: TEXT_LORA
TUNERS:
LORA:
-
NAME: SwiftLoRA
R: 256
LORA_ALPHA: 256
LORA_DROPOUT: 0.0
BIAS: "none"
TARGET_MODULES: "model.*(to_q|to_k|to_v|to_out.0|net.0.proj|net.2)$"
TEXT_LORA:
-
NAME: SwiftLoRA
R: 256
LORA_ALPHA: 256
LORA_DROPOUT: 0.0
BIAS: "none"
TARGET_MODULES: "(cond_stage_model.*(q_proj|k_proj|v_proj|out_proj|mlp.fc1|mlp.fc2))|(model.*(to_q|to_k|to_v|to_out.0|net.0.proj|net.2))$"
SCE:
-
NAME: SwiftSCETuning
DIMS: [1280, 1280, 1280, 1280, 1280, 640, 640, 640, 320, 320, 320, 320]
DOWN_RATIO: 1.0
TARGET_MODULES: model.lsc_identity\.\d+$
TUNER_MODE: identity
TEXT_SCE:
-
NAME: SwiftSCETuning
DIMS: [ 1280, 1280, 1280, 1280, 1280, 640, 640, 640, 320, 320, 320, 320 ]
DOWN_RATIO: 1.0
TARGET_MODULES: model.lsc_identity\.\d+$
TUNER_MODE: identity
-
NAME: SwiftLoRA
R: 256
LORA_ALPHA: 256
LORA_DROPOUT: 0.0
BIAS: "none"
TARGET_MODULES: "cond_stage_model.*(q_proj|k_proj|v_proj|out_proj|mlp.fc1|mlp.fc2)$"
MODIFY_PARAS:
TEXT_LORA:
TRAIN:
SOLVER.MODEL.COND_STAGE_MODEL.USE_GRAD: True
TEXT_SCE:
TRAIN:
SOLVER.MODEL.COND_STAGE_MODEL.USE_GRAD: True
SOLVER:
NAME: LatentDiffusionSolver
RESUME_FROM:
LOAD_MODEL_ONLY: True
USE_FSDP: False
SHARDING_STRATEGY:
USE_AMP: True
DTYPE: float16
CHANNELS_LAST: True
MAX_STEPS: 1000
MAX_EPOCHS: -1
NUM_FOLDS: 1
ACCU_STEP: 1
EVAL_INTERVAL: -1
#
WORK_DIR:
LOG_FILE: std_log.txt
#
FILE_SYSTEM:
NAME: "ModelscopeFs"
TEMP_DIR: "./cache/data"
#
FREEZE:
#
TUNER:
#
MODEL:
NAME: LatentDiffusionEdit
PARAMETERIZATION: eps
TIMESTEPS: 1000
MIN_SNR_GAMMA:
ZERO_TERMINAL_SNR: False
PRETRAINED_MODEL: ms://iic/stylebooth@models/stylebooth-tb-5000-0.bin
IGNORE_KEYS: [ ]
CONCAT_NO_SCALE_FACTOR: True
SCALE_FACTOR: 0.18215
SIZE_FACTOR: 8
# DEFAULT_N_PROMPT: 'lowres, error, worst quality, low quality, jpeg artifacts, ugly, duplicate, morbid, mutilated, out of frame, extra fingers, mutated hands, poorly drawn hands, poorly drawn face, mutation, deformed, blurry, dehydrated, bad anatomy, bad proportions, extra limbs, cloned face, disfigured, gross proportions, malformed limbs, missing arms, missing legs, extra arms, extra legs, fused fingers, too many fingers, long neck, username, watermark, signature'
DEFAULT_N_PROMPT:
SCHEDULE_ARGS:
"NAME": "scaled_linear"
"BETA_MIN": 0.00085
"BETA_MAX": 0.012
USE_EMA: False
#
DIFFUSION_MODEL:
NAME: DiffusionUNet
IN_CHANNELS: 8
OUT_CHANNELS: 4
MODEL_CHANNELS: 320
NUM_HEADS: 8
NUM_RES_BLOCKS: 2
ATTENTION_RESOLUTIONS: [ 4, 2, 1 ]
CHANNEL_MULT: [ 1, 2, 4, 4 ]
CONV_RESAMPLE: True
DIMS: 2
USE_CHECKPOINT: False
USE_SCALE_SHIFT_NORM: False
RESBLOCK_UPDOWN: False
USE_SPATIAL_TRANSFORMER: True
TRANSFORMER_DEPTH: 1
CONTEXT_DIM: 768
DISABLE_MIDDLE_SELF_ATTN: False
USE_LINEAR_IN_TRANSFORMER: False
IGNORE_KEYS: []
#
FIRST_STAGE_MODEL:
NAME: AutoencoderKL
EMBED_DIM: 4
IGNORE_KEYS: []
BATCH_SIZE: 4
#
ENCODER:
NAME: Encoder
CH: 128
OUT_CH: 3
NUM_RES_BLOCKS: 2
IN_CHANNELS: 3
ATTN_RESOLUTIONS: [ ]
CH_MULT: [ 1, 2, 4, 4 ]
Z_CHANNELS: 4
DOUBLE_Z: True
DROPOUT: 0.0
RESAMP_WITH_CONV: True
#
DECODER:
NAME: Decoder
CH: 128
OUT_CH: 3
NUM_RES_BLOCKS: 2
IN_CHANNELS: 3
ATTN_RESOLUTIONS: [ ]
CH_MULT: [ 1, 2, 4, 4 ]
Z_CHANNELS: 4
DROPOUT: 0.0
RESAMP_WITH_CONV: True
GIVE_PRE_END: False
TANH_OUT: False
#
TOKENIZER:
NAME: ClipTokenizer
PRETRAINED_PATH: ms://AI-ModelScope/clip-vit-large-patch14
LENGTH: 77
CLEAN: True
#
COND_STAGE_MODEL:
NAME: FrozenCLIPEmbedder
FREEZE: True
USE_GRAD: False
LAYER: last
PRETRAINED_MODEL: ms://AI-ModelScope/clip-vit-large-patch14
#
LOSS:
NAME: ReconstructLoss
LOSS_TYPE: l2
#
SAMPLE_ARGS:
SAMPLER: ddim
SAMPLE_STEPS: 50
SEED: 2023
GUIDE_SCALE: #7.5
image: 1.5
text: 7.5
GUIDE_RESCALE: 0.5
DISCRETIZATION: trailing
IMAGE_SIZE: [512, 512]
RUN_TRAIN_N: False
#
OPTIMIZER:
NAME: AdamW
LEARNING_RATE: 0.064
BETAS: [ 0.9, 0.999 ]
EPS: 1e-8
WEIGHT_DECAY: 1e-2
AMSGRAD: False
#
TRAIN_DATA:
NAME: ImageTextPairMSDataset
MODE: train
MS_DATASET_NAME: cache/save_data/delogo/
MS_DATASET_NAMESPACE: ""
MS_DATASET_SPLIT: "train"
MS_DATASET_SUBNAME: ""
PROMPT_PREFIX: ""
REPLACE_STYLE: False
PIN_MEMORY: True
BATCH_SIZE: 1
NUM_WORKERS: 4
SAMPLER:
NAME: LoopSampler
TRANSFORMS:
- NAME: LoadImageFromFileList
FILE_KEYS: ['img_path', 'src_path']
RGB_ORDER: RGB
BACKEND: pillow
- NAME: FlexibleResize
INTERPOLATION: bilinear
SIZE: [ 512, 512 ]
INPUT_KEY: [ 'img', 'src' ]
OUTPUT_KEY: [ 'img', 'src' ]
BACKEND: pillow
- NAME: FlexibleCenterCrop
SIZE: [ 512, 512 ]
INPUT_KEY: [ 'img', 'src' ]
OUTPUT_KEY: [ 'img', 'src' ]
BACKEND: pillow
- NAME: ImageToTensor
INPUT_KEY: [ 'img', 'src' ]
OUTPUT_KEY: [ 'img', 'src' ]
BACKEND: pillow
- NAME: Normalize
MEAN: [ 0.5, 0.5, 0.5 ]
STD: [ 0.5, 0.5, 0.5 ]
INPUT_KEY: [ 'img', 'src' ]
OUTPUT_KEY: [ 'image', 'condition_cat' ]
BACKEND: torchvision
- NAME: Select
KEYS: [ 'image', 'condition_cat', 'prompt' ]
META_KEYS: [ 'data_key' ]
#
TRAIN_HOOKS:
-
NAME: BackwardHook
PRIORITY: 0
-
NAME: LogHook
LOG_INTERVAL: 10
SHOW_GPU_MEM: True
-
NAME: TensorboardLogHook
-
NAME: CheckpointHook
INTERVAL: 10000
PRIORITY: 200
SAVE_LAST: True
SAVE_NAME_PREFIX: 'step'
DISABLE_SNAPSHOT: True
#
EVAL_DATA:
NAME: Text2ImageDataset
MODE: eval
PROMPT_FILE:
PROMPT_DATA: [ ]
IMAGE_SIZE: [ 512, 512 ]
FIELDS: [ "prompt", "src_path" ]
DELIMITER: '#;#'
PROMPT_PREFIX: ''
PIN_MEMORY: True
BATCH_SIZE: 1
NUM_WORKERS: 4
TRANSFORMS:
- NAME: LoadImageFromFileList
FILE_KEYS: [ 'src_path' ]
RGB_ORDER: RGB
BACKEND: pillow
- NAME: FlexibleResize
INTERPOLATION: bilinear
SIZE: [ 512, 512 ]
INPUT_KEY: [ 'src' ]
OUTPUT_KEY: [ 'src' ]
BACKEND: pillow
- NAME: FlexibleCenterCrop
SIZE: [ 512, 512 ]
INPUT_KEY: [ 'src' ]
OUTPUT_KEY: [ 'src' ]
BACKEND: pillow
- NAME: ImageToTensor
INPUT_KEY: [ 'src' ]
OUTPUT_KEY: [ 'src' ]
BACKEND: pillow
- NAME: Normalize
MEAN: [ 0.5, 0.5, 0.5 ]
STD: [ 0.5, 0.5, 0.5 ]
INPUT_KEY: [ 'src' ]
OUTPUT_KEY: [ 'condition_cat' ]
BACKEND: torchvision
- NAME: Select
KEYS: [ 'condition_cat', 'prompt' ]
META_KEYS: [ 'image_size' ]
EVAL_HOOKS:
-
NAME: ProbeDataHook
PROB_INTERVAL: 100
SAVE_LAST: True
SAVE_NAME_PREFIX: 'step'
SAVE_PROBE_PREFIX: 'image'
@@ -1,7 +1,7 @@
--- ---
frameworks: frameworks:
- Pytorch - Pytorch
license: Apache License 2.0 license: apache-2.0
tasks: tasks:
- efficient-diffusion-tuning - efficient-diffusion-tuning
--- ---
@@ -1,7 +1,7 @@
--- ---
frameworks: frameworks:
- Pytorch - Pytorch
license: Apache License 2.0 license: apache-2.0
tasks: tasks:
- efficient-diffusion-tuning - efficient-diffusion-tuning
--- ---
@@ -1,14 +1,15 @@
WORK_DIR: "tuner_manager" WORK_DIR: "tuner_manager"
SELF_TRAIN_DIR: "self_train"
EXPORT_DIR: "export_model" EXPORT_DIR: "export_model"
TUNER_LIST_YAML: "tuner_list.yaml" TUNER_LIST_YAML: "tuner_list.yaml"
README_EN: "scepter/methods/studio/tuner_manager/readme_en.md" README_EN: "scepter/methods/studio/tuner_manager/readme_en.md"
README_ZH: "scepter/methods/studio/tuner_manager/readme_zh.md" README_ZH: "scepter/methods/studio/tuner_manager/readme_zh.md"
BASE_MODEL_VERSION: BASE_MODEL_VERSION:
- BASE_MODEL: 'SD_XL1.0'
TUNER_TYPE: [ 'TEXT_SCE', 'SCE', 'LORA', 'TEXT_LORA', 'FULL' ]
- BASE_MODEL: 'SD1.5' - BASE_MODEL: 'SD1.5'
TUNER_TYPE: [ 'TEXT_SCE', 'SCE', 'LORA', 'TEXT_LORA', 'FULL' ] TUNER_TYPE: [ 'TEXT_LORA', 'TEXT_SCE', 'LORA', 'SCE', 'FULL' ]
- BASE_MODEL: 'SD_XL1.0'
TUNER_TYPE: [ 'TEXT_LORA', 'TEXT_SCE', 'LORA', 'SCE', 'FULL' ]
- BASE_MODEL: 'SD2.1' - BASE_MODEL: 'SD2.1'
TUNER_TYPE: [ 'SCE', 'LORA', 'FULL' ] TUNER_TYPE: [ 'LORA', 'SCE', 'FULL' ]
- BASE_MODEL: 'EDIT'
TUNER_TYPE: [ 'LORA', 'SCE', 'FULL' ]
@@ -4,7 +4,6 @@ from abc import ABCMeta
import torch import torch
import torch.nn as nn import torch.nn as nn
from scepter.modules.annotator.registry import ANNOTATORS from scepter.modules.annotator.registry import ANNOTATORS
from scepter.modules.model.base_model import BaseModel from scepter.modules.model.base_model import BaseModel
from scepter.modules.utils.config import dict_to_yaml from scepter.modules.utils.config import dict_to_yaml
-1
View File
@@ -6,7 +6,6 @@ import cv2
import numpy as np import numpy as np
import torch import torch
from PIL import Image from PIL import Image
from scepter.modules.annotator.base_annotator import BaseAnnotator from scepter.modules.annotator.base_annotator import BaseAnnotator
from scepter.modules.annotator.registry import ANNOTATORS from scepter.modules.annotator.registry import ANNOTATORS
from scepter.modules.utils.config import dict_to_yaml from scepter.modules.utils.config import dict_to_yaml
-1
View File
@@ -6,7 +6,6 @@ import cv2
import numpy as np import numpy as np
import torch import torch
from PIL import Image from PIL import Image
from scepter.modules.annotator.base_annotator import BaseAnnotator from scepter.modules.annotator.base_annotator import BaseAnnotator
from scepter.modules.annotator.registry import ANNOTATORS from scepter.modules.annotator.registry import ANNOTATORS
from scepter.modules.utils.config import dict_to_yaml from scepter.modules.utils.config import dict_to_yaml
+15 -12
View File
@@ -11,13 +11,14 @@ from abc import ABCMeta
import cv2 import cv2
import numpy as np import numpy as np
import torch import torch
import torchvision
from einops import rearrange from einops import rearrange
from scepter.modules.annotator.base_annotator import BaseAnnotator from scepter.modules.annotator.base_annotator import BaseAnnotator
from scepter.modules.annotator.registry import ANNOTATORS from scepter.modules.annotator.registry import ANNOTATORS
from scepter.modules.utils.config import dict_to_yaml from scepter.modules.utils.config import dict_to_yaml
from scepter.modules.utils.distribute import we from scepter.modules.utils.distribute import we
from scepter.modules.utils.file_system import FS from scepter.modules.utils.file_system import FS
from torchvision.transforms import InterpolationMode
def nms(x, t, s): def nms(x, t, s):
@@ -123,6 +124,8 @@ class HedAnnotator(BaseAnnotator, metaclass=ABCMeta):
if len(image.shape) == 3: if len(image.shape) == 3:
image = rearrange(image, 'h w c -> 1 c h w') image = rearrange(image, 'h w c -> 1 c h w')
B, C, H, W = image.shape B, C, H, W = image.shape
elif len(image.shape) == 4:
B, C, H, W = image.shape
else: else:
raise "Unsurpport input image's shape" raise "Unsurpport input image's shape"
elif isinstance(image, np.ndarray): elif isinstance(image, np.ndarray):
@@ -130,22 +133,22 @@ class HedAnnotator(BaseAnnotator, metaclass=ABCMeta):
if len(image.shape) == 3: if len(image.shape) == 3:
image = rearrange(image, 'h w c -> 1 c h w') image = rearrange(image, 'h w c -> 1 c h w')
B, C, H, W = image.shape B, C, H, W = image.shape
elif len(image.shape) == 4:
B, C, H, W = image.shape
else: else:
raise "Unsurpport input image's shape" raise "Unsurpport input image's shape"
else: else:
raise "Unsurpport input image's type" raise "Unsurpport input image's type"
transform = torchvision.transforms.Resize(
(H, W), interpolation=InterpolationMode.BILINEAR, antialias=True)
edges = self.netNetwork(image.to(we.device_id)) edges = self.netNetwork(image.to(we.device_id))
edges = [ edges = [transform(e) for e in edges]
e.detach().cpu().numpy().astype(np.float32)[0, 0] for e in edges edges = torch.cat(edges, dim=1)
] edges = 1 / (1 +
edges = [ torch.exp(-torch.mean(edges, dim=1).type(torch.float)))
cv2.resize(e, (W, H), interpolation=cv2.INTER_LINEAR) edges = edges.cpu().numpy()
for e in edges edges = 255 - (edges * 255.0).clip(0, 255).astype(np.uint8)
] return edges[..., None].repeat(3, -1)
edges = np.stack(edges, axis=2)
edge = 1 / (1 + np.exp(-np.mean(edges, axis=2).astype(np.float64)))
edge = 255 - (edge * 255.0).clip(0, 255).astype(np.uint8)
return edge[..., None].repeat(3, 2)
@staticmethod @staticmethod
def get_config_template(): def get_config_template():
@@ -0,0 +1,2 @@
# -*- coding: utf-8 -*-
# Copyright (c) Alibaba, Inc. and its affiliates.
+1
View File
@@ -1,4 +1,5 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Copyright (c) Alibaba, Inc. and its affiliates.
# based on https://github.com/isl-org/MiDaS # based on https://github.com/isl-org/MiDaS
import cv2 import cv2
@@ -1,4 +1,5 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Copyright (c) Alibaba, Inc. and its affiliates.
import torch import torch
@@ -1,4 +1,5 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Copyright (c) Alibaba, Inc. and its affiliates.
import torch import torch
import torch.nn as nn import torch.nn as nn
@@ -1,4 +1,5 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Copyright (c) Alibaba, Inc. and its affiliates.
import torch import torch
import torch.nn as nn import torch.nn as nn
@@ -1,4 +1,5 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Copyright (c) Alibaba, Inc. and its affiliates.
"""MidashNet: Network for monocular depth estimation trained by mixing several datasets. """MidashNet: Network for monocular depth estimation trained by mixing several datasets.
This file contains code that is adapted from This file contains code that is adapted from
https://github.com/thomasjpfan/pytorch_refinenet/blob/master/pytorch_refinenet/refinenet/refinenet_4cascade.py https://github.com/thomasjpfan/pytorch_refinenet/blob/master/pytorch_refinenet/refinenet/refinenet_4cascade.py
@@ -1,4 +1,5 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Copyright (c) Alibaba, Inc. and its affiliates.
"""MidashNet: Network for monocular depth estimation trained by mixing several datasets. """MidashNet: Network for monocular depth estimation trained by mixing several datasets.
This file contains code that is adapted from This file contains code that is adapted from
https://github.com/thomasjpfan/pytorch_refinenet/blob/master/pytorch_refinenet/refinenet/refinenet_4cascade.py https://github.com/thomasjpfan/pytorch_refinenet/blob/master/pytorch_refinenet/refinenet/refinenet_4cascade.py
@@ -1,4 +1,5 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Copyright (c) Alibaba, Inc. and its affiliates.
import math import math
import cv2 import cv2
+1
View File
@@ -1,4 +1,5 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Copyright (c) Alibaba, Inc. and its affiliates.
"""Utils for monoDepth.""" """Utils for monoDepth."""
import re import re
import sys import sys
+1
View File
@@ -1,4 +1,5 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Copyright (c) Alibaba, Inc. and its affiliates.
import math import math
import types import types
-1
View File
@@ -9,7 +9,6 @@ import numpy as np
import torch import torch
from einops import rearrange from einops import rearrange
from PIL import Image from PIL import Image
from scepter.modules.annotator.base_annotator import BaseAnnotator from scepter.modules.annotator.base_annotator import BaseAnnotator
from scepter.modules.annotator.midas.api import MiDaSInference from scepter.modules.annotator.midas.api import MiDaSInference
from scepter.modules.annotator.registry import ANNOTATORS from scepter.modules.annotator.registry import ANNOTATORS
@@ -0,0 +1,2 @@
# -*- coding: utf-8 -*-
# Copyright (c) Alibaba, Inc. and its affiliates.
@@ -1,4 +1,5 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Copyright (c) Alibaba, Inc. and its affiliates.
import torch import torch
import torch.nn as nn import torch.nn as nn
@@ -1,4 +1,5 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Copyright (c) Alibaba, Inc. and its affiliates.
import torch import torch
import torch.nn as nn import torch.nn as nn
import torch.utils.model_zoo as model_zoo import torch.utils.model_zoo as model_zoo
+1
View File
@@ -1,4 +1,5 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Copyright (c) Alibaba, Inc. and its affiliates.
# modified by lihaoweicv # modified by lihaoweicv
# pytorch version # pytorch version
-1
View File
@@ -11,7 +11,6 @@ import cv2
import numpy as np import numpy as np
import torch import torch
from PIL import Image from PIL import Image
from scepter.modules.annotator.base_annotator import BaseAnnotator from scepter.modules.annotator.base_annotator import BaseAnnotator
from scepter.modules.annotator.mlsd.mbv2_mlsd_large import MobileV2_MLSD_Large from scepter.modules.annotator.mlsd.mbv2_mlsd_large import MobileV2_MLSD_Large
from scepter.modules.annotator.mlsd.utils import pred_lines from scepter.modules.annotator.mlsd.utils import pred_lines
+2 -3
View File
@@ -15,13 +15,12 @@ import numpy as np
import torch import torch
import torch.nn as nn import torch.nn as nn
from PIL import Image from PIL import Image
from scipy.ndimage.filters import gaussian_filter
from skimage.measure import label
from scepter.modules.annotator.base_annotator import BaseAnnotator from scepter.modules.annotator.base_annotator import BaseAnnotator
from scepter.modules.annotator.registry import ANNOTATORS from scepter.modules.annotator.registry import ANNOTATORS
from scepter.modules.utils.config import dict_to_yaml from scepter.modules.utils.config import dict_to_yaml
from scepter.modules.utils.file_system import FS from scepter.modules.utils.file_system import FS
from scipy.ndimage.filters import gaussian_filter
from skimage.measure import label
os.environ['KMP_DUPLICATE_LIB_OK'] = 'TRUE' os.environ['KMP_DUPLICATE_LIB_OK'] = 'TRUE'
+5 -5
View File
@@ -37,30 +37,30 @@ class AnnotatorProcessor():
hed_cfg = { hed_cfg = {
'NAME': 'HedAnnotator', 'NAME': 'HedAnnotator',
'PRETRAINED_MODEL': 'PRETRAINED_MODEL':
'ms://damo/scepter_scedit@annotator/ckpts/ControlNetHED.pth', 'ms://iic/scepter_scedit@annotator/ckpts/ControlNetHED.pth',
'INPUT_KEYS': ['img'], 'INPUT_KEYS': ['img'],
'OUTPUT_KEYS': ['hed'] 'OUTPUT_KEYS': ['hed']
} }
openpose_cfg = { openpose_cfg = {
'NAME': 'OpenposeAnnotator', 'NAME': 'OpenposeAnnotator',
'BODY_MODEL_PATH': 'BODY_MODEL_PATH':
'ms://damo/scepter_scedit@annotator/ckpts/body_pose_model.pth', 'ms://iic/scepter_scedit@annotator/ckpts/body_pose_model.pth',
'HAND_MODEL_PATH': 'HAND_MODEL_PATH':
'ms://damo/scepter_scedit@annotator/ckpts/hand_pose_model.pth', 'ms://iic/scepter_scedit@annotator/ckpts/hand_pose_model.pth',
'INPUT_KEYS': ['img'], 'INPUT_KEYS': ['img'],
'OUTPUT_KEYS': ['openpose'] 'OUTPUT_KEYS': ['openpose']
} }
midas_cfg = { midas_cfg = {
'NAME': 'MidasDetector', 'NAME': 'MidasDetector',
'PRETRAINED_MODEL': 'PRETRAINED_MODEL':
'ms://damo/scepter_scedit@annotator/ckpts/dpt_hybrid-midas-501f0c75.pt', 'ms://iic/scepter_scedit@annotator/ckpts/dpt_hybrid-midas-501f0c75.pt',
'INPUT_KEYS': ['img'], 'INPUT_KEYS': ['img'],
'OUTPUT_KEYS': ['depth'] 'OUTPUT_KEYS': ['depth']
} }
mlsd_cfg = { mlsd_cfg = {
'NAME': 'MLSDdetector', 'NAME': 'MLSDdetector',
'PRETRAINED_MODEL': 'PRETRAINED_MODEL':
'ms://damo/scepter_scedit@annotator/ckpts/mlsd_large_512_fp32.pth', 'ms://iic/scepter_scedit@annotator/ckpts/mlsd_large_512_fp32.pth',
'INPUT_KEYS': ['img'], 'INPUT_KEYS': ['img'],
'OUTPUT_KEYS': ['mlsd'] 'OUTPUT_KEYS': ['mlsd']
} }
+1 -2
View File
@@ -3,14 +3,13 @@
from abc import ABCMeta, abstractmethod from abc import ABCMeta, abstractmethod
from torch.utils.data import Dataset
from scepter.modules.transform.registry import TRANSFORMS, build_pipeline from scepter.modules.transform.registry import TRANSFORMS, build_pipeline
from scepter.modules.utils.config import dict_to_yaml from scepter.modules.utils.config import dict_to_yaml
from scepter.modules.utils.distribute import we from scepter.modules.utils.distribute import we
from scepter.modules.utils.file_system import FS from scepter.modules.utils.file_system import FS
from scepter.modules.utils.logger import get_logger from scepter.modules.utils.logger import get_logger
from scepter.modules.utils.registry import old_python_version from scepter.modules.utils.registry import old_python_version
from torch.utils.data import Dataset
class BaseDataset(Dataset, metaclass=ABCMeta): class BaseDataset(Dataset, metaclass=ABCMeta):
+5 -1
View File
@@ -8,7 +8,6 @@ from collections.abc import Iterable
import numpy as np import numpy as np
import torchvision import torchvision
from scepter.modules.data.dataset.base_dataset import BaseDataset from scepter.modules.data.dataset.base_dataset import BaseDataset
from scepter.modules.data.dataset.registry import DATASETS from scepter.modules.data.dataset.registry import DATASETS
from scepter.modules.utils.config import dict_to_yaml from scepter.modules.utils.config import dict_to_yaml
@@ -272,6 +271,11 @@ class Text2ImageDataset(BaseDataset):
item['prompt'] = prompt_prefix + value item['prompt'] = prompt_prefix + value
elif key in ['oss_key', 'path', 'img_path', 'target_img_path']: elif key in ['oss_key', 'path', 'img_path', 'target_img_path']:
item['meta']['img_path'] = os.path.join(path_prefix, value) item['meta']['img_path'] = os.path.join(path_prefix, value)
elif key in [
'src_oss_key', 'src_path', 'src_img_path',
'src_target_img_path'
]:
item['meta']['src_path'] = os.path.join(path_prefix, value)
elif key in ['width', 'height']: elif key in ['width', 'height']:
item['meta'][key] = int(value) item['meta'][key] = int(value)
else: else:
+31 -17
View File
@@ -101,14 +101,13 @@ class ImageTextPairMSDataset(BaseDataset):
if isinstance(self.output_size, numbers.Number): if isinstance(self.output_size, numbers.Number):
self.output_size = [self.output_size, self.output_size] self.output_size = [self.output_size, self.output_size]
# Use modelscope dataset # Use modelscope dataset
if not ms_dataset_name: if not ms_dataset_name:
raise ( raise (
'Your must set MS_DATASET_NAME as modelscope dataset or your local dataset orignized ' 'Your must set MS_DATASET_NAME as modelscope dataset or your local dataset orignized '
'as modelscope dataset.') 'as modelscope dataset.')
if FS.exists(ms_dataset_name): if FS.exists(ms_dataset_name):
ms_dataset_name = FS.get_dir_to_local_dir(ms_dataset_name) ms_dataset_name = FS.get_dir_to_local_dir(ms_dataset_name)
ms_remap_path = ms_dataset_name # ms_remap_path = ms_dataset_name
try: try:
self.data = MsDataset.load(str(ms_dataset_name), self.data = MsDataset.load(str(ms_dataset_name),
namespace=ms_dataset_namespace, namespace=ms_dataset_namespace,
@@ -133,9 +132,11 @@ class ImageTextPairMSDataset(BaseDataset):
if ms_remap_path: if ms_remap_path:
def map_func(example): def map_func(example):
example['Target:FILE'] = os.path.join(ms_remap_path, return {
example['Target:FILE']) k: os.path.join(ms_remap_path, v)
return example if k.endswith(':FILE') else v
for k, v in example.items()
}
self.data = self.data.ds_instance.map(map_func) self.data = self.data.ds_instance.map(map_func)
self.real_number = len(self.data) self.real_number = len(self.data)
@@ -149,9 +150,12 @@ class ImageTextPairMSDataset(BaseDataset):
def _get(self, index: int): def _get(self, index: int):
current_data = self.data[index % len(self.data)] current_data = self.data[index % len(self.data)]
# print(current_data.keys()) # print(current_data.keys())
image_path = current_data['Target:FILE'] image_path = current_data[
prompt = current_data['Prompt'] 'Target:FILE'] if 'Target:FILE' in current_data else ''
prompt = current_data.get('Prompt', current_data.get('prompt', ''))
style = current_data['Style'] if 'Style' in current_data else '' style = current_data['Style'] if 'Style' in current_data else ''
src_image_path = current_data[
'Source:FILE'] if 'Source:FILE' in current_data else ''
# print(prompt, style) # print(prompt, style)
if self.replace_style and not style == '': if self.replace_style and not style == '':
prompt = prompt.replace(style, f'<{self.keywords_sign}>') prompt = prompt.replace(style, f'<{self.keywords_sign}>')
@@ -166,6 +170,7 @@ class ImageTextPairMSDataset(BaseDataset):
ret_item = { ret_item = {
'meta': { 'meta': {
'img_path': image_path, 'img_path': image_path,
'src_path': src_image_path,
'data_key': style, 'data_key': style,
'data_num': self.real_number 'data_num': self.real_number
}, },
@@ -173,6 +178,9 @@ class ImageTextPairMSDataset(BaseDataset):
} }
if self.output_size is not None: if self.output_size is not None:
ret_item['meta']['image_size'] = self.output_size ret_item['meta']['image_size'] = self.output_size
for key in current_data:
if key not in ret_item['meta']:
ret_item['meta'][key] = current_data[key]
return ret_item return ret_item
@staticmethod @staticmethod
@@ -241,19 +249,18 @@ class ImageTextPairFolderDataset(BaseDataset):
data_folder = FS.get_dir_to_local_dir(data_folder) data_folder = FS.get_dir_to_local_dir(data_folder)
all_lines = open(os.path.join(data_folder, 'train.csv'), all_lines = open(os.path.join(data_folder, 'train.csv'),
'r').read().split('\n') 'r').read().split('\n')
assert all_lines[0] == 'Target:FILE,Prompt' header = all_lines[0].split(',')
self.data = [] self.data = []
for line in all_lines[1:]: for line in all_lines[1:]:
line = line.strip() line = line.strip()
if line == '': if line == '':
continue continue
self.data.append({ record = dict(zip(header, line.split(',', len(header) - 1)))
'Target:FILE': record = {
os.path.join(data_folder, k: os.path.join(data_folder, v) if k.endswith(':FILE') else v
line.split(',', 1)[0]), for k, v in record.items()
'Prompt': }
line.split(',', 1)[1] self.data.append(record)
})
self.real_number = len(self.data) self.real_number = len(self.data)
def __len__(self): def __len__(self):
@@ -265,9 +272,12 @@ class ImageTextPairFolderDataset(BaseDataset):
def _get(self, index: int): def _get(self, index: int):
current_data = self.data[index % len(self.data)] current_data = self.data[index % len(self.data)]
# print(current_data.keys()) # print(current_data.keys())
image_path = current_data['Target:FILE'] image_path = current_data[
prompt = current_data['Prompt'] 'Target:FILE'] if 'Target:FILE' in current_data else ''
prompt = current_data.get('Prompt', current_data.get('prompt', ''))
style = current_data['Style'] if 'Style' in current_data else '' style = current_data['Style'] if 'Style' in current_data else ''
src_image_path = current_data[
'Source:FILE'] if 'Source:FILE' in current_data else ''
# print(prompt, style) # print(prompt, style)
if self.replace_style and not style == '': if self.replace_style and not style == '':
prompt = prompt.replace(style, f'<{self.keywords_sign}>') prompt = prompt.replace(style, f'<{self.keywords_sign}>')
@@ -282,6 +292,7 @@ class ImageTextPairFolderDataset(BaseDataset):
ret_item = { ret_item = {
'meta': { 'meta': {
'img_path': image_path, 'img_path': image_path,
'src_path': src_image_path,
'data_key': style, 'data_key': style,
'data_num': self.real_number 'data_num': self.real_number
}, },
@@ -289,6 +300,9 @@ class ImageTextPairFolderDataset(BaseDataset):
} }
if self.output_size is not None: if self.output_size is not None:
ret_item['meta']['image_size'] = self.output_size ret_item['meta']['image_size'] = self.output_size
for key in current_data:
if key not in ret_item['meta']:
ret_item['meta'][key] = current_data[key]
return ret_item return ret_item
@staticmethod @staticmethod
+1 -2
View File
@@ -7,13 +7,12 @@ import re
from functools import partial from functools import partial
import torch import torch
from torch.utils.data import DataLoader, DistributedSampler
from scepter.modules.data.sampler import (SAMPLERS, MixtureOfSamplers, from scepter.modules.data.sampler import (SAMPLERS, MixtureOfSamplers,
MultiFoldDistributedSampler, MultiFoldDistributedSampler,
MultiLevelBatchSampler) MultiLevelBatchSampler)
from scepter.modules.utils.registry import (Registry, deep_copy, from scepter.modules.utils.registry import (Registry, deep_copy,
old_python_version) old_python_version)
from torch.utils.data import DataLoader, DistributedSampler
string_classes = (str, bytes) string_classes = (str, bytes)
int_classes = (int, ) int_classes = (int, )
+1 -2
View File
@@ -1,10 +1,9 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Copyright (c) Alibaba, Inc. and its affiliates. # Copyright (c) Alibaba, Inc. and its affiliates.
from torch.utils.data.sampler import Sampler
from scepter.modules.utils.config import dict_to_yaml from scepter.modules.utils.config import dict_to_yaml
from scepter.modules.utils.distribute import we from scepter.modules.utils.distribute import we
from torch.utils.data.sampler import Sampler
class BaseSampler(Sampler): class BaseSampler(Sampler):
-1
View File
@@ -12,7 +12,6 @@ from typing import List, Optional
import numpy as np import numpy as np
import torch import torch
import torch.distributed as dist import torch.distributed as dist
from scepter.modules.data.sampler.base_sampler import BaseSampler from scepter.modules.data.sampler.base_sampler import BaseSampler
from scepter.modules.data.sampler.registry import SAMPLERS from scepter.modules.data.sampler.registry import SAMPLERS
from scepter.modules.data.utils.data_bucket import (BucketBatchIndex, from scepter.modules.data.utils.data_bucket import (BucketBatchIndex,
@@ -8,7 +8,6 @@ import torch
import torch.nn as nn import torch.nn as nn
import torchvision.transforms as TT import torchvision.transforms as TT
from PIL.Image import Image from PIL.Image import Image
from scepter.modules.model.registry import TUNERS from scepter.modules.model.registry import TUNERS
from scepter.modules.utils.config import Config from scepter.modules.utils.config import Config
from scepter.modules.utils.distribute import we from scepter.modules.utils.distribute import we
@@ -8,7 +8,6 @@ from collections import OrderedDict
import torch import torch
import torch.nn.functional as F import torch.nn.functional as F
from PIL.Image import Image from PIL.Image import Image
from scepter.modules.model.network.diffusion.diffusion import GaussianDiffusion from scepter.modules.model.network.diffusion.diffusion import GaussianDiffusion
from scepter.modules.model.network.diffusion.schedules import noise_schedule from scepter.modules.model.network.diffusion.schedules import noise_schedule
from scepter.modules.model.registry import (BACKBONES, EMBEDDERS, MODELS, from scepter.modules.model.registry import (BACKBONES, EMBEDDERS, MODELS,
@@ -277,7 +276,7 @@ class DiffusionInference():
module = self.load(module) module = self.load(module)
self.loaded_model[name] = module self.loaded_model[name] = module
return module return module
elif module['device'] == 'cpu' or module['device'] == "offline": elif module['device'] == 'cpu' or module['device'] == 'offline':
module = self.load(module) module = self.load(module)
return module return module
else: else:
@@ -629,7 +628,7 @@ class DiffusionInference():
}, { }, {
'cond': refine_null_context 'cond': refine_null_context
}], }],
steps=value_input.get('sample_steps', 50), steps=value_input.get('refine_sample_steps', 50),
guide_scale=value_input.get('refine_guide_scale', 7.5), guide_scale=value_input.get('refine_guide_scale', 7.5),
guide_rescale=value_input.get('refine_guide_rescale', guide_rescale=value_input.get('refine_guide_rescale',
0.5), 0.5),
@@ -120,7 +120,7 @@ class StyleboothInference(DiffusionInference):
cat_uc=True, cat_uc=True,
tuner_model=None, tuner_model=None,
control_model=None, control_model=None,
stylebooth_state=False, stylebooth_state=True,
style_edit_image=None, style_edit_image=None,
style_exemplar_image=None, style_exemplar_image=None,
style_guide_scale_text=None, style_guide_scale_text=None,
@@ -7,7 +7,6 @@ import os
import warnings import warnings
import torch import torch
from scepter.modules.utils.file_system import FS from scepter.modules.utils.file_system import FS
try: try:
@@ -4,14 +4,13 @@
import torch import torch
import torch.nn as nn import torch.nn as nn
from einops import repeat from einops import repeat
from torch.utils.checkpoint import checkpoint
from scepter.modules.model.backbone.autoencoder.ae_utils import ( from scepter.modules.model.backbone.autoencoder.ae_utils import (
XFORMERS_IS_AVAILBLE, AttnBlock, Downsample, MemoryEfficientAttention, XFORMERS_IS_AVAILBLE, AttnBlock, Downsample, MemoryEfficientAttention,
Normalize, ResnetBlock, Upsample, nonlinearity) Normalize, ResnetBlock, Upsample, nonlinearity)
from scepter.modules.model.base_model import BaseModel from scepter.modules.model.base_model import BaseModel
from scepter.modules.model.registry import BACKBONES from scepter.modules.model.registry import BACKBONES
from scepter.modules.utils.config import dict_to_yaml from scepter.modules.utils.config import dict_to_yaml
from torch.utils.checkpoint import checkpoint
@BACKBONES.register_class() @BACKBONES.register_class()
@@ -1,7 +1,6 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Copyright (c) Alibaba, Inc. and its affiliates. # Copyright (c) Alibaba, Inc. and its affiliates.
import torch.nn as nn import torch.nn as nn
from scepter.modules.model.base_model import BaseModel from scepter.modules.model.base_model import BaseModel
from scepter.modules.model.registry import BACKBONES from scepter.modules.model.registry import BACKBONES
from scepter.modules.utils.config import dict_to_yaml from scepter.modules.utils.config import dict_to_yaml
@@ -3,14 +3,14 @@
from collections import OrderedDict from collections import OrderedDict
from typing import List, Tuple, Union from typing import List, Tuple, Union
from pkg_resources import packaging
import numpy as np import numpy as np
import torch import torch
import torch.nn.functional as F import torch.nn.functional as F
from pkg_resources import packaging
from torch import nn
from scepter.modules.model.backbone.image.utils.simple_tokenizer import \ from scepter.modules.model.backbone.image.utils.simple_tokenizer import \
SimpleTokenizer as _Tokenizer SimpleTokenizer as _Tokenizer
from torch import nn
_tokenizer = _Tokenizer() _tokenizer = _Tokenizer()
@@ -2,7 +2,6 @@
# Copyright (c) Alibaba, Inc. and its affiliates. # Copyright (c) Alibaba, Inc. and its affiliates.
import torch import torch
import torch.nn as nn import torch.nn as nn
from scepter.modules.model.backbone.image.utils.vit import ( from scepter.modules.model.backbone.image.utils.vit import (
MULTI_HEAD_VIT_MODEL, VIT, VIT_MODEL, MULTI_HEAD_VIT_MODEL_Split) MULTI_HEAD_VIT_MODEL, VIT, VIT_MODEL, MULTI_HEAD_VIT_MODEL_Split)
from scepter.modules.model.base_model import BaseModel from scepter.modules.model.base_model import BaseModel
@@ -6,7 +6,6 @@ from collections import OrderedDict
import torch import torch
import torch.nn as nn import torch.nn as nn
from scepter.modules.model.backbone.unet.unet_utils import ( from scepter.modules.model.backbone.unet.unet_utils import (
BasicTransformerBlock, Downsample, ResBlock, SpatialTransformer, BasicTransformerBlock, Downsample, ResBlock, SpatialTransformer,
SpatialTransformerV2, Timestep, TimestepEmbedSequential, SpatialTransformerV2, Timestep, TimestepEmbedSequential,
@@ -6,16 +6,16 @@ import warnings
from abc import abstractmethod from abc import abstractmethod
from importlib import find_loader from importlib import find_loader
from packaging import version
import numpy as np import numpy as np
import torch import torch
import torch.nn as nn import torch.nn as nn
import torch.nn.functional as F import torch.nn.functional as F
import torchvision.transforms.functional as TF import torchvision.transforms.functional as TF
from einops import rearrange, repeat from einops import rearrange, repeat
from packaging import version
from torch.utils.checkpoint import checkpoint
from scepter.modules.model.utils.basic_utils import default, exists from scepter.modules.model.utils.basic_utils import default, exists
from torch.utils.checkpoint import checkpoint
try: try:
import xformers import xformers
@@ -2,7 +2,6 @@
# Copyright (c) Alibaba, Inc. and its affiliates. # Copyright (c) Alibaba, Inc. and its affiliates.
import torch.nn as nn import torch.nn as nn
from scepter.modules.model.backbone.video.bricks.base_branch import BaseBranch from scepter.modules.model.backbone.video.bricks.base_branch import BaseBranch
from scepter.modules.model.registry import BRICKS from scepter.modules.model.registry import BRICKS
from scepter.modules.utils.config import Config, dict_to_yaml from scepter.modules.utils.config import Config, dict_to_yaml
@@ -5,7 +5,6 @@
import torch import torch
import torch.nn as nn import torch.nn as nn
import torch.nn.functional as F import torch.nn.functional as F
from scepter.modules.model.backbone.video.bricks.visualize_3d_module import \ from scepter.modules.model.backbone.video.bricks.visualize_3d_module import \
Visualize3DModule Visualize3DModule
from scepter.modules.model.registry import BRICKS from scepter.modules.model.registry import BRICKS
@@ -2,7 +2,6 @@
# Copyright (c) Alibaba, Inc. and its affiliates. # Copyright (c) Alibaba, Inc. and its affiliates.
import torch.nn as nn import torch.nn as nn
from scepter.modules.model.backbone.video.bricks.base_branch import BaseBranch from scepter.modules.model.backbone.video.bricks.base_branch import BaseBranch
from scepter.modules.model.registry import BRICKS from scepter.modules.model.registry import BRICKS
from scepter.modules.utils.config import Config, dict_to_yaml from scepter.modules.utils.config import Config, dict_to_yaml
@@ -4,7 +4,6 @@
import math import math
import torch.nn as nn import torch.nn as nn
from scepter.modules.model.backbone.video.bricks.base_branch import BaseBranch from scepter.modules.model.backbone.video.bricks.base_branch import BaseBranch
from scepter.modules.model.registry import BRICKS from scepter.modules.model.registry import BRICKS
from scepter.modules.utils.config import Config, dict_to_yaml from scepter.modules.utils.config import Config, dict_to_yaml
@@ -2,7 +2,6 @@
# Copyright (c) Alibaba, Inc. and its affiliates. # Copyright (c) Alibaba, Inc. and its affiliates.
import torch.nn as nn import torch.nn as nn
from scepter.modules.model.backbone.video.bricks.visualize_3d_module import \ from scepter.modules.model.backbone.video.bricks.visualize_3d_module import \
Visualize3DModule Visualize3DModule
from scepter.modules.model.registry import STEMS from scepter.modules.model.registry import STEMS
@@ -2,7 +2,6 @@
# Copyright (c) Alibaba, Inc. and its affiliates. # Copyright (c) Alibaba, Inc. and its affiliates.
import torch.nn as nn import torch.nn as nn
from scepter.modules.model.backbone.video.bricks.visualize_3d_module import \ from scepter.modules.model.backbone.video.bricks.visualize_3d_module import \
Visualize3DModule Visualize3DModule
from scepter.modules.model.registry import STEMS from scepter.modules.model.registry import STEMS
@@ -2,7 +2,6 @@
# Copyright (c) Alibaba, Inc. and its affiliates. # Copyright (c) Alibaba, Inc. and its affiliates.
import torch.nn as nn import torch.nn as nn
from scepter.modules.model.backbone.video.bricks.stems.base_3d_stem import \ from scepter.modules.model.backbone.video.bricks.stems.base_3d_stem import \
Base3DStem Base3DStem
from scepter.modules.model.registry import STEMS from scepter.modules.model.registry import STEMS
@@ -2,7 +2,6 @@
# Copyright (c) Alibaba, Inc. and its affiliates. # Copyright (c) Alibaba, Inc. and its affiliates.
import torch.nn as nn import torch.nn as nn
from scepter.modules.model.backbone.video.bricks.visualize_3d_module import \ from scepter.modules.model.backbone.video.bricks.visualize_3d_module import \
Visualize3DModule Visualize3DModule
from scepter.modules.model.registry import STEMS from scepter.modules.model.registry import STEMS
@@ -4,7 +4,6 @@
import math import math
import torch.nn as nn import torch.nn as nn
from scepter.modules.model.backbone.video.bricks.stems.base_3d_stem import \ from scepter.modules.model.backbone.video.bricks.stems.base_3d_stem import \
Base3DStem Base3DStem
from scepter.modules.model.registry import STEMS from scepter.modules.model.registry import STEMS
@@ -8,7 +8,6 @@ from itertools import repeat
import torch import torch
import torch.nn as nn import torch.nn as nn
import torch.nn.functional as F import torch.nn.functional as F
from scepter.modules.model.backbone.video.bricks.base_branch import BaseBranch from scepter.modules.model.backbone.video.bricks.base_branch import BaseBranch
from scepter.modules.model.registry import BRICKS from scepter.modules.model.registry import BRICKS
from scepter.modules.utils.config import Config, dict_to_yaml from scepter.modules.utils.config import Config, dict_to_yaml
@@ -22,7 +22,6 @@ import torch
import torch.nn as nn import torch.nn as nn
import torch.nn.functional as F import torch.nn.functional as F
from einops import rearrange, repeat from einops import rearrange, repeat
from scepter.modules.model.backbone.video.bricks.visualize_3d_module import \ from scepter.modules.model.backbone.video.bricks.visualize_3d_module import \
Visualize3DModule Visualize3DModule
from scepter.modules.model.registry import BRICKS from scepter.modules.model.registry import BRICKS
@@ -4,7 +4,6 @@
import os import os
import torch.nn as nn import torch.nn as nn
from scepter.modules.utils.config import dict_to_yaml from scepter.modules.utils.config import dict_to_yaml
@@ -2,7 +2,6 @@
# Copyright (c) Alibaba, Inc. and its affiliates. # Copyright (c) Alibaba, Inc. and its affiliates.
import torch.nn as nn import torch.nn as nn
from scepter.modules.model.backbone.video.bricks.non_local import NonLocal from scepter.modules.model.backbone.video.bricks.non_local import NonLocal
from scepter.modules.model.backbone.video.init_helper import \ from scepter.modules.model.backbone.video.init_helper import \
_init_convnet_weights _init_convnet_weights
@@ -33,7 +33,6 @@ import torch
import torch.nn as nn import torch.nn as nn
import torch.nn.functional import torch.nn.functional
from einops import rearrange from einops import rearrange
from scepter.modules.model.backbone.video.init_helper import ( from scepter.modules.model.backbone.video.init_helper import (
_init_transformer_weights, trunc_normal_) _init_transformer_weights, trunc_normal_)
from scepter.modules.model.registry import BACKBONES, BRICKS, STEMS from scepter.modules.model.registry import BACKBONES, BRICKS, STEMS
-1
View File
@@ -3,7 +3,6 @@
import copy import copy
import torch.nn as nn import torch.nn as nn
from scepter.modules.utils.config import dict_to_yaml from scepter.modules.utils.config import dict_to_yaml
from scepter.modules.utils.distribute import gather_data, we from scepter.modules.utils.distribute import gather_data, we
from scepter.modules.utils.probe import (ProbeData, merge_gathered_probe, from scepter.modules.utils.probe import (ProbeData, merge_gathered_probe,
+1 -2
View File
@@ -11,8 +11,6 @@ import torch
import torch.nn as nn import torch.nn as nn
import torch.utils.dlpack import torch.utils.dlpack
from einops import rearrange from einops import rearrange
from torch.utils.checkpoint import checkpoint
# to check # to check
from scepter.modules.model.backbone.unet.unet_utils import Timestep from scepter.modules.model.backbone.unet.unet_utils import Timestep
from scepter.modules.model.registry import EMBEDDERS from scepter.modules.model.registry import EMBEDDERS
@@ -20,6 +18,7 @@ from scepter.modules.model.utils.basic_utils import expand_dims_like
from scepter.modules.utils.config import dict_to_yaml from scepter.modules.utils.config import dict_to_yaml
from scepter.modules.utils.distribute import we from scepter.modules.utils.distribute import we
from scepter.modules.utils.file_system import FS from scepter.modules.utils.file_system import FS
from torch.utils.checkpoint import checkpoint
from .base_embedder import BaseEmbedder from .base_embedder import BaseEmbedder
from .resampler import Resampler from .resampler import Resampler
@@ -7,11 +7,10 @@ from collections import OrderedDict
import torch import torch
import torch.nn as nn import torch.nn as nn
import torch.nn.functional as F import torch.nn.functional as F
from torch.nn.parameter import Parameter
from scepter.modules.model.base_model import BaseModel from scepter.modules.model.base_model import BaseModel
from scepter.modules.model.registry import HEADS from scepter.modules.model.registry import HEADS
from scepter.modules.utils.config import dict_to_yaml from scepter.modules.utils.config import dict_to_yaml
from torch.nn.parameter import Parameter
@HEADS.register_class() @HEADS.register_class()
+2 -2
View File
@@ -1,12 +1,12 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Copyright (c) Alibaba, Inc. and its affiliates. # Copyright (c) Alibaba, Inc. and its affiliates.
import torch.nn as nn
from packaging import version from packaging import version
from torch.version import __version__ as torch_version
import torch.nn as nn
from scepter.modules.model.registry import LOSSES from scepter.modules.model.registry import LOSSES
from scepter.modules.utils.config import dict_to_yaml from scepter.modules.utils.config import dict_to_yaml
from torch.version import __version__ as torch_version
@LOSSES.register_class() @LOSSES.register_class()
+1 -2
View File
@@ -1,10 +1,9 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Copyright (c) Alibaba, Inc. and its affiliates. # Copyright (c) Alibaba, Inc. and its affiliates.
import torch import torch
from torch import nn
from scepter.modules.model.registry import LOSSES from scepter.modules.model.registry import LOSSES
from scepter.modules.utils.config import dict_to_yaml from scepter.modules.utils.config import dict_to_yaml
from torch import nn
@LOSSES.register_class() @LOSSES.register_class()
@@ -5,7 +5,6 @@ from collections import OrderedDict
import numpy as np import numpy as np
import torch import torch
from scepter.modules.model.metric.base_metric import BaseMetric from scepter.modules.model.metric.base_metric import BaseMetric
from scepter.modules.model.metric.registry import METRICS from scepter.modules.model.metric.registry import METRICS
from scepter.modules.utils.config import dict_to_yaml from scepter.modules.utils.config import dict_to_yaml
@@ -2,7 +2,6 @@
# Copyright (c) Alibaba, Inc. and its affiliates. # Copyright (c) Alibaba, Inc. and its affiliates.
import torch.nn as nn import torch.nn as nn
from scepter.modules.model.base_model import BaseModel from scepter.modules.model.base_model import BaseModel
from scepter.modules.model.registry import NECKS from scepter.modules.model.registry import NECKS
from scepter.modules.utils.config import dict_to_yaml from scepter.modules.utils.config import dict_to_yaml
@@ -5,7 +5,6 @@ from collections import OrderedDict
import numpy as np import numpy as np
import torch import torch
from scepter.modules.model.network.train_module import TrainModule from scepter.modules.model.network.train_module import TrainModule
from scepter.modules.model.registry import BACKBONES, LOSSES, MODELS from scepter.modules.model.registry import BACKBONES, LOSSES, MODELS
from scepter.modules.utils.config import dict_to_yaml from scepter.modules.utils.config import dict_to_yaml
+2 -3
View File
@@ -1,17 +1,16 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Copyright 2021 Alibaba Group Holding Limited. All Rights Reserved. # Copyright (c) Alibaba, Inc. and its affiliates.
from collections import OrderedDict from collections import OrderedDict
from functools import partial from functools import partial
import torch.nn as nn import torch.nn as nn
from torch.nn.functional import sigmoid, softmax
from scepter.modules.model.metric.registry import METRICS from scepter.modules.model.metric.registry import METRICS
from scepter.modules.model.network.train_module import TrainModule from scepter.modules.model.network.train_module import TrainModule
from scepter.modules.model.registry import (BACKBONES, HEADS, LOSSES, MODELS, from scepter.modules.model.registry import (BACKBONES, HEADS, LOSSES, MODELS,
NECKS) NECKS)
from scepter.modules.utils.config import Config, dict_to_yaml from scepter.modules.utils.config import Config, dict_to_yaml
from torch.nn.functional import sigmoid, softmax
_ACTIVATE_MAPPER = {'softmax': partial(softmax, dim=1), 'sigmoid': sigmoid} _ACTIVATE_MAPPER = {'softmax': partial(softmax, dim=1), 'sigmoid': sigmoid}
@@ -10,10 +10,12 @@ import random
import torch import torch
from .schedules import karras_schedule from .schedules import karras_schedule
from .solvers import (sample_ddim, sample_dpm_2, sample_dpm_2_ancestral, from .solvers import (
sample_dpmpp_2m, sample_dpmpp_2m_sde, sample_ddim, sample_dpm_2, sample_dpm_2_ancestral, sample_dpmpp_2m,
sample_dpmpp_2s_ancestral, sample_dpmpp_sde, sample_dpmpp_2m_sde, sample_dpmpp_2m_sde_lcm, sample_dpmpp_2s_ancestral,
sample_euler, sample_euler_ancestral, sample_heun) sample_dpmpp_sde, sample_euler, sample_euler_ancestral, sample_heun,
sample_onestep, stochastic_iterative_sampler,
stochastic_iterative_sampler2, stochastic_iterative_sampler3)
__all__ = ['GaussianDiffusion'] __all__ = ['GaussianDiffusion']
@@ -427,7 +429,12 @@ class GaussianDiffusion(object):
'dpmpp_2s_ancestral_karras': sample_dpmpp_2s_ancestral, 'dpmpp_2s_ancestral_karras': sample_dpmpp_2s_ancestral,
'dpmpp_2m_karras': sample_dpmpp_2m, 'dpmpp_2m_karras': sample_dpmpp_2m,
'dpmpp_sde_karras': sample_dpmpp_sde, 'dpmpp_sde_karras': sample_dpmpp_sde,
'dpmpp_2m_sde_karras': sample_dpmpp_2m_sde 'dpmpp_2m_sde_karras': sample_dpmpp_2m_sde,
'onestep': sample_onestep,
'multistep': stochastic_iterative_sampler,
'multistep2': stochastic_iterative_sampler2,
'multistep3': stochastic_iterative_sampler3,
'dpmpp_2m_sde_lcm': sample_dpmpp_2m_sde_lcm,
}[solver] }[solver]
# options # options
@@ -620,6 +627,44 @@ class GaussianDiffusion(object):
| torch.isinf(log_sigma)] = float('inf') | torch.isinf(log_sigma)] = float('inf')
return log_sigma.exp() return log_sigma.exp()
@torch.no_grad()
def stochastic_encode(self, x0, t, steps):
# fast, but does not allow for exact reconstruction
# t serves as an index to gather the correct alphas
t_max = None
t_min = None
# discretization method
discretization = 'trailing' if self.prediction_type == 'v' else 'leading'
# timesteps
if isinstance(steps, int):
t_max = self.num_timesteps - 1 if t_max is None else t_max
t_min = 0 if t_min is None else t_min
steps = discretize_timesteps(t_max, t_min, steps, discretization)
steps = torch.as_tensor(steps).round().long().flip(0).to(x0.device)
# steps = torch.as_tensor(steps).round().long().to(x0.device)
# self.alphas_bar = torch.cumprod(1 - self.sigmas ** 2, dim=0)
# print('sigma: ', self.sigmas, len(self.sigmas))
# print('alpha_bar: ', self.alphas_bar, len(self.alphas_bar))
# print('steps: ', steps, len(steps))
# sqrt_alphas_cumprod = torch.sqrt(self.alphas_bar).to(x0.device)[steps]
# sqrt_one_minus_alphas_cumprod = torch.sqrt(1 - self.alphas_bar).to(x0.device)[steps]
sqrt_alphas_cumprod = self.alphas.to(x0.device)[steps]
sqrt_one_minus_alphas_cumprod = self.sigmas.to(x0.device)[steps]
# print('sigma: ', self.sigmas, len(self.sigmas))
# print('alpha: ', self.alphas, len(self.alphas))
# print('steps: ', steps, len(steps))
noise = torch.randn_like(x0)
return (
extract_into_tensor(sqrt_alphas_cumprod, t, x0.shape) * x0 +
extract_into_tensor(sqrt_one_minus_alphas_cumprod, t, x0.shape) *
noise)
def extract_into_tensor(a, t, x_shape): def extract_into_tensor(a, t, x_shape):
b, *_ = t.shape b, *_ = t.shape
@@ -642,3 +687,19 @@ def discretize_timesteps(t_max, t_min, steps, discretization):
raise NotImplementedError( raise NotImplementedError(
f'{discretization} discretization not implemented') f'{discretization} discretization not implemented')
return steps.clamp_(t_min, t_max) return steps.clamp_(t_min, t_max)
def get_scalings_for_boundary_condition(sigma):
sigma_data = 0.5
c_skip = (1 -
sigma**2)**0.5 * sigma_data**2 / (sigma**2 +
(1 - sigma**2) * sigma_data**2)
c_out = (sigma * sigma_data / (sigma**2 +
(1 - sigma**2) * sigma_data**2)**0.5)
return c_skip, c_out
def v_to_x0(v, t, x_t, diffusion):
sigmas = _i(diffusion.sigmas, t, v)
alphas = _i(diffusion.alphas, t, v)
return alphas * x_t - sigmas * v
@@ -12,13 +12,17 @@ q(x_t | x_0) = N(x_t | alpha_t x_0, sigma_t^2 I),
where 0 <= sigma_t <= 1 and alpha_t^2 = 1 - sigma_t^2. where 0 <= sigma_t <= 1 and alpha_t^2 = 1 - sigma_t^2.
""" """
import torch
from tqdm.auto import trange from tqdm.auto import trange
import torch
__all__ = [ __all__ = [
'sample_euler', 'sample_euler_ancestral', 'sample_heun', 'sample_dpm_2', 'sample_euler', 'sample_euler_ancestral', 'sample_heun', 'sample_dpm_2',
'sample_dpm_2_ancestral', 'sample_dpmpp_2s_ancestral', 'sample_dpmpp_sde', 'sample_dpm_2_ancestral', 'sample_dpmpp_2s_ancestral', 'sample_dpmpp_sde',
'sample_dpmpp_2m', 'sample_dpmpp_2m_sde', 'sample_ddim' 'sample_dpmpp_2m', 'sample_dpmpp_2m_sde', 'sample_ddim',
'sample_dpmpp_2m_sde_lcm', 'sample_onestep',
'stochastic_iterative_sampler', 'stochastic_iterative_sampler2',
'stochastic_iterative_sampler3'
] ]
# -------------------- variation exploding (VE) solver --------------------# # -------------------- variation exploding (VE) solver --------------------#
@@ -630,3 +634,183 @@ def sample_img2img_euler_ancestral(noise,
if sigmas[i + 1] > 0: if sigmas[i + 1] > 0:
x = x + torch.randn_like(x) * s_noise * sigma_up x = x + torch.randn_like(x) * s_noise * sigma_up
return x return x
# --------- LCM ------------
@torch.no_grad()
def sample_dpmpp_2m_sde_lcm(noise,
model,
sigmas,
eta=1.,
s_noise=1.,
solver_type='midpoint',
show_progress=True,
total_sample_steps=50,
sample_steps=5,
**kwargs):
"""
DPM-Solver++ (2M) SDE.
"""
assert solver_type in {'heun', 'midpoint'}
dm_steps = sample_steps
x = noise * (sigmas[-dm_steps - 1]**2 + 1)**0.5
sigma_min, sigma_max = sigmas[sigmas > 0].min(), sigmas[
sigmas < float('inf')].max()
noise_sampler = BrownianTreeNoiseSampler(x, sigma_min, sigma_max)
old_denoised = None
h_last = None
for i in trange(len(sigmas) - dm_steps - 1,
len(sigmas) - 1,
disable=not show_progress):
if sigmas[i] == float('inf'):
# Euler method
denoised = model(noise, sigmas[i])
x = denoised + sigmas[i + 1] * noise
else:
_, c_in = get_scalings(sigmas[i])
denoised = model(x * c_in, sigmas[i])
if sigmas[i + 1] == 0:
# Denoising step
x = denoised
else:
# DPM-Solver++(2M) SDE
t, s = -sigmas[i].log(), -sigmas[i + 1].log()
h = s - t
eta_h = eta * h
x = sigmas[i + 1] / sigmas[i] * (-eta_h).exp() * x + \
(-h - eta_h).expm1().neg() * denoised
if old_denoised is not None:
r = h_last / h
if solver_type == 'heun':
x = x + ((-h - eta_h).expm1().neg() / (-h - eta_h) + 1) * \
(1 / r) * (denoised - old_denoised)
elif solver_type == 'midpoint':
x = x + 0.5 * (-h - eta_h).expm1().neg() * \
(1 / r) * (denoised - old_denoised)
x = x + noise_sampler(sigmas[i], sigmas[i + 1]) * sigmas[
i + 1] * (-2 * eta_h).expm1().neg().sqrt() * s_noise
old_denoised = denoised
h_last = h
return x
@torch.no_grad()
def sample_onestep(noise, model, sigmas, show_progress=True, **kwargs):
"""
CM one step solver.
"""
x = noise
denoised = model(x, sigmas[0])
return denoised
@torch.no_grad()
def stochastic_iterative_sampler(noise,
model,
sigmas,
show_progress=True,
**kwargs):
"""
CM multiple steps solver.
"""
x = noise
sigmas_vp = (sigmas**2 / (1 + sigmas**2))**0.5
sigmas_vp[sigmas == float('inf')] = 1.
for i in trange(len(sigmas) - 1, disable=not show_progress):
denoised = model(x, sigmas[i])
sigma = sigmas_vp[i + 1]
alpha = torch.sqrt(1 - sigma**2)
noises = torch.randn_like(x)
x = alpha * denoised + sigma * noises
return x
@torch.no_grad()
def stochastic_iterative_sampler2(noise,
model,
sigmas,
show_progress=True,
repeat=1,
ema=0.05,
**kwargs):
"""
CM multiple steps solver.
"""
# denoised_s = []
# for _ in range(repeat):
# noise = torch.randn_like(noise)
# denoised_s.append(model(noise, sigmas[0]))
# denoised_s = torch.cat(denoised_s, dim = 0)
# denoised = torch.mean(denoised_s, dim=0, keepdim=True)
denoised = model(noise, sigmas[0])
denoised_ema = denoised
sigmas_vp = (sigmas**2 / (1 + sigmas**2))**0.5
sigmas_vp[sigmas == float('inf')] = 1.
for i in trange(1, len(sigmas) - 1, disable=not show_progress):
sigma = sigmas_vp[i]
alpha = torch.sqrt(1 - sigma**2)
noise = torch.randn_like(noise)
x = alpha * denoised + sigma * noise
denoised = model(x, sigmas[i])
denoised_ema = ema * denoised_ema + (1.0 - ema) * denoised
return denoised_ema
@torch.no_grad()
def stochastic_iterative_sampler3(noise,
model,
sigmas,
show_progress=True,
repeat=1,
solver_eta=0.2,
solver_ema=0.05,
**kwargs):
"""
CM multiple steps solver.
"""
eta = solver_eta
ema = solver_ema
# denoised_s = []
# for _ in range(repeat):
# noise = torch.randn_like(noise)
# denoised_s.append(model(noise, sigmas[0]))
# denoised_s = torch.cat(denoised_s, dim = 0)
# denoised = torch.mean(denoised_s, dim=0, keepdim=True)
denoised = model(noise, sigmas[0])
denoised_ema = denoised
eta = float(eta)
sigmas_vp = (sigmas**2 / (1 + sigmas**2))**0.5
sigmas_vp[sigmas == float('inf')] = 1.
noises = [
noise.clone(),
]
for i in trange(1, len(sigmas) - 1, disable=not show_progress):
sigma = sigmas_vp[i]
alpha = torch.sqrt(1 - sigma**2)
# x = alpha * denoised + sigma * torch.randn_like(noise)
# x = alpha * denoised + sigma * (eta * noise + (1 - eta ** 2) ** 0.5 * torch.randn_like(noise))
# eta = 0.2*sigma / (sigma + 1.0)
# noise = eta * noise + (1 - eta ** 2) ** 0.5 * torch.randn_like(noise)
noise2 = 0
for n in noises:
noise2 += eta * n
noise2 += (1 - (eta * len(noises))**2)**0.5 * torch.randn_like(noise)
noises.append(noise2.clone())
# noise = torch.randn_like(noise)
x = alpha * denoised + sigma * noise2
denoised = model(x, sigmas[i])
denoised_ema = ema * denoised_ema + (1.0 - ema) * denoised
return denoised_ema
@@ -1,6 +1,7 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Copyright (c) Alibaba, Inc. and its affiliates. # Copyright (c) Alibaba, Inc. and its affiliates.
from scepter.modules.model.network.ldm.ldm import LatentDiffusion from scepter.modules.model.network.ldm.ldm import LatentDiffusion
from scepter.modules.model.network.ldm.ldm_edit import LatentDiffusionEdit
from scepter.modules.model.network.ldm.ldm_sce import ( from scepter.modules.model.network.ldm.ldm_sce import (
LatentDiffusionSCEControl, LatentDiffusionSCETuning, LatentDiffusionSCEControl, LatentDiffusionSCETuning,
LatentDiffusionXLSCEControl, LatentDiffusionXLSCETuning) LatentDiffusionXLSCEControl, LatentDiffusionXLSCETuning)

Some files were not shown because too many files have changed in this diff Show More