|
|
"""
|
|
|
Fashion Inpainting System - Example Implementation
|
|
|
Correct usage of the fashion_safety_checker API
|
|
|
"""
|
|
|
|
|
|
from fashion_safety_checker import create_fashion_safety_pipeline
|
|
|
|
|
|
def main():
|
|
|
"""
|
|
|
Example usage of the Fashion Inpainting System
|
|
|
"""
|
|
|
|
|
|
pipeline = create_fashion_safety_pipeline()
|
|
|
|
|
|
|
|
|
print("π¨ Basic Fashion Transformation")
|
|
|
result = pipeline.safe_fashion_transformation(
|
|
|
source_image_path="examples/person_in_casual_wear.jpg",
|
|
|
checkpoint_path="checkpoints/realistic_vision_v2.safetensors",
|
|
|
outfit_prompt="elegant red evening dress",
|
|
|
output_path="outputs/red_evening_dress_result.jpg",
|
|
|
face_scale=0.90
|
|
|
)
|
|
|
|
|
|
if result['success']:
|
|
|
print("β
Fashion transformation completed successfully")
|
|
|
print(f"Output saved to: {result.get('output_path', 'outputs/red_evening_dress_result.jpg')}")
|
|
|
else:
|
|
|
print("β Transformation blocked by safety system")
|
|
|
print(f"Blocking reason: {result['blocking_reason']}")
|
|
|
print(f"User message: {result['user_message']}")
|
|
|
|
|
|
print("-" * 50)
|
|
|
|
|
|
|
|
|
print("π¨ Business Outfit Transformation")
|
|
|
result = pipeline.safe_fashion_transformation(
|
|
|
source_image_path="examples/person_in_casual_wear.jpg",
|
|
|
checkpoint_path="checkpoints/fashion_professional_v1.safetensors",
|
|
|
outfit_prompt="professional business suit, navy blue, elegant",
|
|
|
output_path="outputs/business_suit_result.jpg",
|
|
|
face_scale=0.85
|
|
|
)
|
|
|
|
|
|
if result['success']:
|
|
|
print("β
Business transformation completed")
|
|
|
else:
|
|
|
print("β Business transformation blocked")
|
|
|
print(f"Reason: {result['blocking_reason']}")
|
|
|
print(f"Message: {result['user_message']}")
|
|
|
|
|
|
print("-" * 50)
|
|
|
|
|
|
|
|
|
print("π¨ Swimwear Transformation (Professional Use)")
|
|
|
result = pipeline.safe_fashion_transformation(
|
|
|
source_image_path="examples/person_in_casual_wear.jpg",
|
|
|
checkpoint_path="checkpoints/fashion_permissive_v1.safetensors",
|
|
|
outfit_prompt="elegant one-piece swimsuit, professional fashion photography",
|
|
|
output_path="outputs/swimwear_result.jpg",
|
|
|
face_scale=0.92
|
|
|
)
|
|
|
|
|
|
if result['success']:
|
|
|
print("β
Swimwear transformation completed")
|
|
|
else:
|
|
|
print("β Swimwear transformation blocked")
|
|
|
print(f"Reason: {result['blocking_reason']}")
|
|
|
print(f"Message: {result['user_message']}")
|
|
|
|
|
|
print("-" * 50)
|
|
|
|
|
|
|
|
|
print("π¨ Error Handling Example")
|
|
|
result = pipeline.safe_fashion_transformation(
|
|
|
source_image_path="examples/nonexistent_image.jpg",
|
|
|
checkpoint_path="checkpoints/some_checkpoint.safetensors",
|
|
|
outfit_prompt="casual summer dress",
|
|
|
output_path="outputs/error_test.jpg",
|
|
|
face_scale=0.90
|
|
|
)
|
|
|
|
|
|
if result['success']:
|
|
|
print("β
This shouldn't happen")
|
|
|
else:
|
|
|
print("β Expected error occurred")
|
|
|
print(f"Reason: {result['blocking_reason']}")
|
|
|
print(f"Message: {result['user_message']}")
|
|
|
|
|
|
def advanced_usage_examples():
|
|
|
"""
|
|
|
Advanced usage examples with different parameters
|
|
|
"""
|
|
|
pipeline = create_fashion_safety_pipeline()
|
|
|
|
|
|
|
|
|
face_scales = [0.80, 0.85, 0.90, 0.95]
|
|
|
|
|
|
for i, scale in enumerate(face_scales):
|
|
|
print(f"π¨ Testing face_scale={scale}")
|
|
|
|
|
|
result = pipeline.safe_fashion_transformation(
|
|
|
source_image_path="examples/test_subject.jpg",
|
|
|
checkpoint_path="checkpoints/fashion_moderate.safetensors",
|
|
|
outfit_prompt="classic white shirt and dark jeans",
|
|
|
output_path=f"outputs/face_scale_test_{scale}.jpg",
|
|
|
face_scale=scale
|
|
|
)
|
|
|
|
|
|
if result['success']:
|
|
|
print(f"β
face_scale={scale} completed successfully")
|
|
|
else:
|
|
|
print(f"β face_scale={scale} failed: {result['blocking_reason']}")
|
|
|
|
|
|
def batch_processing_example():
|
|
|
"""
|
|
|
Example of processing multiple transformations
|
|
|
"""
|
|
|
pipeline = create_fashion_safety_pipeline()
|
|
|
|
|
|
|
|
|
transformations = [
|
|
|
{
|
|
|
"source": "examples/person1.jpg",
|
|
|
"checkpoint": "checkpoints/casual_wear.safetensors",
|
|
|
"prompt": "comfortable jeans and cozy sweater",
|
|
|
"output": "outputs/person1_casual.jpg",
|
|
|
"face_scale": 0.90
|
|
|
},
|
|
|
{
|
|
|
"source": "examples/person2.jpg",
|
|
|
"checkpoint": "checkpoints/formal_wear.safetensors",
|
|
|
"prompt": "elegant black evening gown",
|
|
|
"output": "outputs/person2_formal.jpg",
|
|
|
"face_scale": 0.88
|
|
|
},
|
|
|
{
|
|
|
"source": "examples/person3.jpg",
|
|
|
"checkpoint": "checkpoints/business_wear.safetensors",
|
|
|
"prompt": "professional gray suit with blue tie",
|
|
|
"output": "outputs/person3_business.jpg",
|
|
|
"face_scale": 0.85
|
|
|
}
|
|
|
]
|
|
|
|
|
|
successful_transformations = 0
|
|
|
failed_transformations = 0
|
|
|
|
|
|
for i, transform in enumerate(transformations):
|
|
|
print(f"π¨ Processing transformation {i+1}/{len(transformations)}")
|
|
|
|
|
|
result = pipeline.safe_fashion_transformation(
|
|
|
source_image_path=transform["source"],
|
|
|
checkpoint_path=transform["checkpoint"],
|
|
|
outfit_prompt=transform["prompt"],
|
|
|
output_path=transform["output"],
|
|
|
face_scale=transform["face_scale"]
|
|
|
)
|
|
|
|
|
|
if result['success']:
|
|
|
successful_transformations += 1
|
|
|
print(f"β
Transformation {i+1} completed")
|
|
|
else:
|
|
|
failed_transformations += 1
|
|
|
print(f"β Transformation {i+1} failed: {result['blocking_reason']}")
|
|
|
|
|
|
print(f"\nπ Batch Processing Results:")
|
|
|
print(f"β
Successful: {successful_transformations}")
|
|
|
print(f"β Failed: {failed_transformations}")
|
|
|
print(f"π Success Rate: {successful_transformations/len(transformations)*100:.1f}%")
|
|
|
|
|
|
def safety_level_examples():
|
|
|
"""
|
|
|
Examples demonstrating different safety behaviors
|
|
|
"""
|
|
|
pipeline = create_fashion_safety_pipeline()
|
|
|
|
|
|
|
|
|
test_cases = [
|
|
|
("conservative business outfit", "Should pass all safety levels"),
|
|
|
("summer beach dress", "Should pass moderate and permissive"),
|
|
|
("elegant swimwear", "May require permissive safety level"),
|
|
|
("inappropriate content", "Should be blocked by safety system")
|
|
|
]
|
|
|
|
|
|
for prompt, expectation in test_cases:
|
|
|
print(f"\nπ§ͺ Testing prompt: '{prompt}'")
|
|
|
print(f" Expected: {expectation}")
|
|
|
|
|
|
result = pipeline.safe_fashion_transformation(
|
|
|
source_image_path="examples/test_image.jpg",
|
|
|
checkpoint_path="checkpoints/general_fashion.safetensors",
|
|
|
outfit_prompt=prompt,
|
|
|
output_path=f"outputs/safety_test_{prompt.replace(' ', '_')}.jpg",
|
|
|
face_scale=0.90
|
|
|
)
|
|
|
|
|
|
if result['success']:
|
|
|
print(f" β
Result: Transformation completed")
|
|
|
else:
|
|
|
print(f" β Result: Blocked - {result['blocking_reason']}")
|
|
|
print(f" π¬ Message: {result['user_message']}")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
print("π¨ Fashion Inpainting System - Example Usage\n")
|
|
|
|
|
|
|
|
|
main()
|
|
|
|
|
|
print("\n" + "="*60)
|
|
|
print("Advanced Examples")
|
|
|
print("="*60)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
print("\n⨠Examples completed!")
|
|
|
print("π For more information, see the documentation at:")
|
|
|
print(" GitHub: https://github.com/your-org/fashion-inpainting-system")
|
|
|
print(" Hugging Face: https://huggingface.co/your-org/fashion-inpainting-system") |