image-generation

Image Generation Skill

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "image-generation" with this command: npx skills add sherifeldeeb/agentskills/sherifeldeeb-agentskills-image-generation

Image Generation Skill

Create diagrams, charts, and visual assets for security documentation with support for network diagrams, data visualizations, and flowcharts.

Capabilities

  • Diagrams: Generate network topology and architecture diagrams

  • Charts: Create data visualizations (bar, pie, line, heatmaps)

  • Flowcharts: Build process and workflow diagrams

  • Risk Matrices: Generate risk assessment visualizations

  • Timelines: Create incident and event timelines

  • Export: Save to PNG, SVG, and PDF formats

Quick Start

import matplotlib.pyplot as plt

Create a simple bar chart

severities = ['Critical', 'High', 'Medium', 'Low'] counts = [3, 8, 15, 22]

plt.figure(figsize=(10, 6)) plt.bar(severities, counts, color=['#e74c3c', '#e67e22', '#f1c40f', '#3498db']) plt.title('Findings by Severity') plt.savefig('severity_chart.png', dpi=150)

Usage

Bar Charts

Create bar charts for comparisons.

Example:

import matplotlib.pyplot as plt from typing import Dict

def create_severity_chart(data: Dict[str, int], output_path: str = 'chart.png'): """Create a severity distribution bar chart.""" colors = { 'Critical': '#e74c3c', 'High': '#e67e22', 'Medium': '#f1c40f', 'Low': '#3498db' }

severities = list(data.keys())
counts = list(data.values())
bar_colors = [colors.get(s, '#333') for s in severities]

plt.figure(figsize=(10, 6))
plt.bar(severities, counts, color=bar_colors)
plt.title('Findings by Severity', fontsize=14, fontweight='bold')
plt.savefig(output_path, dpi=150, bbox_inches='tight')
plt.close()

Usage

create_severity_chart({'Critical': 3, 'High': 8, 'Medium': 15, 'Low': 22})

Network Diagrams

Create network topology diagrams using Graphviz.

Example:

from graphviz import Digraph

def create_network_diagram(nodes: list, edges: list, output_path: str = 'network'): """Create a network topology diagram.""" dot = Digraph() dot.attr(rankdir='TB')

shapes = {'firewall': 'box3d', 'server': 'box', 'database': 'cylinder'}

for node in nodes:
    dot.node(node['id'], node['label'],
            shape=shapes.get(node.get('type', 'server'), 'box'),
            style='filled', fillcolor=node.get('color', 'lightblue'))

for edge in edges:
    dot.edge(edge['from'], edge['to'], label=edge.get('label', ''))

dot.render(output_path, format='png', cleanup=True)

Usage

nodes = [ {'id': 'fw', 'label': 'Firewall', 'type': 'firewall', 'color': 'lightcoral'}, {'id': 'web', 'label': 'Web Server', 'type': 'server'}, {'id': 'db', 'label': 'Database', 'type': 'database'} ] edges = [{'from': 'fw', 'to': 'web'}, {'from': 'web', 'to': 'db'}] create_network_diagram(nodes, edges)

Flowcharts

Create process flowcharts.

Example:

from graphviz import Digraph

def create_flowchart(steps: list, output_path: str = 'flowchart'): """Create a process flowchart.""" dot = Digraph() dot.attr(rankdir='TB')

shapes = {'start': 'ellipse', 'end': 'ellipse',
          'process': 'box', 'decision': 'diamond'}
colors = {'start': 'lightgreen', 'end': 'lightcoral',
          'process': 'lightblue', 'decision': 'lightyellow'}

for step in steps:
    dot.node(step['id'], step['label'],
            shape=shapes.get(step.get('type', 'process'), 'box'),
            style='filled',
            fillcolor=colors.get(step.get('type', 'process'), 'white'))

    if 'next' in step:
        for n in (step['next'] if isinstance(step['next'], list) else [step['next']]):
            if isinstance(n, dict):
                dot.edge(step['id'], n['to'], label=n.get('label', ''))
            else:
                dot.edge(step['id'], n)

dot.render(output_path, format='png', cleanup=True)

Risk Heatmaps

Create risk assessment heatmaps.

Example:

import matplotlib.pyplot as plt import numpy as np

def create_risk_heatmap(data: list, x_labels: list, y_labels: list, output_path: str): """Create a risk assessment heatmap.""" fig, ax = plt.subplots(figsize=(10, 8)) im = ax.imshow(data, cmap='RdYlGn_r')

ax.set_xticks(np.arange(len(x_labels)))
ax.set_yticks(np.arange(len(y_labels)))
ax.set_xticklabels(x_labels)
ax.set_yticklabels(y_labels)

for i in range(len(y_labels)):
    for j in range(len(x_labels)):
        ax.text(j, i, data[i][j], ha='center', va='center',
               color='white' if data[i][j] > 5 else 'black')

ax.set_title('Risk Matrix')
plt.colorbar(im)
plt.savefig(output_path, dpi=150)
plt.close()

Configuration

Environment Variables

Variable Description Required Default

IMAGE_OUTPUT_DIR

Output directory No ./output

IMAGE_DPI

Default DPI No 150

Limitations

  • Interactive: Static images only

  • 3D: Limited 3D support

  • Graphviz: Required for diagrams

Troubleshooting

Graphviz Not Found

Install the system package:

apt-get install graphviz # Ubuntu brew install graphviz # macOS

Related Skills

  • pptx: Embed images in presentations

  • docx: Include visuals in reports

  • pdf: Add charts to PDF reports

References

  • Detailed API Reference

  • Matplotlib Documentation

  • Graphviz Documentation

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Automation

email-forensics

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

disk-forensics

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

forensic-reporting

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

log-forensics

No summary provided by upstream source.

Repository SourceNeeds Review