Text-to-Image
Diffusers
sd3
sd3-diffusers
simpletuner
Not-For-All-Audiences
lora
template:sd-lora
lycoris
license: other | |
base_model: "stabilityai/stable-diffusion-3.5-large" | |
tags: | |
- sd3 | |
- sd3-diffusers | |
- text-to-image | |
- diffusers | |
- simpletuner | |
- not-for-all-audiences | |
- lora | |
- template:sd-lora | |
- lycoris | |
inference: true | |
widget: | |
- text: 'unconditional (blank prompt)' | |
parameters: | |
negative_prompt: 'blurry, cropped, ugly' | |
output: | |
url: ./assets/image_0_0.png | |
- text: 'emaSde3Ver1, a high-resolution photograph featuring a young caucasian woman with long, wavy, platinum blonde hair cascading over her shoulders, she has a slender yet curvaceous physique with prominent breasts and a small waist, her skin is fair and smooth, with a slight blush on her cheeks, giving her a sultry expression, she is wearing a sheer, black fishnet bodysuit that accentuates her curves, with her back to the viewer, revealing her lower back and buttocks, the bodice is made of a soft, textured fabric that clings to her body, emphasizing her curves and the texture of the fishnet fabric, she also wears a black choker around her neck, adding a touch of sensuality to her attire, the background features a blurred, out-of-focus view of a cityscape with distant mountains and a clear blue sky, suggesting an outdoor setting, the balcony she is standing on has wooden railings and a wooden railing, adding to the sense of a balcony or terrace, the overall mood of the photograph is sensual and intimate, emphasizing the subject''s allure and beauty' | |
parameters: | |
negative_prompt: 'blurry, cropped, ugly' | |
output: | |
url: ./assets/image_1_0.png | |
# sd35-training | |
This is a LyCORIS adapter derived from [stabilityai/stable-diffusion-3.5-large](https://huggingface.co/stabilityai/stable-diffusion-3.5-large). | |
The main validation prompt used during training was: | |
``` | |
emaSde3Ver1, a high-resolution photograph featuring a young caucasian woman with long, wavy, platinum blonde hair cascading over her shoulders, she has a slender yet curvaceous physique with prominent breasts and a small waist, her skin is fair and smooth, with a slight blush on her cheeks, giving her a sultry expression, she is wearing a sheer, black fishnet bodysuit that accentuates her curves, with her back to the viewer, revealing her lower back and buttocks, the bodice is made of a soft, textured fabric that clings to her body, emphasizing her curves and the texture of the fishnet fabric, she also wears a black choker around her neck, adding a touch of sensuality to her attire, the background features a blurred, out-of-focus view of a cityscape with distant mountains and a clear blue sky, suggesting an outdoor setting, the balcony she is standing on has wooden railings and a wooden railing, adding to the sense of a balcony or terrace, the overall mood of the photograph is sensual and intimate, emphasizing the subject's allure and beauty | |
``` | |
## Validation settings | |
- CFG: `5.0` | |
- CFG Rescale: `0.0` | |
- Steps: `30` | |
- Sampler: `None` | |
- Seed: `42` | |
- Resolution: `1024` | |
Note: The validation settings are not necessarily the same as the [training settings](#training-settings). | |
You can find some example images in the following gallery: | |
<Gallery /> | |
The text encoder **was not** trained. | |
You may reuse the base model text encoder for inference. | |
## Training settings | |
- Training epochs: 135 | |
- Training steps: 3400 | |
- Learning rate: 0.0001 | |
- Max grad norm: 0.01 | |
- Effective batch size: 2 | |
- Micro-batch size: 2 | |
- Gradient accumulation steps: 1 | |
- Number of GPUs: 1 | |
- Prediction type: flow-matching (extra parameters=['shift=3']) | |
- Rescaled betas zero SNR: False | |
- Optimizer: adamw_bf16 | |
- Precision: Pure BF16 | |
- Quantised: Yes: int8-quanto | |
- Xformers: Not used | |
- LyCORIS Config: | |
```json | |
{ | |
"bypass_mode": true, | |
"algo": "lokr", | |
"multiplier": 1.0, | |
"full_matrix": true, | |
"linear_dim": 10000, | |
"linear_alpha": 1, | |
"factor": 12, | |
"apply_preset": { | |
"target_module": [ | |
"Attention" | |
], | |
"module_algo_map": { | |
"Attention": { | |
"factor": 6 | |
} | |
} | |
} | |
} | |
``` | |
## Datasets | |
### emaSde3Ver1 | |
- Repeats: 0 | |
- Total number of images: 50 | |
- Total number of aspect buckets: 1 | |
- Resolution: 1.0 megapixels | |
- Cropped: true | |
- Crop style: center | |
- Crop aspect: square | |
- Used for regularisation data: No | |
## Inference | |
```python | |
import torch | |
from diffusers import DiffusionPipeline | |
from lycoris import create_lycoris_from_weights | |
def download_adapter(repo_id: str): | |
import os | |
from huggingface_hub import hf_hub_download | |
adapter_filename = "pytorch_lora_weights.safetensors" | |
cache_dir = os.environ.get('HF_PATH', os.path.expanduser('~/.cache/huggingface/hub/models')) | |
cleaned_adapter_path = repo_id.replace("/", "_").replace("\\", "_").replace(":", "_") | |
path_to_adapter = os.path.join(cache_dir, cleaned_adapter_path) | |
path_to_adapter_file = os.path.join(path_to_adapter, adapter_filename) | |
os.makedirs(path_to_adapter, exist_ok=True) | |
hf_hub_download( | |
repo_id=repo_id, filename=adapter_filename, local_dir=path_to_adapter | |
) | |
return path_to_adapter_file | |
model_id = 'stabilityai/stable-diffusion-3.5-large' | |
adapter_repo_id = 'alexnvo/sd35-training' | |
adapter_filename = 'pytorch_lora_weights.safetensors' | |
adapter_file_path = download_adapter(repo_id=adapter_repo_id) | |
pipeline = DiffusionPipeline.from_pretrained(model_id, torch_dtype=torch.bfloat16) # loading directly in bf16 | |
lora_scale = 1.0 | |
wrapper, _ = create_lycoris_from_weights(lora_scale, adapter_file_path, pipeline.transformer) | |
wrapper.merge_to() | |
prompt = "emaSde3Ver1, a high-resolution photograph featuring a young caucasian woman with long, wavy, platinum blonde hair cascading over her shoulders, she has a slender yet curvaceous physique with prominent breasts and a small waist, her skin is fair and smooth, with a slight blush on her cheeks, giving her a sultry expression, she is wearing a sheer, black fishnet bodysuit that accentuates her curves, with her back to the viewer, revealing her lower back and buttocks, the bodice is made of a soft, textured fabric that clings to her body, emphasizing her curves and the texture of the fishnet fabric, she also wears a black choker around her neck, adding a touch of sensuality to her attire, the background features a blurred, out-of-focus view of a cityscape with distant mountains and a clear blue sky, suggesting an outdoor setting, the balcony she is standing on has wooden railings and a wooden railing, adding to the sense of a balcony or terrace, the overall mood of the photograph is sensual and intimate, emphasizing the subject's allure and beauty" | |
negative_prompt = 'blurry, cropped, ugly' | |
## Optional: quantise the model to save on vram. | |
## Note: The model was quantised during training, and so it is recommended to do the same during inference time. | |
from optimum.quanto import quantize, freeze, qint8 | |
quantize(pipeline.transformer, weights=qint8) | |
freeze(pipeline.transformer) | |
pipeline.to('cuda' if torch.cuda.is_available() else 'mps' if torch.backends.mps.is_available() else 'cpu') # the pipeline is already in its target precision level | |
image = pipeline( | |
prompt=prompt, | |
negative_prompt=negative_prompt, | |
num_inference_steps=30, | |
generator=torch.Generator(device='cuda' if torch.cuda.is_available() else 'mps' if torch.backends.mps.is_available() else 'cpu').manual_seed(1641421826), | |
width=1024, | |
height=1024, | |
guidance_scale=5.0, | |
).images[0] | |
image.save("output.png", format="PNG") | |
``` | |