Leica Photography · সর্বজনীন Open Skill

Leica Photography

Leica Photography Digen-এ একটি সর্বজনীন Open Skill। খুলে দেখুন এই ওয়ার্কফ্লো কী তৈরি করে।

@MayaCalloway

Brand

4 4 15

https://d7qlwi7tl2u27.cloudfront.net/skill-covers/prod/550336/2026-08-18/8akx3pze.webp

# Leica Photography

## When to use
- The user wants to generate a Leica-flavored photo from any idea / one-sentence description (street, portrait, landscape, still life, food, architecture, pets, etc.)
- The user uploads any photo as a reference (composition and content) and wants a Leica-flavored photo with the same content
- The user uploads a photo and explicitly asks to restyle/edit it into a Leica look, preserving the original composition and subject

## Default style template (black-and-white Leica Monochrom)
- Lens language: classic 35mm f/2 rangefinder lens look (default lens) — shallow depth of field, soft out-of-focus areas, sharp center; never depict any camera body in the scene
- Tonality: Leica Monochrom black-and-white — rich tonal gradation, balanced contrast, deep blacks with smooth transitions, film-grain texture
- Texture: fine film grain, slight vignette, natural light falloff
- Composition: default 3:2 landscape (classic Leica ratio); follow the user when portrait/square is requested or when matching a reference photo's ratio

Optional variants (switch when the user mentions these keywords; otherwise use the default B&W):
- Color film / Portra / "want color" → Kodak Portra look: muted, warm, natural skin tones, soft highlights
- Modern digital / M10 / M11 → high sharpness, rich saturated color, creamy shadows, minimal or no grain
- Lens switching: 28mm → wide street perspective; 50mm → standard portrait perspective; 75mm / 90mm → telephoto compression

## Steps
1. Determine user intent:
   - Idea / text description only → "Generate" flow (step 2 A)
   - Photo uploaded without explicit "edit / restyle" wording → treat it as reference only (composition & content), use "Reference generate" flow (step 2 B)
   - Photo uploaded with explicit "edit / restyle" wording (e.g. "turn this photo into Leica style") → "Restyle" flow (step 2 C)
2. Build the prompt (always in English; translate the user's idea into an English subject description; use the default B&W template unless a variant was requested):
   - A (Generate): describe the subject from the user's idea and apply the style template. Skeleton: `{subject/scene description}, photographed with a classic 35mm f/2 rangefinder lens look, black-and-white Leica Monochrom rendering, rich tonal gradation, fine film grain, gentle vignette, shallow depth of field, 3:2 composition, street photography aesthetic. Do not include any camera or equipment in the frame.` Replace style parts when a variant (color film / modern digital / other lens) was chosen.
   - B (Reference generate): first call recognize_image(image_url=<user's uploaded photo URL>, prompt="Describe the subject, composition, camera angle, lighting and mood of this photo"), then turn the result into an English subject description and apply the default B&W Leica template (same content & composition, new Leica-flavored photo). The original is only a reference — pixel-level fidelity is not required.
   - C (Restyle): keep the original composition, subject, action and perspective; only change the style. Skeleton: `Restyle this photo into a Leica-style black-and-white photograph: keep the exact composition and subject, apply Leica Monochrom grayscale rendering, rich tonal gradation, fine film grain, gentle vignette, subtle classic 35mm lens character. Do not add any camera or equipment into the image.` Replace style parts when a variant was chosen.
3. Call generate_image:
   - A / B: `model='t2i'`, `input_urls` empty, `prompt` as built above, `orientation` default 'landscape' (use 'portrait' / 'square' when requested or to match the reference photo's ratio), `resolution` default '1080P', `name` = "leica-" + short subject (e.g. leica-street-cafe), `entity_type` = 'leica_photos'
   - C: `model='i2i'`, `input_urls=[user's uploaded photo URL]`, otherwise same; `orientation` follows the original ratio (landscape / portrait / square), `prompt` as built in C
4. Show the result to the user; if they want a different variant