Configuration and Utilities
This page documents the configuration and utility APIs for MarkDiffusion.
DiffusionConfig
The DiffusionConfig class configures the diffusion model parameters for watermarking.
- class utils.diffusion_config.DiffusionConfig
Configuration class for diffusion model settings.
- Parameters:
scheduler – Diffusion scheduler (e.g., DPMSolverMultistepScheduler)
pipe – Diffusion pipeline (e.g., StableDiffusionPipeline)
device – Device to run on (‘cuda’ or ‘cpu’)
image_size – Size of generated images (tuple, e.g., (512, 512))
num_inference_steps – Number of denoising steps (default: 50)
guidance_scale – Classifier-free guidance scale (default: 7.5)
gen_seed – Random seed for generation (default: 42)
inversion_type – Type of inversion (‘ddim’ or ‘exact’, default: ‘ddim’)
num_frames – Number of frames for video (optional, for video watermarks)
fps – Frames per second for video (optional, for video watermarks)
Example Usage:
from markdiffusion.utils.diffusion_config import DiffusionConfig
from diffusers import StableDiffusionPipeline, DPMSolverMultistepScheduler
import torch
# Initialize diffusion components
device = 'cuda' if torch.cuda.is_available() else 'cpu'
scheduler = DPMSolverMultistepScheduler.from_pretrained(
"model_path", subfolder="scheduler"
)
pipe = StableDiffusionPipeline.from_pretrained(
"model_path", scheduler=scheduler
).to(device)
# Create configuration
diffusion_config = DiffusionConfig(
scheduler=scheduler,
pipe=pipe,
device=device,
image_size=(512, 512),
num_inference_steps=50,
guidance_scale=7.5,
gen_seed=42,
inversion_type="ddim"
)
For Video Watermarks:
# Video configuration
video_diffusion_config = DiffusionConfig(
scheduler=scheduler,
pipe=video_pipe,
device=device,
image_size=(512, 512),
num_frames=16,
fps=8,
num_inference_steps=50,
guidance_scale=7.5,
gen_seed=42,
inversion_type="ddim"
)
Note
Most parameters have sensible defaults. You primarily need to provide the scheduler, pipeline, and device. Other parameters can be adjusted based on your specific requirements.